Convert zero-pole-gain filter parameters to second-order sections form

`zp2sos`

uses a four-step algorithm to determine the second-order section
representation for an input zero-pole-gain system:

It groups the zeros and poles into complex conjugate pairs using the

`cplxpair`

function.It forms the second-order section 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.

`zp2sos`

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.

`zp2sos`

normally orders the sections with poles closest to the unit circle last in the cascade. You can tell`zp2sos`

to order the sections in the reverse order using the`order`

argument.`zp2sos`

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 infinity or 2. 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.

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