【问题标题】:Fixing for windowing function in FFT修复 FFT 中的窗口函数
【发布时间】:2015-12-26 17:35:14
【问题描述】:

我一直在学习 FFT 和窗口函数的用处。我遇到的一个问题是窗口函数对 FFT 中信号幅度的影响。例如,假设我有一个信号等于:

y = 5.0 * sin(50.0 * 2.0 * pi * x) + 1.0 * sin(80.0 * 2.0 * pi * x)

然后我想执行 FFT 并收到以下图:

然后,如果我执行 14 度的 kaiser 窗口函数,我会收到以下 FFT:

我想要做的是:给定一个信号,我想从中提取一个我大致知道的频率的波。为此,我想应用一个窗口函数来更清楚地了解我正在尝试提取的频率,但不会丢失有关我尝试提取的波幅的信息。这可能吗?就像一种从窗口函数中反转幅度减小的方法。

【问题讨论】:

  • 请提供您用于执行窗口化的代码。也许您忘记将窗口标准化为正确的幅度。
  • 这更多的是 DSP 理论而不是编程 - 可能更好地询问 dsp.stackexchange.com

标签: signal-processing fft


【解决方案1】:

所有窗口函数都会改变感知幅度。请记住,窗口函数正在改变信号,尽管以某种方式服务于特定目的。

因此,要获得有意义的幅度,您必须进行一些“标准化”。大多数窗口函数都记录了规范化。

但是,在大多数情况下,我并不认为你需要它们。窗口函数主要用于帮助您检测“峰值”。找到峰值后,您可以使用相同“bin”(在窗口函数之前)的 FFT(DFT) 结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2012-01-08
    • 2012-03-27
    相关资源
    最近更新 更多