L =
isallpass (b, a)
¶L =
isallpass (sos)
¶Determine whether a digital filter is allpass. The filter might be defined by the numerator coefficients, b, and the denominator coefficients, a, or, alternatively, by a matrix of second-order sections, sos.
Example:
a = [1 2 3]; b = [3 2 1]; isallpass (b, a)
Ref [1] Shyu, Jong-Jy, & Pei, Soo-Chang, A new approach to the design of complex all-pass IIR digital filters, Signal Processing, 40(2–3), 207–215, 1994. https://doi.org/10.1016/0165-1684(94)90068-x
Ref [2] Vaidyanathan, P. P. Multirate Systems and Filter Banks. 1st edition, Pearson College Div, 1992.
The following code
# H(z) = (b1 - z^-1) * (b2 - z^-1) / ((1 - b1*z^-1) * (1 - b2*z^-1)) b1 = 0.5 * (1 + i); b2 = 0.7 * (cos (pi/6) + i*sin (pi/6)); b = conv ([b1 -1], [b2 -1]); a = conv ([1 (-1)*conj(b1)],[1 (-1)*conj(b2)]); freqz (b, a); f = isallpass (b, a) ## test input validation
Produces the following output
f = 1
and the following figure
Figure 1 |
---|
Package: signal