このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
カイザー ウィンドウ
カイザー ウィンドウは、メインローブのエネルギーとサイドローブのエネルギーとの比率が最大となるような、扁長回転楕円体ウィンドウに対する近似です。特定の長さのカイザー ウィンドウでは、パラメーター β が相対的なサイドローブの減衰を制御します。与えられた β に対して、相対的なサイドローブの減衰は、ウィンドウの長さに応じて決まります。ステートメント 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.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)