>これが周波数成分なんですね そうです。 まあ必要なければ使わなくていいと思います。 FFT は複素数の配列から複素数の配列へ変換するので、 最初のループは実数配列である dat[n] を複素数配列 z#[n * 2] にしてるとこです。この FFT ライブラリでは z#[i*2] が i 番目の複素数の実部 z#[i*2+1] が i 番目の複素数の虚部 を表すという約束です。 二番目のループは、各複素数の絶対値 = √(実部の2乗 + 虚部の2乗) の対数をとりプロットしています。 対数を取るのは小さい値を見やすくするためです。 横軸も対数表示(1Hz, 10Hz, 100Hz, 1000Hz,... を等間隔に表示)することが多いですね。(このプログラムはそうなってません)