0% found this document useful (0 votes)
102 views56 pages

Signal Processing Toolbox™ Release Notes

Uploaded by

Howard
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
102 views56 pages

Signal Processing Toolbox™ Release Notes

Uploaded by

Howard
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

Signal Processing Toolbox™ Release Notes

How to Contact MathWorks

Latest news: www.mathworks.com

Sales and services: www.mathworks.com/sales_and_services

User community: www.mathworks.com/matlabcentral

Technical support: www.mathworks.com/support/contact_us

Phone: 508-647-7000

The MathWorks, Inc.


1 Apple Hill Drive
Natick, MA 01760-2098
Signal Processing Toolbox™ Release Notes
© COPYRIGHT 2004–2023 by The MathWorks, Inc.
The software described in this document is furnished under a license agreement. The software may be used or copied
only under the terms of the license agreement. No part of this manual may be photocopied or reproduced in any form
without prior written consent from The MathWorks, Inc.
FEDERAL ACQUISITION: This provision applies to all acquisitions of the Program and Documentation by, for, or through
the federal government of the United States. By accepting delivery of the Program or Documentation, the government
hereby agrees that this software or documentation qualifies as commercial computer software or commercial computer
software documentation as such terms are used or defined in FAR 12.212, DFARS Part 227.72, and DFARS 252.227-7014.
Accordingly, the terms and conditions of this Agreement and only those rights specified in this Agreement, shall pertain
to and govern the use, modification, reproduction, release, performance, display, and disclosure of the Program and
Documentation by the federal government (or other entity acquiring for or through the federal government) and shall
supersede any conflicting contractual terms or conditions. If this License fails to meet the government's needs or is
inconsistent in any respect with federal procurement law, the government agrees to return the Program and
Documentation, unused, to The MathWorks, Inc.
Trademarks
MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See
www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be
trademarks or registered trademarks of their respective holders.
Patents
MathWorks products are protected by one or more U.S. patents. Please see www.mathworks.com/patents for
more information.
Contents

R2023b

Signal Labeler App: Automatically label bounded signal regions . . . . . . . 1-2

Signal Labeler App: Automatically classify sounds in audio signals and


label them . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2

Signal Analyzer App: Compute and compare more types of spectra . . . . . 1-2

stftmag2sig Function: Recover phase information from spectrogram


magnitudes using gradient descent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2

resize, paddata, and trimdata Functions: Change the size of data by


adding or removing elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2

Application Example: Compute Shock Response Spectra . . . . . . . . . . . . . 1-3

Single-precision support for spectral analysis and multirate signal


processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3

C/C++ Code Generation Support: Code generation for spectral analysis


and signal modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3

GPU support for spectral analysis and order analysis . . . . . . . . . . . . . . . . 1-3

GPU code generation support for time-frequency analysis functions . . . . 1-4

Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4


dlstft combines real and imaginary parts of transform into one output
argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4
stftLayer weights initialized to analysis window . . . . . . . . . . . . . . . . . . . . 1-4

R2023a

Signal Anomaly Detection: Detect signal anomalies using deep learning


autoencoders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

Signal Labeling: Label signal points within a range . . . . . . . . . . . . . . . . . . 2-2

Signal Analyzer App: Find and annotate signal peaks . . . . . . . . . . . . . . . . 2-2

iii
Signal Analyzer App: Rename and delete signals in preprocessing mode
.......................................................... 2-2

Create Plot Live Editor Task: Visualize function outputs . . . . . . . . . . . . . . 2-2

Application Examples: Detect anomalies in signals and perform fatigue


analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2

Single-precision support for digital filtering and multirate signal


processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3

C/C++ Code Generation Support: Code generation for digital filter


design, multirate signal processing, and waveform generation . . . . . . 2-3

GPU support for feature extraction, statistics, and spectral measurements


.......................................................... 2-3

R2022b

Labeling Convenience Function: Generate labels from file names . . . . . . 3-2

alignsignals Function: Align signals based on rising edge or peak


locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2

Signal Analyzer App: Interactively preprocess signals with various


functions and actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2

Signal Analyzer and Signal Labeler Apps: View frequency axes in log scale
and toggle decibel display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2

Spectrogram Computation: Compare available functions . . . . . . . . . . . . . 3-2

AI Workflows: Discover datastores, functions, and other resources for AI


tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2

Deep Learning Examples: Recover signals, monitor human health, and


perform signal source separation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3

C/C++ Code Generation Support: Code generation for signal generation


and preprocessing, time-frequency analysis, and vibration analysis . . 3-3

GPU support for spectral and time-frequency analysis . . . . . . . . . . . . . . . 3-3

Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4


alignsignals syntax changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
stftLayer: OutputMode property will be removed in a future release . . . . . 3-4

iv Contents
R2022a

Signal Analyzer App: Calculate signal statistics . . . . . . . . . . . . . . . . . . . . . 4-2

Signal Analyzer App: Interactively edit signals . . . . . . . . . . . . . . . . . . . . . . 4-2

Signal Analyzer App: Analyze signals with nonfinite data . . . . . . . . . . . . . 4-2

Signal Labeler App: Automatically detect speech regions in audio signals


and label spoken words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2

Signal Labeler App: Extract features from signals . . . . . . . . . . . . . . . . . . . 4-2

Signal Label Definitions: Define label definitions for generated features


.......................................................... 4-2

Labeled Signal Sets: Generate feature data and get label indices from the
command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3

Labeled Signal Sets: Access source datastore on different machines . . . . 4-3

Deep Learning Examples: Use adversarial learning denoiser model and


perform sequence-to-sequence classification . . . . . . . . . . . . . . . . . . . . . 4-3

C/C++ Code Generation Support: Code generation for filtering, feature


extraction, preprocessing, and signal measurements . . . . . . . . . . . . . . 4-3

GPU support for feature extraction, spectral analysis, spectral


measurements, and transforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3

Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4


Filter Visualization Tool (fvtool) has changed . . . . . . . . . . . . . . . . . . . . . . 4-4
sptool has been removed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4

R2021b

Design Filter Live Editor Task: Design digital filter interactively . . . . . . . 5-2

Signal Labeler App: Inspect distribution of label counts on heatmap . . . 5-2

Signal Labeler App: Show outliers in Dashboard . . . . . . . . . . . . . . . . . . . . 5-2

Signal Labeler App: Listen to audio signals while annotating them


interactively . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

Signal Analyzer App: Denoise signals interactively using wavelet methods


.......................................................... 5-2

v
Feature Extraction: Extract time-domain and frequency-domain features
of signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2

Feature Extraction: Compute zero-crossing rates of signals . . . . . . . . . . . 5-3

Deep Learning: Short-time Fourier transform layer . . . . . . . . . . . . . . . . . . 5-3

Deep Learning Examples: Use short-time Fourier transform layer and


perform deep learning regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3

Signal Datastores: Specify FileSet objects as data locations . . . . . . . . . . . 5-3

poctave Function: Improved octave smoothing and filter design . . . . . . . 5-3

C/C++ Code Generation Support: Code generation for filtering, spectral


analysis, and vibration analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3

GPU support for digital filtering, feature extraction, signal processing,


transforms, and waveform generation . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4

Run functions in a thread-based environment . . . . . . . . . . . . . . . . . . . . . . 5-4

MATLAB Online support for Signal Analyzer and Signal Labeler . . . . . . . 5-4

Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4


