Find a stable transfer function G(z)G(z) such that |G(z)|=|H(z)||G(z)|=|H(z)|

信息处理 infinite-impulse-response z-transform transfer-function poles-zeros stability
2022-01-26 18:13:10

Consider the following causal IIR transfer function:

H(z)=2z34z2+9(z3)(z2+z+0.5)

Is H(z)G(z)|G(z)|=|H(z)|

Now obviously the transfer function is not stable due to the pole at z=3z=1/3

And so G(z)=2z34z2+9(z1/3)(z2+z+0.5)

The solutions however go G(z)=2z34z2+9(13z)(z2+z+0.5)G(z)=H(z)A(z)A(z)=13zz3

That part makes no sense to me, since

H(z)A(z)=(13z)(2z34z2+9)(z3)2(z2+z+0.5)G(z)

Can someone please explain a) what am I doing wrong; and b) why we introduce A(z)

1个回答

Your idea of replacing the pole p outside the unit circle (i.e., |p|>1) with a pole 1/p inside the unit circle is correct. However, as mentioned in this answer, you need to be careful with the scaling. In order to obtain the correct scaling, a factor (zp) in the denominator must be replaced by a factor ±|p|(z1/p). In that way the magnitude of the transfer function will be unchanged on the unit circle, i.e., for |z|=1. This should also be added to the problem formulation:

... such that |G(z)|=|H(z)| for |z|=1.

Clearly, the new stable transfer function G(z) can be written as the original transfer function H(z) cascaded with an allpass filter A(z), since |A(z)|=1 for |z|=1:

(1)G(z)=H(z)A(z)|G(z)|=|H(z)|,|z|=1

For the given problem, the transfer function A(z) is given by

(2)A(z)=z313z