【问题标题】:How do you interpret the frequencies produced by the output of a FFT您如何解释 FFT 输出产生的频率
【发布时间】:2012-05-08 14:25:22
【问题描述】:

当您执行 FFT 时,输出数组中每个元素的频率由以下方式表示:

元素 k 处的频率为 f(k) = k/NT

其中 N 是样本数(因此是输出数组中的元素数),T 是以秒为单位的时间滑动。 f 以 HZ 为单位测量

我的问题是,鉴于该公式,每个元素的频率将始终小于 1 HZ,FFT 永远不会产生高于 1HZ 的频率

那么你如何在更高的频率上运行?就像人耳能听到的一样(20HZ 到 20KHZ)

谢谢 D

【问题讨论】:

标签: math audio signal-processing fft


【解决方案1】:

一切都与采样频率有关。所以想象一下,你有一个 48 kHz 的采样率,这很常见。现在,您正在对数据执行带有N = 1024 点的 FFT。然后您可以为每个n in N 分配一个特定的频率。这是怎么做到的?假设N 等于采样率。现在您可以检索每隔一个n 的方程。您选择的N 越大,频率的间距就越小。

编辑还可以查看this 相关/类似的 SO 问题,尤其是 Paul R 的回答非常有帮助。

【讨论】:

  • 帮我举个例子。我在时域中每秒有 44100 个样本。现在我在 11 毫秒的时间内向我的 FFT 输入 512 个样本。因为我每 11 毫秒获得 512 个样本(这为我提供了每秒 44100 个样本)。现在在我的 FFT 输出向量中,我有 512 个频域样本。输出数组中位置 100 的元素代表什么频率?
  • 使用指向另一个 SO 问题的链接进行了编辑,这完全回答了您的问题。
  • 谢谢。其实这是一个很好的答案。最后一个问题......如果我的采样率为每秒 44100 个样本,但我只提供 FFT 11ms 的数据怎么办?也就是说,512 个样本没有覆盖整个 44100 个样本范围。输出阵列是否仍会覆盖整个频率范围,直到 44100 HZ?
  • 这一切都取决于产生的采样频率,即如果您使用 22 kHz 采样,您将只能获得高达 11 kHz 的信号,明白吗?它总是 f/2。因此,如果您采样 11 毫秒但每 1 纳秒获取一次新数据,您可以计算频率,所以这不是“多长时间”而是“频率”。
猜你喜欢
  • 2014-03-25
  • 2017-08-11
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 2018-09-13
  • 2011-05-04
  • 1970-01-01
  • 2013-06-27
相关资源
最近更新 更多