ドキュメンテーション

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

impinvar

アナログ デジタル フィルター変換のインパルス不変法

構文

[bz,az] = impinvar(b,a,fs)
[bz,az] = impinvar(b,a,fs,tol)

説明

[bz,az] = impinvar(b,a,fs) では、インパルス応答が 1/fs でスケールされた係数 b および a をもつアナログ フィルターのインパルス応答と等価になる、分子係数 bz と分母係数 az をもつデジタル フィルターが作成されます。引数 fs を指定しない場合、または、fs に空ベクトル [] を指定した場合は、既定の 1 Hz が使用されます。

[bz,az] = impinvar(b,a,fs,tol) では、極が重根であるかどうかを判定するために、tol で指定される許容誤差を使用します。許容範囲を大きくすると、impinvar によって近接する極が重根であると判断される確立が高くなります。既定の設定は、0.001、または、極の振幅の 0.1% です。極の値の精度は、関数 roots によって得られる精度が限界となります。

すべて折りたたむ

インパルス不変法を使用して、6 次のアナログ バタワース ローパス フィルターをデジタル フィルターに変換します。10 Hz のサンプルレートおよび 2 Hz のカットオフ周波数を指定します。フィルターの周波数応答を表示します。

f = 2;
fs = 10;

[b,a] = butter(6,2*pi*f,'s');
[bz,az] = impinvar(b,a,fs);

freqz(bz,az,1024,fs)

インパルス不変法を使用して、4 次のアナログ楕円フィルターをデジタル フィルターに変換します。サンプルレート Hz、通過帯域エッジ周波数 2.5 Hz、通過帯域リップル 1 dB、阻止帯域の減衰量 60 dB を指定します。デジタル フィルターのインパルス応答を表示します。

fs = 10;

[b,a] = ellip(3,1,60,2*pi*2.5,'s');
[bz,az] = impinvar(b,a,fs);

impz(bz,az,[],fs)

伝達関数の留数 および極 を求め、以下を使用した明示的な逆ラプラス変換を行い、アナログ フィルターのインパルス応答を導きます。

アナログ フィルターのインパルス応答を重ね合わせます。インパルス不変法では、デジタル フィルターにゲイン が発生します。このゲインによりアナログ インバルス応答を乗算し、意味のある比較を可能にします。

[r,p] = residue(b,a);
t = linspace(0,4,1000);
h = real(r.'*exp(p.*t)/fs);

hold on
plot(t,h)
hold off

アルゴリズム

impinvar では、参考文献 [1] に説明されている、インパルス不変法によるアナログからデジタルへの伝達関数変換が実行されます。

  1. ba で表わされるシステムの部分分数展開が求められます。

  2. p が極 exp(p/fs) に置き換えられます。

  3. ステップ 1 の留数と ステップ 2 の極から、システムの伝達関数係数が求められます。

参考文献

[1] Parks, Thomas W., and C. Sidney Burrus. Digital Filter Design. New York: John Wiley & Sons, 1987.

[2] Antoniou, Andreas. Digital Filters. New York: McGraw-Hill, Inc., 1993.

R2006a より前に導入