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 features from signals to enhance features and reduce variability and data dimensionality for training deep learning models.
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.
Use examples to get started with machine learning and deep learning for 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.
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 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.
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 the cross spectrogram to compare signals in the time-frequency domain.
Reassignment and Synchrosqueezing
Use the reassignment technique to sharpen the localization of time-frequency estimates. Identify time-frequency ridges using synchrosqueezing.
Data adaptive transforms
Perform data-adaptive time-frequency analysis using empirical mode decomposition, variational 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 profiles from vibration signals. 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 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.
Signal Labeler App
Perform interactive or automated signal labeling
Work with signal collections that exist in the workspace or in files
Use variational mode decomposition to extract intrinsic modes
Deep Learning Examples
Use time-frequency analysis and neural networks for classification and labeling
Operate on tall arrays with the spectrogram and stft functions
GPU Code Generation Support
Generate CUDA code for
C/C++ Code Generation Support
Generate code for time-frequency analysis, feature extraction, spectral analysis, multirate signal processing, and filter design