Signal Processing Toolbox


Signal Processing Toolbox

Perform signal processing and analysis

Get Started:


Signal Processing Onramp

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.

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.

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