ドキュメンテーション

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

impzlength

インパルス応答の長さ

構文

len = impzlength(b,a)
len = impzlength(sos)
len = impzlength(d)
len = impzlength(hd)
len = impzlength(___,tol)

説明

len = impzlength(b,a) では、分子 b と分母 az–1 の多項式で指定される有理システム関数をもつ、因果性がある離散時間フィルターに対するインパルス応答の長さが返されます。安定 IIR フィルターの場合、len は有効なインパルス応答シーケンスの長さです。len 番目の項より後の IIR フィルターのインパルス応答の項は本質的にゼロです。

len = impzlength(sos) では、2 次セクション型の行列 sos により指定される IIR フィルターの実効値インパルス応答の長さが返されます。sos は K 行 6 列の行列で、セクション数 K は 2 以上でなければなりません。セクション数が 2 未満の場合、impzlength は入力を分子ベクトル b とみなします。sos の各行は 2 次 (双二次) フィルターの係数に対応しています。sos 行列の i 行目は [bi(1) bi(2) bi(3) ai(1) ai(2) ai(3)] に対応しています。

len = impzlength(d) では、デジタル フィルター d のインパルス応答の長さが返されます。d を周波数応答仕様に基づいて生成するには、関数 designfilt を使用します。

len = impzlength(hd) では、dfilt フィルター オブジェクト hd のインパルス応答の長さが返されます。フィルター オブジェクトの配列を入力することもできます。hd がフィルター オブジェクトの配列の場合、len は対応するフィルター オブジェクトのインパルス応答の長さです。

len = impzlength(___,tol) では、IIR フィルターのインパルス応答の有効な長さの推定に対する許容誤差が指定されます。既定の設定では tol5e-5 です。tol の値を大きくすると、IIR フィルターのインパルス応答の有効な長さの推定は短くなります。tol の値を小さくすると、IIR フィルターのインパルス応答の有効な長さは長くなります。

すべて折りたたむ

0.9 に極をもつローパス全極 IIR フィルターを作成します。有効なインパルス応答の長さを計算します。インパルス応答を取得します。結果をプロットします。

b = 1;
a = [1 -0.9];
len = impzlength(b,a)
len = 93
[h,t] = impz(b,a);
stem(t,h)

h(len)
ans = 6.1704e-05

0.4π ラジアン/サンプルのカットオフ周波数をもつ 4 次ローパス楕円フィルターを設計します。通過帯域リップルを 1 dB、阻止帯域の減衰量を 60 dB に指定します。極-零点-ゲイン型フィルターを設計し、zp2sos を使用して 2 次セクション型行列を求めます。2 次セクション型行列から有効なインパルス応答シーケンスの長さを判別します。

[z,p,k] = ellip(4,1,60,.4);
[sos,g] = zp2sos(z,p,k);
len = impzlength(sos)
len = 80

designfilt を使用して、正規化された通過帯域周波数 0.4π ラジアン/サンプルをもつ 4 次のローパス楕円フィルターを設計します。通過帯域リップルを 1 dB、阻止帯域の減衰量を 60 dB に指定します。有効なインパルス応答シーケンスの長さを判別し、可視化します。

d = designfilt('lowpassiir','FilterOrder',4,'PassbandFrequency',0.4, ...
               'PassbandRipple',1,'StopbandAttenuation',60, ...
               'DesignMethod','ellip');
len = impzlength(d)
len = 80
impz(d)

入力引数

すべて折りたたむ

スカラー (全極フィルター) またはベクトルとして指定する分子係数。

例: b = fir1(20,0.25)

データ型: single | double
複素数のサポート: あり

スカラー (FIR フィルター) またはベクトルとして指定する分母係数。

データ型: single | double
複素数のサポート: あり

2 次セクション型の行列。K 行 6 列の行列で指定します。K 番目の双二次フィルターのシステム関数は、有理 Z 変換をもちます。

Hk(z)=Bk(1)+Bk(2)z1+Bk(3)z2Ak(1)+Ak(2)z1+Ak(3)z2.

行列 sos の K 行目の係数は、次の順序で並びます。

[Bk(1)Bk(2)Bk(3)Ak(1)Ak(2)Ak(3)]

フィルターの周波数応答は、次によって単位円上で評価されるシステム関数です。

z=ej2πf.

デジタル フィルター。digitalFilter オブジェクトで指定します。デジタル フィルターを周波数応答仕様に基づいて生成するには、関数 designfilt を使用します。

例: d = designfilt('lowpassiir','FilterOrder',3,'HalfPowerFrequency',0.5) は、正規化された 3 dB の周波数 0.5π ラジアン/サンプルをもつ 3 次のバタワース フィルターを指定します。

フィルター オブジェクト。dfilt オブジェクトとして指定します。

IIR フィルターの有効なインパルス応答の長さに対する許容誤差。正の数値として指定します。許容誤差により、絶対加算可能なシーケンスにおいてそれ以降の項が 0 とみなされる項が決定されます。既定の許容誤差は 5e-5 です。許容誤差を大きくすると有効なインパルス応答シーケンスの長さは短くなります。許容誤差を小さくすると有効なインパルス応答シーケンスの長さは長くなります。

出力引数

すべて折りたたむ

正の整数で指定するインパルス応答の長さ。絶対加算可能なインパルス応答をもつ安定 IIR フィルターの場合、impzlength は、それを超えると係数が本質的にゼロとなる有効なインパルス応答の長さを返します。オプションの tol 入力引数を指定すると、このカットオフ点をコントロールできます。

R2013a で導入