0
$\begingroup$

I'm interested in specifying a digital low pass filter with low (and near constant) pass band group delay. I tried python's spicy.signal.minimum_phase to transform a linear phase FIR low pass filter to minimum phase, but there was a steep price in stop-band rejection level.

Is there a "standard" approach to this problem?

$\endgroup$
1
  • 1
    $\begingroup$ You could use an IIR filter $\endgroup$
    – Ben
    Mar 22 at 20:18
5
$\begingroup$

Minimum phase filters will not give you a near constant group delay. You can design a non-linear phase FIR filter with a linear desired passband phase with a specified group delay that is smaller than the group delay of the corresponding linear phase filter. If you use a least-squares criterion, this is equivalent to solving a system of linear equations.

As an example, take an FIR lowpass with $61$ taps. The group delay of a linear-phase filter would be $30$ samples. Now we specify a group delay of $20$ samples instead:

w = pi * [linspace(0,.2,100), linspace(.25,1,375)];   % frequency vector
D = [exp(-1i*w(1:100)*20), zeros(1,375)];   % desired complex frequency response
W = ones(1,475);   % unity weighting
h = lslevin(61,w,D,W);   % least squares design

The function lslevin.m can be found here.

The result looks like this:

enter image description here

Note that the passband group delay is of course not exactly constant, but the desired group delay of $20$ samples is approximated quite accurately over a large part of the passband.

Trying to achieve a low group delay in the passband comes with a penalty in the magnitude response. The figure below shows the magnitude and group delay responses of $4$ length $61$ FIR lowpass filters with different desired group delays in the passband. One is a linear phase filter with a constant group delay of $30$ samples, and the other $3$ filters are non-linear phase low delay filters with specified passband group delays of $25$, $20$, and $15$ samples respectively. Clearly, the magnitude response deteriorates with decreasing desired passband group delay.

enter image description here

$\endgroup$
1
  • $\begingroup$ This looks good. I'll try to get it running in octave to play with it. $\endgroup$
    – rhz
    Mar 24 at 1:00
1
$\begingroup$

Is there a "standard" approach to this problem?

Not really. It's a fundamental trade off that needs to be fine tuned according do your specific requirements. By definition, minimum phase filters have the lowest possible overall group delay. However, it's not flat. As a first order approximation, the phase is proportional to the slope of the attenuation, so you are going to get phase transients and and high group delay specifically around the roll off: the steeper the roll-off the higher the group delay.

This being said, typical IIR lowpass filters have relatively low and constant group delay once your are sufficiently below the cutoff frequency.

$\endgroup$
1
  • $\begingroup$ Are there any particular standard IIR filter designs known for especially low, near constant in-band group delay? $\endgroup$
    – rhz
    Mar 22 at 23:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.