DSPRelated.com
Forums

Inverse of Non Minimum Phase System

Started by gokul_s1 June 12, 2007
Suppose one takes a simple non minimum phase system with the z transform

H(z) = 1 - 2*z. This system can obviously not be inverted as the pole will
lie outside the unit circle (inversion will lead to unstable impulse
response).

However if one tries to invert this system using Y(w) = 1/H(w) and then
take the IFFT I do end up with a time domain impulse response y(t) (y(t) =
IFFT(Y(w))) which is bounded. 

I am wondering where is the discrepancy? Would appreciate any insight into
this problem

Thanks
-Gokul
gokul_s1 wrote:
> Suppose one takes a simple non minimum phase system with the z transform > > H(z) = 1 - 2*z. This system can obviously not be inverted as the pole will > lie outside the unit circle (inversion will lead to unstable impulse > response). > > However if one tries to invert this system using Y(w) = 1/H(w) and then > take the IFFT I do end up with a time domain impulse response y(t) (y(t) = > IFFT(Y(w))) which is bounded. > > I am wondering where is the discrepancy? Would appreciate any insight into > this problem >
Do you mean H(z) = 1 - 2/z? H(z) = 1 - 2*z describes a non-causal system, but one with a stable zero. I'll assume you mean the former, and that 1/H(z) = z / (z - 2). The Fourier transform* is agnostic to causality, and a pole at |z| > 1 is only unstable if it is causal -- if you take the poles that lie outside the unit circle as running backward in time then they are perfectly stable. The only poles that really give the Fourier transform trouble are the ones that lie right _on_ the stability boundary, and even their effects can be side stepped. So when you find the inverse Fourier transform of your "unstable" system the math takes it as a stable, non-causal system, i.e. h(k) = u(-k+1)2^(-k), where u(k) = 0 for all k < 0 and 1 for all k >= 0. * Note that this is also the case with the continuous-time Fourier transform -- causality means nothing, but every pole with a real part is stable. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" gives you just what it says. See details at http://www.wescottdesign.com/actfes/actfes.html
That makes perfect sense. Thanks for the reply.

-Gokul


>Do you mean H(z) = 1 - 2/z? H(z) = 1 - 2*z describes a non-causal >system, but one with a stable zero. > >I'll assume you mean the former, and that 1/H(z) = z / (z - 2). > >The Fourier transform* is agnostic to causality, and a pole at |z| > 1 >is only unstable if it is causal -- if you take the poles that lie >outside the unit circle as running backward in time then they are >perfectly stable. The only poles that really give the Fourier transform
>trouble are the ones that lie right _on_ the stability boundary, and >even their effects can be side stepped. > >So when you find the inverse Fourier transform of your "unstable" system
>the math takes it as a stable, non-causal system, i.e. h(k) = >u(-k+1)2^(-k), where u(k) = 0 for all k < 0 and 1 for all k >= 0. > >* Note that this is also the case with the continuous-time Fourier >transform -- causality means nothing, but every pole with a real part is
>stable. > >-- > >Tim Wescott >Wescott Design Services >http://www.wescottdesign.com > >Do you need to implement control loops in software? >"Applied Control Theory for Embedded Systems" gives you just what it
says.
>See details at http://www.wescottdesign.com/actfes/actfes.html >
Can any one clarify a confusion i have,
In this particular example, if I use a pole at 0.5 (inside the unit
circle), shouldnt i get the desired result? I mean I will get a valid
inverse! This inverse is stable also.

