in [DSP]

Prev: DSS Interface
Next: Hackers delight
From: Jerry Avins on 26 Jul 2010 13:44 On 7/26/2010 11:19 AM, Demus wrote: > Hello, > > This might be a silly question, but I can't figure out what implications > the phase of a transfer function has for causality. > > If I pass a signal to a filter and pass the output to the inverse filter... > my intuition of causality tells me then that the output of the inverse > filter can not be the same as what enters the first filter. > And by 'can not be the same' I mean to include it's place in time. It > should have the same shape but not occur at the same time, which would then > suggest that the result is a pure time delay. > > However, when I simulate this situation in simulink I get the opposite > result, the two signals have the same time coordinates as well, so I guess > my intuition is off. > > (By the same token, in my opinion the phase of a causal system can't really > be said to be negative, at least not when the inputs and outputs are > non-stationary signals...) > > Can someone please explain this situation to me, perhaps including how > phase relates to causality? Maybe I don't get it, but negative phase and negative delay are not the same thing. Consider a non-causal gunfight. In it, someone could be felled by a bullet before the gun that launches it is fired. That is simply not The Way of the World. Every filter that changes a signal has a delay at least at some frequencies. A filter that undoes the changes has delay of its own. Only of the undoing filter has negative delay can the overall delay be zero. A negative delay of results from Belmont would be interesting! Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
From: maury on 26 Jul 2010 13:50 On Jul 26, 10:33 am, Rune Allnor <all... (a)tele.ntnu.no> wrote:> On 26 Jul, 17:19, "Demus" <sodemus (a)n_o_s_p_a_m.hotmail.com> wrote:> > > Hello, > > > This might be a silly question, but I can't figure out what implications > > the phase of a transfer function has for causality. > > > If I pass a signal to a filter and pass the output to the inverse filter... > > my intuition of causality tells me then that the output of the inverse > > filter can not be the same as what enters the first filter. > > And by 'can not be the same' I mean to include it's place in time. It > > should have the same shape but not occur at the same time, which would then > > suggest that the result is a pure time delay. > > > However, when I simulate this situation in simulink I get the opposite > > result, the two signals have the same time coordinates as well, so I guess > > my intuition is off. > > I think this has to do with the way you simulate the system. > If the output of the filter is fed straight into the input > of the inverse, with no delay elements in between, I wouldn't > be surprised if the overall delay is negligable. Provided the > inverse is well-behaved(stable & causal), numerical issues are > neglegable, etc. > > Rune In Matlab, if he models the filter and inverse filter as a matrix multiplication to eliminate FOR loops, then the output is not causal because of how Matlab works. Even if he models the filter in a FOR loop to get a 'sample-by-sample' output, and then feeds it to the inverse filter, he will still not see the effects of causality because the filter output is completely resolved before being applied to the inverse filter. Using Matlab, if he wants to see the effects of causality, he must model the inverse filter as a FOR loop INSIDE the FORr loop of the filter. That way, the filter and inverse filter outputs are calculated 'sample-by-sample' and the effects of causality will be evident. Maurice
From: Jerry Avins on 26 Jul 2010 13:51 On 7/26/2010 11:49 AM, Tim Wescott wrote: ... > Your intuition is good, you are just not modeling the world well enough. > > The four things that you are not modeling in Simulink are the fact that > no real system is minimum phase, no real system has a finite order, no > real system is noise free, and no real system can be known completely. > > No real system has finite order. There are always low-pass processes > lurking in the upper frequency ranges of any system you may choose to > model, and the harder you look for these low-pass processes the more > you'll find. A simple R-C low-pass filter has one pole because of the > capacitor, right? But it has another one because of the inductance of > the resistor leads. If you look further, it has more because of the > capacitance of the resistor to "the world". Look further yet and you'll > find that the propagation of electromagnetic energy through (or around) > the resistor and cap is limited by the speed of light. Go even deeper > and you find that as the wavelength decreases, at some point the system > just reflects the energy, or becomes transparent, or whatever. That's all beside Demus's point. Ignoring those details (and most of the time, we all do) won't wash the delay out of a correct simulation. ... Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
From: Demus on 26 Jul 2010 14:02 Thanks Jerry, I appreciate your explanation (Yeah, the explanation about the effects of unaccounted dynamics was a little aside my point, nonetheless interesting though)! It is due to a stationarity assumption the time-delay is not phase/frequency, right? I think that's what messes with my mind...
From: Tim Wescott on 26 Jul 2010 14:13
On 07/26/2010 10:51 AM, Jerry Avins wrote: > On 7/26/2010 11:49 AM, Tim Wescott wrote: > > ... > >> Your intuition is good, you are just not modeling the world well enough. >> >> The four things that you are not modeling in Simulink are the fact that >> no real system is minimum phase, no real system has a finite order, no >> real system is noise free, and no real system can be known completely. >> >> No real system has finite order. There are always low-pass processes >> lurking in the upper frequency ranges of any system you may choose to >> model, and the harder you look for these low-pass processes the more >> you'll find. A simple R-C low-pass filter has one pole because of the >> capacitor, right? But it has another one because of the inductance of >> the resistor leads. If you look further, it has more because of the >> capacitance of the resistor to "the world". Look further yet and you'll >> find that the propagation of electromagnetic energy through (or around) >> the resistor and cap is limited by the speed of light. Go even deeper >> and you find that as the wavelength decreases, at some point the system >> just reflects the energy, or becomes transparent, or whatever. > > That's all beside Demus's point. Ignoring those details (and most of the > time, we all do) won't wash the delay out of a correct simulation. Perhaps I misread his post, then. Certainly in my grad student days I tutored students who had a good grasp of physical reality, but had to be told that the theorems they were being taught had limits that had to be taken into account. In the mathematical world you can take a minimum-phase transfer function, you can find a stable, causal inverse, you can multiply this by the original transfer function, and you can get a cascade of transfer functions whose impulse response is unity. You can do this regardless of whether you're in discrete or continuous time. Then you can go and simulate this behavior, and if you don't pay attention to all the points that I raised, you can get a simulation that "tells" you that a real system really is perfectly invertible. The only problem with it is that it is wrong. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html |