Main Content

ss

デジタル フィルターの状態空間表現への変換

説明

[A,B,C,D] = ss(d) は、デジタル フィルター d をその状態空間表現に変換します。

フィルターの状態空間表現は、次の式で与えられます。

x(k+1)=Ax(k)+Bu(k),y(k)=Cx(k)+Du(k),

ここで、x は状態ベクトル、u は入力ベクトル、y は出力ベクトルです。

すべて折りたたむ

次数 6 のローパス IIR フィルターを設計します。正規化された通過帯域周波数、0.2π ラジアン/サンプルを指定します。このフィルターの状態空間表現を計算します。

d = designfilt('lowpassiir','FilterOrder',6,'PassbandFrequency',0.2);
[A,B,C,D] = ss(d)
A = 6×6

    1.5640   -0.9294         0         0         0         0
    1.0000         0         0         0         0         0
    0.1795    0.0036    1.6097   -0.8112         0         0
         0         0    1.0000         0         0         0
    0.0020    0.0000    0.0408    0.0021    1.6956   -0.7409
         0         0         0         0    1.0000         0

B = 6×1

    0.0913
         0
    0.0046
         0
    0.0001
         0

C = 1×6

    0.0020    0.0000    0.0408    0.0021    3.6956    0.2591

D = 5.2030e-05

入力引数

すべて折りたたむ

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

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

出力引数

すべて折りたたむ

状態行列。行列として返される。

データ型: double

状態への入力行列。行列として返される。

データ型: double

出力への状態行列。行列として返される。

データ型: double

行列として返される直達行列。

データ型: double

バージョン履歴

R2014a で導入