我对信号执行了512点FFT。我又得到了512个号码集。我知道这些数字代表具有不同频率的各种正弦波和余弦波的振幅。

如果我的理解是正确的,那么有人可以告诉我如何从512数(即振幅)的知识中了解正弦波和余弦波的频率吗?

#1 楼

假设您以采样频率$ f_s $采集了512个信号样本,则得到的512个FFT系数对应于频率:

0,$ f_s / 512 $,$ 2 f_s / 512 $,$ \ ldots $,$ 511 f_s / 512 $

由于您要处理离散时间信号,因此傅立叶变换是周期性的,FFT也不例外。

因此您可以考虑一下最后一个系数的频率也对应于频率$ 511 f_s / 512 =(511-512)f_s / 512 = -1 f_s / 512 $。

倒数第二个系数也是如此上。这是Daniel Hicks评论的镜像。

此外,如果要转换真实信号,则所有信息都包含在前256个FFT系数中。其余的只是第一个系数的复共轭。

#2 楼

它总是使我的头部受伤,但首先要了解您只有256个频率。根据所使用的算法,第二个256只是第一个256的镜像,或者它们代表与第一个256中的实数相对应的虚数。

还应了解FFT的频率分辨率只会高达一半的采样频率,因此,如果您以每秒10,000个采样的速度进行采样,则解析出的最高频率将为5,000 Hz。

从那里您可以算出它。假设您有256个存储桶,最高的代表5000Hz,最低的代表DC。每个存储桶的频谱宽度为5000/256 Hz,因此零位以DC开头,第一个以19.5Hz开头,第二个以39Hz开头,依此类推。

无论如何,这就是我一直认为的方式出来。

#3 楼

首先,您获得的FFT系数不会分解为256个正弦和256个余弦系数。这些是组成信号的复指数的系数。如果您的输入信号是实数,则这些系数中只有257个携带有用信息(DC分量; 255个分量;奈奎斯特频率分量;然后是255个分量的共轭),它们携带的唯一信息是信号的虚部为零。 。系数的模量带有振幅信息,角度带有相位信息,实部余弦振幅和虚部正弦振幅;索引$ i $的组件包含有关频率$ \ frac {i} {N} {s_r} $的信息,其中$ N $是FFT大小,$ s_r $是您的采样率。

#4 楼

胡安乔(Juancho)回答了这个问题,但我认为我应该在进一步的讨论中指出,一般而言,DFT / FFT的输入并非严格意义上的实数,因此,负或大于奈奎斯特频率的信息不包括共轭频率的信息。 Fs / 2数据。