我有一个快速傅立叶变换结果。它们存储在两个double
数组中:一个实部数组和一个虚部数组。如何确定这些数组中每个元素对应的频率?
换句话说,我希望创建一个数组来存储FFT的每个实部和虚部的频率。
发布于 2011-08-30 19:28:23
FFT输出系数(对于大小为N的复数输入)是从0到N-1,分组为低、中、高、高、中、低频率。
我认为k处的元素与N-k处的元素具有相同的频率,因为对于实际数据,FFTN-k = FFTk的复共轭。
扫描频率从低到高的顺序为
0,
1,
N-1,
2,
N-2
...
[N/2] - 1,
N - ([N/2] - 1) = [N/2]+1,
[N/2]
存在从索引i=0到N/2的N/2+1个频率组,每个组具有frequency = i * SamplingFrequency / N
所以bin FFTk的频率是:
if k <= [N/2] then k * SamplingFrequency / N
if k >= [N/2] then (N-k) * SamplingFrequency / N
https://stackoverflow.com/questions/4364823
复制相似问题