【问题标题】:Normalising FFT data (FFTW)标准化 FFT 数据 (FFTW)
【发布时间】:2011-06-18 20:43:14
【问题描述】:

使用 FFTW 我一直在计算标准化 .wav 文件数据的 FFT。但是,我对如何标准化 FFT 输出有点困惑。我一直在使用对我来说似乎很明显的方法,即简单地除以最高 FFT 幅度。但是,我已经看到建议除以 1/N 和 N/2(我假设 N = FFT 大小)。这些如何作为标准化因素起作用?在我看来,这些因素与实际数据之间似乎没有直观的关系——那我错过了什么?

非常感谢您对此提供的任何帮助。

【问题讨论】:

    标签: audio signal-processing fft wav fftw


    【解决方案1】:

    令人惊讶的是,FFT 和 IFFT 没有统一的定义,至少就缩放而言,但对于大多数实现(包括 FFTW),您需要在前向方向上缩放 1/N,并且有没有反向缩放。

    通常(出于性能原因)您会希望将此比例因子与任何其他校正(例如 A/D 增益、窗口增益校正因子等)结合起来,这样您就只有一个组合比例因子可以应用于您的 FFT 输出箱。或者,如果您只是生成以 dB 为单位的功率谱,那么您可以将校正值设为从功率谱箱中减去的单个 dB 值。

    【讨论】:

    • 感谢您的回复,保罗。我是 DSP 的新手,可能是我缺乏数学背景导致我误解了一些事情,但是通过“规范化”,我理解数据集乘以某个因子以产生第二个数据的过程设置在 0 和 1 之间的区间内。这就是为什么我自动选择最大幅度作为我的因子。但我看不出乘以 1/N 如何在这个意义上“标准化”FFT 数据......还是我完全误解了事情?
    • @ChrisM:对于 FFT 最常见的解释,如果您的输入信号在 0..1 范围内,则输出值范围为 0..N,即比例因子为N. 因此,要规范化(在任何意义上)输出数据,您需要将其乘以 1/N。
    • 我怀疑是这样的。非常感谢您的帮助。
    【解决方案2】:

    在 FFT 中引用 Parseval's Theorem 和其他需要有意义量级的比较通常很有用。此外,任何单个峰的高度都不是很有用,并且取决于例如计算 FFT 时使用的窗口,因为这可以缩短和加宽峰。出于这些原因,我建议不要按最大峰值进行归一化,因为这样您就失去了与有意义的幅度的任何简单联系,以及数据集之间的轻松比较等。

    【讨论】:

    • 谢谢汤姆,一些有用的信息。
    猜你喜欢
    • 2013-02-24
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多