Main Content

ウィンドウ

ウィンドウを使用する理由

デジタル フィルター設計とスペクトル推定のいずれにおいても、ウィンドウ関数の選択は、結果全体の特性を決定する上で重要な役割を果たします。ウィンドウの主な役割は、無限級数の打ち切りにより生じるギブズ現象の影響を低減させることです。

使用可能なウィンドウ関数

ウィンドウ

関数

バートレット・ハン ウィンドウ

barthannwin

バートレット ウィンドウ

bartlett

ブラックマン ウィンドウ

blackman

ブラックマン・ハリス ウィンドウ

blackmanharris

ボーマン ウィンドウ

bohmanwin

チェビシェフ ウィンドウ

chebwin

フラット トップ ウィンドウ

flattopwin

ガウス ウィンドウ

gausswin

ハミング ウィンドウ

hamming

ハン ウィンドウ

hann

カイザー ウィンドウ

kaiser

ナットールのブラックマン・ハリス ウィンドウ

nuttallwin

パルザン (de la Vallée-Poussin) ウィンドウ

parzenwin

箱型ウィンドウ

rectwin

コサインテーパー ウィンドウ

tukeywin

三角ウィンドウ

triang

グラフィカル ユーザー インターフェイス ツール

Signal Processing Toolbox™ には、ウィンドウの操作を行うための以下の 2 つのグラフィカル ユーザー インターフェイス ツールが用意されています。

詳細については、リファレンス ページを参照してください。

基本的な形状

基本的なウィンドウは "箱型ウィンドウ" で、すべての要素が適切な長さをもつベクトルです。長さ 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])

この違いは、ブラックマン・テューキー法などのいくつかのスペクトル推定手法に対するウィンドウを選択する際に重要になる可能性があります。ブラックマン・テューキー法では、自己相関列のフーリエ変換を計算することにより、スペクトル推定値が求められます。得られる推定値は、ウィンドウのフーリエ変換が負となる場合には、いくつかの周波数で負となる可能性があります。

参考

アプリ

関数