4-04 窓関数を使い分ける

●入力Bの振幅を小さくしてみる

 FFTで使用する「窓関数」はデフォルトでは
Rectangle(窓関数無し)になっています(図4‐38)。この状態で入力Bの振幅を同図のように0.001とします。

 入力Aは1kHzで振幅1.0なのに対し、入力Bは4kHzで振幅0.001なので-60dBの微小成分になります。

  図4-38 Bの振幅を0.001に(周波数は4000)

 入力を変更したら図4‐39のようにアドイン(フーリエ解析)を設定し直します(ここ参照)。

  図4-39 アドインを設定しないと何も変わらない

●Rectangle窓はスペクトルのフロアが高い

 1kHzに対して4kHzの成分は-60dBなので、図4‐40のようにスペクトルのフロアに埋もれてしまっています。

  図4-40 4000Hzにピークがあるはずが…

●入力×窓関数の列を変える

 それでは窓関数を変えてみましょう。F列の一番上を図4‐41のようにwinFuncを
"F2"に変更し(*1)、一番下まで引っ張ります。


(*1)窓関数はwinFuncシートで生成。図4‐41のようにするとBlackman-Harris窓が施される

  図4-41 一番上だけ変更して後は引っ張るだけ

Blackman-Harris窓なら微小成分も見える

 窓関数を変更したらアドイン(フーリエ解析)を設定し直します(ここ参照)。その結果は図4‐42のようになり、1kHzの他に4kHzも確認され、その振幅は-60dB低くなっています。

  図4‐42 フロアが低いので4kHzが埋もれない

●Rectangleの弱点をBlackman-Harrisで克服

 窓関数はwinFuncシートで生成します。デフォルトではRectangle、図4‐43のように1024個
すべて"1"になっており、入力にこれを乗算しても何も変わりません(すなわち窓関数無し)。このままFFTすると微小成分がスペクトルのフロアに埋もれてしまいます(図4‐40)。

 それに対しBlackman-Harrisは、
微小成分も観測できるというメリットがあります(図4‐42)。

  図4-43 winFuncシートを見る

 かといってRectangle窓はダメということではありません。次のページを見てみましょう。

次のページへ

目次へ戻る