我对一个信号执行了 512 点 FFT。我得到了另一组 512 个数字。我知道这些数字代表具有不同频率的各种正弦波和余弦波的幅度。
如果我的理解是正确的,有人可以告诉我如何从那些 512 数字(即幅度)的知识中知道这些正弦波和余弦波的频率吗?
我对一个信号执行了 512 点 FFT。我得到了另一组 512 个数字。我知道这些数字代表具有不同频率的各种正弦波和余弦波的幅度。
如果我的理解是正确的,有人可以告诉我如何从那些 512 数字(即幅度)的知识中知道这些正弦波和余弦波的频率吗?
假设您的 512 个信号样本是在采样频率下进行的,则得到的 512 个 FFT 系数对应于频率:
0,,,,
由于您正在处理离散时间信号,因此傅里叶变换是周期性的,FFT 也不例外。
因此你可以认为你的最后一个系数也对应于频率.
这同样适用于倒数第二个系数,依此类推。这是 Daniel Hicks 评论的镜像。
此外,如果您正在转换一个真实信号,那么您的所有信息都包含在前 256 个 FFT 系数中。其余的只是第一个系数的复共轭。
它总是让我头疼,但首先要明白你只有 256 个频率。根据所使用的算法,第二个 256 只是第一个的镜像,或者它们表示对应于第一个 256 中的实部的虚部。
还要了解 FFT 的频率分辨率只能达到采样频率的一半,因此如果您以每秒 10,000 个样本的速度进行采样,则分辨率的最高频率将为 5,000 Hz。
从那里你可以弄清楚。假设你有 256 个桶,最高代表 5000Hz,最低代表 DC。每个桶的频谱宽度为 5000/256 Hz,因此第 0 个从 DC 开始,第一个从 19.5Hz 开始,第二个从 39Hz 开始,依此类推。
不管怎样,我一直都是这么想的。
首先,您得到的 FFT 系数没有分解为 256 个正弦系数和 256 个余弦系数。这些是构成信号的复指数的系数。如果您的输入信号是真实的,那么这些系数中只有 257 个携带有用信息(直流分量;255 个分量;奈奎斯特频率分量;然后是 255 个分量的共轭,它们携带的唯一信息是您的信号有一个空虚部) . 系数的模携带幅度信息、角度携带相位信息、实部余弦幅度和虚部正弦幅度;和索引处的一个组件包含有关频率的信息在哪里是 FFT 大小和你的采样率。
Juancho 回答了这个问题,但我觉得我应该在进一步讨论中指出,一般来说,DFT/FFT 的输入并不是严格真实的,因此,负频率或大于 Nyquist 频率包含的信息不是Fs/2 数据。