Main Content

dfilt.df1sos

離散時間 2 次セクション直接型 I フィルター

構文

Hd = dfilt.df1sos(s)
Hd = dfilt.df1sos(b1,a1,b2,a2,...)
Hd = dfilt.df1sos(...,g)
Hd = dfilt.df1sos

説明

Hd = dfilt.df1sos(s) では、離散時間 2 次セクション直接型 I フィルター Hd が返されます。係数は行列 s で与えられます。このオブジェクトのフィルター状態が filtstates オブジェクトに格納されます。

Hd = dfilt.df1sos(b1,a1,b2,a2,...) では、離散時間 2 次セクション直接型 I フィルター Hd が返されます。この場合、第 1 セクションの係数はベクトル b1 および a1、第 2 セクションの係数はベクトル b2 および a2 のように与えられます。

Hd = dfilt.df1sos(...,g) にはゲイン ベクトル g が含まれます。g の要素は、各セクションのゲインです。g の最大長は、セクションの数に 1 を加えた値です。g を指定しないと、すべてのゲインが既定値の 1 になります。

Hd = dfilt.df1sos では、既定の離散時間 2 次セクション直接型 I フィルター Hd が返されます。このフィルターでは、入力が変化せずそのまま出力されます。

メモ

分母 a(1) の最初の係数は、0 になることはできません。

フィルター状態を表示するには、以下のコードを使用して filtstates オブジェクトにアクセスします。

Hs = Hd.states     % Where Hd is the dfilt.df1 object and
double (Hs)        % Hs is the filtstates object

ベクトルは、以下のようになります。

(zb1(1)zb2(1)zb1(2)zb2(2)za1(1)za2(1)za1(2)za2(2))

複数のセクションをもつフィルターでは、各セクションは行列の個々の列となります。

以下のコードを使用して、6 次ローパス楕円フィルターからの係数を使い、2 次セクションの直接型 I 離散時間フィルターを指定します。結果として得られるフィルターには、3 つのセクションが含まれます。

[z,p,k] = ellip(6,1,60,.4);  % Obtain filter coefficients
[s,g] = zp2sos(z,p,k);       % Convert to SOS
Hd = dfilt.df1sos(s,g)

バージョン履歴

R2006a より前に導入