频谱泄露与窗函数

在FFT(傅里叶变换)分析信号时,常常会提到频谱泄露现象,即某频率谱线的幅值分布到其他频段。这样会严重影响信号频率和幅度的判断,为了减轻这种现象,使用窗函数进行截取,即加窗。

一,频谱泄露现象

对原信号做非周期截断后进行FFT,得到的频率谱线会出现旁瓣,即出现原信号频率之外的的频谱,同时原信号幅度降低,可视为原信号的能量泄露到附近频点上。

非周期截断:

image-20230330112218873

做FFT后有频谱泄露:

image-20230330112413924

二,周期截断与非周期截断

信号截断

由于实际信号处理时,我们不可能将整个原始信号进行FFT,只能截取信号的一部分进行处理,这个过程就叫信号截断

根据截取信号的长度与周期的关系,可以分为周期截断非周期截断

周期截断

如果截取信号的长度为原信号周期的整数倍,则截断后的信号依然为周期信号,可以重构为原始信号,进行FFT后的频谱频率成分为原信号频率,100%幅度。

image-20230330114158097

假设原始信号的频率为f Hz,则周期为1/f s,截取信号的时间长度为T=k/f。则频率分辨率为1/T=f/k。那么原信号频率成分为f=k*1/T,即有一条谱线正好是原信号频率成分。

非周期截断

如果截取信号的长度不是原信号周期的整数倍,则截断后的信号不是周期信号,重构出来的信号不连续,出现跳跃。

image-20230330114209056

对这种信号进行FFT后,频谱会分散,原信号频率成分的幅值不再是100%。反而原信号周围谱线出现幅值,即泄露到了周围频谱。

非周期截断中,没有一条谱线与原信号完全相同。

三,FFT变换

根据傅里叶变换的推导,我们可以知道周期信号可以用傅里叶级数表示,即使用频谱中的一些离散点表示。而对非周期信号,只能用连续的频谱去无限逼近,因此非周期截断会出现泄露。

四,窗函数

引入窗函数前,先来直观理解一下什么是窗。我们对信号进行截断,就好像在信号上面套了一个窗户,我们只能看见窗户里面的信号,用这里面的信号去分析原信号。这就是加窗的直观理解。

为什么要使用窗函数

窗函数就是给窗内信号的每个点都加上一个权值,使窗内信号的起始和截止幅度都为0,让窗里面的信号变成周期信号,从而减少频谱泄露(不能消除)。

常见窗函数

各种窗函数频谱特征的主要差别在于:主瓣宽度(也称为有效噪声带宽,ENBW)、幅值失真度最高旁瓣高度旁瓣衰减速率等参数。不同的窗函数具有不同的频谱特征。

  • 主瓣宽度主要影响信号能量分布和频率分辨能力。频率的实际分辨能力为有效噪声带宽乘以频率分辨率,因此,主瓣越宽,有效噪声带宽越宽,在频率分辨率相同的情况下,频率的分辨能力越差
  • 旁瓣高低及其衰减率影响能量泄漏程度(频谱拖尾效应)。旁瓣越高,说明能量泄漏越严重,衰减越慢,频谱拖尾越严重。

矩形窗

如果直接对信号截断,则窗内的信号权重都为1,这种窗称为矩形窗。

image-20230330132853646

这种窗的优点是主瓣比较集中,缺点是旁瓣较高,而且可能伴有负旁瓣,频谱泄漏 现象会较为严重. 特点就是可以保证测量时的频率较为精确,但是不能保证幅值测量的精确性.

三角窗

image-20230330133549335

三角窗使用渐进的权重,让边界处的信号为0,这种窗其主瓣宽度比矩形窗宽约一倍,旁瓣 相比于矩形窗非常小,测幅度会准一些但测频率就差。

汉宁窗

image-20230330134654783

汉宁窗会增加主瓣宽度,导致频率分辨率下降。

汉明窗

汉明窗和汉宁窗基本一致,不一致的只有一个参数。

凯泽窗

其中 N 为序列的长度,I0 的零阶的第一类修正贝塞尔函数,α 是任意非负实数,用于调整凯 泽窗的外形,由使用者根据实际情况给定。

平顶窗

常见窗函数参数

image-20230330140729334

根据此表可以估计窗函数性能,帮助选择。

窗函数选择

加窗函数时,应使窗函数频谱的主瓣宽度应尽量窄,以获得高的频率分辨能力旁瓣衰减应尽量大,以减少频谱拖尾,但通常都不能同时满足这两个要求。因此需要根据实际需求选择合适窗函数。

这里给出一个参考:

  1. 如果截断的信号仍为周期信号,则不存在泄漏,无须加窗,相当于加矩形窗。
  2. 如果信号是随机信号或者未知信号,或者有多个频率分量,测试关注的是频率点而非能量大小,建议选择汉宁窗。
  3. 对于校准目的,则要求幅值精确,平顶窗是个不错的选择。
  4. 如果同时要求幅值精度和频率精度,可选择凯塞窗。
  5. 如果检测两个频率相近、幅值不同的信号,建议用布莱克曼窗。
  6. 锤击法试验力信号加力窗,响应可加指数窗。