14
$\begingroup$

Designing a simple 2nd order IIR bandpass Buterworth filter with a centre frequency of 500 Hz and a 1 octave bandwidth gives me the following frequency response ...

enter image description here

Now, if I take the impulse response and normalise it and convert it to dB, we can observe the decay of the impulse response.

enter image description here

The decay of the impulse response is approximately linear with time when plotted on this scale, allowing us to define a decay time statistic (just like in room acoustics where you can define reverb time). For the impulse response of this filter to drop below 30 dB, it takes about 11 ms.

We are trying to minimize this decay time keeping the following constant:

  • -3 dB bandwidth
  • Filter order

I am happy to accept (within limits) passband and stopband ripple, and/or a compromise on the steepness of the transition band to achieve this. Can anyone suggest a method for filtering with the shortest possible impulse response duration as defined above?

$\endgroup$
7
  • 2
    $\begingroup$ Please include sampling frequency, to give those 11ms some meaning. $\endgroup$
    – Juancho
    Commented May 31, 2012 at 14:13
  • 4
    $\begingroup$ Poles in the filter will yield exponentially-decaying terms in the impulse response, which when plotted on a log scale gives a linear decay, as you showed. The rate of decay is related to the poles' distance to the unit circle; the closer they are, the slower the decay. The steepness of the transition band is also related to how close the poles are to the unit circle. I don't know of any design techniques off hand that would allow you to prioritize this particular characteristic. $\endgroup$
    – Jason R
    Commented May 31, 2012 at 14:16
  • $\begingroup$ @ Juancho Sample rate was omitted as I thought it was completely irrelevant: using 5 kHz or 500 kHz does not change the decay rate of the impulse response. I am targeting 44.1 kHz if you are curious. Thanks for looking :) $\endgroup$
    – learnvst
    Commented May 31, 2012 at 14:19
  • 2
    $\begingroup$ @JimClay yes you can I'm sure, but I want to keep computational cost very low. To efficiently use Fir I'd need to use an fft based technique, and this would introduce latency to the algorithm while the FFT buffer is filled with samples. Yes/no? $\endgroup$
    – learnvst
    Commented May 31, 2012 at 21:28
  • 3
    $\begingroup$ @JimClay why do the laws of physics always halt my plans for world domination! Grumble grumble $\endgroup$
    – learnvst
    Commented Jun 1, 2012 at 14:51

2 Answers 2

8
$\begingroup$

The Butterworth filter's frequency response is the result of specific formulas and its characteristic is the flat passband frequency response. Consequently, if the coefficients of the IIR filter are modified in any way, the filter might not maintain the "Butterworth" characteristics.

In addition to the responses by "Hilmar" and "Jason R", maybe you could treat this as an optimisation problem of a fitness function that captures your specifications.

You could for example start with some design (e.g. a Butterworth filter) and then use an optimisation technique to move the zeros and poles about their locations (or modifying the design by adding / removing poles and zeros) trying to achieve your specifications (a sharper time-domain roll-off maintaining bandwidth and filter order).

Along this line, a large amount of work has been performed on designing filters with Genetic Algorithms (and here) and Simulated Annealing (and here) which you might find useful.

$\endgroup$
6
$\begingroup$

There is no magic bullet, I'm afraid. You can use an elliptic filter to independently control pass band ripple and stop band attenuation, however you will find that the decay rate is closely related to the steepness and overall bandwidth of the filter. You can make the filter decay drastically faster by reducing the filter order to 1, but then again the filter will be a lot less steep.

$\endgroup$
1
  • $\begingroup$ Can't reduce the filter to first order as it is being used in a Linkwitz-Riley type of network, but thankyou so much for taking the time to respond +1 $\endgroup$
    – learnvst
    Commented Jun 1, 2012 at 22:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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