窓関数に関するTips

窓関数について(1)方形窓
rectangular
窓関数はもともとFFTの特性上の仕様による問題(漏れ誤差leakage)に対応するためのものです。
仕組みとしては時間領域の1ブロック分のデータ(解析間隔)の両端を0にすることで漏れの発生を抑えます。
窓関数の中で方形窓は実質的には漏れの発生を抑えないものです。
これを使うと漏れの影響がわかりやすいので説明してみます。
もとのデータは440Hzと450Hzのデータを足し合わせたものをFFTしたものです。周波数グラフをみると440Hzや450Hz以外の部分にも、データがあることがわかります。実際にはこれらの周波数は存在しませんが、漏れ誤差が発生しています。
窓関数について(2)ハニング窓
はにんぐ
次に同じデータをハニング窓を用いた結果です。
関係のない周波数が消えているのがわかります。一見いいように思いますがよくみると440Hzと450hzがひっついてしまいました。
これは窓関数により周波数分解能的には問題ないにもかかわらず、周波数データでなまったピークとなるためにピークの分離ができなくなっています。
これらの特性は窓関数により異なります。
結論としてはいろいろな窓関数を使い分ける必要があります。他の窓関数についてはまた、ここに掲載したいと思います

窓関数について(3)ハミング窓
ハミング窓はハニング窓と比較すると近接した信号を分離するのに向いています。グラフをみても少しだけ山ができているのがわかります。
周波数分解能が十分にあげられない場合にはハミングを試すという使い方がいいのかも知れないですね。ただし、ハニングの方が十分離れた周波数ではより小さな周波数も分離できます。これについてはまた今度かいてみます。

窓関数について(4)ブラックマン窓
最後にブラックマン窓です。これは完全に山がひとつになってしまっています。特徴としてはハニング窓に近いのですが、より小さな振動も解析できるようになっています。

窓関数について(5)ダイナミックレンジについて
比較
今まで窓関数について書いてきましたが、観点は近接する440Hzと450Hzの振動の分離についてでした。
今回は観点を変えてダイナミックレンジについて見てみます。
上から ハニング窓、ハミング窓、方形窓について440Hzと220Hzの振動を1000:1で足し合わせたものの周波数領域の比較です。
220Hzの部分が見やすいように縦軸、横軸のレンジを調整しました。
これらを見ると、ハニング窓でははっきりピークが見えますが、ハミング窓では若干ノイズに埋もれ始めています、方形窓ではまったく判別できません。
フルレンジに対してどれくらい小さな信号までを再現できるかをダイナミックレンジといいますが、ハニング窓が一番よく、方形窓が一番悪いことがわかります。

(6)フラットトップ窓の特徴
フラットトップ
V1.3からフラットトップ窓を追加するのでその効果を確認しました。
フラットトップ窓はもともと周波数分解能を犠牲にして、ピークを平らにすることでピークの高さを正確にすることを目的としています。
その例を図に表しました。
440Hzの正弦波をそれぞれ方形窓、ハニング窓、フラットトップ窓に設定したものです。
それぞれの窓は、ピークが基本周波数の整数倍にきた場合には 1.0 0.5 0.25になります。
ところがこの図のようにピークがずれている場合には 方形窓で10%ハニング窓で4%減っています。ところが、フラットトップ窓は同じ値になりました。
これにより、ピーク周波数がどこにいても正確な振幅を得ることができます