算法学习 - Window Functions 窗函数

在实际信号处理中,采用窗函数进行数据截短是必不可少的步骤。窗函数的频谱形状与性能直接影响频谱泄漏和栅栏效应。因此,窗函数是影响基于傅里叶变换的谐波分析方法准确度的关键因素之一。在加窗傅里叶变换中常用窗函数有矩形窗、三角窗、余弦组合窗、Gauss 窗、Kaiser窗和 Dolph-Chebyshev 窗等。

  1. 矩形窗
    算法学习 - Window Functions 窗函数
  2. 三角窗
    算法学习 - Window Functions 窗函数
  3. Hanning窗
    算法学习 - Window Functions 窗函数
  4. Hamming窗
    算法学习 - Window Functions 窗函数
  5. Blackman窗
    算法学习 - Window Functions 窗函数
  6. Blackman-Harris窗
    算法学习 - Window Functions 窗函数
  7. Nuttall窗
    算法学习 - Window Functions 窗函数
  8. Rife-Vincent窗
    算法学习 - Window Functions 窗函数
  9. Flat-Top窗
    算法学习 - Window Functions 窗函数算法学习 - Window Functions 窗函数
  10. Gauss窗
    算法学习 - Window Functions 窗函数
  11. Kaiser窗
    算法学习 - Window Functions 窗函数
  12. Dolph-Chebyshev窗
    算法学习 - Window Functions 窗函数
    各窗函数的频域特征参数如下所示,Dea(dB/oct)每倍频旁瓣衰减的dB值;Asp(dB)代表旁瓣峰值电平。
    算法学习 - Window Functions 窗函数

窗函数主要的评价指标有:主瓣宽度、旁瓣峰值电平、旁瓣衰减速率。主瓣宽度定义为频域原点两侧的两个最近的零值点之间的距离,主瓣与频率分辨率相关,主瓣越宽,频率分辨率越低。旁瓣峰值电平是指最靠近主瓣的最大旁瓣的电平,旁瓣与泄漏相关。旁瓣峰值电平越高,表明旁瓣越大,则频谱泄漏越严重。旁瓣衰减速率反映旁瓣电平下降的程度,旁瓣衰减速率越高,旁瓣电平下降越快,频谱泄漏越小。

为抑制频谱泄漏,往往要求窗函数既有较小的旁瓣,又要有较快的渐近旁瓣衰减速率;为减少栅栏效应的影响,则要求窗函数主瓣越窄越好。此外,窗谱函数越简单,对应的离散频谱校正算法运算量越小。因此,选取合理的窗函数的基本原则是:
1)主瓣要窄,能量尽可能集中在主瓣内,从而获得较高的频率分辨率;
2)旁瓣峰值电平尽可能低且衰减快,以减小泄漏带来的误差;
3)窗函数时域、频域表达式要简洁,以减少频谱校正的运算量。

但窗函数无法同时具备主瓣窄、旁瓣峰值电平低且旁瓣衰减快的条件。因此,在采用 FFT 谐波检测算法时要综合考虑实时性和准确度两方面的要求。如果仅要求精确计算频率,而不考虑幅值、初相角等参数的准确度,则可选用主瓣宽度比较窄而便于分辨的矩形窗,例如测量物体的自振频率等;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如 Hanning 窗、三角窗等。

参考文献:
《新型窗函数与改进FFT谐波分析方法及应用研究》