FFT中频谱泄露的两种理解

FFT中频谱泄露的两种解释

    FFT运算是对有限字长数据的傅里叶分析,其中会存在频谱泄露的现象,本来功率集中的频谱会出现能量外泄,污染其他频带的信号,造成一定的性能损失,甚至整体功能失效,所以有必要了解频谱泄露产生的原因以及如何控制频谱的泄露。
    一、非周期截断引起的频谱泄露
    FFT是DFT的一种快速计算方法,而由信号与系统理论可知,有限长信号的DFT,是假设该信号为一个周期信号的片段(周期)来进行计算的,也就是说将有限长信号进行周期拓展,然后再进行周期信号的傅里叶谱计算。反过来说,这个有限长的信号是一个周期信号的部分截断,奉上一张奥本大神的图来说明。
FFT中频谱泄露的两种理解_第1张图片
    当这个截断的有限字长信号不是一个波形的完整周期时,会引起频谱的泄露。下面以正弦波来展示这一现象。


    通过上面的仿真图可以很明显看到,当截断的信号不是一个完整周期时,FFT变换后,其频谱在真实频点周围存在大量的杂散成分,且频点最大值有一定幅度的下降,这就是典型的频谱泄露。造成这种频谱泄露的原因,一般归结为非周期截断信号的FFT在周期拓展时,前一拓展周期的尾部数据与后一拓展周期的首部数据存在较大跳变,这产生了新的高频分量(一般远大于采样率),这些高频分量的镜像成分会混叠进有用频带内,形成杂散频率。
    二、信号矩形加窗引起的频谱泄露
    在FFT运算中,经常会使用补零FFT,这样的好处有很多,比如提高了频率分辨率,同时将FFT点数补偿为2的整数幂次,以方便进行蝶形运算。这样的补零操作也会带来一定的性能损失,因为这种补零操作,相当于对数据加了矩形窗,从而引起了频谱泄露。
    首先来说明为什么补零相当于加矩形窗。

数据1:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
数据2:[1, 1, 1, 1, 1, 0, 0, 0, 0, 0]; 
数据3 = 数据1*数据2 ;           

很明显数据2就是一个矩形窗,而数据3是对数据1的一个加窗操作,其结果为[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]。数据3可以有两种解释,一个是数据[1, 2, 3, 4, 5]经过补零后产生的新数据;另一个是数据1经过加窗后产生的新数据。本文主要是从加窗的角度来考虑频谱泄露的情况,仍以单正弦波为例进行展示,具体见下图




     这种频谱泄露的特点是频谱内正确频点的幅值不会有明显衰减,但在正确频点周围会出现杂散频点,且随着补零长度的增加,杂散频点数量明显增多,且与真实频点相邻的两个杂散点会随着补零长度的增加,越来越靠近真实频点。在噪声环境下,这有可能造成正确频点位置的判决出现错误。
     这种频谱泄露的原因,一般归结为矩形窗函数的影响。从时域看是信号与矩形窗的乘积,而在频域的角度则是信号频谱与矩形窗信号频谱的卷积。对于正弦信号,其频谱为对称的两个冲击函数,而矩形窗的频谱为sinc函数,则两者卷积的频谱其实就是一个经过搬移的sinc函数,可见正弦信号补零加窗后,频谱会由单频点,变为sinc函数,信号频谱扩散了,这就是频谱泄露。
    三、如何减少频谱泄露
对于有限长信号的FFT运算,很难完全消除频谱泄露,但可以减少频谱泄露的影响,使用的方法就是对信号进行人为加窗。

1. 选择的窗函数都是两侧对称衰减的凸函数,如hann窗,hamming窗,blackman窗,kaiser窗等

FFT中频谱泄露的两种理解_第2张图片
这样加窗后信号首尾部都衰减为0 或接近0,当进行周期扩展时,前后周期首尾相连的部分就不会存在较大的幅度跳变,这就避免了产生新的高频分量,也就不会在带内引入较大较多的镜像杂散频率了。

2. 选择的窗函数频谱必须具有较窄的主瓣和衰减较大的旁瓣。

这样的窗函数主瓣内杂散频点比较少,而旁瓣内的杂散频点由于衰减较大,一般不会影响正常的处理,这就解决了抑制频谱泄露的问题,但仅仅是减少泄露,而不是消除泄露。

3. 由于窗函数时域不是平坦的,其外侧衰减较大,信号加窗后会损失一定的功率,这是加窗的通病后遗症,为较少性能损失,一般会采用重叠加窗,或重叠选择的方法,这里就不再详述。

你可能感兴趣的:(老白聊通信,数字通信)