4-03 1024点FFTを実行しよう!

●実際のFFTは1024点以上ある

 FFTは点数が多いほど精度が上がり、
1024点にもなるとかなり精密な周波数解析ができます。このEXCELをダウンロードして開いてみましょう。最初のREADMEシート(図4‐30)にEXCELファイルの簡単な説明があります。

 FFTはEXCELのアドイン(フーリエ解析)を使用したもので、点数は1024固定、サンプリング周波数や入力信号はこのシートで変更します。

  図4-30 最初のシートREADME

●calcFFTシートでサイン波生成

 READMEシートでは入力サイン波Aは
1000Hzで振幅が1、入力サイン波Bは4000Hzで振幅が0になっています。A+BがFFTの入力となりますがBの振幅がないので、図4‐31(calcFFTシート)のように実質的に1000Hzのサイン波をFFTすることになります。

  図4-31 calcFFTシートを見る

●窓関数を施してからFFT

 その隣のF列では「
窓関数」を乗算しますが、デフォルトでは窓関数はなし(*1)になります。したがって図4‐32のようにE列がそのままF列となります。

(*1)窓関数はwinFuncシートで生成。デフォルトではRectangle窓(窓関数無し)を使用。詳しくは次章で説明する。

  図4-32 セルをクリックすると計算式

●FFT結果は実数部と虚数部からなる

 F列をFFTしたものがG列になります。EXCELのアドイン(
フーリエ解析)を使用しています(ここ参照)。その結果は複素数になり、その隣のH列/I列で実数部/虚数部を分離しています。

  図4-33 IMREAL/IMAGINARY関数で実数/虚数を取り出す

●fft-freq列は周波数軸の計算

 J列は周波数(図4‐34のグラフの横軸)になります。同図のようにサンプリング周波数(READMEのB4セル、44100Hz)をFFTの点数(1024)で割ったもの(約43Hz)が
周波数分解能になり、このステップ上の周波数成分が計算されます。

  図4‐34 FFT結果のスペクトルが描かれる

●約1kHzにピークがある

 K列は図4‐35のように複素数の絶対値の対数をとっています。J列が991のところの値が53.469で極大になっており、J列−K列をプロットすると図4‐34のグラフになります。

  図4-35 対数をとるとグラフが見やすくなる

●もう少し複雑な信号を入力してみると…

 
このように1kHzのサイン波をFFTすると、その周波数のみが突出して現れます。それでは
複数の周波数をミックスしてFFTするとどうなるでしょうか?(次のページ)

次のページへ

目次へ戻る