1. ホーム
  2. algorithm

[解決済み] なぜFFTでは実数ではなく複素数が出るのですか?

2023-04-30 21:02:09

質問

アルゴリズムへの入力が実数(整数)の離散集合であったとしても、私たちが出会ったすべての FFT 実装は、(実部と虚部を持つ)複素数の値をもたらします。

実数のみで周波数領域を表現することはできないのでしょうか?

どのように解決するのですか?

FFTは基本的に基底を変更するものです。FFT が元の信号を変更する基底は、代わりに一連の正弦波です。その基底がすべての可能な入力を記述するためには、振幅だけでなく位相も表現できる必要があり、位相は複素数を使って表現されます。

例えば、1つの正弦波だけを含む信号をFFTするとします。位相によっては、完全に実数のFFT結果が得られるかもしれません。しかし、入力の位相を数度ずらすと、FFT出力はその入力をどのように表現するのでしょうか。

edit: これはやや緩い説明ですが、直感を動機づけるためにやってみただけです。