iirpowcomp

Power complementary IIR filter

Syntax

[bp,ap] = iirpowcomp(b,a)
[bp,ap,c] = iirpowcomp(b,a)

Description

[bp,ap] = iirpowcomp(b,a) returns the coefficients of the power complementary IIR filter g(z) = bp(z)/ap(z) in vectors bp and ap, given the coefficients of the IIR filter h(z) = b(z)/a(z) in vectors b and a. b must be symmetric (Hermitian) or antisymmetric (antihermitian) and of the same length as a. The two power complementary filters satisfy the relation

|H(w)|2 + |G(w)|2 = 1.

[bp,ap,c] = iirpowcomp(b,a) where c is a complex scalar of magnitude = 1, forces bp to satisfy the generalized hermitian property

conj(bp(end:-1:1)) = c*bp.

When c is omitted, it is chosen as follows:

  • When b is real, chooses C as 1 or -1, whichever yields bp real

  • When b is complex, C defaults to 1

ap is always equal to a.

Examples

[b,a]=cheby1(10,.5,.4);
[bp,ap]=iirpowcomp(b,a);
Hd1 = dfilt.df2(b,a);
Hd2 = dfilt.df2(bp,ap);
hfvt = fvtool([Hd1,Hd2],'MagnitudeDisplay','Magnitude');
legend(hfvt,'Original Filter','Power Complementary Version');

The next figure presents the results of applying iirpowcomp to the Chebyshev filter — the power complementary version of the original filter.

See Also

| | |

Was this topic helpful?