Convert digital filter transfer function data to second-order sections form

`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`order`

as`'down'`

.`tf2sos`

scales the sections by the norm specified in`scale`

. 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. The algorithm follows this scaling in 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.

[2] Mitra, S. K. *Digital
Signal Processing: A Computer-Based Approach*. New York: McGraw-Hill,
1998.

[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.