Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

カイザー ウィンドウ

カイザー ウィンドウは、メインローブのエネルギーとサイドローブのエネルギーとの比率が最大となるような、扁長回転楕円体ウィンドウに対する近似です。特定の長さのカイザー ウィンドウでは、パラメーター β が相対的なサイドローブの減衰を制御します。与えられた β に対して、相対的なサイドローブの減衰は、ウィンドウの長さに応じて決まります。ステートメント kaiser(n,beta) では、パラメーター beta をもつ長さ n のカイザー ウィンドウが計算されます。

β が増加するにつれて、相対的なサイドローブの減衰が減少し、メインローブの幅が増加します。このスクリーン ショットは、β パラメーターを固定した状態で長さが変化しても、相対的なサイドローブの減衰がほぼ同じままであることを示しています。

長さが 50 で β パラメーターにさまざまな値 (1、4、9) をもつカイザー ウィンドウをこの例に示します。

MATLAB® のコマンド ラインを使用して、これらのカイザー ウィンドウを作成するには、以下を入力します。

n = 50;
w1 = kaiser(n,1);
w2 = kaiser(n,4);
w3 = kaiser(n,9);
[W1,f] = freqz(w1/sum(w1),1,512,2);
[W2,f] = freqz(w2/sum(w2),1,512,2);
[W3,f] = freqz(w3/sum(w3),1,512,2);
plot(f,20*log10(abs([W1 W2 W3])))
grid
legend('\beta = 1','\beta = 4','\beta = 9')

MATLAB のコマンド ラインを使用して、これらのカイザー ウィンドウを作成するには、以下を入力します。

w1 = kaiser(50,4);
w2 = kaiser(20,4);
w3 = kaiser(101,4);
[W1,f] = freqz(w1/sum(w1),1,512,2);
[W2,f] = freqz(w2/sum(w2),1,512,2);
[W3,f] = freqz(w3/sum(w3),1,512,2);
plot(f,20*log10(abs([W1 W2 W3])))
grid
legend('length = 50','length = 20','length = 101')

FIR 設計におけるカイザー ウィンドウ

カイザー ウィンドウを使用して、フィルター仕様を満たす FIR フィルターを設計する場合に役立つ 2 つの設計式があります。-α dB の相対的なサイドローブの減衰を達成するには、β (beta) パラメーターを、以下のようにします。

β={0.1102(α-8.7),α>50,0.5842(α-21)0.4+0.07886(α-21),50α21,0,α<21.

遷移幅が Δω ラジアン/サンプルの場合、次の長さを使用します。

n=α-82.285Δω+1.

これらのヒューリスティックな方法を使用して設計されたフィルターは、仕様をほぼ満たしますが、これを検証する必要があります。カットオフ周波数 0.5π ラジアン/サンプル、遷移幅 0.2π ラジアン/サンプル、および阻止帯域に 40 dB の減衰をもつローパス フィルターを設計するには、以下のようにします。

[n,wn,beta] = kaiserord([0.4 0.6]*pi,[1 0],[0.01 0.01],2*pi);
h = fir1(n,wn,kaiser(n+1,beta),'noscale');

関数 kaiserord では、与えられた周波数領域仕様を満たすのに必要なフィルター次数、カットオフ周波数、およびカイザー ウィンドウのベータ パラメーターが推定されます。

通過帯域内のリップルは、阻止帯域内のリップルと、ほぼ同じになります。周波数応答からわかるように、このフィルターはほぼ仕様を満たしています。

fvtool(h,1)

Figure Figure 1: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains an object of type line.

参考

アプリ

関数