ウィンドウ
ウィンドウを使用する理由
デジタル フィルター設計とスペクトル推定のいずれにおいても、ウィンドウ関数の選択は、結果全体の特性を決定する上で重要な役割を果たします。ウィンドウの主な役割は、無限級数の打ち切りにより生じるギブズ現象の影響を低減させることです。
使用可能なウィンドウ関数
ウィンドウ | 関数 |
---|---|
バートレット・ハン ウィンドウ | |
バートレット ウィンドウ | |
ブラックマン ウィンドウ | |
ブラックマン・ハリス ウィンドウ | |
ボーマン ウィンドウ | |
チェビシェフ ウィンドウ | |
フラット トップ ウィンドウ | |
ガウス ウィンドウ | |
ハミング ウィンドウ | |
ハン ウィンドウ | |
カイザー ウィンドウ | |
ナットールのブラックマン・ハリス ウィンドウ | |
パルザン (de la Vallée-Poussin) ウィンドウ | |
箱型ウィンドウ | |
コサインテーパー ウィンドウ | |
三角ウィンドウ |
グラフィカル ユーザー インターフェイス ツール
Signal Processing Toolbox™ には、ウィンドウの操作を行うための以下の 2 つのグラフィカル ユーザー インターフェイス ツールが用意されています。
ウィンドウ デザイナー アプリ
ウィンドウの可視化ツール (WVTool)
詳細については、リファレンス ページを参照してください。
基本的な形状
基本的なウィンドウは "箱型ウィンドウ" で、すべての要素が適切な長さをもつベクトルです。長さ 50 の箱型ウィンドウは、以下のようになります。
n = 50; w = rectwin(n);
Signal Processing Toolbox では、通常、ウィンドウは列ベクトルに格納されるため、次の式と等しくなります。
w = ones(50,1);
ウィンドウ デザイナー アプリを使用してこのウィンドウを作成するには、次のように入力します。
windowDesigner
アプリが開き、既定のハミング ウィンドウが表示されます。箱型ウィンドウを可視化するには、[現在のウィンドウ情報] パネルで、[タイプ] = [矩形] および [長さ] = 50 と設定して [適用] をクリックします。
"バートレット (三角) ウィンドウ" は、2 つの箱型ウィンドウの畳み込みです。関数 bartlett
および triang
では、同じような三角ウィンドウが計算されますが、以下の 3 つの点が大きく異なります。まず、関数 bartlett
は必ずシーケンスの両端に 2 つの零をもつウィンドウを返すため、以下に示すように、n
が奇数の場合は bartlett(n+2)
の両端を除く部分が triang(n)
と等しくなります。
Bartlett = bartlett(7); isequal(Bartlett(2:end-1),triang(5))
ans = 1
n
が偶数の場合にも、やはり、bartlett
は 2 つの四角形シーケンスの畳み込みとなります。n
が偶数の場合は、三角ウィンドウに関する標準的な定義はありません。すなわち、triang
の結果の線分の勾配は、この場合の bartlett
の勾配より、わずかに急峻になります。
w = bartlett(8); [w(2:7) triang(6)]
ウィンドウ デザイナーにおける奇数と偶数のバートレット ウィンドウの違いがわかります。
バートレット ウィンドウと三角ウィンドウとの違いの 3 つ目は、これらの関数をフーリエ変換すると明らかになります。バートレット ウィンドウのフーリエ変換は、n
が偶数の場合、負となりますが、三角ウィンドウのフーリエ変換は必ず非負となります。
以下の図は、8 点のバートレット ウィンドウと三角ウィンドウのゼロ位相応答をプロットし、その違いを示します。
zerophase(bartlett(8)) hold on zerophase(triang(8)) legend('Bartlett','Triangular') axis([0.3 1 -0.2 0.5])
この違いは、ブラックマン・テューキー法などのいくつかのスペクトル推定手法に対するウィンドウを選択する際に重要になる可能性があります。ブラックマン・テューキー法では、自己相関列のフーリエ変換を計算することにより、スペクトル推定値が求められます。得られる推定値は、ウィンドウのフーリエ変換が負となる場合には、いくつかの周波数で負となる可能性があります。