我知道我们不使用矩形窗口作为滤波器设计中的窗口,因为时域中生成的 sinc 函数的旁瓣会产生振铃/吉布斯伪影。
因此,大多数 DSP 书籍都提到了汉宁、汉明窗,因为它们减少了振铃伪影。
但是如何使用一个简单的高斯窗口呢?它是对称的,投资 DFT 也将是高斯的,其旁瓣比 sinc 函数等要小得多。
汉宁窗的振铃伪影是否比高斯窗少?对我来说,狭窄的过渡带并不是最重要的。
我知道我们不使用矩形窗口作为滤波器设计中的窗口,因为时域中生成的 sinc 函数的旁瓣会产生振铃/吉布斯伪影。
因此,大多数 DSP 书籍都提到了汉宁、汉明窗,因为它们减少了振铃伪影。
但是如何使用一个简单的高斯窗口呢?它是对称的,投资 DFT 也将是高斯的,其旁瓣比 sinc 函数等要小得多。
汉宁窗的振铃伪影是否比高斯窗少?对我来说,狭窄的过渡带并不是最重要的。
首先,高斯窗口将有一些参数控制高斯脉冲的“宽度”。所以没有像许多其他窗口类型那样的奇异高斯窗口。
其次,因为它是一个窗口,所以它具有定义的开始和结束,使得信号函数在窗口外为零。这在数学上相当于将高斯函数与矩形窗口相乘,这意味着产生的频率响应是高斯频率响应和矩形频率响应的卷积,其中将包含旁瓣(振铃)。旁瓣的大小是窗口长度和脉冲宽度的函数。旁瓣是否比汉宁窗更好或更差取决于您如何定义这些参数以及您的指标是什么。
最后,这没有被明确指出,但可能是相关的,是歧视。如果您将生成的窗口函数用作离散时间过程的一部分(例如在软件中),则窗口中的样本数将影响频率响应。由于时域响应是有限的,每个连续时间窗函数都具有无限带宽频率响应。因此,会发生混叠,离散时间频率响应会发生变化。通过增加窗口中的样本数量(通过增加窗口长度或增加采样率)可以最小化它的变化量。
窗口的选择是各种不同属性之间的权衡:主瓣宽度、时域扩展、旁瓣位置和幅度、通带平坦度、阻带衰减、过渡宽度、可重构性、时域不连续性等。
每种窗口类型都代表一组特定的权衡,您应该选择最适合您的特定应用程序和要求的窗口类型。
截断高斯只是另一种窗口类型,它有自己的一组权衡。如果这对你有用,那就太好了。
对于任何给定的窗口长度,它们通常是更好的选择:大多数窗口类型都是在考虑有限长度的情况下构建的,并且它们相对于窗口的目标“最佳”地使用可用样本。截断高斯函数很尴尬:如果在窗口内太宽,截断会产生明显的旁瓣和较差的阻带衰减,如果太窄,主瓣会很宽。
推荐阅读:https ://en.wikipedia.org/wiki/Window_function 。不同窗口类型的图表非常有用,它们包含一些高斯风格。
人们倾向于使用有限的(紧凑支持的)窗口函数,这使其易于计算。如果没有这个条件,高斯确实是窗滤波器的最佳首选。它最大限度地减少了傅立叶不确定性,这是没有其他条件的最通用和正确的度量。
人们喜欢谈论具有不同权衡的不同窗口函数,因为您必须以某种方式测量误差,并且每个窗口函数对于给定的性能函数都是最佳的。这种答案是非答案,因为默认的性能函数来自不确定性原理,不提这似乎是数学上的疏忽。此性能函数将时域和频域误差一起降至最低。
其他窗口函数,例如 Hann/Hamming/矩形/三角形,在这方面进行了低效的折衷。仅当已知会改变性能函数的特殊条件时,才应选择这些其他窗口函数。例如,如果一个信号没有时域信息,则应根据输入数据选择尽可能宽的窗口,即全长矩形窗口。或者,如果您不关心频域信息,您可以使用 sinc 窗口(包含所有波瓣,而不仅仅是 Lanczos 中的主波瓣)。如果您的信号只有一个淡入淡出的频率,那么可能有一些我想不出的特殊窗口函数。作为窗口选择如何帮助的示例,您的耳朵在组合时频域中比不确定性原理预测的理论最优值更准确。它通过对信号的性质做出假设来实现这一点,并且这些假设往往在本质上成立。预先了解您的信号可以帮助您定制超出默认傅立叶不确定性的窗口函数。
在紧致支撑条件激活的情况下,受限高斯成为最佳选择。然而,当面对实现现实时,人们倾向于不使用受限高斯,这可能是因为它很难计算,除了一些轻微的懒惰。无论如何,您都可以通过使用超宽窗口和标准偏差非常小的截断高斯来模拟它。这将截断减少到可接受的水平。不过计算时间会长一些。
虽然上面提到的精确受限高斯窗口很难计算,但它具有几乎完美的近似值:易于计算的“近似受限高斯窗口”,请参见 https://www.researchgate.net/publication/261717241_Discrete-time_windows_with_minimal_RMS_bandwidth_for_given_RMS_temporal_width