designfilt no longer assists in correcting incomplete or erroneous function
calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4
sptool will be removed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5

R2021a

Signal Labeler App: Analyze labeling progress and distribution of labels


in your labeled signal set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2

Signal Labeler App: Label complex-valued signals . . . . . . . . . . . . . . . . . . . 6-2

Signal Labeler App: View spectra and spectrograms in Fast Navigation


mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2

Signal Labeler App: Speed up labeling and inspection by panning and


zooming through signals and labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2

Signal Labeler App: Import and label audio files . . . . . . . . . . . . . . . . . . . . 6-2

EDF File Analyzer App: View EDF or EDF+ files . . . . . . . . . . . . . . . . . . . . . 6-2

European Data Format Files: Create and modify EDF or EDF+ files . . . . . 6-2

Labeling Convenience Functions: Split data sets by label value and assign
attributes based on file location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2

vi Contents
Signal Labeling: Count label values and create datastores from
labeledSignalSet objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3

dlstft Function: Compute short-time Fourier transforms of deep learning


arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3

Signal Datastores: Write data from datastore to files using writeall . . . . 6-3

Time-Frequency Analysis: Compute instantaneous signal bandwidth . . . 6-3

poctave Function: Compute and visualize octave spectrograms . . . . . . . . 6-3

Signal Resampling: Change sample rates of MATLAB timetables or


resample them to uniform grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3

Deep Learning Examples: Classify signals using neural networks and a


custom log spectrogram layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4

Signal Processing Onramp: Interactive introduction to practical signal


processing methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4

C/C++ Code Generation Support: Code generation for filtering, signal


modeling, spectral analysis, and statistics . . . . . . . . . . . . . . . . . . . . . . . 6-4

GPU support for signal labeling, time-frequency analysis, transforms,


digital filtering, and waveform generation . . . . . . . . . . . . . . . . . . . . . . . 6-4

R2020b

Signal Labeler App: Perform faster labeling . . . . . . . . . . . . . . . . . . . . . . . . 7-2

Signal Labeler App: View spectra and spectrograms . . . . . . . . . . . . . . . . . 7-2

Signal Labeler App: Import data from files . . . . . . . . . . . . . . . . . . . . . . . . . 7-2

Signal Segmentation: Extract and convert signal regions of interest in


preparation for deep learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2

European Data Format Files: Read EDF and EDF+ files and obtain
information about them . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2

Short-Time Fourier Transform: Reconstruct signals from their STFT


magnitudes and compute one-sided estimates . . . . . . . . . . . . . . . . . . . . 7-2

Signal Labeling: Point to signal collections in the workspace or in files


using signalDatastore objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3

Signal Resampling: Change sample rates of N-D arrays or resample them


to uniform grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3

vii
chirp Function: Generate complex-valued swept-frequency cosine signals
.......................................................... 7-3

pmtm Function: Perform spectral analysis using sine tapers . . . . . . . . . . 7-3

Deep Learning Examples: Use generative adversarial network and


generate Raspberry Pi code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3

C/C++ Code Generation Support: Generate code for feature extraction,


signal measurements, and vibration analysis . . . . . . . . . . . . . . . . . . . . . 7-3

GPU acceleration for spectral analysis and time-frequency analysis


functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4

GPU code generation support for zero-phased filtering and Fourier


synchrosqueezed transform functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4

tall Array Support: Operate on tall arrays with the pwelch function . . . . 7-4

R2020a

Signal Labeler App: Perform interactive or automated signal labeling . . 8-2

Signal Datastores: Work with signal collections that exist in the


workspace or in files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2

Time-Frequency Analysis: Use variational mode decomposition to extract


intrinsic modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2

Deep Learning Examples: Use time-frequency analysis and neural


networks for classification and labeling . . . . . . . . . . . . . . . . . . . . . . . . . 8-2

tall Arrays: Operate on tall arrays with the spectrogram and stft functions
.......................................................... 8-3

GPU code generation support for fftfilt, stft, and istft functions . . . . . . . 8-3

GPU acceleration for spectrogram, czt, stft, and wvd functions . . . . . . . . 8-3

C/C++ Code Generation Support: Generate code for time-frequency


analysis, feature extraction, spectral analysis, multirate signal
processing, and filter design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3

Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3


Label button removed from Signal Analyzer . . . . . . . . . . . . . . . . . . . . . . . 8-3

viii Contents
R2019b

Signal Labeling: Perform automated labeling using user-defined


functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2

Signal Labeling: Automatically find and label signal peaks and valleys
.......................................................... 9-2

Signal Analyzer App: Analyze complex signals . . . . . . . . . . . . . . . . . . . . . . 9-2

Tall Array Support: Compute spectrograms of signals too large to fit in


memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2

stft and istft Functions: Compute and invert short-time Fourier


transforms of multichannel signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2

Time-Frequency Gallery: Examine features and limitations of time-


frequency analysis methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2

C/C++ Code Generation Support: Generate code for time-frequency


analysis, spectral analysis of nonuniformly sampled signals, and digital
filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2

R2019a

Signal Labeling: Label signals interactively and visualize labeled signals


......................................................... 10-2

Time-Frequency Analysis: Compute short-time Fourier transforms and


inverse short-time Fourier transforms . . . . . . . . . . . . . . . . . . . . . . . . . 10-2

Signal Analyzer App: Remove trends from signals and estimate their
envelopes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2

Signal Analyzer App: Enhanced management of multichannel signals


......................................................... 10-2

C/C++ Code Generation Support: Generate code for filter design, spectral
analysis, and spectral windowing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2

R2018b

Signal Analyzer App: Preprocess signals using user-defined functions


......................................................... 11-2

ix
Signal Analyzer App: Change sample rates of signals and convert
nonuniformly sampled signals to uniformly sampled signals . . . . . . . 11-2

Time-Frequency Analysis: Analyze signals using the Wigner-Ville


distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2

Deep Learning Example: Identify morphological features of signals using


recurrent neural networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2

Signal Labeling: Define labels and create sets of labeled signals . . . . . . 11-2

x Contents
1

R2023b

Version: 23.2

New Features

Bug Fixes

Compatibility Considerations
R2023b

Signal Labeler App: Automatically label bounded signal regions


The Signal Labeler app now enables you to locate and label signal regions with values greater or
smaller than a given threshold or inside or outside a given set of ranges. You can specify a minimum
region length to filter out false positives.

Signal Labeler App: Automatically classify sounds in audio signals and


label them
The Signal Labeler app now provides automatic classification of sounds in audio signals. To perform
the classification, the app uses the YAMNet pretrained neural network as implemented in the
classifySound function. You can choose to include or exclude specific sounds. You can also specify
the minimum duration of detected sound regions, the minimum separation between consecutive
regions of the same sound, and the confidence threshold for reporting sounds.

You must have Audio Toolbox™ and Deep Learning Toolbox™ to use this functionality.

Signal Analyzer App: Compute and compare more types of spectra


Starting this release, you have more flexibility when computing spectra using the Signal Analyzer
app. You can control the window length, the number of discrete Fourier transform points, and the
resolution bandwidth.

stftmag2sig Function: Recover phase information from spectrogram


magnitudes using gradient descent
The stftmag2sig function now enables you to use the gradient descent algorithm to reconstruct a
signal starting with the magnitude of its time-frequency representation. The new functionality
mitigates the edge effects that affect the reconstruction estimates given by the Griffin-Lim algorithm
and does not require the constant overlap-add constraint demanded by istft.

