这些FFT干货真的很受用!(二)
2.2FFT数据的物理意义
长度为N的有限序列x(n),经FFT后得会到N个复数,完成了时域到频域的涅磐。原始信号包含的各种正弦信号,会转化成对应位置的复数:
第一个复数,代表信号的直流分量。此复数的模值,为直流分量的N倍。
第二至第N/2个复数,代表着均匀频率间隔信号的特征。此复数的模,为此频率信号幅度的N/2倍;此复数的角度,为此频率信号的相位。一个奈奎斯特区包含N/2个频率点,频率点的间隔称为频率分辨率:
对上式稍作变换:频率分辨率的倒数,为可分析信号的周期:
NTs即采样时间,可见FFT的频率分辨率,与其他参数无关,只与采样时间长度有关。
第N/2+1至第N个复数,从上文的奈奎斯特区可知,是1st奈奎斯特区的镜像,可以忽略。
2.3频谱泄漏与窗函数
在利用FFT对ADC的动态性能评估中,为了减少不相关因素对动态性能的影响,测试中一般要求给ADC低噪电源、低噪时钟,待测信号幅度尽量接近且略低于ADC的输入量程,而待测信号的频率Fin也有要求:
为啥频率要这样要求?
将上式中的频率转换为周期就很好理解:
TS*N即为采样时间,采样时间刚好包含了n个整周期的待测信号。这样选取输入信号频率的原因,是FFT分析中默认采集到的数据,是原始连续波形中的一段周期波形。既然波形是连续的,那波形肯定首尾相连的、开始点电压值等于终点处电压值的。
若采样到的数据不是连续的,则相当数据在首尾处有一个电压突变,电压突变在频域上就代表着很高的频率分量。这些高频的频率分量混叠到1st奈奎斯特区时,就会对原有信号的频谱造成干扰,这也叫频谱泄漏。
在实际的信号分析中,待测信号的频率是很难事先设定的,这就容易会造成频谱泄漏。为了减轻这个影响,FFT加入了窗函数这个概念。窗函数,其实是一个加权系数,将不同位置的采样点,分别乘以不同的系数。经过加权相乘后,采样点就变成首尾相连的连续波形了。不同的窗函数,其加权曲线不一样,造成的影响就有所差异。举例hann窗的系数定义如下:
其N=64系数曲线与频谱如下:
图4 N=64 hann窗系数曲线与频谱曲线
图5 叠加窗前后的信号波形
2.41频谱图指标定义
将FFT得到的各个频率点幅度,绘制成随频率变化的曲线,可以得到信号的频谱图。在原厂ADC的器件手册或性能评估方案中,会有与性能相关指标的定义。在众多指标中,以下几个尤为重要:
信噪比SNR
信号均方根幅值与除前六个谐波与直流分量之外的所有频率分量均方根和之比。在只考虑ADC的量化误差时,SNR只与ADC的位数相关。
信纳比SINAD
信号均方根振幅与出直流分量之外的所有频谱分量均方根和之比。SINAD与SNR之间的差异只有前六个谐波分量所含的能量。
总谐波失真THD
信号均方根与前六个谐波之和的均方根值之比。谐波的产生是因为信号经过了非线性环节,导致信号产生畸变。
无杂散动态范围SFDR
信号均方根与最大杂散频谱分量均方根值之比。SFDR可以表征信号分析的动态范围。
有效位数ENOB
ENOB反映了信号与正弦波的拟合程度。在FFT中可以使用公式计算:ENOB =(SINAD-1.76)/6.02。这公式是与基于ADC只有量化误差时的计算模型,具体的推论可以参考ADI的应用文档MT-001《Taking the Mystery out of the Infamous Formula,"SNR = 6.02N + 1.76dB," and Why You Should Care》。
图6 ZDS4054 Plus FFT功能分析界面
ZDS4000 FFT分析功能可以自动计算总谐波失真THD、信噪比SNR,显示前10次高功率信号频率。
03小结
FFT是简便而高效的分析工具,在众多的软件中都已很好的集成。在网络上简单搜索一下例程,在Matlab软件中简单敲入fft(),即可做信号分析。而致远电子推出的高性能数据挖掘性示波器,FFT分析的样本数可达4Mpts,这使得示波器可以在最高采样率下,采样更长时间的波形。这样在FFT后,数据的奈奎斯特区就相当宽,而频率分辨率又相当窄,非常适用信号分析与噪声定位。