Main Content

zp2sos

零点-極-ゲイン フィルター パラメーターの 2 次セクションへの変換

説明

[sos,g] = zp2sos(z,p,k) では、n 個の零点、m 個の極をもち、スカラー ゲインが zp および k で指定される伝達関数 H(z) と等価なゲイン g をもつ、2 次セクションの行列 sos を求めます。

H(z)=k(zz1)(zz2)(zzn)(zp1)(zp2)(zpm).

[sos,g] = zp2sos(z,p,k,order) では、sos の行の順序が指定されます。

[sos,g] = zp2sos(z,p,k,order,scale) では、すべての 2 次セクションのゲインと分子係数に対するスケーリングが指定されます。

[sos,g] = zp2sos(z,p,k,order,scale,zeroflag) では、互いに反対の符号が付く実数零点の処理を指定します。

sos = zp2sos(___) では、最初のセクションにシステム ゲイン全体が組み込まれます。

すべて折りたたむ

関数 butter を、出力を零点-極-ゲイン形式で表して使用し、5 次のバタワース ローパス フィルターを設計します。カットオフ周波数をナイキスト周波数の 1/5 に指定します。結果を 2 次セクションに変換します。振幅応答を可視化します。

[z,p,k] = butter(5,0.2);
sos = zp2sos(z,p,k)
sos = 3×6

    0.0013    0.0013         0    1.0000   -0.5095         0
    1.0000    2.0000    1.0000    1.0000   -1.0966    0.3554
    1.0000    2.0000    1.0000    1.0000   -1.3693    0.6926

fvtool(sos)

Figure Figure 1: Magnitude Response (dB) contains an axes object. The axes object with title Magnitude Response (dB), xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Magnitude (dB) contains an object of type line.

入力引数

すべて折りたたむ

システムの零点。ベクトルとして指定します。零点は、実数か、または複素共役対でなければなりません。

例: [1 (1+1j)/2 (1-1j)/2]'

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

システムの極。ベクトルとして指定します。極は、実数か、または複素共役対でなければなりません。

例: [1 (1+1j)/2 (1-1j)/2]'

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

システムのスカラー ゲイン。スカラーとして指定します。

データ型: double

行の次数。次のいずれかとして指定します。

  • 'up'sos の最初の行が単位円から最も離れた極を含むようにセクションを並べます。

  • 'down'sos の最初の行が単位円に最も近い極を含むようにセクションを並べます。

データ型: char

ゲインおよび分子係数のスケーリング。次のいずれかとして指定します。

  • 'none' — スケーリングを適用しません。

  • 'inf' — 無限大ノルム スケーリングを適用します。

  • 'two' — 2 ノルム スケーリングを適用します。

スケーリングを無限大ノルムにし、順序を 'up' にすると、実現時のオーバーフローの確率が最小限に抑えられます。スケーリングを 2 ノルムにし、順序を 'down' にすると、ピークの丸めノイズが最小限に抑えられます。

メモ

無限大ノルムと 2 ノルムのスケーリングは、直接型 II の実装に対してのみ適切です。

データ型: char

互いに反対の符号が付く実数零点の順序。logical スカラーとして指定します。

  • zeroflagfalse として指定した場合、この関数は、極との近さに応じて、それらの零点を並べ替えます。

  • zeroflagtrue として指定した場合、この関数は、それらの零点をまとめておきます。このオプションでは、ゼロと等価の中間の係数をもつ分子が得られます。

データ型: logical

出力引数

すべて折りたたむ

2 次セクション表現。行列として返されます。sos は、L 行 6 列の行列

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

であり、この行列の行には、H(z) の 2 次セクションの分子係数 bik と分母係数 aik が含まれます。

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

伝達関数が n 個の零点と m 個の極をもつ場合、L は max(n/2,m/2) 以上の最も近い整数です。

全体のシステム ゲイン。実数のスカラーとして返されます。

1 つの出力引数と共に zp2sos を呼び出すと、システム ゲイン全体が最初のセクション H1(z) に組み込まれます。したがって次のようになります。

H(z)=k=1LHk(z).

メモ

直接型 II 構造をスケーリングする際に、最初のセクションのゲインを組み込むことは推奨しません。異常なスケーリングになることがあります。ゲインの組み込みを避けるために、2 つの出力をもつ zp2sos を使用します。

アルゴリズム

zp2sos では、以下の 4 つのステップのアルゴリズムを使用して、入力された零点-極-ゲイン システムの 2 次セクション構造が求められます。

  1. 関数 cplxpair を使用して、零点と極が共役複素数の組に分類されます。

  2. 次の規則に基づいて、極と零点の組み合わせを作ることにより、2 次セクションを作成します。

    1. 単位円に最も近い極を、それらの極に最も近い零点と組み合わせます。

    2. 次に単位円に近い極を、それらの極に最も近い零点と組み合わせます。

    3. 同様にして、極と零点をすべて組み合わせます。

    zp2sos では、実極についても、絶対値が最も近いものをグループ化してセクションにまとめます。実数零点についても同じルールが適用されます。

  3. 極の組み合わせを単位円に近付く順に並べ替えます。zp2sos では通常、単位円に最も近い極をもつセクションがカスケードの最後に配置されます。引数 order を使用することで、zp2sos によってセクションを逆の順序に並べることができます。

  4. zp2sos によって、scale に設定されたノルムでセクションがスケーリングされます。任意の H(ω) に対するスケーリングは、以下のように定義されます。

    Hp=[12π02π|H(ω)|pdω]1/p

    ここで、p は、無限大または 2 のいずれかです。このスケーリングは、固定小数点フィルターの実装によるオーバーフローまたはピークの丸めノイズを最小限に抑えようとする試みです。

参照

[1] Jackson, L. B. Digital Filters and Signal Processing. 3rd ed. Boston: Kluwer Academic Publishers, 1996.

[2] Mitra, Sanjit Kumar. Digital Signal Processing: A Computer-Based Approach. 3rd ed. New York: McGraw-Hill Higher Education, 2006.

[3] Vaidyanathan, P. P. "Robust Digital Filter Structures." Handbook for Digital Signal Processing (S. K. Mitra and J. F. Kaiser, eds.). New York: John Wiley & Sons, 1993.

拡張機能

バージョン履歴

R2006a より前に導入