一文读懂FFT,海宁窗(hann)和汉明窗(hamming)的区别

  • 海宁窗和汉明窗
  • 时域波形
  • 频域响应
  • matlab window 工具
  • 如何选择窗



数字信号处理离不开频域分析,一定会用到FFT。做FFT之前又会用到窗函数。那么各种窗函数之间有什么区别呢?结论放在前面。

  • 窗函数有四个评价指标,泄露指数,主瓣宽度,旁瓣衰减,旁瓣滚降率。
  • 汉明窗(hamming)和海宁窗(hann)类似,汉明窗两端不能到零,而海宁窗两端是零。汉明窗能够减少很近的旁瓣泄露,但是稍远一点的旁瓣泄露比海宁窗严重。
  • 海宁窗(hann)大多数情况下都能满足需求。它同时具有很好的频率分辨率和较少的频谱泄露。如果不知道用什么窗。海宁窗是个不错的选择。

海宁窗和汉明窗

汉明窗(hamming)和海宁窗(hann)类似,汉明窗的时域波形两端不能到零,而海宁窗时域信号两端是零。从频域响应来看,汉明窗能够减少很近的旁瓣泄露,但是稍远一点的旁瓣泄露比海宁窗严重。

时域波形

汉宁窗 python代码 汉宁窗优点_时域

频域响应

汉宁窗 python代码 汉宁窗优点_时域_02

matlab window 工具

matlab的window 工具可以很好地分析各种窗函数。下面截图红色框中突出了窗函数的三个重要参数。

  • leakage factor 泄露指数
  • Relative sidelobe attenuation 旁瓣衰减
  • Mainlobe width(-3dB) 主瓣宽度

从三个指标来看,Hamming都要优于Hann,但实际上还有一个指标没有加进来,即旁瓣滚降率(sidelobe roll-off rate),可以很明显看出Hann的滚降率是大于Hamming的。Hann的滚降率为 -17.16dB/oct,而Hamming的滚降率为 -3.12dB/oct。

汉宁窗 python代码 汉宁窗优点_时域_03


汉宁窗 python代码 汉宁窗优点_汉宁窗 python代码_04

如何选择窗

  • 如果分析对象是单一频率信号的幅度分辨率比频域分辨率更高,则需要宽的主瓣。
  • 如果分析对象是单一频率信号,频域分辨率要求比幅度分辨率更高,则需要更窄的主瓣。