ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

カイザー ウィンドウ

カイザー ウィンドウは、メインローブのエネルギーとサイドローブのエネルギーとの比率が最大となるような、扁長回転楕円体ウィンドウに対する近似です。特定の長さのカイザー ウィンドウでは、パラメーター β がサイドローブの高さを制御します。与えられた β に対して、サイドローブの高さは、ウィンドウの長さに応じて決まります。ステートメント 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)

参考

アプリ

関数