为什么有这么多窗口函数?

信息处理 傅里叶变换 窗函数
2021-12-19 20:03:30

Mathematica 文档中列出了许多窗口函数。在计算离散傅里叶变换时,我尝试使用一些来减少泄漏。据我所知,使用哪个窗口函数几乎没有区别。其中两个非常不同的是 BartlettHannWindow 和 BlackmanHarrisWindow。有人可以提供一个例子,其中 BarttletHannWindow 是一个非常好的选择,另一个例子是 BlackmanHarrisWindow 是一个非常好的选择。这可能有助于我理解为什么有这么多可供选择。

2个回答

除了减少频谱泄漏之外,在选择窗函数时还有一个主要的权衡取舍。下面你可以看到一个带有各种参数的图。其中两个是最重要的:

  • 主瓣宽度
  • 峰值旁瓣电平

在此处输入图像描述

主瓣宽度会影响分析的分辨率。我相信你知道时域中的乘法是频域中的卷积。默认情况下,您总是使用矩形窗口,它的频率响应形式为sinc功能。

例如,两个纯正弦曲线(傅里叶变换是狄拉克三角洲)的频率可能非常接近,峰值可能很难区分,因此可能会合二为一。在下图中,我比较了两个正弦曲线的 4 个窗口函数,两个正弦曲线被 3 个频率区间完全分开。您可以看到 Nuttall 窗口的主瓣宽度以及它如何影响分离,而矩形窗口是主瓣宽度可能最窄的窗口(即最低归一化等效噪声带宽 - NENBW)

在此处输入图像描述

另一方面,当存在频谱泄漏时,第一旁瓣的电平会影响识别相邻频率的能力,并且具有高幅度频率的旁瓣几乎“覆盖”了旁边的其他频率,幅度要低得多:

在此处输入图像描述

这里是权衡......你不能得到非常低的旁瓣和非常窄的主瓣,即不可能像矩形窗口那样具有主峰的窗口函数,并且旁瓣的水平非常低如在 Nuttal 窗口中。这是一些窗口的比较:

在此处输入图像描述

在此处输入图像描述

除了上面提到的参数之外,还有更多的功能,例如:

  • 旁瓣滚降率(旁瓣下降的速度——例如见上面的 Bartlett 和 Nuttal)
  • 存在分析频率响应方程(在进行理论计算时很有用)
  • 进行重叠时将窗口样本求和到时域中的常数值(例如 Hann 窗口与33%重叠)

在此处输入图像描述

当您要执行 STFT 然后重建时域信号时,这非常有用。

所以现在回答你的问题。为什么我们有这么多窗口函数?

根据任务是否是简单的 FFT 分析:密集的正弦波、白噪声、脉冲声音,甚至 FIR 滤波器设计,建议使用不同类型的窗口。显然,在 90% 的情况下,人们使用 Hamming/Hanning 窗口或根本不使用窗口。然而,对于某些特定信号,您可能会发现根据窗口选择提取的特征往往更具辨别力。

有关窗口函数的更多信息,请参阅:

FJ Harris -使用离散傅里叶变换进行谐波分析的窗口

G. Heinzel 等人 - DFT 的频谱和频谱密度估计,包括窗口函数的综合列表和一些新的平顶窗口

M. Cerna, AF Harvey -基于 FFT 的信号分析和测量的基础

HA Gaberson -全面的 Windows 教程

主要区别在于频率和幅度分辨率以及计算复杂性之间。Wiki 有相当全面的报道http://en.wikipedia.org/wiki/Window_function