如何“零相位调整”DFT输出?

时间:2012-12-08 12:53:21

标签: fft phase

据我所知,DFT的复数输出包含离散频率的“幅度”和“相位”信息。

Amplitude[n] = sqrt((r[n]*r[n]) + (i[n]*i[n]))
Phase[n] = (atan2(i[n],r[n]))
Frequency[n] = n * (sample_rate / (fft_input_length / 2))

似乎我应该能够使用频率,幅度和相位信息来计算每个输出区的幅度,就好像相应频率的输入在FFT输入中具有零相位对齐一样。但我画了一个空白。


嗯,深入研究我的问题,我发现无论输入如何,FFT输出的虚构部分始终为0.0。所以我猜测我的代码有缺陷或者算法不是我需要的。

1 个答案:

答案 0 :(得分:2)

如果要参考起点(样本0)将所有DFT结果箱旋转到零相位:设置r [n] =幅度[n],i [n] = 0;如果你想要严格的实际数据,请确保r [n]在整个DFT长度上是对称的;并在需要时计算IDFT。