2
$\begingroup$

Now that we can operate in the frequency domain by way of FFT. We can implement ideal lowpass, highpass and bandpass digital filters. then why there many textbooks talk about designing digital Butterworth filter, digital Chebyshev filter etc, by the so called impluse invariance method, bilinear transform method?

I cannot warp my mind around this.

Thanks a lot!

$\endgroup$
  • 2
    $\begingroup$ better learn what "fast convolution", "Overlap-Add", and "Overlap-Save" mean. FFT is no panacea. $\endgroup$ – robert bristow-johnson Oct 16 '14 at 14:51
  • 2
    $\begingroup$ Who says we can implement an ideal low pass filter? I guess you misunderstand filtering using the FFT. $\endgroup$ – Matt L. Oct 16 '14 at 15:01
  • $\begingroup$ @MattL. Can you help to point out where I am wrong? thanks. $\endgroup$ – Robert Fan Oct 16 '14 at 15:18
  • $\begingroup$ Check out the answers to this question. $\endgroup$ – Matt L. Oct 16 '14 at 15:28
2
$\begingroup$

Simply put, the digital implementations of the IIR filters (bilinear) are much cheaper in terms of computation time and memory. An FIR or FFT takes much longer to process than an IIR, and requires much more memory.

An FIR requires you have a buffer of the length of the FIR, and another buffer to hold the FIR values. For every sample, you must convolve these two buffers. Since FIR filters are often very long (hundreds of taps) it can be difficult to get enough memory or processing power in a small embedded system.

Even in desktop systems where you have gigabytes of RAM and gighertz of processing speed you can run more filters using IIR than you can FIR filters.

On a desktop PC, your main limit would be processing speed rather than memory. In an embedded system, you often have limits on memory and processing speed.

Using an IIR implemtation let you get away with cheaper hardware or to get more out of the hardware you have.

An IIR filter can be implemented with a handful of multiply and add steps for each sample. An FIR requires as many multiply and add steps as the length of the filter. Using the FFT to implement the FIR will save you some computation, but it will still take much more processing and ram than the IIR.

Another thing is that an IIR filter with a sharp cutoff isn't much more complicated than one with a shallower cutoff. An FIR requires some minimum of taps to work at all (depending on sampling rate and cutoff frequency,) and making it sharp and clean requires a greate many more taps than that minimum.

| improve this answer | |
$\endgroup$

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.