You must have a Deep Learning Toolbox license to use the new functionality.

resize, paddata, and trimdata Functions: Change the size of data by


adding or removing elements
Change the size of array or tabular data by using the resize, paddata, and trimdata functions.
You can specify the dimensions to operate along, the fill value or pattern for padding, and the side of
the input data for resizing.

• resize adds or removes elements depending on if the length of the input data is less than or
greater than the target length. The resized data matches the target length.
• paddata only adds elements. If the length of the input data is greater than the target length, the
output data is the same as the input data.
• trimdata only removes elements. If the length of the input data is less than the target length, the
output data is the same as the input data.

1-2
Application Example: Compute Shock Response Spectra
This release introduces an example that applies signal processing techniques to the analysis of
vibration data. “Practical Introduction to Shock Waveform and Shock Response Spectrum” introduces
the concept of a shock response spectrum, surveys different types of shock response spectra, and
computes shock response spectra of synthetic and measured signals.

Single-precision support for spectral analysis and multirate signal


processing
These Signal Processing Toolbox™ functions now support single precision:

• Spectral Analysis — cpsd, mscohere, periodogram, pwelch, spectrogram, tfestimate,


and xspectrogram.
• Multirate Signal Processing — decimate. The buffer function now also supports non-double
input arguments.

C/C++ Code Generation Support: Code generation for spectral


analysis and signal modeling
These Signal Processing Toolbox functions now support C/C++ code generation:

• Spectral Analysis — dpss and pmtm


• Signal Modeling — stmcb
• Waveform Generation — modulate

These Signal Processing Toolbox functions now support MATLAB® timetables for code generation:

• Spectral Analysis — pkurtosis and pspectrum


• Time-Frequency Analysis — instbw, instfreq, and kurtogram

The firls function now has enhanced performance for code generation.

You must have MATLAB Coder™ to generate standalone C and C++ code for the supported functions.
For more information on usage and limitations, see the Extended Capabilities section at the bottom of
each reference page.

GPU support for spectral analysis and order analysis


These Signal Processing Toolbox functions now support gpuArray objects:

• Spectral Analysis — ifsst and tfestimate


• Order Analysis — rpmfreqmap and rpmordermap

You must have Parallel Computing Toolbox™ to use gpuArray objects with the supported functions.
For more details, see “Run MATLAB Functions on a GPU” (Parallel Computing Toolbox). To see which
GPUs are supported, see “GPU Computing Requirements” (Parallel Computing Toolbox).

1-3
R2023b

GPU code generation support for time-frequency analysis functions


The spectrogram, wvd, and xspectrogram functions now support code generation for graphical
processing units (GPUs).

You must have MATLAB Coder and GPU Coder™ to generate CUDA® code.

Functionality being removed or changed


dlstft combines real and imaginary parts of transform into one output argument
Behavior change

The dlstft function now combines the real and imaginary parts of the short-time Fourier transform
(STFT) into a single output argument. Previously, the function returned the real part of the transform
as the first output argument and the imaginary part as the second. Starting this release, the function
returns the frequencies and times at which the STFT is computed as second and third output
arguments, respectively. Function calls with four output arguments error out.

Original Code in R2023a or Result Updated Code in R2023b


Earlier
[yr,yi] = dlstft(x); Runs, but the second output y = dlstft(x); yr =
argument has a different real(y); yi = imag(y);
interpretation
[yr,yi,f,t] = dlstft(x); Errors [y,f,t] = dlstft(x); yr
= real(y); yi = imag(y);

stftLayer weights initialized to analysis window


Behavior change

The short-time Fourier transform (STFT) layer stftLayer now initializes the Weights learnable
parameter to the analysis window used to compute the transform. Previously, the parameter was
initialized to an array containing the Gabor atoms for the STFT.

1-4
2

R2023a

Version: 9.2

New Features

Bug Fixes
R2023a

Signal Anomaly Detection: Detect signal anomalies using deep


learning autoencoders
This release introduces the deepSignalAnomalyDetector object, which you can use to detect
signal anomalies. The detector can implement an autoencoder using a 1-D convolutional neural
network (CNN) or a long short-term memory (LSTM) network. You can train the detector object and
then use the trained model to detect and plot anomalies in signal data.

You must have a Deep Learning Toolbox license to use this functionality.

Signal Labeling: Label signal points within a range


The new sigrangebinmask function locates and labels signal points with values within a target
range. You can specify a minimum region length to filter out false positives.

Signal Analyzer App: Find and annotate signal peaks


Starting this release, perform peak measurements for time-domain signals in the Signal Analyzer app.
View signal peak values in the Measurements table and as annotated markers on the display.

Signal Analyzer App: Rename and delete signals in preprocessing


mode
This release enhances the Signal Analyzer app to enable you to delete or rename signals in the
preprocessing mode. You can also change the line color of signals in the mode.

Create Plot Live Editor Task: Visualize function outputs


You can now use the Create Plot Live Editor task to interactively visualize filter responses and other
outputs for several signal processing functions. You can select different chart types and set optional
parameters. The task also automatically generates code that becomes part of your live script.

The Create Plot Live Editor task supports these Signal Processing Toolbox functions:

• freqz
• grpdelay
• impz
• periodogram
• pspectrum
• pwelch
• spectrogram
• zplane

Application Examples: Detect anomalies in signals and perform


fatigue analysis
This release introduces examples that apply signal processing techniques to the analysis of medical
and mechanical data.

2-2
• Detect Anomalies In Signals Using deepSignalAnomalyDetector uses autoencoders to detect
abnormal points or segments in time-series data.
• Detect Anomalies in Machinery Using LSTM Autoencoder uses the
deepSignalAnomalyDetector object to detect anomalies in data from an industrial machine.
• Practical Introduction to Fatigue Analysis Using Rainflow Counting finds the total damage on a
mechanical component due to cyclic stress.

Single-precision support for digital filtering and multirate signal


processing
The filtfilt, upfirdn, and resample functions now support single-precision data.

C/C++ Code Generation Support: Code generation for digital filter


design, multirate signal processing, and waveform generation
These Signal Processing Toolbox functions now support C/C++ code generation:

• Digital Filter Design — gaussdesign


• Multirate Signal Processing — decimate and interp
• Waveform Generation — buffer

The rcosdesign function now supports variable-size inputs during code generation.

You must have MATLAB Coder to generate standalone C and C++ code for the supported functions.
For more information on usage and limitations, see the Extended Capabilities section at the bottom of
each reference page.

GPU support for feature extraction, statistics, and spectral


measurements
These Signal Processing Toolbox functions now support gpuArray objects:

• Descriptive Statistics — rssq


• Feature Extraction — signalFrequencyFeatureExtractor and
signalTimeFeatureExtractor
• Spectral Measurements — bandpower, medfreq, obw, powerbw, sinad, snr, and thd

You must have Parallel Computing Toolbox to use gpuArray objects with the supported functions. For
more details, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox). To see which GPUs
are supported, see GPU Computing Requirements (Parallel Computing Toolbox).

2-3
3

R2022b

Version: 9.1

New Features

Bug Fixes

Compatibility Considerations
R2022b

Labeling Convenience Function: Generate labels from file names


