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 であることがわかりました。したがって、コードに欠陥があるか、アルゴリズムが必要なものではないと推測しています。