FFT之于频谱分析仪
在近期微信朋友圈中流行的文章《世上最伟大的十个公式》中,傅里叶变换公式排名第9。法国人傅先生整出的这个公式影响深远。
在频谱仪中,既然是逐个频点扫描的方法获得频谱,为什么又使用FFT呢? 这是很多人学习频谱仪的时候都感到有点烧脑的地方。杨鼎选了这个话题后有痛不欲生之感,他在写作中难处在于:在FFT原理和扫描结构和实时频谱仪之间找不到平衡点,每天憋一段删半段,越来越四不像。
理解频谱仪中的FFT之要义是: FFT可以看做是一列并行的中频滤波器同时工作,从而加快了频谱扫描的速度。
提到频谱分析,傅里叶变换总是绕不过去的。从法国大革命后傅里叶在热解析理论中发表任意函数的三角级数变换,到一百五十年后的冷战间随着数字计算机风口起飞的库利图基快速算法,到如今在实时分析中已成为无所不在基础功能的FFT,相关文章已经汗牛充栋——频域作为信息的载体,也是观察世界的另一个重要角度,被分析应用的领域实在太多。托傅里叶之福,本文将从FFT说起,并就其在频谱分析仪内的应用特点进行一些解释。
FFT(Fast Fourier Transform)快速傅里叶变换,是计算DFT的一种适合计算机运行的算法,是一种数学技巧,并没有明确的物理意义。要想理解FFT,只能且必须先理解DFT。实际使用当中因为基本没人会按照直接计算的方法去DFT, 所以FFT就成了DFT的一种实现标准。
DFT(Discrete Fourier Transform)离散傅里叶变换,其实也只是傅里叶变换(Fourier Transform)适合计算机运算的一个形式,是信号分析的一种近似方法,它认为所有信号都是周期信号(大前提就不严谨),然后从采样到的数据点中截取一段,断章取义的认为截取的这一段就是该“周期信号”的一个完整周期(依然没有根据),整个信号就是截取的这段数据周期的复制延拓,也不管这个周期的首尾是否连续相接(越发的不靠谱)。也就是说,DFT分析出来的频谱结果,并不是当前实际信号的频谱,也不是采样到的这段数据的频谱,而是把采样到的这段数据作为一个周期进行复制延拓出来的这个周期信号的频谱。反正只采了一段数据,结果还要代表整个时间轴上的频谱,那么这段数据的前后部分究竟是什么,影响着结果的形式,但是周期的引入可以便于使用数学工具,而非周期的拓展就很难运算了。
图 1 傅里叶变换家族的几个成员
DFT分析方法虽然有缺点,但工程和计算中经过折中一些条件,能够满足大部分需求。在进行频谱数据分析时,采样数据时域加窗,可以缓解采样数据首尾不连续造成的频谱泄露,更关键的是适合了计算机运算解放了人工计算,或者说计算机的有限内存只能运算这种近似的方案。FFT的出现锦上添花,使得运算量急剧减小,达到了计算机实时运算的程度。话说DFT的快速算法早在傅里叶之后没多久就被高斯(还是那个高斯)发现,只是当时没有数字计算机来实施运算,只能被埋没在稿纸中;百年后数字计算机兴起,快速算法很快又被美国人重新发现并得以实施。世间本应多存在一种高斯算法,可见他穿越的有点早了。
FFT输入N个时域点,结果输出N个频域点,可理解为完成了一次“变换”(Transform),时域的采样频率为Fs,频域的频率分辨率为Fs/N,在相同的Fs下,参加FFT的样点越多,变换结果的频谱分辨率越细致。能量也守恒(帕斯瓦尔定理)。运算结果在直角坐标系下,是不同频率正弦波和余弦波的线性组合,在极坐标系下是不同频率幅度和相位的线性组合。
在工程实现上,通常在ADC的后级实施缓存,并使用DSP完成FFT。图2是常见的FFT分析仪的组成结构。
图 2 FFT分析仪框图
早期的一些仪表就是采用FFT方法实现频谱分析的功能,但是受限于ADC的采样率和位宽无法很高,能够分析的频谱范围很有限,最终还是被外差扫描式的频谱分析仪所取代。不过现在FFT分析仪仍在音频,振动相关的测试领域发挥着重要作用,一般处理上限是kHz或MHz级别。其实带有FFT分析模块的示波器,就可以看做一个FFT分析仪。图3是鼎阳科技智能示波器SDS3000的FFT功能。
图 3 智能示波器SDS3000中的FFT功能
FFT如何与扫描频谱分析仪相结合?
从基础的角度考虑,我们可以把频谱分析仪理解为一种频率选择、峰值检测的电压表。“频率选择”说明频谱分析仪的对正弦波的频率是选择出来的,选择的方法决定了频率分辨能力的大小。对于以单点扫描的频谱分析仪,每次调谐到相应的频率上,只完成当前一个频点的能量检测;而对于以FFT步进实现扫描的频谱分析仪,每次调谐到某个频率上,会停留更长的时间,也分析出一个频段内的所有能量,因此FFT步进扫描,只是每次选择的范围变大了一些,但是基本过程是没有根本变化的。
在这个意义上,FFT可以看做是一列并行的中频滤波器同时工作,从而加快了频谱扫描的速度。图4是在扫描式频谱分析仪中FFT的实现形式,一般信号仍经过下变频和滤波,在DSP中完成频段的FFT分析。
图 4 扫描式频谱分析仪和FFT的结合
扫描式的频谱分析仪的局限性是不同频率点的数据并不是在同一个时刻采样得到的,信号分析的结果是分时采集检测然后拼接而成。当RBW比较小时,数据采集速度远大于数字后端处理的速度,所以具有较长的死区时间。这有两个弱点,一方面,如果存在某些脉冲变化或短时干扰,很有可能会漏掉这些信号;另一方面,宽带系统中常常需要分析宽带内信号符号级的调制解调,这要求信号至少在通信带宽内必须同时参加运算,扫频式频谱分析仪的分析带宽很难做到很高的处理速度。
FFT和传统的扫描式频谱分析仪相结合,产生了实时频谱分析仪,当然这里是指在实施FFT的分析带宽内是“实时”的,并不是指全频带的实时分析,实时频谱分析仪仍然是基于扫描,只是下变频的带宽不再局限于RBW相关宽度,而是在整个FFT的变换带宽,不使用中频滤波器,而是使用FFT将当次扫描带宽内的频谱一次性分析出来。
图 5 FFT和扫描的区别与联系
FFT分析结果如何和扫频的结果相统一?
在较大的RBW下,扫描的步进很大,扫描速度很快,例如当RBW=1 MHz时,扫描步进常为300 kHz或100 kHz,即使100 MHz宽度的扫描也可以在ms级别做完,这种情况下是没有必要使用FFT来完成扫描的,FFT的优势是在小RBW下,可以使用很短的时间完成相同设置的扫描。因为频谱仪扫描时间公式中,RBW随时间的影响非常大,
当RBW减小,扫描时间将随之按照平方倍增长,这时FFT的优势就体现了出来。
由于较小的RBW,这时扫描的中频滤波器的响应时间也是非常的长,大量的时间将耗费在中频滤波器的响应中。FFT的优势是,虽然缓存数据消耗了更长的时间,但是由于结果包含的频谱数量和缓存的数据一样多,单就一个点的结果来看,FFT可能不如扫描来得快,但是随着扫宽的加长,在整体上将占优势。
时域加窗除了能够减小FFT算法中的频谱泄露,还有成型的作用。由于时域的相乘等效于频域的卷积,因此,对运算数据加高斯窗,使数据边缘变得平滑,还使分析出的频谱结果具有高斯型脉冲。这使用到了高斯分布的两个极重要的性质:一,高斯分布的频谱形状仍然是高斯分布;二,高斯滤波器的等效噪声带宽约等于1。
FFT的速度能够比扫描快多少?前面提到,FFT可以看做是一列并行的中频滤波器同时工作。所以说,在相同的数据速率下,N越大,FFT相比于扫频模式的速度就越快,然而N和消耗的资源成正比,最终是一个折中。图6是鼎阳科技频谱分析仪SSA300X基于FFT的扫描结果,可以看到,在SPAN=100 Hz,RBW=1 Hz时,扫描时间仅为2.36秒。
图 6 鼎阳科技SSA3000X的FFT和扫描的时间
而若使用纯扫描的方式,根据上文的时间公式,当k=1,SPAN=1 kHz,RBW=1 Hz时,扫描时间将为100秒!而实际上随着SPAN的增大,这个扫描时间并不会马上随之变化,因为FFT是按照一个频段进行的扫描,它在这个频段的分析带宽内是“实时”的,也就是扫描时间是不会发生变化的。
这就是FFT在较小RBW情况下相比于单纯扫描的时间优势。
这么好的帖子居然没人顶一个?暴殄天物啊