What’s the difference between an FIR and an IIR filter? When should you use one over the other?
FIR Filter (Finite Impulse Response):
- Finite impulse response, output depends only on a finite number of input samples.
- Always stable, linear phase response.
- Filter coefficients are typically symmetrical, non-recursive structure.
- Well-suited for applications requiring linear phase and precise frequency response control.
IIR Filter (Infinite Impulse Response):
- Infinite impulse response, output depends on current and past inputs and outputs.
- Can be unstable if not properly designed or implemented, may have nonlinear phase response.
- Filter coefficients can be asymmetrical, recursive structure.
- More computationally efficient, suitable for real-time processing and efficiency-sensitive applications.
Factors to consider:
- Frequency response requirements: FIR for linear phase and precise control.
- Stability: FIR for guaranteed stability.
- Efficiency: IIR for computational efficiency, especially with higher-order filters.
- Implementation constraints: Consider hardware/software limitations.