Convert digital filter transfer function data to second-order sections form
[sos,g] = tf2sos(b,a)
[sos,g] = tf2sos(b,a,'order'
)
[sos,g] = tf2sos(b,a,'order'
,'scale'
)
sos = tf2sos(...)
tf2sos
converts a transfer function representation
of a given digital filter to an equivalent second-order section representation.
[sos,g] = tf2sos(b,a)
finds
a matrix sos
in second-order section form with
gain g
that is equivalent to the digital filter
represented by transfer function coefficient vectors a
and b
.
$$H(z)=\frac{B(z)}{A(z)}=\frac{{b}_{1}+{b}_{2}{z}^{-1}+\cdots +{b}_{n+1}{z}^{-n}}{{a}_{1}+{a}_{2}{z}^{-1}+\cdots +{a}_{m+1}{z}^{-m}}$$
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] = tf2sos(b,a,
specifies
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)
[sos,g] = tf2sos(b,a,
specifies
the desired scaling of the gain and 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 = tf2sos(...)
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 |
tf2sos
uses a four-step algorithm to determine
the second-order section representation for an input transfer function
system:
It finds the poles and zeros of the
system given by b
and a
.
It uses the function zp2sos
, which first groups the zeros
and poles into complex conjugate pairs using the cplxpair
function. zp2sos
then forms the second-order sections
by matching the pole and zero pairs according to the following rules:
Match the poles closest to the unit circle with the zeros closest to those poles.
Match the poles next closest to the unit circle with the zeros closest to those poles.
Continue until all of the poles and zeros are matched.
tf2sos
groups real poles into sections with
the real poles closest to them in absolute value. The same rule holds
for real zeros.
It orders the sections according to
the proximity of the pole pairs to the unit circle. tf2sos
normally
orders the sections with poles closest to the unit circle last in
the cascade. You can tell tf2sos
to order the sections
in the reverse order by specifying the 'down'
flag.
tf2sos
scales the
sections by the norm specified in the 'scale'
argument.
For arbitrary H(ω), the scaling is defined
by
$${\Vert H\Vert}_{p}={\left[\frac{1}{2\pi}{\displaystyle \underset{0}{\overset{2\pi}{\int}}{\left|H(\omega )\right|}^{p}d\omega}\right]}^{1/p}$$
where p can be either ∞ or 2. See the references for details on the scaling. This scaling is an attempt to minimize overflow or peak round-off noise in fixed point filter implementations.
[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.