Signal Processing Toolbox

Perform signal processing and analysis


Signal Processing Toolbox™ provides functions and apps to analyze, preprocess, and extract features from uniformly and nonuniformly sampled signals. The toolbox includes tools for filter design and analysis, resampling, smoothing, detrending, and power spectrum estimation. The toolbox also provides functionality for extracting features like changepoints and envelopes, finding peaks and signal patterns, quantifying signal similarities, and performing measurements such as SNR and distortion. You can also perform modal and order analysis of vibration signals.

With the Signal Analyzer app you can preprocess and analyze multiple signals simultaneously in time, frequency, and time-frequency domains without writing code; explore long signals; and extract regions of interest. With the Filter Designer app you can design and analyze digital filters by choosing from a variety of algorithms and responses. Both apps generate MATLAB® code.

Get Started:

Machine Learning and Deep Learning for Signals

Perform preprocessing, feature engineering, signal labeling, and dataset generation for machine learning and deep learning workflows

Preprocessing and feature extraction

Use built-in functions and apps for cleaning signals and removing unwanted artifacts before training a deep network.

Extract time, frequency, and time-frequency domain features from signals to enhance features and reduce variability and data dimensionality for training deep learning models.

Classify ECG Signals Using Long Short-Term Memory Networks

Labeling and Dataset Management

Use the Signal Labeler app to label signals with attributes, regions, and points of interest. Create different types of labels and sublabels.

Manage large volumes of signal data that are too large to fit in memory using signal datastores.

Label signals for analysis 

Reference Examples

Use examples to get started with machine learning and deep learning for signals.

Waveform Segmentation Using Deep Learning

Signal Exploration and Preprocessing

Use apps and functions to explore, process and understand data

Exploring Signals

Use the Signal Analyzer app to analyze and visualize signals in the time, frequency, and time-frequency domains. Extract regions of interest from signals for further analysis.

The Signal Analyzer app also allows you to measure and analyze signals of varying durations at the same time and in the same view.

Extract Regions of Interest from Whale Song

Preprocessing data 

Denoise, smooth, and detrend signals to prepare them for further analysis. Remove outliers and spurious content from data.

Enhance signals, visualize them, and discover patterns. Change the sample rate of a signal or make the sample rate constant for irregularly sampled signals or signals with missing data.

Processing a signal with missing samples

Feature Extraction and Signal Measurements

Measure common distinctive features and extract patterns in signals

Descriptive Statistics

Compute common descriptive statistics like maxima, minima, standard deviations, and RMS levels. Find changepoints in signals and align signals using dynamic time warping.

Locate signal peaks and determine their height, width, and distance to neighbors. Measure time-domain features such as peak-to-peak amplitudes and signal envelopes.

Pulse and Transition Metrics

Measure rise time, fall time, slew rate, overshoot, undershoot, settling time, pulse width, pulse period, and duty cycle.

Slew Rate of Triangular Waveform

Spectral Measurements

Compute the bandwidth and mean or median frequency for signals or power spectrum. Measure signal-to-noise ratio (SNR), total harmonic distortion (THD), and signal-to-noise and distortion ratio (SINAD). Measure harmonic distortion.

Estimate instantaneous frequency, spectral entropy, and spectral kurtosis.

Measure the Power of a Signal

Filter Design and Analysis

Design, analyze, and implement a variety of digital and analog filters

Digital Filters

Design, analyze, and implement a variety of digital FIR and IIR filters, such as lowpass, highpass, and bandstop, using the Filter Designer app. Visualize magnitude, phase, group delay, impulse, and step responses.

Examine filter poles and zeros. Evaluate filter performance by testing stability and phase linearity. Apply filters to data and remove delays and phase distortion using zero-phase filtering.

Analog Filters

Design and analyze analog filters, including Butterworth, Chebyshev, Bessel, and elliptic designs.

Perform analog-to-digital filter conversion using discretization methods such as impulse invariance and the bilinear transformation.

Comparison of Analog IIR Lowpass Filters

Spectral Analysis

Characterize the frequency content of a signal

Spectral Estimation

Estimate spectral density using nonparametric methods including the periodogram, Welch's overlapped segment averaging method, and the multitaper method. Implement parametric and subspace methods such as Burg’s, covariance, and MUSIC to estimate spectra.

Compute power spectra of nonuniformly sampled signals or signals with missing samples using the Lomb-Scargle method. Measure signal similarities in the frequency domain by estimating spectral coherence.

Welch Spectrum Estimates

Window functions

Implement and visualize common window functions. Use the Window Designer app to design and analyze windows. Compare mainlobe widths and sidelobe levels of windows as a function of their size and other parameters.

Design and analyze spectral windows

Time-Frequency Analysis

Visualize and compare time-frequency content of nonstationary signals 

Time-frequency Distributions

Use the short-time Fourier transform, spectrograms, or Wigner-Ville distributions to analyze signals with time-varying spectral content. Use the cross spectrogram to compare signals in the time-frequency domain.

Short-Time Fourier Transform

Reassignment and Synchrosqueezing

Use the reassignment technique to sharpen the localization of time-frequency estimates. Identify time-frequency ridges using synchrosqueezing.

Instantaneous Frequency of Complex Chirp

Data adaptive transforms 

Perform data-adaptive time-frequency analysis using empirical mode decomposition, variational mode decomposition and Hilbert-Huang transform.

Empirical Mode Decomposition

Vibration Analysis

Characterize vibrations in mechanical systems

Order Analysis

Use order analysis to analyze and visualize spectral content occurring in rotating machinery.

Track and extract orders and their time-domain waveforms. Track and extract RPM profiles from vibration signals. Remove noise coherently with time-synchronous averaging.

Vibration Analysis of Rotating Machinery

Modal Analysis

Perform experimental modal analysis by estimating frequency-response functions, natural frequencies, damping ratios, and mode shapes.

Modal Analysis of a Flexible Flying Wing Aircraft

Fatigue Analysis

Generate high-cycle rainflow counts for fatigue analysis.

Rainflow count for Fatigue Analysis

Acceleration and Deployment

Use GPUs to accelerate your code. Generate portable C/C++ source code, standalone executables, or standalone applications from your MATLAB® code

Accelerating your code

Speed up your code by using GPU and multicore processors for supported functions.

Accelerating Correlation with GPUs

Code generation

Generate production-quality C/C++ code and MEX files for deployment in desktop and embedded applications using MATLAB Coder.

Generate optimized CUDA code for supported functions and use it in NVIDIA GPUs.

Code generation for Zero Phase Filtering

Latest Features

Signal Labeler App

Perform interactive or automated signal labeling, use signal spectra and spectrograms for labeling and import data from files

Signal Segmentation

Extract and convert signal regions of interest in preparation for deep learning

Short-Time Fourier Transform

Reconstruct signals from their STFT magnitudes and compute one-sided estimates

European Data Format Files

Read EDF and EDF+ files and obtain information about them

GPU acceleration

Accelerate spectral analysis and time-frequency analysis functions using GPUs

C/C++ Code Generation

Generate C/C++ code for feature extraction, signal measurements, and vibration analysis

GPU Code Generation

Generate CUDA code for zero-phased filtering and Fourier synchrosqueezed transform functions

See release notes for details on any of these features and corresponding functions.