执行 FFT 时,输出数组中每个元素的频率由下式表示:
元素 k 处的频率为 f(k) = k/NT
其中 N 是样本数(因此是输出数组中的元素数),T 是以秒为单位的时间滑动。f 以赫兹为单位
我的问题是,鉴于该公式,每个元素的频率将始终小于 1 HZ,并且 FFT 永远不会产生高于 1HZ 的频率
那么如何在更高的频率上运行呢?就像人耳能听到的一样(20HZ 到 20KHZ)
感谢:D
执行 FFT 时,输出数组中每个元素的频率由下式表示:
元素 k 处的频率为 f(k) = k/NT
其中 N 是样本数(因此是输出数组中的元素数),T 是以秒为单位的时间滑动。f 以赫兹为单位
我的问题是,鉴于该公式,每个元素的频率将始终小于 1 HZ,并且 FFT 永远不会产生高于 1HZ 的频率
那么如何在更高的频率上运行呢?就像人耳能听到的一样(20HZ 到 20KHZ)
感谢:D
这都是关于采样频率的。所以想象一下,你有一个 48 kHz 的采样率,这很常见。现在您正在对数据执行 FFT,其中包含N = 1024
点。然后,您可以为每个人分配n in N
一个特定的频率。这是怎么做到的?假设它N
等于采样率。现在您可以检索每个其他的方程n
。您选择N
的越大,频率的间距就越小。
编辑还看看这个相关/类似的SO问题,尤其是Paul R的回答非常有帮助。