Function File: L = isallpass (b, a)
Function File: 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.

Demonstration 1

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