メインコンテンツ

sos2cell

2 次セクション行列の cell 配列への変換

説明

cll = sos2cell(sos) は、2 次セクションの行列 sos によって記述されるフィルター システムの係数を含む cell 配列 cll を生成します。

cll = sos2cell(sos,g) は、sos で指定されたシステムの cell 配列表現 cll に追加するスケール ゲイン g も指定します。

すべて折りたたむ

0.5 dB の通過帯域リップルと 20 dB の阻止帯域の減衰量をもつ次数 4 のローパス楕円フィルターを生成します。通過帯域エッジはナイキスト周波数の 0.6 倍です。伝達関数を 2 次セクションの行列に変換します。

[b,a] = ellip(4,0.5,20,0.6);
m = tf2sos(b,a);

sos2cell を使用して、関数 tf2sos で作成した 2 行 6 列 の行列を、セルの 1 行 2 列の cell 配列c に変換します。c の最初のセルの 2 番目のエントリを表示します。これに、m の最初の 2 次セクションの分母係数が含まれているかどうかを確認します。

c = sos2cell(m);
compare = [c{1}{2};m(1,4:6)]
compare = 2×3

    1.0000    0.1677    0.2575
    1.0000    0.1677    0.2575

入力引数

すべて折りたたむ

2 次セクションの行列表現。L 行 6 列の行列として指定します。ここで、L は 2 次セクションの数です。行列

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

は、次に示す H(z) の 2 次セクションを表します。

H(z)=gk=1LHk(z)=gk=1Lb0k+b1kz1+b2kz21+a1kz1+a2kz2.

例: [z,p,k] = butter(3,1/32); sos = zp2sos(z,p,k) は、正規化された 3 dB の周波数 π/32 ラジアン/サンプルをもつ 3 次のバタワース フィルターを指定します。

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

スケール ゲイン。スカラーとして指定します。

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

出力引数

すべて折りたたむ

2 次セクションの cell 配列表現。次のサイズの行 cell 配列として返されます。

  • L 個の要素 — g が 1 の場合、または指定しない場合。cell 配列の各要素は、2 次セクションに対応します。たとえば、cell 配列の要素 cll(k) には、sosk 番目のセクションの係数が含まれます。

    cll{k} = {sos(k,1:3) sos(k,4:6)}

  • L+1 個の要素 — g が 1 と異なる場合。cll の最初の要素には、g で指定されたゲインが含まれます。cell 配列の後続の各要素は、2 次セクションに対応します。たとえば、cell 配列の要素 cll{k+1} には、sosk 番目のセクションの係数が含まれます。

    cll{1} = {g 1}
    cll{k+1} = {sos(k,1:3) sos(k,4:6)}

ヒント

  • sos = cell2sos(cll) を使用すると、cll = sos2cell(sos) の逆演算を実行できます。

バージョン履歴

R2006a より前に導入