【问题标题】:What is the Hamming window for?汉明窗有什么用?
【发布时间】:2011-07-22 02:17:38
【问题描述】:

我正在使用一些执行傅立叶变换的代码(以计算音频样本的倒谱)。在计算傅里叶变换之前,它将汉明窗应用于样本:

for(int i = 0; i < SEGMENTATION_LENGTH;i++){
    timeDomain[i] = (float) (( 0.53836 - ( 0.46164 * Math.cos( TWOPI * (double)i  / (double)( SEGMENTATION_LENGTH - 1 ) ) ) ) * frameBuffer[i]);
}

为什么要这样做?我在代码中或在线找不到任何理由这样做。

【问题讨论】:

  • 顺便说明一下:这个版本的汉明窗的旁瓣抑制比由其系数 0.54 和 0.46 定义的原始汉明窗稍微好一点(参见 wikipedia)。

标签: signal-processing window-functions


【解决方案1】:

这是一个老问题,但我认为答案可以改进。

假设您要进行傅立叶变换的信号是纯正弦波。在频域中,您会期望它仅在正弦频率处具有尖锐的尖峰。但是,如果您进行傅立叶变换,您漂亮的尖峰将被以下内容取代:

这是为什么呢?真正的正弦波在两个方向上延伸到无穷大。计算机无法对无限数量的数据点进行计算,因此所有信号在任一端都被“切断”。这会导致您看到的峰两侧出现波纹。汉明窗可减少这种波纹,让您更准确地了解原始信号的频谱。

更多理论,对于感兴趣的人:当您在任一端切断信号时,您隐含地将信号乘以一个方形窗口。方形窗口的傅立叶变换就是上图,称为 sinc 函数。每当您在计算机上进行傅立叶变换时,无论您喜不喜欢,您总是在选择 some 窗口。方形窗口是隐含的默认值,但不是一个很好的选择。人们想出了多种窗口,具体取决于您要优化的某些特征。汉明窗是标准窗之一。

【讨论】:

    【解决方案2】:

    每当您进行有限傅立叶变换时,您都在隐含地将其应用于无限重复的信号。因此,例如,如果您的有限样本的开始和结束不匹配,那么这看起来就像信号中的不连续性,并在傅立叶变换中显示为大量高频废话,而您不会真的很想要。如果您的样本恰好是一个漂亮的正弦曲线,但整数个周期并不恰好适合有限样本,那么您的 FT 将在远​​离真实频率的各种地方显示出可观的能量。你不想要这些。

    对数据进行窗口化可确保结果匹配,同时保持一切都相当顺利;这大大减少了上一段中描述的那种“频谱泄漏”。

    【讨论】:

    • 这不是问题的答案,因为特别是 Hamming 窗口不会使末端完全匹配(它只会使末端匹配接近 92%)。原始问题中未提及的其他窗口也可以。但不是 -1,因为这是一种非常常见的解释。
    【解决方案3】:

    根据我对声音和快速研究的了解,汉明窗似乎可以最大限度地减少信号旁瓣(不需要的辐射)。从而改善声音的质量或谐波。 我也理解这种类型的window function 非常适合 DTFT。

    如果您准备好数学,您会在 stanford researcher pagewikipedia 以及 Harris 的论文中找到一些很好的技术解释:D。

    【讨论】:

    • 更正确,因为汉明窗最小化了第一个(最相邻和最大的)旁瓣,比其他一些窗口更多,以换取其他一些权衡。
    【解决方案4】:

    正弦曲线的有限长度段的 FT 将窗口的傅立叶变换与正弦曲线的频率峰值进行卷积,因为 FFT 的一个特性是一个域中的向量乘法是另一个域中的卷积。矩形窗口的 F​​T(这是 FFT 中任何未修改的有限长度样本所暗示的)是看起来凌乱的 Sinc 函数,它会在整个频谱的窗口中溅出任何不完全周期性的信号。

    汉明形窗口的 F​​T 将这种“飞溅”集中在更接近卷积之后的频率峰值(比 Sinc 函数),从而产生更宽但更平滑的频率峰值,但远离频率的飞溅要少得多频率峰值。这不仅可以使频谱看起来更清晰,而且可以减少来自远处频率对任何感兴趣信号的干扰。

    这种解释(与“无限重复”的解释相反)更清楚地说明了为什么与 Hamming 不同形状的窗口可能会以更少的“泄漏”为您提供更好的结果。特别是,汉明窗将减小紧邻频率峰值的“泄漏”的第一个 Sinc 旁瓣的大小,以换取远离感兴趣频率的实际更多“泄漏”(或卷积飞溅)。如果您希望进行不同的权衡,其他窗口可能更合适。上面另一个答案中链接的 Harris 论文 (pdf here) 给出了这些不同窗口的几个示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多