メインコンテンツ

ss

離散時間フィルター System object から状態空間表現への変換

説明

[A,B,C,D] = ss(sysobj) は、フィルター System object™ を次の式で表される状態空間表現に変換します。

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

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

[A,B,C,D] = ss(sysobj,Arithmetic=arithType) は、arithType で指定された演算に基づいてフィルター System object を解析します。

その他の入力オプションについては、Signal Processing Toolbox™ の ss を参照してください。

すべて折りたたむ

正規化されたカットオフ周波数 0.4 をもつ 4 次のローパス SOS フィルター オブジェクトを設計します。

[z,p,k] = ellip(4,1,60,.4);    % Set up the filter
[sosMatrix,scaleValues] = zp2sos(z,p,k);
[num,den] = sos2ctf(sosMatrix);
sosFilt = dsp.SOSFilter(Structure='Direct form I',...
    Numerator=num,Denominator=den,...
    ScaleValues=scaleValues)
sosFilt = 
  dsp.SOSFilter with properties:

            Structure: 'Direct form I'
    CoefficientSource: 'Property'
            Numerator: [2×3 double]
          Denominator: [2×3 double]
       HasScaleValues: true
          ScaleValues: [0.0351 1 1]

  Show all properties

ss 関数を使用して、設計したフィルターを状態空間形式に変換します。

[A,B,C,D] = ss(sosFilt)
A = 8×8

         0         0         0         0         0         0         0         0
    1.0000         0         0         0         0         0         0         0
    1.8116    1.0000    1.0095   -0.3954         0         0         0         0
         0         0    1.0000         0         0         0         0         0
    1.8116    1.0000    1.0095   -0.3954         0         0         0         0
         0         0         0         0    1.0000         0         0         0
    1.8116    1.0000    1.0095   -0.3954    1.1484    1.0000    0.5581   -0.7823
         0         0         0         0         0         0    1.0000         0

B = 8×1

    0.0351
         0
    0.0351
         0
    0.0351
         0
    0.0351
         0

C = 1×8

    1.8116    1.0000    1.0095   -0.3954    1.1484    1.0000    0.5581   -0.7823

D = 
0.0351

入力引数

すべて折りたたむ

フィルター解析で使用される演算。'double''single'、または 'Fixed' として指定します。演算入力が指定されず、フィルター System object がロック解除状態の場合、解析ツールは倍精度フィルターを使用します。演算入力が指定されず、System object がロックされている場合、関数はロックされた入力のデータ型に基づいて解析を実行します。

'Fixed' 値は、固定小数点プロパティのみをもつフィルター System object に適用されます。

'Arithmetic' 入力引数が 'Fixed' として指定され、フィルター オブジェクトの係数のデータ型が 'Same word length as input' に設定されている場合、演算解析は System object がロック解除されているかロックされているかに応じて異なります。

  • ロック解除 –– 解析オブジェクト関数は係数のデータ型を判断できません。関数は、係数のデータ型が符号付き、16 ビット語長、自動スケーリングであると仮定します。関数は、この仮定に基づいて固定小数点解析を実行します。

  • ロック –– 入力のデータ型が 'double' または 'single' の場合、解析オブジェクト関数は係数のデータ型を判断できません。関数は、係数のデータ型が符号付き、16 ビット語長、自動スケーリングであると仮定します。関数は、この仮定に基づいて固定小数点解析を実行します。

System object がロックされているかロック解除されているかを確認するには、関数 isLocked を使用します。

演算入力が 'Fixed' として指定され、フィルター オブジェクトの係数のデータ型がカスタム数値型に設定されている場合、オブジェクト関数はカスタム数値データ型に基づいて固定小数点解析を実行します。

出力引数

すべて折りたたむ

状態行列。NN 列の行列として返されます。ここで、N はフィルターの次数です。

データ型: double

入力行列。N 行 1 列のベクトル (線形システムへの入力数が 1 であることを示す) として返されます。N はフィルターの次数です。

データ型: double

出力行列。1 行 N 列の行ベクトル (線形システムの出力数が 1 であることを示す) として返されます。N はフィルターの次数です。

データ型: double

直達行列。スカラー (線形システムの入力と出力の数が 1 であることを示す) として返されます。

データ型: double

バージョン履歴

R2011a で導入

すべて展開する