Prev: CompIMAGE 2010: Call for Short Communications
Next: Please help a newbie: Matlab freqz.m -- Plotting a functions frequency response
From: robert bristow-johnson on 27 Jan 2010 14:41 On Jan 25, 3:55 pm, adamchapman <adamchapman1...(a)hotmail.co.uk> wrote: > Im trying to implement a zero-lag butterworth filter as described in > tha paper athttp://www3.uta.edu/faculty/ricard/Grad%20Biomech/Pezzack/Robertson%2... > > My understanding is that the output of the filter needs to be reversed > and passed back through the filter a second time, but this time with > the data in reverse. are you referring to what is commonly called "filtfilt"? if so, the end response is not a butterworth, but some filter with |H (w)|^2. > I think that in eqn(7) of the paper; for the second pass through the > filter, I just replace the x's with the output of the first filter > pass, but the data multiplied by the "b" coefficients puzzle me. I > suppose they would be replaced with previous outputs of the second > filter pass. > > However, I don't see how the data is reversed for this second pass. is this real time? if not real time, isn't it obvious? but if it *is* real time, then one does it with a buffer and blocks of samples, and there's an issue of overlap-adding the results with those of the previous block. but it won't be *zero* lag. the end result will be constant delay for all frequencies, which can be considered "zero-lag" along with this known and fixed delay. r b-j |