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.
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 from signals to enhance features and reduce variability and data dimensionality for training deep learning models.
Use examples to get started with machine learning and deep learning for signals.
Use the Signal Analyzer app to 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.
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.
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.
Compute the bandwidth and mean or median frequency of a 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.
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.
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.
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.
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.
Use the short-time Fourier transform, spectrograms, or Wigner-Ville distributions to analyze signals with time-varying spectral content. Use cross spectrogram to compare signals in the time- frequency domains.
Reassignment and Synchrosqueezing
Use the reassignment technique to sharpen the localization of spectral estimates. Identify and reconstruct from time-frequency ridges using synchrosqueezing.
Data adaptive transforms
Perform data-adaptive time-frequency analysis using empirical mode decomposition and Hilbert-Huang transform.
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 profile from vibration signal. Remove noise coherently with time-synchronous averaging.
Perform experimental modal analysis by estimating frequency-response functions, natural frequencies, damping ratios, and mode shapes.
Generate high-cycle rainflow counts for fatigue analysis.
Accelerating your code
Speed up your code by using GPU and multicore processors for supported functions.
Generate efficient, production-quality C/C++ code and MEX files for deployment in desktop and embedded applications using the MATLAB Coder.
Automatically find and label signal peaks and valleys and perform automated labeling using user-defined functions
Signal Analyzer App
Analyze complex signals in the time domain and in the frequency domain
Tall Array Support
Compute spectrograms of signals too large to fit in memory
stft and istft Functions
Compute and invert short-time Fourier transforms of multichannel signals
Examine features and limitations of time-frequency analysis methods
C/C++ Code Generation Support
Generate code for time-frequency analysis, spectral analysis, and filter design