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