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