2

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

4

1 に答える 1

2

開始点 (サンプル 0) を基準にして、すべての DFT 結果ビンをゼロの位相に回転させたい場合: 厳密に実データが必要な場合は、r[n] が DFT の長さ全体にわたって対称であることを確認してください。必要に応じて IDFT を計算します。

于 2012-12-08T18:58:25.600 に答える