Zero Lag Filter

Started by JohnEhlers 5 years ago4 replieslatest reply 5 years ago501 views

I was pushing poles and zeros around on and found an interesting effect.  First, I established a simple two pole lowpass filter.  It's lag (group delay) is about 3.5 samples.  This is shown in the first screen capture.  Then I added a pair of conjugate zeros inside the poles on the same radials.  The result is "zero group delay" without much impact on the amplitude response,LowPass.jpgZeroLag.jpg  as shown in the second screen capture.  How is this possible?  I verified in the Octave program that the lag was reduced to about 2 samples.  Is there a process to really design such "zero lag" filters?

[ - ]
Reply by jcalpeApril 25, 2018

Hi John

It is true but remember there is no such thing as a free lunch.

I recommend you to read a brief paper from Kendall Castor-Perry (Jan 2012) 'Prediction and negative-delay filters: Five things you should know'. Kendall is a wise guy.


[ - ]
Reply by JohnEhlersApril 26, 2018

Thanks Javier!

I use a method similar to that of Castor-Perry, but is superior because it doesn't have the amplitude problems in the transfer response.  In my method I first LowPass the input waveform.  Then I take the difference between the waveform and the filter output.  Next, I LowPass filter the difference.  Finally, I add the smoothed difference to the original LowPass filter response.  The result is about as good as it gets.  Some interesting variations can be created because the two LowPass filters are not necessarily constrained to have the same passband.

At a theoretical level, I am still puzzled about the placement of the zeros shown in my screen captures.

[ - ]
Reply by Rick LyonsApril 27, 2018

Hi John. 

Can you post the coefficients of your filter (the filter having poles & zeros) here?  I'd like to "plug" those coefficients into my filter-analysis software.  Thanks.

For other readers, Castor-Perry the paper suggested by Javier can be found at:

[ - ]
Reply by JohnEhlersApril 27, 2018


I actually just found the answer to my problem.  It turns out that shows both the theoretical group delay as the rate change of angle as well as the simulated group delay.  I was looking at the theoretical group delay.  I guess the rate change of phase can actually go negative, but that is of no help in the real world.  There ain't no free lunch after all.

Regarding the coefficients, I just started with a 2 pole Butterworth.