The new filenames2labels function creates a list of labels based on the names of files in a
specified location or datastore. Use this function to simplify and streamline labeling processes for
deep learning workflows with large data sets.

alignsignals Function: Align signals based on rising edge or peak


locations
Starting this release, you can use the alignsignals function to align two signals based on the
locations of their peaks or rising edges.

Signal Analyzer App: Interactively preprocess signals with various


functions and actions
The new preprocessing mode of the Signal Analyzer app enables you to preprocess and edit signals
and prepare them for further analysis. In the Preprocess mode, you can:

• Filter, denoise, detrend, smooth, and resample signals


• Extract, crop, trim, clip, or split signals based on drawn regions of interest or cursor locations
• Create and apply custom preprocessing functions

Signal Analyzer and Signal Labeler Apps: View frequency axes in log
scale and toggle decibel display
Starting this release, the Signal Analyzer and Signal Labeler apps support logarithmic frequency axes
in the spectrum and spectrogram views. You can also display the power spectrum in decibels or linear
scale.

Spectrogram Computation: Compare available functions


Spectrogram Computation with Signal Processing Toolbox presents and compares different ways of
computing short-time Fourier transforms and spectrograms of nonstationary signals using the
spectrogram, stft, and pspectrum functions.

AI Workflows: Discover datastores, functions, and other resources for


AI tasks
Manage Data Sets for Machine Learning and Deep Learning Workflows presents available datastores,
functions, and other resources you can use for different AI tasks. Learn about:

• Data organization for signal classification, sequence-to-sequence classification, and regression


tasks
• Data preprocessing and feature extraction
• Data set resources

3-2
Deep Learning Examples: Recover signals, monitor human health, and
perform signal source separation
This release introduces examples that combine signal processing techniques and deep learning
networks:

• Signal Recovery with Differentiable Scalograms and Spectrograms uses differentiable time-
frequency transforms to recover a time-domain signal without the need for phase information or
transform inversion.
• Signal Source Separation Using W-Net Architecture uses a deep learning network to discern fetal
and maternal electrocardiogram (ECG) signals present in noninvasive abdominal measurements
taken on pregnant patients.
• Human Health Monitoring Using Continuous Wave Radar and Deep Learning uses a deep learning
network to reconstruct electrocardiograms from continuous-wave radar signals.

C/C++ Code Generation Support: Code generation for signal


generation and preprocessing, time-frequency analysis, and vibration
analysis
These Signal Processing Toolbox functions now support C/C++ code generation:

• Smoothing and Denoising — hampel and medfilt1


• Waveform Generation — uencode

These Signal Processing Toolbox functions now support timetables for C/C++ code generation:

• Time-Frequency Analysis — hht, stft, and vmd


• Vibration Analysis — envspectrum, rainflow, and tsa

The Generate Optimized Code on Raspberry Pi Target example shows how to generate optimized C+
+ code for the resample function that can be deployed on a Raspberry Pi® target (ARM®-based
device).

You must have MATLAB Coder to generate standalone C and C++ code for the supported functions.
For more information on usage and limitations, see the Extended Capabilities section at the bottom of
each reference page.

GPU support for spectral and time-frequency analysis


These Signal Processing Toolbox functions now support gpuArray objects:

• Spectral Analysis and Measurements — meanfreq and poctave


• Time-Frequency Analysis — instbw and instfreq

The Classify ECG Signals Using Long Short-Term Memory Networks with GPU Acceleration example
accelerates feature extraction and network training with a GPU.

You must have Parallel Computing Toolbox to use gpuArray objects with the supported functions. For
more details, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox). To see which GPUs
are supported, see GPU Computing Requirements (Parallel Computing Toolbox).

3-3
R2022b

Functionality being removed or changed


alignsignals syntax changes
Still runs

The alignsignals function syntax has changed.

Functionality Result Use Instead


alignsignals(x,y, ... Runs. This syntax will be alignsignals(x,y, ...
maxlag) removed in a future release. Method="xcorr", ...
MaxLag=maxlag)
alignsignals(x,y, ... Runs. This syntax will be alignsignals(x,y, ...
maxlag,"truncate") removed in a future release. Method="xcorr", ...
MaxLag=maxlag, ...
Truncate=true)

stftLayer: OutputMode property will be removed in a future release


Still runs

The OutputMode property of stftLayer will be removed in a future release. Update your code and
networks to make them compatible with stftLayer output in "SCBT" format. For more information,
see Layer Output Format.

3-4
4

R2022a

Version: 9.0

New Features

Bug Fixes

Compatibility Considerations
R2022a

Signal Analyzer App: Calculate signal statistics


This release introduces Measurements in the Signal Analyzer app. You can calculate statistics such
as minimum, maximum, median, mean, and peak-to-peak values for a full signal or a region of interest
(ROI).

Signal Analyzer App: Interactively edit signals


The Signal Analyzer app has a new Edit Signals mode for interactive signal preprocessing. You can
use clip and trim actions to remove unwanted signal data, or use a one-click crop action to include
only data from a selected ROI.

Signal Analyzer App: Analyze signals with nonfinite data


This release enhances the Signal Analyzer app to support signals containing NaN and Inf values.

Signal Labeler App: Automatically detect speech regions in audio


signals and label spoken words
The Signal Labeler app now provides automatic labeling of detected regions of speech and speech-to-
text transcription. You must have Audio Toolbox to use this functionality.

• To automate the detection of speech content, the app uses the detectSpeech (Audio Toolbox)
function.
• To perform speech-to-text transcription, the app uses the speech2text function available on File
Exchange. The function interfaces with third-party speech-to-text APIs including:

• Google® Speech API


• IBM® Watson Speech API
• Microsoft® Azure Speech API

The speech2text entry on File Exchange includes a tutorial to help get you started.

Signal Labeler App: Extract features from signals


This release introduces feature extraction in the Signal Labeler app. You can extract time and
spectral features from signals and save generated features as labels. You can also export features to
the MATLAB workspace or the Classification Learner (Statistics and Machine Learning Toolbox) app
for machine learning and deep learning workflows.

Signal Label Definitions: Define label definitions for generated


features
The signalLabelDefinition object now has label types to define signal features generated in the
Signal Labeler app or by using a feature extractor object and setLabelValue. You can define full
signal features using attribute feature labels and frame-based features using ROI feature labels.

4-2
Labeled Signal Sets: Generate feature data and get label indices from
the command line
The new createFeatureData function creates a table or matrix of attribute and ROI feature labels
in a labeledSignalSet object. Use getLabelNames, getLabelDefinitions, and the new
getLabelIndices function to retrieve feature label definitions in a labeled signal set.

Labeled Signal Sets: Access source datastore on different machines


Starting this release, you can use the getAlternateFileSystemRoots and
setAlternateFileSystemRoots functions to view and change the path to source data in a
labeledSignalSet.

Deep Learning Examples: Use adversarial learning denoiser model and


perform sequence-to-sequence classification
This release introduces examples that use signal processing techniques and deep learning networks:

• Denoise Signals with Adversarial Learning Denoiser Model uses a denoiser object with an
adversarial learning architecture to remove noise from noisy electrocardiogram and
electroencephalogram signals.
• Classify Arm Motions Using EMG Signals and Deep Learning performs sequence-to-sequence
classification of forearm motions using labeled electromyography signals and a long short-term
memory (LSTM) network.

C/C++ Code Generation Support: Code generation for filtering, feature


