
1. What are "FIR filters"?
FIR filters are one of two primary types of digital filters used in Digital
Signal Processing (DSP) applications (the other type being IIR).
2 .What does "FIR" mean?
"FIR" means "Finite Impulse Response".
3. Why is the impulse response "finite"?
The impulse response is "finite" because there is no feedback in the filter;
if you put in an impulse (that is, a single "1" sample followed by many "0"
samples), zeroes will eventually come out after the "1" sample has made its way
in the delay line past all the coefficients.
4. How do FIR filters compare to IIR filters?
Each has advantages and disadvantages. Overall, though, the advantages of FIR
filters outweigh the disadvantages, so they are used much more than IIRs.
5. What are the advantages of FIR Filters (compared to IIR filters)?
Compared to IIR filters, FIR filters offer the following advantages:
- They can easily be designed to be "linear phase" (and
usually are). Put simply, linear-phase filters delay the input signal, but
don’t distort its phase.
- They are simple to implement. On most DSP
microprocessors, the FIR calculation can be done by looping a single
instruction.
- They are suited to multi-rate applications. By
multi-rate, we mean either "decimation" (reducing the sampling rate),
"interpolation" (increasing the sampling rate), or both. Whether decimating or
interpolating, the use of FIR filters allows some of the calculations to be
omitted, thus providing an important computational efficiency. In contrast, if
IIR filters are used, each output must be individually calculated, even if it
that output will discarded (so the feedback will be incorporated into the
filter).
- They have desirable numeric properties. In practice, all
DSP filters must be implemented using "finite-precision" arithmetic, that is,
a limited number of bits. The use of finite-precision arithmetic in IIR
filters can cause significant problems due to the use of feedback, but FIR
filters have no feedback, so they can usually be implemented using fewer bits,
and the designer has fewer practical problems to solve related to non-ideal
arithmetic.
- They can be implemented using fractional arithmetic.
Unlike IIR filters, it is always possible to implement a FIR filter using
coefficients with magnitude of less than 1.0. (The overall gain of the FIR
filter can be adjusted at its output, if desired.) This is an important
consideration when using fixed-point DSP's, because it makes the
implementation much simpler.
6. What are the disadvantages of FIR Filters (compared to IIR
filters)?
Compared to IIR filters, FIR filters sometimes have the disadvantage that
they require more memory and/or calculation to achieve a given filter response
characteristic. Also, certain responses are not practical to implement with FIR
filters.
7. What terms are used in describing FIR filters?
- Impulse Response - The "impulse response" of a
FIR filter is actually just the set of FIR coefficients. (If you put an
"impulse" into a FIR filter which consists of a "1" sample followed by many
"0" samples, the output of the filter will be the set of coefficients, as the
1 sample moves past each coefficient in turn to form the output.)
- Tap - A FIR "tap" is simply a coefficient/delay
pair. The number of FIR taps, (often designated as "N") is an indication of 1)
the amount of memory required to implement the filter, 2) the number of
calculations required, and 3) the amount of "filtering" the filter can do; in
effect, more taps means more stop band attenuation, less ripple, narrower
filters, etc.)
- Multiply-Accumulate (MAC) - In a FIR context, a
"MAC" is the operation of multiplying a coefficient by the corresponding
delayed data sample and accumulating the result. FIRs usually require one MAC
per tap. Most DSP microprocessors implement the MAC operation in a single
instruction cycle.
- Transition Band - The band of frequencies between
pass band and stop band edges. The narrower the transition band, the more taps
are required to implement the filter. (A "small" transition band results in a
"sharp" filter.)
- Delay Line - The set of memory elements that
implement the "Z^-1" delay elements of the FIR calculation.
- Circular Buffer - A special buffer which is
"circular" because incrementing at the end causes it to wrap around to
the beginning, or because decrementing from the beginning causes it to
wrap around to the end. Circular buffers are often provided by DSP
microprocessors to implement the "movement" of the samples through the FIR
delay-line without having to literally move the data in memory. When a new
sample is added to the buffer, it automatically replaces the oldest one.