Main Content

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

impinvar

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

説明

[bz,az] = impinvar(b,a,fs) では、インパルス応答が 1/fs でスケールされた係数 b および a をもつアナログ フィルターのインパルス応答と等価になる、分子係数 bz と分母係数 az をもつデジタル フィルターが作成されます。ここで、fs はサンプル レートです。

[bz,az] = impinvar(b,a,fs,tol) では、極が重根であるかどうかを判定するために、tol で指定される許容誤差を使用します。

すべて折りたたむ

インパルス不変法を使用して、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)

Figure contains 2 axes objects. Axes object 1 with title Phase, xlabel Frequency (Hz), ylabel Phase (degrees) contains an object of type line. Axes object 2 with title Magnitude, xlabel Frequency (Hz), ylabel Magnitude (dB) contains an object of type line.

インパルス不変法を使用して、3 次のアナログ楕円フィルターをデジタル フィルターに変換します。サンプル レート fs=10 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)

Figure contains an axes object. The axes object with title Impulse Response, xlabel nT (seconds), ylabel Amplitude contains an object of type stem.

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

H(s)=krks-pkh(t)=krkepkt.

アナログ フィルターのインパルス応答を重ね合わせます。インパルス不変法では、デジタル フィルターにゲイン 1/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

Figure contains an axes object. The axes object with title Impulse Response, xlabel nT (seconds), ylabel Amplitude contains 2 objects of type stem, line.

入力引数

すべて折りたたむ

アナログ フィルター伝達関数の係数。ベクトルとして指定します。

例: [b,a] = butter(6,2*pi*10,'s') は、10 Hz のカットオフ周波数をもつ 6 次のバタワース フィルターを指定します。

データ型: single | double

サンプル レート。正のスカラーで指定します。

データ型: single | double

許容誤差。正のスカラーで指定します。許容誤差は極が重根であるかどうかを判定します。許容範囲を大きくすると、impinvar によって近接する極が重根であると判断される確立が高くなります。既定の許容誤差は極の振幅の 0.1% に相当します。極の値の精度は、関数 roots によって得られる精度が限界となります。

データ型: single | double

出力引数

すべて折りたたむ

デジタル フィルター伝達関数の係数。ベクトルとして返されます。

アルゴリズム

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

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

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

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

参照

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

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

バージョン履歴

R2006a より前に導入