Hello, I am struggling to understand this. I understand that it is possible to have a non-causal IIR Filter (since there are poles and zeros with IIR). However, I am given two low-pass filters and two-highpass filters: A(z) = H(z) : Lowpass B(z) = H(-z^-1) : Highpass C(z) = H(z^-1) : Lowpass D(z) = H(-z) : Highpass My thought is in order to have only causal filters you�ll need to add a delay (z^-1) to C(z) and D(z). Thanks This message was sent using the Comp.DSP web interface on www.DSPRelated.com
Converting non-Causal IIR to Causal IIR
Started by ●April 23, 2005
Reply by ●April 23, 20052005-04-23
bdm711 wrote:> Hello, > > I am struggling to understand this. I understand that it is possible to > have a non-causal IIR Filter (since there are poles and zeros with IIR). > However, I am given two low-pass filters and two-highpass filters: > A(z) = H(z) : Lowpass > B(z) = H(-z^-1) : Highpass > C(z) = H(z^-1) : Lowpass > D(z) = H(-z) : Highpass > My thought is in order to have only causal filters you�ll need to add a > delay (z^-1) to C(z) and D(z). Thanks >The non-causal IIR filter has a response that trails off infinitely into the _future_, so a 1-sample delay won't do it. Furthermore, the transformation that you show will make any stable pole into an unstable one, which isn't what you want. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Reply by ●April 23, 20052005-04-23
Tim Wescott wrote: ...> The non-causal IIR filter has a response that trails off infinitely into > the _future_, so a 1-sample delay won't do it. ...All IIRs have responses that extend infinitely into the future (if one ignores numerical issues). Where does causality come in? Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
Reply by ●April 23, 20052005-04-23
Tim Wescott wrote:> The non-causal IIR filter has a response that trails off infinitely > into the _future_, so a 1-sample delay won't do it.Well, to Jerry's point, the response to * an anti-causal IIR filter trails off infinitely into the past. * a causal IIR filter trails off infinitely into the future. * a non-causal (has both causal and anti-causal components) IIR filter trails off infinitely in both directions. In any case, a one sample delay certainly won't do it.> Furthermore, the > transformation that you show will make any stable pole into an > unstable one, which isn't what you want.:-) Ciao, Peter K.
Reply by ●April 24, 20052005-04-24
On Sat, 23 Apr 2005 07:31:51 -0700, Tim Wescott <tim@wescottnospamdesign.com> wrote:>bdm711 wrote: >> Hello, >> >> I am struggling to understand this. I understand that it is possible to >> have a non-causal IIR Filter (since there are poles and zeros with IIR). >> However, I am given two low-pass filters and two-highpass filters: >> A(z) = H(z) : Lowpass >> B(z) = H(-z^-1) : Highpass >> C(z) = H(z^-1) : Lowpass >> D(z) = H(-z) : Highpass >> My thought is in order to have only causal filters you�ll need to add a >> delay (z^-1) to C(z) and D(z). Thanks >> >The non-causal IIR filter has a response that trails off infinitely into >the _future_, so a 1-sample delay won't do it. Furthermore, the >transformation that you show will make any stable pole into an unstable >one, which isn't what you want.Hi Tim, bdm711 should ask his professor for help. Then he should ask his professor how algebra problems such as this increase his (bdm711's) knowledge of signal processing. [-Rick-]
Reply by ●April 24, 20052005-04-24
Jerry Avins wrote:> Tim Wescott wrote: > > ... > >> The non-causal IIR filter has a response that trails off infinitely >> into the _future_, so a 1-sample delay won't do it. ... > > > All IIRs have responses that extend infinitely into the future (if one > ignores numerical issues). Where does causality come in? > > JerryI should never try to be a wiseass late at night. If you want to simulate a non-causal filter by adding delay, you only need to add as much delay as there is "advance" in the non-causal filter. A z-domain filter with poles outside the unit circle is only stable if it is also non-causal, i.e. if the ever-increasing exponential "tail" starts at an infinite "advance" time and leads up to the present. Unfortunately this advance is slightly greater than 1. The real answer, of course, is that he's making an unstable filter and he should go away and figure out how to get the job done in the real world. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Reply by ●April 24, 20052005-04-24
Tim Wescott wrote:> The real answer, of course, is that he's making an unstable filter > and he should go away and figure out how to get the job done in > the real world.Oh, Tim, I don't know: image processing uses non-causal filters quite a bit, and it's reasonably real world. Of course, the trick there is that image processing isn't trying to turn back time when things are "anti-causal". Ciao, Peter K.
Reply by ●April 24, 20052005-04-24
"Peter K." wrote:> > Tim Wescott wrote: > > > The non-causal IIR filter has a response that trails off infinitely > > into the _future_, so a 1-sample delay won't do it. > > Well, to Jerry's point, the response to > > * an anti-causal IIR filter trails off infinitely into the past. > > * a causal IIR filter trails off infinitely into the future. > > * a non-causal (has both causal and anti-causal components) IIR filter > trails off infinitely in both directions. > > In any case, a one sample delay certainly won't do it.Doesn't the notion of delay imply a sense of causality has already been imposed. In image processing which direction do you shift to cause a delay? B-splines are known to be essentially FIR filters and a common method for finding the coefficients that interpolate a set of points is to run an IIR filter over the points once in one direction and once in the reverse direction - the result are the control points for the spline that passes thru the original points. Now which of those directions is toward the future and which is toeard the past. Seems kind of odd to me to attempt to describe non-causal using terms like 'future', 'past' and 'delay' that are intended for describing causal systems. -jim ----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==---- http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups ----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Reply by ●April 24, 20052005-04-24
jim wrote:> Doesn't the notion of delay imply a sense of causality has already > been imposed. In image processing which direction do you shift to > cause a delay?Exactly! Causality in imageprocessing makes no sense whatsoever... is left causal? or right? or up? or down? but it's pretty much the same LTI systems theory that's applied.> B-splines are known to be essentially FIR filters and a > common method for finding the coefficients that interpolate a > set of points is to run an IIR filter over the points once in > one direction and once in the reverse direction - the result > are the control points for the spline that passes thru the > original points. Now which of those directions is > toward the future and which is toeard the past.Any "non real-time" processing will not have much need to introduce causality.> Seems kind of odd to me to attempt to describe non-causal > using terms like 'future', 'past' and 'delay' that are intended > for describing causal systems.Yup! It's always a problem when mathematics introduced in one applied field is adopted by another applied field... and the terminology is carried over without change. Worse still: when the same mathemetics is used in two applied fields... and the terminology is different (e.g. statistics vs signal processing). :-) Ciao, Peter K.
Reply by ●April 25, 20052005-04-25
in article 426c0a27$1_1@127.0.0.1, jim at "N0sp"@m.sjedging@mwt.net wrote on 04/24/2005 17:05:> B-splines are known to be essentially FIR filtersboy, i think i know what B-splines are but they are really non-sequitur to FIR filters. in fact, like other polynomial interpolation schemes, B-splines are for interpolating between samples with infinite precision of delay (or the time in between samples), unlike polyphase in which we have a finite choice of fractional sample delays. i guess, given a fractional delay, the B-spline, like any other polynomial interpolation and like any other polyphase interpolation, gives you an N tap FIR for an N-1 order spline.> and a common method > for finding the coefficients that interpolate a set of points is to run > an IIR filter over the points once in one direction and once in the > reverse direction -this is FILTFILT. fine.> the result are the control points for the spline > that passes thru the original points.but what or how is this that running an IIR filter over some data and again in reverse (assuming the IIR filter elongates the data by a finite amount), how does that give us control points for the spline that passes thru the original points? this has to be some particular IIR, right Jim? the frequency response of an (N-1)th order B-spline is sinc^N(f) (normalized f). how does an IIR invert that frequency response perfectly so that after the IIR, applying the B-spline hits the original points perfectly? or do you intend to mean approximately? the sinc^N(f) function has N compound zeros at every multiple of j (except 0) on the s-plane. how could a digital IIR put in poles close to those zeros without first oversampling? sorry to be curious, but i cannot understand what you're saying, Jim. (wide open for invective response.) -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."