On Jun 13, 1:48 am, Tim Wescott <t...@seemywebsite.com> wrote:
> gokul_s1 wrote: > > Suppose one takes a simple non minimum phase system with the z transform > > > H(z) = 1 - 2*z. This system can obviously not be inverted as the pole will > > lie outside the unit circle (inversion will lead to unstable impulse > > response). > > > However if one tries to invert this system using Y(w) = 1/H(w) and then > > take the IFFT I do end up with a time domain impulse response y(t) (y(t) = > > IFFT(Y(w))) which is bounded. > > > I am wondering where is the discrepancy? Would appreciate any insight into > > this problem > > Do you mean H(z) = 1 - 2/z? H(z) = 1 - 2*z describes a non-causal > system, but one with a stable zero. > > I'll assume you mean the former, and that 1/H(z) = z / (z - 2). > > The Fourier transform* is agnostic to causality, and a pole at |z| > 1 > is only unstable if it is causal -- if you take the poles that lie > outside the unit circle as running backward in time then they are > perfectly stable. The only poles that really give the Fourier transform > trouble are the ones that lie right _on_ the stability boundary, and > even their effects can be side stepped. > > So when you find the inverse Fourier transform of your "unstable" system > the math takes it as a stable, non-causal system, i.e. h(k) = > u(-k+1)2^(-k), where u(k) = 0 for all k < 0 and 1 for all k >= 0. > > * Note that this is also the case with the continuous-time Fourier > transform -- causality means nothing, but every pole with a real part is > stable. > > -- > > Tim Wescott > Wescott Design Serviceshttp://www.wescottdesign.com > > Do you need to implement control loops in software? > "Applied Control Theory for Embedded Systems" gives you just what it says. > See details athttp://www.wescottdesign.com/actfes/actfes.html
On Thu, 14 Jun 2007 09:15:02 +0000, mobi wrote:
(top posting fixed)
> On Jun 13, 1:48 am, Tim Wescott <t...@seemywebsite.com> wrote: >> gokul_s1 wrote: >> > Suppose one takes a simple non minimum phase system with the z transform >> >> > H(z) = 1 - 2*z. This system can obviously not be inverted as the pole will >> > lie outside the unit circle (inversion will lead to unstable impulse >> > response). >> >> > However if one tries to invert this system using Y(w) = 1/H(w) and then >> > take the IFFT I do end up with a time domain impulse response y(t) (y(t) = >> > IFFT(Y(w))) which is bounded. >> >> > I am wondering where is the discrepancy? Would appreciate any insight into >> > this problem >> >> Do you mean H(z) = 1 - 2/z? H(z) = 1 - 2*z describes a non-causal >> system, but one with a stable zero. >> >> I'll assume you mean the former, and that 1/H(z) = z / (z - 2). >> >> The Fourier transform* is agnostic to causality, and a pole at |z| > 1 >> is only unstable if it is causal -- if you take the poles that lie >> outside the unit circle as running backward in time then they are >> perfectly stable. The only poles that really give the Fourier transform >> trouble are the ones that lie right _on_ the stability boundary, and >> even their effects can be side stepped. >> >> So when you find the inverse Fourier transform of your "unstable" system >> the math takes it as a stable, non-causal system, i.e. h(k) = >> u(-k+1)2^(-k), where u(k) = 0 for all k < 0 and 1 for all k >= 0. >> >> * Note that this is also the case with the continuous-time Fourier >> transform -- causality means nothing, but every pole with a real part is >> stable. >> > Can any one clarify a confusion i have, > In this particular example, if I use a pole at 0.5 (inside the unit > circle), shouldnt i get the desired result? I mean I will get a valid > inverse! This inverse is stable also. >
To invert the system it must have a transfer function with the following properties: * a numerator with the same order as the denominator * the numerator roots (i.e. the transfer function zeros) must be stable Then you can invert the system. In your case if you have some stable pole and a stable _zero_ (say at z = 0.5) then you could invert the system. -- Tim Wescott Control systems and communications consulting http://www.wescottdesign.com Need to learn how to apply control theory in your embedded system? "Applied Control Theory for Embedded Systems" by Tim Wescott Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
On Jun 12, 6:48 pm, Tim Wescott <t...@seemywebsite.com> wrote:
> > The Fourier transform* is agnostic to causality, and a pole at |z| > 1
I think this is incorrect: the Fourier transform is in fact very much "gnostic" of causality as demonstrated by the Paley-Wiener Theorem: A positive function A(f) = |X(f)| is the amplitude characteristic of a Fourier transform X(f) of a causal signal x(t) if and only if the integral of ln(A(f))/(1+f^2) is convergent. (Actually, while it is never said this way in engineering books, the theorem should be stated as that the integral of ln(A(f))/(1+k.f^2) is convergent for any positive k scale factor for x(t) to be causal.) Note also that the Hilbert transform relations between the real and imaginary parts of the Fourier transform hold for minimum phase and causal functions.