Signal Processing Toolbox |
Convert digital filter transfer function data to second-order sections form
Syntax
[sos,g]=
tf2sos(b,a) [sos,g]=
tf2sos(b,a,'order
') [sos,g]=
tf2sos(b,a,'order
','scale
') sos=
tf2sos(...)
Description
tf2sos
converts a transfer function representation of a given digital filter to an equivalent second-order section representation.
[sos,g]
finds a matrix = tf2sos(b,a)
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
.
whose rows contain the numerator and denominator coefficients bik and aik of the second-order sections of H(z).
[sos,g]
specifies the order of the rows in =
tf2sos(b,a,'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]
specifies the desired scaling of the gain and numerator coefficients of all second-order sections, where =
tf2sos(b,a,'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.
sos
embeds the overall system gain, = tf2sos(...)
g
, in the first section, H1(z), so that
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 ss2sos with two outputs. |
Algorithm
tf2sos
uses a four-step algorithm to determine the second-order section representation for an input transfer function system:
b
and a
.
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:
tf2sos
groups real poles into sections with the real poles closest to them in absolute value. The same rule holds for real zeros.
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
See Also
cplxpair
, sos2tf
, ss2sos
, tf2ss
, tf2zp
, tf2zpk
, zp2sos
References
[1] Jackson, L.B., Digital Filters and Signal Processing, 3rd ed., Kluwer Academic Publishers, Boston, 1996, Chapter 11.
[2] Mitra, S.K., Digital Signal Processing: A Computer-Based Approach, McGraw-Hill, New York, 1998, Chapter 9.
[3] Vaidyanathan, P.P., "Robust Digital Filter Structures," Handbook for Digital Signal Processing, S.K. Mitra and J.F. Kaiser, ed., John Wiley & Sons, New York, 1993, Chapter 7.
tf2latc | tf2ss |
© 1994-2005 The MathWorks, Inc.