extraction, preprocessing, and signal measurements
These Signal Processing Toolbox functions now support C/C++ code generation:

• Digital and Analog Filters — filtic, grpdelay, and isstable


• Preprocessing and Feature Extraction — fillgaps and findchangepts
• Pulse and Transition Metrics — dutycycle, midcross, overshoot, pulseperiod,
pulsesep, pulsewidth, settlingtime, slewrate, and undershoot

You must have MATLAB Coder to generate standalone C and C++ code for the supported functions.
For more information on usage and limitations, see the Extended Capabilities section at the bottom of
each reference page.

GPU support for feature extraction, spectral analysis, spectral


measurements, and transforms
These Signal Processing Toolbox functions now support gpuArray objects:

• Feature Extraction — findpeaks and zerocrossrate


• Spectral Analysis — db2pow and pow2db
• Spectral Measurements — pentropy and pkurtosis
• Transforms — hilbert

4-3
R2022a

You must have Parallel Computing Toolbox to use gpuArray objects with the supported functions. For
more details, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox). To see which GPUs
are supported, see GPU Support by Release (Parallel Computing Toolbox).

Functionality being removed or changed


Filter Visualization Tool (fvtool) has changed
Behavior change

The behavior of the Filter Visualization Tool has changed. In previous releases, fvtool had toolbars
containing plot editing and analysis controls. Starting this release, fvtool plot editing, analysis, and
integration with Filter Designer controls are provided on the toolstrip. To edit a plot, first use Send
to Figure to plot to a figure window and then use the plot editing toolbar.

sptool has been removed


Errors

The sptool function has been removed.

• For signal and spectral analysis, use the Signal Analyzer app.
• For filter design, use the Filter Designer app.

4-4
5

R2021b

Version: 8.7

New Features

Bug Fixes

Compatibility Considerations
R2021b

Design Filter Live Editor Task: Design digital filter interactively


This release introduces the Design Filter Live Editor task, which lets you design and analyze a
digital filter interactively. The task automatically generates MATLAB code for your live script.

Signal Labeler App: Inspect distribution of label counts on heatmap


This release introduces a member count chart in the Signal Labeler Dashboard. You can inspect the
distribution of label counts simultaneously across members and across region durations or point
locations.

Signal Labeler App: Show outliers in Dashboard


Starting this release, the box plots for region duration or point location distributions show outliers in
the Signal Labeler Dashboard.

Signal Labeler App: Listen to audio signals while annotating them


interactively
This release enhances the Signal Labeler app with new audio playback controls that play signals and
regions of interest. You must have Audio Toolbox to use this functionality.

Signal Analyzer App: Denoise signals interactively using wavelet


methods
The Signal Analyzer app now enables wavelet denoising. Use this feature to denoise signals in the
app using wavelet methods. You must have Wavelet Toolbox™ to use this functionality.

Feature Extraction: Extract time-domain and frequency-domain


features of signals
This release introduces the signalTimeFeatureExtractor and
signalFrequencyFeatureExtractor objects. These feature extractor objects generate feature
tables or matrices that you can use to train a machine learning model or a deep learning network.

• Use the signalTimeFeatureExtractor object to extract time-domain features of signals.


Extract mean, RMS level, standard deviation, shape factor, signal-to-noise ratio, total harmonic
distortion, signal to noise and distortion ratio, peak value, crest factor, clearance factor, and
impulse factor.
• Use the signalFrequencyFeatureExtractor object to extract frequency-domain features of
signals. Extract mean and median frequency, band power, occupied and power bandwidth, power
spectral density, and spectral peak amplitude and location.

You can use the generated MATLAB code to generate C/C++ code that you can use to extract
features for your entire data set.

5-2
Feature Extraction: Compute zero-crossing rates of signals
The new zerocrossrate function returns the rate, count, and location of zero crossings for a signal.

Deep Learning: Short-time Fourier transform layer


This release introduces a learnable signal processing layer that computes the short-time Fourier
transform within a deep learning network. The stftLayer object is available from the command line
and from the Deep Network Designer (Deep Learning Toolbox) app. You can use this layer with both
DAGNetwork (Deep Learning Toolbox) and dlnetwork (Deep Learning Toolbox) architectures. You
must have Deep Learning Toolbox to use the stftLayer object. For a list of available layers, see List
of Deep Learning Layers (Deep Learning Toolbox).

Deep Learning Examples: Use short-time Fourier transform layer and


perform deep learning regression
This release introduces examples that use signal processing techniques and deep learning networks:

• Denoise EEG Signals Using Deep Learning Regression uses deep learning regression to remove
electro-oculogram (EOG) noise from electroencephalogram (EEG) signals.
• Hand Gesture Classification Using Radar Signals and Deep Learning classifies ultra-wideband
impulse radar signal data using a convolutional neural network.
• Human Activity Recognition Using Mobile Phone Data classifies human activity using features
extracted from smartphone sensor signals.
• Anomaly Detection Using Autoencoder and Wavelets uses wavelet-extracted features to detect arc
signals in a DC system.
• Learn Pre-Emphasis Filter Using Deep Learning shows how to use a convolutional deep network
and a short-time Fourier transform learnable layer to learn a pre-emphasis filter for speech
recognition.

Signal Datastores: Specify FileSet objects as data locations


Starting this release, you can use FileSet objects to provide file locations for signalDatastore
objects. FileSet objects provide increased performance compared to file paths or DsFileSet
objects. For more information, see matlab.io.datastore.FileSet.

poctave Function: Improved octave smoothing and filter design


This release improves the robustness of the filter designs in poctave. The function also has an
improved algorithm for octave smoothing that attenuates power levels at band edges.

C/C++ Code Generation Support: Code generation for filtering,


spectral analysis, and vibration analysis
These Signal Processing Toolbox functions now support C/C++ code generation:

• Digital Filtering — ss2sos, tf2sos, and zp2sos


• Digital Filter Analysis — filternorm and phasez

5-3
R2021b

• Spectral Analysis — db and poctave


• Vibration Analysis — rpmtrack

You must have MATLAB Coder to generate standalone C and C++ code for the supported functions.
For more information on usage and limitations, see the Extended Capabilities section at the bottom of
each reference page.

GPU support for digital filtering, feature extraction, signal processing,


transforms, and waveform generation
These Signal Processing Toolbox functions now support gpuArray objects:

• Digital Filtering — filtfilt


• Feature Extraction — pspectrum
• Multirate Signal Processing — downsample, resample, upfirdn, and upsample
• Transforms — xspectrogram
• Waveform Generation — shiftdata and unshiftdata

You must have Parallel Computing Toolbox to use gpuArray objects with the supported functions. For
more details, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox). To see which GPUs
are supported, see GPU Support by Release (Parallel Computing Toolbox).

Run functions in a thread-based environment


You can now run these Signal Processing Toolbox functions in the background using MATLAB
backgroundPool:

• Descriptive Statistics — meanfreq, medfreq, peak2peak, peak2rms, rms, and rssq


• Pulse and Transition Metrics — dutycycle
• Spectral Estimation — pwelch
• Spectral Measurements — bandpower
• Time-Frequency Analysis — fsst, istft, spectrogram, stft, and xspectrogram
• Transforms — czt and dct
• Waveform Generation — chirp and sinc

For more information, see Run MATLAB Functions in Thread-Based Environment.

MATLAB Online support for Signal Analyzer and Signal Labeler


