I am curious about the usefulness of IIR filters above 2nd order in DSP applications. I know that first order IIR's are common, and presumably so are biquads. I suppose some audio reverberators are greater than 2nd order. Can anyone give examples of other uses for higher-order IIR filters? What about 3rd or higher order Butterworth, Chebyshev, or Elliptic IIR filters?
thanks,
Neil
In my personal experience I've only ever needed IIR filters when I needed an LPF that had a very narrow bandwidth. They're very good for that since the complexity of a FIR gets untenable as the BW goes way down. An example is a doppler multipath channel filter for a communication system simulation. Even if the signal has many MHz of bandwidth (so the sample rate of the system must support that), the doppler multipath model may need a filter that is only tens or hundreds of Hz wide. An IIR is a very good solution for that.
A resampled FIR is also a very good solution for this case (even decimating to implement the LPF and interpolating after if the higher sampling rate is needed). This approach will be quite competitive in resources compared to the IIR without the IIR challenges, especially if overall latency is not a concern (as an example of this, see https://dsp.stackexchange.com/a/79441/21048).
Hi,
Good point! Thanks,
Neil
I use higher order Chebyshev and Elliptic IIR filters, and just split them up into biquad sections. My understanding is that higher order filters in a single section can be numerically unstable, but I haven't actually tried one to see it go unstable. I like IIR filters for embedded applications because of the efficiency of implementation, and also the lower group delay.
Tim
I would say that implementation wise, when a FIR filter starts to have too many coefficients, an IIR is always a better solution. Typically when you start to think IIR architecture in terms of Lattice Digital Wave filters, the divergence tends to be a minor problem.
Some Audio applications (real-time) are particularly sensitive to group delay, that's why they use extensively IIR filters. Linear phase (non-constant group delay) is something that you can reduce by increasing the order of the filter.
In Telecom application (DFE) There is a lot of up/down conversion where FIR filtering is essentially used.
I per my understanding, FIR filters are used when there is a concern of group delay (like in Audio applications), because of their linear relationship with phase (thus produces a constant Group Delay).
Why do we use IIR filters for that? As I think one of the reasons could be to reduce the complexity of the system.
I would be glad if you could explain a little be more about the use of IIR filters in audio systems.
Thank you
As I said in my post, the linearity of the phase is something that you can handle by increasing slightly the IIR order. You can achieve easily an almost constant (up to a sample) group delay on 85-90% of the passing band.
The big interest of the IIR is that it will have a much lower group delay. When you play music, you need to have feedback to be able to listen to your partners when you play. If the feedback is delayed by 10ms it is a problem because you won't play on the same beat as the others.
I‘d like to point out that there certainly exist asymmetric FIR filters with non-linear phase responses. For example, you can convert the frequency response of any FIR filter into cepstrum, truncate and inverse transform to get a minimum-phase version of the original FIR filter. The group delay properties of such a FIR filter can be compared to an all-pole IIR system.
In the design of anti-aliasing filters, we have very often used IIR filters. They are almost alway elliptic designs. They are also most often higher order than second. In telecom applications for speech, we have used a 3rd order high-pass notch for the bottom end, and a 6th or 7th order low-pass for the top end.
The high-pass notch allows for the suppression of 50 or 60 Hz power line components.
However, the higher order filters are also almost always implemented as cascaded biquads.
Many of the A/D and D/A front ends we have done have used a multiple stage approach to the implementation fo the antialiasing process. Very often the basic A/D or D/A is a sigma-delta design with a cascade of either CIC or other decimation techniques, but we have often used a final stage of IIR filtering at an intermediate rate before the final decimation to the desired sampling rate.
An IIR filter is very useful for replicating the response of an analogue filter, using very little DSP resource and imposing very little latency. One example is loudspeaker crossover filters for professional audio applications. Although linear phase (using FIRs) is sometimes desirable, the price paid in latency is often unacceptable for live applications. The most popular IIR filter for this is 4th order using the Linkwitz-Riley (Butterworth Squared) alignment. Some loudspeakers require higher-order high-pass filters to prevent delicate tweeters from being damaged by low frequencies.
As probbie already pointed out, IIR filters are necessary, if we want comparable results as with analogue filters. That's the reason why I use them:
Previously we had analogue butterworth filters of 4th order (separate highpass and lowpass), then I replaced them with 4th-order-IIR-filters.
This has been especially important because in our product the filters are calibrated on the flanges (-20dB down). So the digital filters must have very similar behavior and that's not possible with FIR.
However, I encountered a big challenge when trying to design a 1.5Hz HPF (butterworth 4th-order, sequence of Biquads) @ 48kS/s. After a time of around 20 minutes, the filter failed, repeatedly. It cost me a lot of investigation time to find out that the filter coefficients had been wrong and why.
In the end I realized that Matlab was not able to calculate them with sufficient precision, and (a second flaw) their stability check failed (quite some years ago).
Calculating everything manually with Excel gave me slightly different values and the problem was gone.
Ergo: IIR filters need not many coefficients, but they require immense resolution in calculation - otherwise you might end up with unstability, especially with HPFs.
I would always use them again, but always with due respect!
Generally speaking, you can say that IIR filters only need special attention if you want to design filters with high Q and/or f << Fs - then the precision of the coefficients becomes very important and also the bitwidth of the intermediate stages (can they handle very tall numbers? A problem in fixed-point designs).
However, If you want to design, say, a second order filter with Q<3 @1kHz and Fs is 48kHz - you should have no problem with just any implementation...
Malcom Slaney used a system cascading 4 2nd-order IIRs in his implementation of the Gammatone filterbank for psychoacoustic simulations. Each impulse response is first defined in time-domain, like literally a gamma function times a sinusoid ("gammatone"), then brought to s-domain using Laplace transform and approximated by a pole-zero form.
M. Slaney. ``An Efficient Implementation of the Patterson-Holdsworth Auditory Filter Bank." Apple Computer Technical Report. Vol. 35. 1993.
https://pdfs.semanticscholar.org/d79e/44e2635674e2...
He actually tried making them into one 8-th order IIR. But it was later pointed out by Julius O. Smith at CCRMA that the 8-th order version is unstable at channel frequencies below 500 Hz.
As mentioned by
audio telephony Codecs are using IIR, the main reason being the complexity and lower group-delay compared to FIR interpolator/decimator. ITU standard gives recommendation for the group-delay distortion below 2kHz which makes IIR filter design tough at Fs=8kHz, but nowadays Fs is often 16 or 48kHz, so the delay distortion is no more an issue, in telephony.