Design low-pass filters using MATLAB

A low-pass filter is a filter that allows signals below a cutoff frequency (known as the passband) and attenuates signals above the cutoff frequency (known as the stopband).

Low-pass filters, especially moving average filters or Savitzky-Golay filters, are often used to clean up signals, remove noise, create a smoothing effect, perform data averaging, and design decimators and interpolators. Low-pass filters produce slow changes in output values to make it easier to see trends and boost the overall signal-to-noise ratio with minimal signal degradation.

Smoothing signals using Savitzky-Golay filter and moving-average filter.

You can use MATLAB® to design finite impulse response (FIR)-based and infinite impulse response (IIR)-based filters, two common low-pass filter methods.

FIR filters are very attractive because they are inherently stable. They can be designed to have linear phase that introduces a delay in the filtered signal while maintaining the waveform shape. Nonetheless, these filters can have long transient responses and might prove computationally expensive in certain applications. FIR filters are useful in audio, biomedical, radar, and other applications where the waveform shape provides useful information. Common design methods for low-pass FIR-based filters include Kaiser windowleast squares, and equiripple.

Design specifications and response of a low-pass Kaiser FIR filter in MATLAB.

IIR filters are useful when computational resources are at a premium. However, stable, causal IIR filters do not have perfectly linear phase. IIR filters are commonly used in audio equalization, biomedical sensor signal processing, IoT/IIoT smart sensors, and high-speed telecommunication/RF applications. Design methods for IIR-based filters include Butterworth, Chebyshev (Type-I and Type-II), and elliptic.

Design specifications and response of a low-pass Chebyshev Type I IIR filter in MATLAB.

The lowpass function in Signal Processing Toolbox™ is particularly useful to quickly filter signals. You can use designfilt and other algorithm-specific (butter, fir1) functions when more control is required on parameters such as filter type, filter order, and attenuation. For more information on filter design, see Signal Processing Toolbox™.

See also: GPUs for signal processing algorithms in MATLAB, DSP System Toolbox, high-pass filter, filter design, quantization