Starting this release, the Signal Analyzer and Signal Labeler apps are supported in MATLAB
Online™.

Functionality being removed or changed


designfilt no longer assists in correcting incomplete or erroneous function calls
Behavior change

Starting this release, the designfilt function no longer assists in correcting calls to designfilt
in a script or function. If you specify an incomplete or inconsistent set of input arguments in calls to

5-4
designfilt within a script or function, the function issues an error with a link to open the Filter
Design Assistant. Users can use the assistant to generate a filter and display the corresponding code
on the command line. The generated filter is saved to the MATLAB workspace. For more information,
see Filter Design Assistant. In previous releases, the assistant automatically corrected the script or
function.

sptool will be removed


Warns

The sptool function will be removed in a future release.

• For signal and spectral analysis, use the Signal Analyzer app.
• For filter design, use the Filter Designer app.

5-5
6

R2021a

Version: 8.6

New Features

Bug Fixes
R2021a

Signal Labeler App: Analyze labeling progress and distribution of


labels in your labeled signal set
This release introduces the Dashboard in the Signal Labeler app that lets users track their labeling
progress. You can analyze distributions of each label to uncover biases in your data for machine
learning and artificial intelligence applications.

Signal Labeler App: Label complex-valued signals


The Signal Labeler app now supports complex-valued signals.

Signal Labeler App: View spectra and spectrograms in Fast Navigation


mode
The Signal Labeler app now shows signal spectra and spectrograms in Fast Navigation mode to aid
in the labeling process. You can now draw region-of-interest or point labels on the spectrogram or the
time plot in this mode.

Signal Labeler App: Speed up labeling and inspection by panning and


zooming through signals and labels
The Signal Labeler app now lets users navigate through long signals using predefined panning
windows. It also lets you quickly inspect labeled regions or points of interest using new zoom-to-label
functionality.

Signal Labeler App: Import and label audio files


Starting this release, you can import and label audio files in the Signal Labeler app. You must have
Audio Toolbox to use this functionality.

EDF File Analyzer App: View EDF or EDF+ files


The new EDF File Analyzer app enables users to view header and data records stored in EDF or EDF
+ files. Users can visualize annotated signals to aid analysis.

European Data Format Files: Create and modify EDF or EDF+ files
This release introduces the edfwrite object that lets users create new or modify existing EDF or
EDF+ files with signal data, header information, and annotations.

Labeling Convenience Functions: Split data sets by label value and


assign attributes based on file location
This release introduces three functions that aid and streamline labeling processes for deep learning
workflows with large data sets.

• countlabels counts the number of unique label values in an array, a table, or a datastore.

6-2
• splitlabels finds indices to split labeled datasets into multiple datasets with equal specified
label proportions.
• folders2labels creates a list of labels that can be associated with data files based on the
names of the directories that house them.

Signal Labeling: Count label values and create datastores from


labeledSignalSet objects
This release enhances labeledSignalSet objects by adding two functions that aid in machine
learning and deep learning training workflows.

• countLabelValues counts the number of members that have a given attribute or the number of
members that have at least one instance of a given ROI or point label.
• createDatastores takes data from a labeledSignalSet object and creates two datastores: a
signalDatastore containing the signal data and an arrayDatastore containing the labels.

dlstft Function: Compute short-time Fourier transforms of deep


learning arrays
This release introduces the dlstft function, which computes short-time Fourier transforms of
dlarray (Deep Learning Toolbox) objects. The function outputs the transforms as dlarray objects
that enable automatic differentiation and can be used in custom training loops.

Signal Datastores: Write data from datastore to files using writeall


This release enhances signalDatastore objects by introducing the writeall function. Use
writeall to write data from a datastore to files on disk.

Time-Frequency Analysis: Compute instantaneous signal bandwidth


The new instbw function calculates the instantaneous bandwidth of a signal as the second
conditional spectral moment of a time-frequency distribution. The function also accepts time-
frequency distributions as input. Use instbw for signal analysis or machine learning applications.

poctave Function: Compute and visualize octave spectrograms


Starting this release, the poctave function computes the octave spectrogram of a nonstationary
signal or timetable.

Signal Resampling: Change sample rates of MATLAB timetables or


resample them to uniform grids
The resample function now accepts MATLAB timetables as input.

6-3
R2021a

Deep Learning Examples: Classify signals using neural networks and a


custom log spectrogram layer
This release introduces two examples that use signal processing techniques and deep learning
networks:

• Spoken Digit Recognition with Custom Log Spectrogram Layer and Deep Learning uses a deep
convolutional neural network and a custom log spectrogram layer to classify speech recordings.
• Labeling Radar Signals with Signal Labeler (Radar Toolbox) uses Signal Labeler to label time and
frequency features of noisy pulse radar signals.

Signal Processing Onramp: Interactive introduction to practical signal


processing methods
See the Signal Processing Onramp for an introduction to signal processing methods including
preprocessing, filtering, and spectral analysis.

C/C++ Code Generation Support: Code generation for filtering, signal


modeling, spectral analysis, and statistics
These Signal Processing Toolbox functions now support C/C++ code generation:

• Digital and Analog Filters — freqz, impz, impzlength, lp2bp, lp2bs, lp2hp, lp2lp,
sos2ss, sos2zp, ss2zp, stepz, tf2zp, and tf2zpk
• Signal Modeling — arburg, arcov, armcov, aryule, and prony
• Spectral Analysis — pburg, pcov, peig, pmcov, pmusic, pyulear, rooteig, and rootmusic
• Time-Frequency Analysis — instbw
• Waveform Generation — marcumq

You must have MATLAB Coder to generate standalone C and C++ code for supported functions. For
more information on usage and limitations, see the Extended Capabilities section at the bottom of
each reference page.

GPU support for signal labeling, time-frequency analysis, transforms,


digital filtering, and waveform generation
These Signal Processing Toolbox functions now support gpuArray objects:

• Signal Labeling — extendsigroi, binmask2sigroi, mergesigroi, removesigroi,


shortensigroi, and sigroi2binmask
• Time-Frequency Analysis — dlstft and stftmag2sig
• Digital Filtering — sosfilt
• Transforms — bitrevorder and digitrevorder
• Waveform Generation — buffer

6-4
You must have Parallel Computing Toolbox to use gpuArray objects with supported functions. For
more details, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox). To see which GPUs
are supported, see GPU Support by Release (Parallel Computing Toolbox).

6-5
7

R2020b

Version: 8.5

New Features

Bug Fixes

Compatibility Considerations
R2020b

Signal Labeler App: Perform faster labeling


Starting this release, the Signal Labeler app lets users perform faster labeling by drawing regions
and points of interest. The app also has a new fast navigation mode that enables users to navigate
quickly through datasets and label members.

Signal Labeler App: View spectra and spectrograms


The Signal Labeler app now shows signal spectra and spectrograms to aid in the labeling process.
You can draw region-of-interest or point labels on the spectrogram or the time plot.

Signal Labeler App: Import data from files


The Signal Labeler app now lets users import data from files.

Signal Segmentation: Extract and convert signal regions of interest in


preparation for deep learning
This release introduces the signalMask object and the binmask2sigroi, sigroi2binmask,
extendsigroi, extractsigroi, mergesigroi, removesigroi, and shortensigroi functions.
With the new functionality, you can:

