我了解 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。所以我猜我的代码有缺陷或者算法不是我需要的。