Main Content

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

filtic

直接型 II 転置フィルターの実装に対する初期条件

説明

z = filtic(b,a,y,x) では、過去の出力 y と入力 x が与えられた場合、直接型 II 転置フィルターの実装の遅延に対する初期条件 z が求められます。ベクトル ba は、フィルターの伝達関数の分子係数と分母係数をそれぞれ表します。

z = filtic(b,a,y) では、入力 x が過去において 0 であると仮定しています。

すべて折りたたむ

初期条件が y(-1)=1 であるシステム y(n)+1.12y(n-1)=0.1x(n)+0.2x(n-1) のゼロ入力応答を求めます。出力の分子係数および分母係数、ならびに初期条件を設定します。

b = [0.1 0.2];
a = [1 1.12];
Y = 1;

システムのゼロ入力初期条件を計算します。

xic = filtic(b,a,Y);

ゼロ入力応答を計算します。

yzi = filter(b,a,zeros(1,20),xic);
stem(yzi)

Figure contains an axes object. The axes object contains an object of type stem.

入力引数

すべて折りたたむ

伝達関数の係数。ベクトルで指定します。

例: b = [1 3 3 1]/6a = [3 0 1 0]/3 は、正規化された 3dB の周波数 0.5π ラジアン/サンプルをもつ 3 次のバタワース フィルターを指定します。

データ型: double

過去の出力。ベクトルとして指定します。ベクトル y には、最近の出力が最初に含まれ、最も古い出力が最後に含まれます。

y=[y(1),y(2),y(3),,y(m)]

ここで、mlength(a)-1 (分母次数) です。length(y)m 未満の場合は、長さが m になるようにゼロでパディングされます。

データ型: double

過去の入力。ベクトルとして指定します。ベクトル x には、最近の入力が最初に含まれ、最も古い入力が最後に含まれます。

x=[x(1),x(2),x(3),,x(n)]

ここで、nlength(b)-1 (分子次数) です。 length(x)n 未満の場合は、長さが n になるようにゼロでパディングされます。

データ型: double

出力引数

すべて折りたたむ

初期条件。列ベクトルとして返されます。z の長さは、n と m の大きい方と等しくなります。z は、過去の入力 x と過去の出力 y が与えられた遅延の状態を表します。

アルゴリズム

関数 filtic は、逆方向の差分方程式を実行して遅延状態 z を取得します。x(n-1) を超える x の要素と y(m-1) を超える y の要素は必要ないため、filtic では無視されます。

直接型 II 転置構造は、次のように表されます。ここで、n–1 はフィルター次数です。

参照

[1] Oppenheim, A.V., and R.W. Schafer, Discrete-Time Signal Processing, Prentice-Hall, 1989, pp. 296, 301-302.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入