• Express region-of-interest (ROI) signal masks as tables of ROI limits, as categorical sequences, or
as matrices of binary sequences, and convert between formats
• Manipulate masks: Extend, remove, or merge regions of interest
• Extract signal regions defined by masks to prepare data for training machine learning or deep
learning models
• Plot signals with color-coded regions

European Data Format Files: Read EDF and EDF+ files and obtain
information about them
The European Data Format (EDF) is a widely used storage and file exchange format for biological and
medical signals. This release introduces the edfread and edfinfo functions.

• edfread enables users to read data stored in EDF and EDF+ files into the MATLAB workspace.
• edfinfo returns information about the header and contents of an EDF file.

Short-Time Fourier Transform: Reconstruct signals from their STFT


magnitudes and compute one-sided estimates
This release introduces the stftmag2sig function, which allows users to reconstruct a signal time-
domain waveform starting from the magnitude of its short-time Fourier transform.

Starting this release, the stft and istft functions can compute one-sided forward and inverse
short-time Fourier transforms of real-valued signals.

7-2
Signal Labeling: Point to signal collections in the workspace or in files
using signalDatastore objects
Starting this release, the labeledSignalSet object accepts input specified by signalDatastore
objects.

Signal Resampling: Change sample rates of N-D arrays or resample


them to uniform grids
This release enhances the resample function to accept N-D arrays as input. You can use the function
to resample multidimensional arrays or to interpolate nonuniformly sampled N-D arrays to uniform
grids.

Compatibility Considerations
In previous releases, resample accepted arrays with more than two dimensions but returned two-
dimensional matrices. As a result of this behavior, the resampled output was correct in some cases
but not all. Starting this release, the function has a dim argument that allows users to specify the
dimension along which to operate. If dim is not specified, resample operates along the first array
dimension with size greater than 1. The output has the same number of dimensions as the input.

chirp Function: Generate complex-valued swept-frequency cosine


signals
The chirp function now generates complex-valued chirps. You can now specify negative initial or
final chirp frequencies.

pmtm Function: Perform spectral analysis using sine tapers


Starting this release, the pmtm function lets you compute multitaper power spectral density estimates
of signals using either Slepian tapers or sine tapers.

Deep Learning Examples: Use generative adversarial network and


generate Raspberry Pi code
This release introduces two examples that use signal processing techniques and deep learning
networks:

• Generate Synthetic Signals Using Conditional Generative Adversarial Network uses a conditional
generative adversarial network to produce synthetic signals.
• Deploy Signal Segmentation Deep Network on Raspberry Pi generates a MEX function and a
standalone executable that perform waveform segmentation on a Raspberry Pi.

C/C++ Code Generation Support: Generate code for feature


extraction, signal measurements, and vibration analysis
These Signal Processing Toolbox functions now support C/C++ code generation:

7-3
R2020b

• Feature Extraction — cusum, edr, findsignal, and rssq


• Spectral Measurements — instfreq, sinad, pentropy, pkurtosis, snr, thd, and toi
• Transition Measurements — falltime, risetime, and statelevels
• Vibration Analysis — orderspectrum, rpmfreqmap, rpmordermap, and tachorpm

You must have MATLAB Coder to generate standalone C and C++ code for supported functions. For
more information on usage and limitations, see the Extended Capabilities section at the bottom of
each reference page.

GPU acceleration for spectral analysis and time-frequency analysis


functions
The cpsd, fsst, goertzel, istft, mscohere, periodogram, and pwelch functions now support
gpuArray objects. The czt function now supports 3-D input for both numeric arrays and gpuArray
objects. Starting this release, you also can use the spectrogram function on a GPU to compute
short-time Fourier transforms at nonuniformly spaced frequencies.

You must have Parallel Computing Toolbox to use gpuArray objects with supported functions. For
more details, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox). To see which GPUs
are supported, see GPU Support by Release (Parallel Computing Toolbox).

GPU code generation support for zero-phased filtering and Fourier


synchrosqueezed transform functions
The filtfilt, fsst, and ifsst functions now support code generation for graphical processing
units (GPUs).

You must have MATLAB Coder and GPU Coder to generate CUDA code.

tall Array Support: Operate on tall arrays with the pwelch function
The pwelch function now accepts tall arrays as input.

7-4
8

R2020a

Version: 8.4

New Features

Bug Fixes

Compatibility Considerations
R2020a

Signal Labeler App: Perform interactive or automated signal labeling


The Signal Labeler app can now be opened from the Apps tab on the MATLAB Toolstrip or from the
Command Window. The app enables you to import data from the MATLAB workspace and export
labeled data to the workspace or to a file. The app's label viewer is now enhanced to let you edit
labels interactively.

Signal Labeler now enables you to autolabel plotted signals and inspect labeling results before
committing. When in autolabeling mode, you can run any function that labels attributes, regions of
interest, or points of interest. You can then inspect the labeling, modify the autolabeling function, edit
labels, and save the labeling when it is satisfactory. For easier label inspection, the autolabeling mode
displays only the labels generated by the most recently called function.

Signal Datastores: Work with signal collections that exist in the


workspace or in files
This release introduces datastores that make it possible to read, preprocess, and transform signal
collections that exist in the MATLAB workspace or in files. signalDatastore objects enable users
to work with large data collections for easier processing in machine learning and artificial
intelligence applications. For an example of signalDatastore usage, see Waveform Segmentation
Using Deep Learning.

Time-Frequency Analysis: Use variational mode decomposition to


extract intrinsic modes
This release introduces the vmd function, which performs variational mode decomposition. VMD
decomposes a real signal into a number of narrowband mode functions whose envelopes and
instantaneous frequencies vary much more slowly than their central frequencies. The algorithm
determines all mode waveforms and central frequencies simultaneously and thus distributes errors
among them in a balanced way. Variational mode decomposition is suitable for the study of
nonstationary or nonlinear signals.

Deep Learning Examples: Use time-frequency analysis and neural


networks for classification and labeling
This release introduces three examples that employ signal processing techniques and deep learning:

• Iterative Approach for Creating Labeled Signal Sets with Reduced Human Effort uses a train-as-
you-label iterative method for deep learning classifier training.
• Pedestrian and Bicyclist Classification Using Deep Learning (Phased Array System Toolbox) uses a
deep learning network to classify pedestrians and bicyclists based on their micro-Doppler
characteristics.
• Modulation Classification with Deep Learning (Communications Toolbox) performs modulation
classification using a convolutional neural network.

8-2
tall Arrays: Operate on tall arrays with the spectrogram and stft
functions
The spectrogram and stft functions now support tall arrays as inputs. For more information on
usage and limitations, see the Extended Capabilities section at the bottom of each reference page.

GPU code generation support for fftfilt, stft, and istft functions
The fftfilt, stft, and istft functions now support code generation for graphical processing
units (GPUs). You must have MATLAB Coder and GPU Coder to generate CUDA code.

GPU acceleration for spectrogram, czt, stft, and wvd functions


The spectrogram, czt, stft, and wvd functions now support gpuArray objects. You must have
Parallel Computing Toolbox to use gpuArray objects with supported functions. For more details, see
Run MATLAB Functions on a GPU (Parallel Computing Toolbox). To see which GPUs are supported,
see GPU Support by Release (Parallel Computing Toolbox).

C/C++ Code Generation Support: Generate code for time-frequency


analysis, feature extraction, spectral analysis, multirate signal
processing, and filter design
These Signal Processing Toolbox functions now support C/C++ code generation:

