Logo

TA Signal Processings
デジタル信号処理豆知識

Contents

Home

News

信号処理豆知識

ソフトウェア

業務委託

リンク

会社概要

サイト・ポリシー

窓関数(その2)

さて、前回話した矩形窓ですが、どこがまずいのでしょう?連続しているものを切り出すので、確かに一番素直な方法なのですが、その両端で1から0へ急激に変化してしまうのが、悪影響を与えているようです。そこで、両端で滑らかに0になるように、以下の式を窓関数とします。

この窓関数はハニング窓と呼ばれます。以下のアプレットの上部のWindow Function で Hanning を選択し、Phase の < と > とFrequency の Down と Up で、位相と周波数を変化させて、右側のスペクトルを観測してみてください。(赤が振幅で、緑が位相です)

どうでしょうか。前回の矩形窓(このアプレットでも、Window Function で Rectangular を選択すれば実現できます)では、周波数を変化させると、大きく形状が変化していた振幅があまり変化しなくなりました。とくに最大振幅は矩形窓ではスペクトルが1本にまとまるところと大きく分散するところでは、約2倍の差がありましたが、ハニング窓を用いると最大振幅の変化はかなり小さくなります。

今度は、左側の波形を見てください。グレイで示されているのが原波形、赤で示されているのが窓関数を掛け合わせた後の波形、青で示されているのが窓関数そのものです。窓関数は、枠の下端で0、上端で1ですから、窓関数を掛け合わせた波形は感覚的に理解できると思います。

矩形窓、ハニング窓以外に今回用意した窓関数は以下の通りです。

ハミング窓:

ブラックマン窓:

カイザー窓:
(ただし、以外では0)

異なる窓での性格の違いを観測してください。カイザー窓の場合、α の値により窓の形が変化し、スペクトルの性質も異なってきます。(α の値は、アプレットの Alpha で調整できます)

矩形以外の窓関数を使用すると、周波数の変化によるスペクトル形状の変化は小さくなります。ブラックマン窓、カイザー窓(αが10以上のとき)では、周波数の変化によるスペクトルの最大振幅の変化をかなり抑えることができますが、窓に整数の波数が収まる場合(矩形窓ではスペクトルが1本になる)でも、1本に絞り込めないので、隣接する周波数を含む信号では、それらを分離することができません。

すなわち矩形窓以外の窓関数によって、周波数の変化によるスペクトル形状の変化という問題は解決できましたが、周波数分解能が犠牲となってしまいました。FFTの点数を大きくすれば、隣接するスペクトルの間隔は狭くなり、例えば同じ4本分であっても、周波数幅としては小さくなり、周波数分解能は上がります。しかし、FFT点数を大きく取るということは窓の長さが長くなるということですから、比較的変化のある波形の安定した部分が見たいという場合には、この方法は得策ではありません。したがって、時間方向の精度を上げようと思えば、周波数分解が落ち、周波数分解能を上げようとすると、時間方向の精度は落ちるということになります。

Prev Top Home


リンク切れなどの不具合が発見されましたら、ご面倒とは存じますが、
web_master@tasignal.comまでご連絡ください。

Copyright(C) 2004, TA Signal Processings, Inc. All rights reserved.