Math 如何解释FFT输出产生的频率

Math 如何解释FFT输出产生的频率,math,audio,signal-processing,fft,Math,Audio,Signal Processing,Fft,执行FFT时,输出阵列中每个元素的频率表示为: 元素k处的频率为f(k)=k/NT 其中N是采样数(因此是输出数组中的元素数),T是以秒为单位的时间滑动。f以HZ为单位测量 我的问题是,根据这个公式,每个元素的频率总是小于1HZ,FFT永远不能产生高于1HZ的频率 那么,如何在更高的频率上工作呢?就像人耳能听到的(20HZ到20KHZ) 谢谢 D这都与采样频率有关。假设你的采样率是48 kHz,这是很常见的。现在,您正在对数据执行FFT,其中N=1024点。然后您可以为n中的每个n指定一个特定的

执行FFT时,输出阵列中每个元素的频率表示为:

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

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

我的问题是,根据这个公式,每个元素的频率总是小于1HZ,FFT永远不能产生高于1HZ的频率

那么,如何在更高的频率上工作呢?就像人耳能听到的(20HZ到20KHZ)

谢谢
D

这都与采样频率有关。假设你的采样率是48 kHz,这是很常见的。现在,您正在对数据执行FFT,其中
N=1024
点。然后您可以为n中的每个
n指定一个特定的频率。这是怎么做到的?假设
N
等于采样率。现在,您可以每隔
n
检索一个等式。您选择的
N
越大,频率间隔越细


编辑还可以查看相关/类似的SO问题,特别是Paul R的答案非常有用

这都与采样频率有关。假设你的采样率是48 kHz,这是很常见的。现在,您正在对数据执行FFT,其中
N=1024
点。然后您可以为n中的每个
n指定一个特定的频率。这是怎么做到的?假设
N
等于采样率。现在,您可以每隔
n
检索一个等式。您选择的
N
越大,频率间隔越细


编辑还可以查看相关/类似的SO问题,特别是Paul R的答案非常有用

帮我举个例子。我在时域中每秒有44100个样本。现在我输入FFT,512个样本,时间为11毫秒。因为我每11ms获得512个样本(这为我提供了每秒44100个样本)。现在在FFT的输出向量中,我有512个频域样本。输出数组中位置100处的元素表示的频率是多少?编辑后链接到另一个SO问题,这完全回答了您的问题。谢谢。事实上,这是一个很好的答案。最后一个问题。。。如果我的采样率是每秒44100个采样,但我只提供了11ms的FFT数据,该怎么办?也就是说,512个样本不覆盖整个44100个样本范围。输出阵列会覆盖整个频率范围直到44100 HZ吗?这完全取决于最终的采样频率,也就是说,如果你用22 kHz采样,你只会得到高达11 kHz的信号,明白吗?总是f/2。因此,如果采样时间为11 ms,但每1ns获得一次新数据,则可以计算频率,因此不是“多长时间”,而是“多长时间”。请帮我举个例子。我在时域中每秒有44100个样本。现在我输入FFT,512个样本,时间为11毫秒。因为我每11ms获得512个样本(这为我提供了每秒44100个样本)。现在在FFT的输出向量中,我有512个频域样本。输出数组中位置100处的元素表示的频率是多少?编辑后链接到另一个SO问题,这完全回答了您的问题。谢谢。事实上,这是一个很好的答案。最后一个问题。。。如果我的采样率是每秒44100个采样,但我只提供了11ms的FFT数据,该怎么办?也就是说,512个样本不覆盖整个44100个样本范围。输出阵列会覆盖整个频率范围直到44100 HZ吗?这完全取决于最终的采样频率,也就是说,如果你用22 kHz采样,你只会得到高达11 kHz的信号,明白吗?总是f/2。因此,如果采样时间为11 ms,但每1ns获得一次新数据,则可以计算频率,因此不是“多长时间”,而是“多长时间”。可能的重复