• Time-Frequency Analysis — hht, kurtogram, pspectrum, spectrogram, and xspectrogram


• Feature Extraction — dtw
• Spectral Analysis — tfestimate
• Spectral Measurements — bandpower, enbw, meanfreq, medfreq, obw, powerbw, and sfdr
• Multirate Signal Processing — resample and upfirdn
• Filter Design — bilinear, butter, lp2bp, lp2bs, lp2hp, lp2lp, and zp2ss
• Transforms — cceps, icceps, fwht, and ifwht
• Linear Predictive Coding — levinson

You must have MATLAB Coder to generate standalone C and C++ code for supported functions. For
more information on usage and limitations, see the Extended Capabilities section at the bottom of
each reference page.

Functionality being removed or changed


Label button removed from Signal Analyzer
Behavior change

Signal Analyzer no longer opens Signal Labeler, which is now available as an app. If you want to label
signals, open Signal Labeler from the MATLAB Toolstrip or the Command Window.

8-3
9

R2019b

Version: 8.3

New Features

Bug Fixes
R2019b

Signal Labeling: Perform automated labeling using user-defined


functions
The Signal Labeler now enables you to label your data using custom automated labeling functions.
You can label signal attributes, regions of interest, or points of interest.

Signal Labeling: Automatically find and label signal peaks and valleys
The Signal Labeler now enables you to find and label local maxima and minima of signals. Signal
Labeler uses the MATLAB functions islocalmax and islocalmin to search for the peaks and
valleys.

Signal Analyzer App: Analyze complex signals


The Signal Analyzer app now accepts complex data. You can view real (inphase) and imaginary
(quadrature) parts and estimate two-sided spectra and spectrograms of complex signals.

Tall Array Support: Compute spectrograms of signals too large to fit in


memory
The stft and spectrogram functions now accept tall arrays as input.

stft and istft Functions: Compute and invert short-time Fourier


transforms of multichannel signals
The stft and istft functions now accept multichannel signals as input.

Time-Frequency Gallery: Examine features and limitations of time-


frequency analysis methods
Use the new Time-Frequency Gallery to examine the features and limitations of the different time-
frequency analysis methods provided by Signal Processing Toolbox and Wavelet Toolbox. The Gallery
presents the potential application of specific time-frequency methods to the analysis of seismic data,
music and speech signals, biomedical data, and vibration measurements.

C/C++ Code Generation Support: Generate code for time-frequency


analysis, spectral analysis of nonuniformly sampled signals, and
digital filtering
These Signal Processing Toolbox functions now support C/C++ code generation:

• Time-Frequency Analysis — fsst, ifsst, tfridge, wvd, and xwvd


• Spectral Analysis of Nonuniformly Sampled Signals — plomb
• Transforms — dftmtx and rceps
• Digital Filtering — eqtflength, fftfilt, and tf2ss
• Waveform Generation — chirp, diric, gmonopuls, and sawtooth

9-2
• Spectral Windows — chebwin

You must have MATLAB Coder to generate standalone C and C++ code for supported functions.

9-3
10

R2019a

Version: 8.2

New Features

Bug Fixes
R2019a

Signal Labeling: Label signals interactively and visualize labeled


signals
The Signal Labeler enables you to label signals interactively and visualize labeled signals. You can
annotate signals and prepare signal datasets for machine learning and deep learning classification
and regression tasks. You can access the Signal Labeler from the Signal Analyzer app.

Time-Frequency Analysis: Compute short-time Fourier transforms and


inverse short-time Fourier transforms
This release introduces a set of functions that provide enhanced support for the short-time Fourier
transform. The short-time Fourier transform is the most widely used tool for time-frequency analysis.
The transform has applications in all fields that involve nonstationary signals.

• The stft function computes the short-time Fourier transform of a signal.


• The istft function reconstructs a signal from its short-time Fourier transform.
• The iscola function checks whether a window-overlap combination satisfies a necessary
condition for perfect reconstruction.

All three functions support C/C++ code generation.

Signal Analyzer App: Remove trends from signals and estimate their
envelopes
The Signal Analyzer app now enables you to compute the upper and lower envelopes of a waveform.
You can find the envelopes using an FFT-based analytic function, an FIR Hilbert filter, the function
peaks, or the signal RMS values.

This release also introduces functionality to remove trends from signals. You can remove constant
trends, linear trends, and piecewise linear trends.

Signal Analyzer App: Enhanced management of multichannel signals


Starting this release, Signal Analyzer displays an expandable hierarchy of any multichannel signal
that you import. The app maintains the hierarchy as you work with the different channels, enabling
better and easier signal management and export.

C/C++ Code Generation Support: Generate code for filter design,


spectral analysis, and spectral windowing
The following Signal Processing Toolbox functions now support C/C++ code generation:

• Filter Design and Filtering:

buttap, filtfilt, filtord, fir1, firls, kaiserord, and sos2tf


• Spectral Analysis:

cpsd, czt, goertzel, mscohere, periodogram, and pwelch


• Spectral Windows:

10-2
barthannwin, bartlett, blackman, blackmanharris, bohmanwin, flattopwin, gausswin,
nuttallwin, parzenwin, rectwin, taylorwin, triang, and tukeywin now accept variable
input.
• Waveform Generation:

gauspuls, pulstran, rectpuls, square, and tripuls


• Linear Predictive Coding:

lsf2poly, poly2ac, poly2lsf, poly2rc, rc2ac, rc2poly, and rlevinson

You must have MATLAB Coder to generate standalone C and C++ code for supported functions.

10-3
11

R2018b

Version: 8.1

New Features

Bug Fixes
R2018b

Signal Analyzer App: Preprocess signals using user-defined functions


The Signal Analyzer app now enables you to preprocess your data within the app itself, using custom
preprocessing functions.

Signal Analyzer App: Change sample rates of signals and convert


nonuniformly sampled signals to uniformly sampled signals
The Signal Analyzer app now enables you to resample signals. You can interpolate nonuniformly
sampled signals onto uniform grids. You can also change the sample rate of uniformly sampled
signals. Generate MATLAB functions to resample any number of signals according to your
specifications.

Time-Frequency Analysis: Analyze signals using the Wigner-Ville


distribution
This release adds support for the Wigner-Ville distribution, which provides a high-resolution time-
frequency representation of a signal. The distribution has applications in signal visualization,
detection, and estimation.

• wvd computes the Wigner-Ville distribution of a signal. The function also computes the smoothed
pseudo Wigner-Ville distribution, which uses independent windows to smooth in time and
frequency.
• xwvd computes the cross Wigner-Ville distribution of two signals. The function also computes the
cross smoothed pseudo Wigner-Ville distribution, which uses independent windows to smooth in
time and frequency.

Deep Learning Example: Identify morphological features of signals


using recurrent neural networks
This release introduces an example, Waveform Segmentation using Deep Learning, that shows one
way to combine signal processing and long short-term memory (LSTM) networks for the analysis of
signals.

Signal Labeling: Define labels and create sets of labeled signals


This release introduces functionality to define labels for signals and to create sets of labeled signals.
You can store signal values and annotations in a form that keeps all data together.

• signalLabelDefinition enables users to create signal label definitions. The definitions can be
for attributes, regions, or points of interest.
• labeledSignalSet enables users to group signals, label definitions, and label values that can be
used in learning algorithms.

11-2

You might also like