Finite impulse response filter
What Is a Finite Impulse Response Filter?
A finite impulse response (FIR) filter is a type of digital filter whose output depends on a finite number of past and present input samples, with no feedback from previous outputs. When the filter receives an impulse as input, its response decays to zero after exactly N samples, where N is the filter length. This bounded behavior distinguishes FIR filters from infinite impulse response (IIR) filters, which use output feedback and can sustain nonzero responses indefinitely. FIR filters are implemented by forming a weighted sum of the current and past N-1 input samples, a computation equivalent to a discrete convolution.
FIR filters occupy a central place in digital signal processing. Their properties emerge from the mathematical structure of the convolution operation and the Z-transform, tools developed through the mid-twentieth century as digital computers made sampled-data systems practical. An analog FIR filter can be implemented using tapped delay lines, as in a surface acoustic wave (SAW) filter, which forms a continuous-time analog to the digital FIR structure and is listed among the related topics for this subject.
Linear Phase and Stability
The most important practical property of FIR filters is that they can achieve exactly linear phase response over their entire passband when the filter coefficients are symmetric about the center tap. Linear phase means that all frequency components of the input are delayed by the same constant number of samples, preserving the waveshape of the filtered signal. This property is essential in audio processing, data communications, and medical instrumentation, where phase distortion can corrupt the information carried by the signal. Because FIR filters contain no feedback, they are unconditionally stable for any finite coefficient values, a guarantee that IIR filters cannot offer. The DSP-related FIR filter reference provides detailed derivations of the symmetry conditions that produce the four standard linear-phase FIR filter types.
Design Methods
FIR filter design is the process of selecting coefficient values such that the filter's frequency response approximates a desired specification, typically expressed as passband ripple, stopband attenuation, and transition bandwidth. The window method is the simplest approach: the ideal (infinite-length) impulse response is truncated by multiplying it with a finite window function such as a Hamming, Hann, or Kaiser window, each offering a different tradeoff between stopband attenuation and transition width. The Parks-McClellan algorithm, based on the Chebyshev equiripple approximation, produces optimal minimax designs that distribute the approximation error uniformly across the passband and stopband and is available as a standard routine in software environments including MATLAB and SciPy. Frequency sampling methods specify the desired response at a discrete set of frequencies and solve for the coefficients directly. Detailed algorithmic descriptions and worked design examples appear in MATLAB's Signal Processing Toolbox documentation for FIR filter design.
Computational Requirements
The primary disadvantage of FIR filters is computational cost. Achieving sharp transition bands, such as those needed for anti-aliasing at high sample rates, can require hundreds or thousands of taps, each requiring a multiply-accumulate operation per output sample. IIR designs with far fewer coefficients often meet the same magnitude specification, though without the linear-phase guarantee. Efficient hardware implementations use dedicated multiply-accumulate (MAC) units and polyphase decompositions to reduce the arithmetic workload, and FIR structures map cleanly onto programmable DSP processors and FPGAs because of their regular, parallel structure.
Applications
A finite impulse response filter has applications in a range of fields, including:
- Anti-aliasing and reconstruction filtering in analog-to-digital and digital-to-analog conversion
- Equalization and pulse shaping in digital communications
- Biomedical signal processing for ECG, EEG, and neural recording
- Audio crossover networks and hearing aid processing
- Image processing for edge detection and smoothing