我试图更好地理解窗口函数,但到目前为止我不知道为什么要使用它们。例如,我熟悉汉明窗:
如果
但我不明白如何在不扭曲信号的情况下做到这一点。这些特别选择的函数是否恰好保留了信号样本的频谱?能否在数学上证明乘以这个函数可以保留频谱?使用它有什么好处,而不是简单地将它加窗而不将它乘以任何加窗函数(即加窗函数为 1)?
我试图更好地理解窗口函数,但到目前为止我不知道为什么要使用它们。例如,我熟悉汉明窗:
如果
但我不明白如何在不扭曲信号的情况下做到这一点。这些特别选择的函数是否恰好保留了信号样本的频谱?能否在数学上证明乘以这个函数可以保留频谱?使用它有什么好处,而不是简单地将它加窗而不将它乘以任何加窗函数(即加窗函数为 1)?
正如您所指出的,它们确实“扭曲”了信号。乘以窗函数不会“保留”原始信号的频谱。回忆一下傅里叶变换的乘法性质:
在哪里表示卷积。因此,乘以时域中的窗口函数会产生输入信号和窗口函数在频域中的频谱的卷积。这样,输入信号的频谱就会出现一些“失真”。
但是,正如您所指出的,在某些情况下使用窗口函数可能很有用。这里有一个很好的权衡说明。在这里我会无耻地窃取剧情进行复制:

简要总结讨论:
如果您不使用窗口,则相当于使用矩形窗口,假设您正在分析有限长度的信号(如果您不使用,那么您最好耐心等待)。矩形窗口的旁瓣衰减率非常慢。您必须在频率上远离主瓣很远才能实现一定程度的衰减。
假设您想分析一个信号中的两个音调,其中一个比另一个强 40 dB。将此与上面链接答案中矩形窗口的频率响应图进行比较。您可以看到,在这种情况下,矩形窗口的旁瓣响应永远不会低于约 30-35 dB 左右(非常窄的零点除外)。这意味着来自较强信号的旁瓣响应会“冲刷”另一个峰值,从而阻碍您同时分析两个信号的尝试。
解决此类问题的方法是使用窗口函数:那里有一些插图,但数量很多。为您的应用选择具有足够旁瓣衰减的产品。例如,Blackman-Harris 窗口具有大于 90 dB 的旁瓣衰减,它提供了比矩形窗口大得多的动态范围。
但是,您为这样的选择付出了代价。您提到的由输入信号和窗口频谱的卷积引起的“失真”开始发挥作用。请注意,窗函数的动态范围越大(即旁瓣越低),其主瓣越宽。这可能会影响您分辨两个非常接近的色调的能力(如果它们太靠近,则窗口主瓣的宽度会导致它们相互涂抹)。
这是选择窗口函数时的固有权衡。