Convert digital filter state-space parameters to second-order sections form
[sos,g] = ss2sos(A,B,C,D)
[sos,g] = ss2sos(A,B,C,D,iu)
[sos,g] = ss2sos(A,B,C,D,'order'
)
[sos,g] = ss2sos(A,B,C,D,iu,'order'
)
[sos,g] = ss2sos(A,B,C,D,iu,'order'
,'scale'
)
sos = ss2sos(...)
ss2sos
converts a state-space representation
of a given digital filter to an equivalent second-order section representation.
[sos,g] = ss2sos(A,B,C,D)
finds
a matrix sos
in second-order section form with
gain g
that is equivalent to the state-space system
represented by input arguments A
, B
, C
,
and D
. The input system must be single output and
real. sos
is an L-by-6 matrix
$$\text{sos}=\left[\begin{array}{cccccc}{b}_{01}& {b}_{11}& {b}_{21}& 1& {a}_{11}& {a}_{21}\\ {b}_{02}& {b}_{12}& {b}_{22}& 1& {a}_{12}& {a}_{22}\\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {b}_{0L}& {b}_{1L}& {b}_{2L}& 1& {a}_{1L}& {a}_{2L}\end{array}\right]$$
whose rows contain the numerator and denominator coefficients b_{ik} and a_{ik} of the second-order sections of H(z).
$$H(z)=g{\displaystyle \prod _{k=1}^{L}{H}_{k}(z)=g{\displaystyle \prod _{k=1}^{L}\frac{{b}_{0k}+{b}_{1k}{z}^{-1}+{b}_{2k}{z}^{-2}}{1+{a}_{1k}{z}^{-1}+{a}_{2k}{z}^{-2}}}}$$
[sos,g] = ss2sos(A,B,C,D,iu)
specifies
a scalar iu
that determines which input of the
state-space system A
, B
, C
, D
is
used in the conversion. The default for iu
is 1.
[sos,g] = ss2sos(A,B,C,D,
and 'order'
)
[sos,g] = ss2sos(A,B,C,D,iu,
specify
the order of the rows in 'order'
)sos
, where 'order'
is
'down'
, to order the sections so
the first row of sos
contains the poles closest
to the unit circle
'up'
, to order the sections so
the first row of sos
contains the poles farthest
from the unit circle (default)
The zeros are always paired with the poles closest to them.
[sos,g] = ss2sos(A,B,C,D,iu,
specifies
the desired scaling of the gain and the numerator coefficients of
all second-order sections, where 'order'
,'scale'
)'scale'
is
'none'
, to apply no scaling (default)
'inf'
, to apply infinity-norm scaling
'two'
, to apply 2-norm scaling
Using infinity-norm scaling in conjunction with up
-ordering
minimizes the probability of overflow in the realization. Using 2-norm
scaling in conjunction with down
-ordering minimizes
the peak round-off noise.
Note Infinity-norm and 2-norm scaling are appropriate only for direct-form II implementations. |
sos = ss2sos(...)
embeds
the overall system gain, g
, in the first section, H_{1}(z),
so that
$$H(z)={\displaystyle \prod _{k=1}^{L}{H}_{k}(z)}$$
Note
Embedding the gain in the first section when scaling a direct-form
II structure is not recommended and may result in erratic scaling.
To avoid embedding the gain, use |
If there is more than one input to the system, ss2sos
gives
the following error message:
State-space system must have only one input.
[1] Jackson, L. B. Digital Filters and Signal Processing. 3rd Ed. Boston: Kluwer Academic Publishers, 1996, chap. 11.
[2] Mitra, S. K. Digital Signal Processing: A Computer-Based Approach. New York: McGraw-Hill, 1998, chap. 9.
[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, chap. 7.