对于Cadence Virtuoso中spectre仿真器FFT工具Spectrum Assistant的理解

首先最重要的学习方式是通过Cadence官方的help文档学习,里面有详细的解释,本文章仅分析需要注意的地方。
FFT基础知识:采样点数对应PSD频谱图的谱线(bins)条数,但是spectrum只输出0~Fs/2的谱线(PSD图),因此看到的PSD图中的谱线条数是Sample_Count/2@[0,Fs/2)。
关于选择window type,奈奎斯特ADC采用Rectangular窗口,对于sigma delta调制器需要采用hanning窗口。
在输出PSD的时候需要考虑window size,默认值是sample count。help文档中表示:窗口大小越大,意味着用于求期望值的样本数越少,从而导致功率谱密度的波动(变化)更大。窗口大小较小,则可能会模糊掉功率谱密度中可能存在的陡峭阶跃(突变)。
start freq选取,一般是最小frequency bin对应频率(不包含DC),可以通过(Fs/Sample_Count)计算出来。本人定义Δf=Fs/Sample_Count;
signal bins一般选取对应window type的默认值就可以。signal bins指的是信号单侧另外包含的frrequency bin个数,对于hanning窗,signal bins=1,一根信号频率bin,两侧各一个bin,总共三个bin,故计算该频率点处的能量需要计算这三个bin的总能量。signal bins不能随便修改,这会直接影响信号功率和噪声功率的计算。
Peak Sat. Level是基波的最大输入幅度,这个值和任何失调电压无关,在将FFT幅值用于计算的之前会先除于Peak Sat. Level。例如ADC最大输入范围是[-500mV,500mV],那么Peak Sat. Level=500mV。如果没有采用默认值,设置了Peak Sat. Level值,那么之后的结果中采用的是归一化幅度,每个noise bin的幅值会归一化,因为每个bin上的功率表达式是[(magnitude of each noise bin)/(peak sat. lvl)]^2。当我们采用默认值Peak Sat. Level方框里是0,则代表实际Peak Sat. Level=1,代入到功率表达式中每个bin代表的功率就是这个bin上的实际功率(未归一化)。
Harmonics ≥ 1,基波是一次谐波,这个值是关系到计算谐波总功率。例如设置为3,那么在计算THD的时候会考虑2th和3th谐波能量。
在Analysis type选择的时候,选择noise analysis时仅进行noise分析,选择signal analysis时,signal和noise 都会被作为输入信号用于分析计算。
下图是cadence官方给的一个解释图。

noise floor/bin=10 * log10(power_nodc_nosignal_noharmonic/bins_nodc);
noise floor/rtHz=10 * log10(power_nodc_nosignal_noharmonic/bins_nodc/Δf); 就是把noise floor/bin取dB前的值,先除于频率单元宽度然后再取dB。
手册中关于各参数的计算方式如下所示:
image
image
关于harmonic value设置值这里也给出了解释,如果harmonic value=1,则会把噪声和谐波一起作为噪声处理。在calculator中的SpectrumMeas 函数不包含谐波参数,因此它总是将噪声和失真混在一起,等同于在 Spectrum 助手(Spectrum assistant)中将谐波的值设置为 1。
image

posted @ 2026-10-17 19:40  会计时的鱼  阅读(33)  评论(0)    收藏  举报