【Python】SciPy、NumPyで窓関数の作成(ハニング窓、ハミング窓、ブラックマン窓)

Pythonを用いて、ハニング窓、ハミング窓、ブラックマン窓などといった窓関数を作成する方法について紹介します。

## 【SciPy】ハニング窓、ハミング窓、ブラックマン窓

高速フーリエ変換では、測定データが周期関数(周期的であること)が前提です。
そのため、入力するサンプル数Nの測定データが、0番目とN番目で連続していない場合、高速フーリエ変換すると、本来含まれていないスペクトル(ノイズ)も出現し、周波数特性を解析しにくくなります。
この問題に対処するため、「窓処理」で測定データに窓関数を掛け、測定データの最初と最後の点が滑かにつながる周期関数に波形を変換します。

サンプルコード


実行結果

ハニング窓を測定データにかけた場合、データ群の両端(0番目とN番目付近)が綺麗に0になっていき、中心部分はそのままという波形変化です。
そのため両端でつながるため周期関数的に変換できます。

## 【NumPy】ハニング窓、ハミング窓、ブラックマン窓

NumPyでもハニング窓、ハミング窓、ブラックマン窓を作成できます。

サンプルコード


実行結果

コメント