DSP System Toolbox™ Release Notes
DSP System Toolbox™ Release Notes
Phone: 508-647-7000
R2024b
iii
Transforms, Estimation, and Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17
Deep Signal Anomaly Detector block supports LSTM forecaster model . . 1-18
New AI deployment example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18
R2024a
iv Contents
Scopes and Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
R2023b
Design Filter Live Editor Task: Design digital filters interactively . . . . . . . 3-2
New Simulink model templates in DSP System Toolbox . . . . . . . . . . . . . . . 3-2
Second-Order Section Filter Block: Implement a cascade of second-order
section filters in Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
New FIR filter design blocks with tunable filter specifications . . . . . . . . . . 3-3
New lowpass and highpass IIR filter design blocks with tunable filter
specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
New design functions optimized for run-time design when generating code
...................................................... 3-4
New dsp.ParallelFilter System object . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Tunable Bandpass IIR Filter and Tunable Bandstop IIR Filter blocks
generate coefficients in second-order section form . . . . . . . . . . . . . . . . 3-5
Variable FIR Decimation and Variable FIR Interpolation blocks can generate
fixed-size output signals for variable-size input signals . . . . . . . . . . . . . 3-5
v
Frequency-Domain FIR Filter supports multiple-input multiple-output
(MIMO) systems and multiple paths between input and output pairs in
MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
Normalized frequencies in certain filtering blocks and System objects . . . 3-5
Support for arbitrary input frame length in DSP System Toolbox objects
...................................................... 3-6
Support for arbitrary input frame length in DSP System Toolbox blocks . . 3-6
Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . . 3-6
Generate SIMD code from LMS Filter block by leveraging target hardware
instruction set extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11
R2023a
New IIR filter design blocks with tunable filter specifications . . . . . . . . . . 4-2
New Variable FIR Decimation and Variable FIR Interpolation blocks with
tunable rate conversion factors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Normalized frequency in certain filtering blocks and System objects . . . . . 4-2
Support for arbitrary input frame length in DSP System Toolbox blocks . . 4-2
Support for arbitrary input frame length in DSP System Toolbox objects
...................................................... 4-3
Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
vi Contents
Enhancements to Upsample, Downsample, and Repeat blocks . . . . . . . . 4-10
Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Support for arbitrary input frame length in Zoom FFT block . . . . . . . . . . 4-11
Support for arbitrary input frame length in dsp.ZoomFFT object . . . . . . . 4-11
Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . 4-11
Generate SIMD code for FIR Interpolation and FIR Decimation blocks on all
Intel platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13
Dataflow subsystems support variable-size signals . . . . . . . . . . . . . . . . . 4-13
R2022b
vii
Support for arbitrary input frame length in DSP System Toolbox blocks . 5-11
Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . 5-11
R2022a
viii Contents
New CCDF measurement mode in powermeter System object . . . . . . . . . 6-15
Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . 6-15
R2021b
New default filter design for FIR rate conversion objects . . . . . . . . . . . . . 7-2
New automatic design for FIR rate conversion objects . . . . . . . . . . . . . . . 7-3
Complex support for SOS filter coefficients . . . . . . . . . . . . . . . . . . . . . . . . 7-4
Arbitrary frame size support for dsp.FarrowRateConverter . . . . . . . . . . . . 7-4
Functionality being removed or changed . . . . . . . . . . . . . . . . . . . . . . . . . 7-4
Improved speed performance for certain DSP System Toolbox features . . 7-10
SIMD Code Generation: New code replacement library (CRL) customized
for DSP System Toolbox features . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-11
ix
POSIX threads (Pthreads) and OpenMP threading support for multicore
custom targets using dataflow domain . . . . . . . . . . . . . . . . . . . . . . . . 7-12
Enhancements for Multicore tab analysis results . . . . . . . . . . . . . . . . . . 7-12
dspunfold does not support Xcode 12.0 or later . . . . . . . . . . . . . . . . . . . 7-12
R2021a
Multicore tab for Dataflow: Analyze and configure multicore execution for
Simulink models using Dataflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
SIMD Code Generation: Use Intel AVX2 to generate optimized code for
certain DSP System Toolbox features . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3
x Contents
Blocks that have been removed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13
R2020b
New time scope object: Visualize signals in the time domain . . . . . . . . . . 9-2
Scopes Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2
Measurements Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-2
SIMD Code Generation: Use Intel AVX2 to generate optimized code for
certain DSP System Toolbox features . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3
R2020a
SIMD Code Generation: Use Intel AVX2 to generate optimized code for
certain DSP System Toolbox blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2
FIR Interpolation and FIR Decimation blocks . . . . . . . . . . . . . . . . . . . . . 10-2
xi
LMS Filter block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2
R2019b
SIMD code from Discrete FIR Filter Block: Generate optimized code
using Intel AVX2 for FIR Filters in Simulink . . . . . . . . . . . . . . . . . . . . 11-2
xii Contents
Discrete FIR Filter HDL Optimized block: Filter using complex coefficient
values (requires HDL Coder for code generation) . . . . . . . . . . . . . . . . 11-2
R2019a
Complex Data over UDP: Send and receive complex data directly over
UDP in MATLAB and Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3
Stream signals only from a defined interval within audio files when using
the From Multimedia File block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4
xiii
New targets supported for multicore code generation from a dataflow
subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-4
DSP System Toolbox Support Packages for ARM Cortex -A and ARM
Cortex -M Processors will be removed . . . . . . . . . . . . . . . . . . . . . . . . . . 12-8
R2018b
xiv Contents
Optimized Multistage Multirate Filters: Design multistage decimation
and interpolation FIR filters based on requirements for response and
implementation cost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3
Sample Range for Audio File Reader: Stream signals only from a defined
interval within audio files when using the dsp.AudioFileReader System
object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3
xv
1
R2024b
Version: 24.2
New Features
Bug Fixes
Compatibility Considerations
R2024b
Digital Filters
Design a multistage bandlimited sample rate converter using the new designRateConverter
function in MATLAB®.
You can design the rate converter by specifying a rate conversion ratio or input and output
frequencies. In addition, you can specify the bandwidth of interest, maximum number of stages, and
tolerance for conversion ratio.
The designHalfbandFIR function now supports minimum and maximum phase response types for
the equiripple design method.
The designMultirateFIR function now supports the equiripple design method and non-overlapping
transition bands using the new DesignMethod and OverlapTransition properties.
1-2
Digital Filters
When you specify the rate conversion factor, if the input frame length changes (variable-size signal)
during simulation, the output frame length also changes in order to keep the rate conversion factor
constant. When you specify the output frame length instead of the rate conversion factor, and if the
input frame length changes (variable-size signal) during simulation, the rate conversion factor also
changes in order to keep the output frame length constant.
1-3
R2024b
• The dsp.DCBlocker object supports certain filter analysis functions listed in “Analysis Functions
for Filter System Objects” when you set its Algorithm property to 'FIR', 'IIR', or 'CIC'. For
more information, see the Version History section in the individual analysis function reference
pages.
• The dsp.ComplexBandpassDecimator object supports the filterAnalyzer object and the
Filter Analyzer app.
To enable this behavior in the objects, set the NormalizedFrequency property to true. To enable
this behavior in the blocks, set the Sample rate mode parameter to Use normalized frequency
(0 to 1):
For more details, see the Version History section in the reference pages.
1-4
Digital Filters
To enable this behavior in the object, set the NormalizedFrequency property to true. To enable
this behavior in the block, set the Sample rate mode parameter to Use normalized frequency
(0 to 1).
For more details, see the Version History section in the reference pages.
• designMultirateFIR
• designFracDelayFIR
• designLowpassFIR
• designHighpassFIR
• designBandpassFIR
• designBandstopFIR
• designLowpassIIR
• designHighpassIIR
• designBandpassIIR
• designBandstopIIR
• designHalfbandFIR
These mfilt objects have been removed in R2024b. Use these System objects instead.
1-5
R2024b
The dsp.BiquadFilter object issues a warning and will be removed in a future release. Use the
dsp.SOSFilter object instead. The dsp.SOSFilter object has these advantages:
• Supports filter coefficients in the form of Numerator and Denominator coefficient matrices. This
format is better suited with the existing filter design, implementation, and visualization tools in
DSP System Toolbox.
• Supports tunable coefficients and scale values properties whose values can change during filter
design and analysis.
• Allows you to not specify scale values for each section through the HasScaleValues property.
For a replacement IIR filter that supports HDL code generation, use the dsphdl.BiquadFilter
object. For an example, see “Generate HDL Code for IIR Filter” (DSP HDL Toolbox).
For more information on how to replace your existing code, see the Version History section in the
dsp.BiquadFilter reference page.
The Filter Realization Wizard block will be removed in a future release. Currently, there is no
replacement.
These blocks have been removed and moved to the obsolete library. Existing instances of the blocks
continue to run. For new models, use the replacement blocks instead.
1-6
Digital Filters
These blocks have been completely removed. Existing instances of the blocks are automatically
replaced with the replacement blocks. For new models, use the replacement blocks.
1-7
R2024b
Adaptive RBW: Display spectral data for any number of input samples and adjust RBW
accordingly
Previously, spectrum analyzer required a minimum number of samples to update the display for a
given RBW value. Starting in R2024b, this limitation is removed. The scope now updates its display
for any number of input samples and adjusts the RBW value accordingly.
Window Invariant Samples Per Update: Adjust RBW value to always require 1024 samples
per spectral update
The spectrum analyzer can now automatically adjust the resolution bandwidth (RBW) such that it
always requires 1024 samples per spectral update (Nsamples = 1024) irrespective of the window you
specify.
1-8
Scopes and Visualization
• timescope
• spectrumAnalyzer
• dsp.ArrayPlot
• dsp.DynamicFilterVisualizer
• In the dsp.ArrayPlot object, set PlotType to "Bar". You can set the base value of the bar plot
and the relative width of the individual bars using the PlotBaseValue and BarWidth properties.
• In the Array Plot block, set Plot Type to Bar in Array Plot settings > Color and Styling. To adjust
the relative width of the individual bars, set Width in the Array Plot settings.
In the Array Plot block, click the new Display Grid property in the Scope tab and select a layout. You
can select up to a maximum of five rows and five columns.
1-9
R2024b
You can now specify the active display using the ActiveDisplay property in the dsp.ArrayPlot
object and the Active Display property in the Array Plot block UI.
Array Plot: Show Legend property is now also available in array plot
settings
The Show Legend property is now also available in the Array Plot settings > Display and Labels. To
control the legend display, you can select Legend in the Scope tab of the array plot toolstrip or
select the Show Legend property in the array plot settings.
• timescope object
• spectrumAnalyzer object and Spectrum Analyzer block
• dsp.ArrayPlot object and Array Plot block
• dsp.DynamicFilterVisualizer object and Filter Visualizer block
1-10
Scopes and Visualization
To save the current view, in the Logic Analyzer app, on the Logic Analyzer tab, click Save View or
press Ctrl+S. To open a saved view file, click Open View or press Ctrl+O.
To save a Logic Analyzer view, use only the Logic Analyzer app. This feature is not supported in the
dsp.LogicAnalyzer System object™.
• Black (default) — Set the background color of the Logic Analyzer display to black (dark).
• White — Set the background color of the Logic Analyzer display to white (light).
• Auto — Match the background color of the Logic Analyzer display with the MATLAB theme.
1-11
R2024b
• timescope object
• spectrumAnalyzer object and Spectrum Analyzer block
• dsp.ArrayPlot object and Array Plot block
• dsp.DynamicFilterVisualizer object and Filter Visualizer block
Existing instances of the visualizeFilterStages function continue to run. For new instances, use
the appropriate visualize function.
1-12
Scopes and Visualization
FVTool will be removed in a future release. Use Filter Analyzer instead. There are differences that
require updates to your code.
1-13
R2024b
The second order sections (SOS) format is not supported in Filter Analyzer. Use the “Cascaded
Transfer Functions” format instead. Given a filter specified as an SOS matrix sos, you must make the
following updates to your code.
or
[ctfNum,ctfDen] = sos2ctf(sos);
filterAnalyzer(ctfNum,ctfDen)
hfvt = fvtool(sos); [ctfNum,ctfDen] = sos2ctf(sos);
set(hfvt.SOSViewSettings, ... fa = filterAnalyzer(ctfNum,ctfDen, ...
View="cumulative") CTFAnalysisMode="cumulative");
hfvt = fvtool(sos); [ctfNum,ctfDen] = sos2ctf(sos);
set(hfvt.SOSViewSettings, ... fa = filterAnalyzer(ctfNum,ctfDen, ...
View="userdefined", ... CTFAnalysisMode="specify", ...
UserDefined={3,1}) CTFAnalysisSections={3,1});
1-14
Scopes and Visualization
Calling design() with no output arguments no longer launches Filter Visualization Tool
Behavior change in future release
The Waterfall block has been completely removed. Existing instances of the block no longer work.
There is no direct replacement for this block.
1-15
R2024b
Discrete-Time Signals
The dsp_links function warns in R2024b and will be removed in a future release.
These blocks have been completely removed. Existing instances of the blocks are automatically
replaced with the replacement blocks. For new models, use the replacement blocks.
These blocks have been completely removed. Existing instances of the blocks no longer work. There
is no direct replacement for these blocks.
• Scalar Quantizer Design –– Consider using Scalar Quantizer Encoder and Scalar Quantizer
Decoder blocks.
• Vector Quantizer Design –– Consider using Vector Quantizer Encoder and Vector Quantizer
Decoder blocks.
1-16
Transforms, Estimation, and Statistics
To enable this behavior in the object, set the NormalizedFrequency property to true. To enable
this behavior in the block, set the Sample rate mode parameter to Use normalized frequency
(0 to 1).
For more details, see the Version History section in the reference pages.
1-17
R2024b
AI for DSP
1-18
Code Generation
Code Generation
To generate SIMD code for these hardware targets, set Leverage target hardware instruction set
extensions to Neon v7. For more information, see “Use Target Hardware Instruction Set Extensions
to Generate SIMD Code from Simulink Blocks for Apple silicon”.
To generate SIMD code for these hardware targets, set Leverage target hardware instruction set
extensions to Neon v7. For more information, see “Use Target Hardware Instruction Set Extensions
to Generate SIMD Code from Simulink Blocks for ARM Cortex-A Processors”.
• “Code Generation for Interpolated FIR Filter” –– Design and implement a high-order FIR filter
efficiently using a cascade of multirate multistage filters. Generate C code from these filters.
• “Generate and Deploy SIMD Optimized Code for Interpolated FIR Filter on Intel Desktops” ––
Generate and deploy SIMD optimized code for a high-order FIR filter on Intel® desktops.
• “Deploy Parametric Audio Equalizer on ARM Cortex-M Processors” (Embedded Coder) –– Deploy
three-band parametric audio equalizer on ARM Cortex-M STM32F746G-Discoveryboard. You can
deploy this parametric equalizer on any supported ARM Cortex-M hardware.
• “Code Generation for Interpolated FIR Filter on ARM Cortex-M Target using CMSIS” (Embedded
Coder) –– Generate and run the optimized code using ARM Cortex-M CRL for a high order FIR
filter on the STM32F746G-Discovery hardware.
1-19
2
R2024a
Version: 24.1
New Features
Bug Fixes
Compatibility Considerations
R2024a
Digital Filters
Use this function to perform frequency analysis in multirate filters, particularly in sample rate
converter designs where the freqz function is not supported
When you call the function with no output arguments, the function plots the magnitude and phase of
the impulse response DTFT and gives visual indication of multirate signal distortion.
Design Filter Live Editor Task: Design bandpass and bandstop digital
filters interactively
Starting in R2024a, if you have a DSP System Toolbox license, you can design and analyze these
digital filters interactively using the Design Filter Live Editor task.
The Live editor task automatically generates MATLAB code for your filter design. If you select the
Use a System object to implement filter parameter in the Design Filter Live Editor task UI, the
designfilt function generates a dsp.FIRFilter object for the bandpass and bandstop FIR filter
responses, and a dsp.SOSFilter object for the bandpass and bandstop IIR filter responses.
2-2
Digital Filters
2-3
R2024a
You can now directly specify the interpolation factor in the dsp.ChannelSynthesizer object and
the Channel Synthesizer block.
Existing MATLAB scripts and Simulink models using the channel synthesizer continue to work in
R2024a.
If you export a model from R2024a to a previous release, and if you have set the Interpolation
factor parameter to a custom value, then an empty subsystem replaces the block in the previous
release. To fix this, set the Interpolation factor parameter to Number of frequency bands
before exporting.
2-4
Digital Filters
Existing MATLAB scripts and Simulink models using the dsp.Channelizer object and the
Channelizer block continue to run in R2024a.
Block Renamed to
Tunable Lowpass FIR Filter Lowpass FIR Filter Design
Tunable Lowpass IIR Filter Lowpass IIR Filter Design
Tunable Highpass FIR Filter Highpass FIR Filter Design
Tunable Highpass IIR Filter Highpass IIR Filter Design
Tunable Bandpass FIR Filter Bandpass FIR Filter Design
Tunable Bandpass IIR Filter Bandpass IIR Filter Design
Tunable Bandstop FIR Filter Bandstop FIR Filter Design
Tunable Bandstop IIR Filter Bandstop IIR Filter Design
2-5
R2024a
• designMultirateFIR
• designFracDelayFIR (length-based design mode)
• designLowpassFIR
• designHighpassFIR
• designBandpassFIR
• designBandstopFIR
• designLowpassIIR
• designHighpassIIR
• designBandpassIIR
• designBandstopIIR
• designHalfbandFIR
Existing instances of your code using the half-polyphase length continue to run, but it is
recommended that you replace this code to use the PolyphaseLength argument. For more
information on how to replace your code, see the Version History section in the
designMultirateFIR page.
2-6
Digital Filters
For more information on how to replace your code, see the Version History section in the function
reference pages.
When the input is a variable-size signal, you can change the frame size (number of rows) of the signal
during simulation but the number of channels (columns) must remain constant.
To enable this behavior, set the NormalizedFrequency property in these objects to true:
• dsp.NotchPeakFilter
• dsp.CICCompensationDecimator
• dsp.CICCompensationInterpolator
To enable this behavior, set the Sample rate mode parameter in these blocks to Use normalized
frequency (0 to 1):
• Notch-Peak Filter
• CIC Compensation Interpolator
• CIC Compensation Decimator
For more details, see the Version History section in the reference pages.
2-7
R2024a
Starting in R2024a, specifying the arguments using the Value only syntax is discouraged in the
designMultirateFIR and designFracDelayFIR functions.
Existing instances of the functions using the Value only arguments continue to run but are
discouraged. Instead, specify the arguments using the Name=Value syntax. For more information on
how to replace your existing code, see the Version History section of the designMultirateFIR
and designFracDelayFIR functions.
cumsec function with no output arguments returns cell array of cumulative sections
Behavior change in future release
When you call the cumsec function with no output arguments, the function returns a cell array which
contains cumulative sections of the biquadratic filter. In previous releases, cumsec function with no
output arguments launched the Filter Visualization Tool to plot the magnitude response of the
cumulative sections.
You do not need to make any changes to your code. However, to plot the magnitude response of the
cumulative sections, use the fvtool function on the biquadratic filter object.
When you call the polyphase function with no output arguments, the function returns the polyphase
matrix of the multirate filter. In previous releases, polyphase function with no output arguments
launched Filter Visualization Tool with all the polyphase subfilters to allow you to analyze each
component subfilter individually.
You do not need to make any changes to your code. However, to analyze the individual subfilters, use
one of the functions in the Filter Analysis category on the individual polyphase component vectors.
For more information, see the Version History section in the polyphase function reference page.
The following filter analysis functions no longer use Filter Visualization Tool to plot the filter
responses. Starting in R2024a, when you call these functions with no output arguments, the functions
use the MATLAB plot instead.
• freqz
• phasez
• grpdelay
• phasedelay
• zerophase
• zplane
• impz
2-8
Digital Filters
• stepz
• freqrespest
• noisepsd
These functions will be removed in a future release. For more information on how to replace your
existing code, see the Version History section in the corresponding reference pages.
These mfilt objects have been removed in R2024a. Use the replacement System objects instead.
These blocks will be removed in a future release. Use the replacement blocks instead.
2-9
R2024a
2-10
Scopes and Visualization
You can use the command line interface to add, remove, and update filters, displays, and analysis
options. For more information, see filterAnalyzer.
This app provides you with greater interactivity and flexibility while you visualize and analyze your
digital filters.
The RBW (Hz) parameter in the Spectrum Analyzer toolstrip has moved from the Scope tab to the
Estimation tab.
You can now specify the window length and FFT length in the spectrum analyzer under certain
conditions.
• FrequencyResolutionMethod
• WindowLength
• FFTLengthSource
• FFTLength
• Resolution Method
2-11
R2024a
• Window Length
• FFT Length
To customize the spectrum analyzer status bar, you can now click the Customize status bar icon ( )
on the right side of the status bar.
In R2024a, the scope selects the Samples/Update and Time Resolution options by default in the
customize status bar window. With this change, these two properties now appear by default on the
spectrum analyzer status bar.
Starting in R2024a, the dsp.SpectrumAnalyzer object warns. Use the spectrumAnalyzer object
instead.
For more details on how to update your existing code, see the Version History section on the
dsp.SpectrumAnalyzer object page.
2-12
Discrete-Time Signals
Discrete-Time Signals
If you open a model saved in R2023b or a previous version of MATLAB, the model continues to use
the older version of the block in R2024a. To use the updated version, obtain the Random Source block
from the DSP System Toolbox/Sources library.
2-13
R2024a
The Convert 1-D to 2-D and Convert 2-D to 1-D blocks have been removed. Existing instances of the
blocks are automatically replaced with the Reshape (Simulink) block.
2-14
AI for DSP
AI for DSP
You must first train the detector model in MATLAB and configure the block to use this model in
Simulink.
To use this block, you must have a Deep Learning Toolbox™ license.
2-15
R2024a
Code Generation
2-16
Code Generation
2-17
3
R2023b
Version: 23.2
New Features
Bug Fixes
Compatibility Considerations
R2023b
Digital Filters
Design Filter Live Editor Task: Design digital filters interactively
Starting in R2023b, if you have a DSP System Toolbox license, you can design and analyze these
digital filters interactively using the Design Filter Live Editor task.
The Live editor task automatically generates MATLAB code for your filter design. If you select the
Use a System object to implement filter parameter in the Design Filter Live Editor task UI, the
designfilt function generates a dsp.FIRFilter object for the lowpass and highpass FIR filter
responses, and a dsp.SOSFilter object for the lowpass and highpass IIR filter responses.
3-2
Digital Filters
• Tunable FIR and IIR Filters –– Design and implement FIR and IIR filters with tunable filter
specifications.
• Interpolated FIR Filter –– Design an efficient alternative to a high-order FIR filter. This
implementation contains an FIR decimator followed by a set of FIR filters and an FIR interpolator
that process the input signal in multiple stages. This implementation is efficient because you filter
the signal at a lower sampling rate.
These templates automatically configure the Simulink environment with the recommended settings.
Instead of using the default new model canvas, select one of these template models to get started. For
more information, see Configure Simulink Environment for Signal Processing Models.
Tunable filters enable you to change the filter specifications while the simulation is running. The
blocks redesign the filters based on the updated specifications. The tunable filter specifications
include filter order, cutoff frequency, center frequency, bandwidth, and sidelobe attenuation. The
blocks output the numerator coefficients in the vector form.
When you generate code from these blocks, you can tune the filter design in the generated code.
New lowpass and highpass IIR filter design blocks with tunable filter
specifications
Use the new Tunable Lowpass IIR Filter and Tunable Highpass IIR Filter blocks to design lowpass
and highpass IIR filters with tunable filter specifications.
Tunable filters enable you to change the filter specifications while the simulation is running. The
blocks redesign the filters based on the updated specifications. The tunable filter specifications
include filter order, 3-dB cutoff frequency, passband ripple, and stopband attenuation. The blocks
output the coefficients in the second-order section (SOS) form.
When you generate code from these blocks, you can tune the filter design in the generated code.
3-3
R2023b
• designLowpassFIR
• designHighpassFIR
• designBandpassFIR
• designBandstopFIR
• designLowpassIIR
• designHighpassIIR
• designBandpassIIR
• designBandstopIIR
• designNotchPeakIIR
• designHalfbandFIR
• designHalfbandIIR
These functions can return filter coefficients (design only) or a filter System object (design and
implementation).
When you generate code from these functions, you can tune the filter specifications and update the
filter design while running the generated code.
3-4
Digital Filters
You can determine the number of branches in the parallel structure, add or remove branches, release
the filters on all branches, and even generate MATLAB code to filter signals using this parallel
structure. For more details, see the Object Functions section in the dsp.ParallelFilter object
page.
For a list of filter objects that you can add as branches, run this command in the MATLAB command
prompt.
dsp.ParallelFilter.helpSupportedSystemObjects
Tunable Bandpass IIR Filter and Tunable Bandstop IIR Filter blocks
generate coefficients in second-order section form
Starting in R2023b, the Tunable Bandpass IIR Filter and Tunable Bandstop IIR Filter blocks can
generate second-order section (SOS) coefficient matrices and the corresponding scale values.
If you specify the rate conversion factor directly in the block dialog box instead of the output frame
length, the blocks generate variable-size output signals for variable-size input signals. In this mode,
the rate conversion factor of the blocks remains constant.
To enable this behavior, set the NormalizedFrequency property in these objects to true:
• dsp.FIRHalfbandDecimator
• dsp.FIRHalfbandInterpolator
• dsp.IIRHalfbandDecimator
3-5
R2023b
• dsp.IIRHalfbandInterpolator
To enable this behavior, set the Sample rate mode parameter in these blocks to Use normalized
frequency (0 to 1):
For more details, see the Version History section in the reference pages.
• dsp.FIRHalfbandDecimator
• dsp.IIRHalfbandDecimator
Support for arbitrary input frame length in DSP System Toolbox blocks
Starting in R2023b, these blocks in DSP System Toolbox support input signals with arbitrary frame
lengths when the following conditions are met.
Block Conditions
• FIR Halfband Decimator • Input signal is a fixed-size signal (frame length
• IIR Halfband Decimator does not change during simulation) and you
select the Allow arbitrary frame length for
fixed-size input signals parameter.
• Input signal is a variable-size signal (frame
length changes during simulation).
The DSP System Simulink model template has been removed in R2023b. Use one of these templates
instead:
• Basic Filter
3-6
Digital Filters
For more information on these templates, see Configure Simulink Environment for Signal Processing
Models.
The dsp.BiquadFilter will be removed in a future release. Use the dsp.SOSFilter object
instead. The dsp.SOSFilter object has these advantages:
• Supports filter coefficients in the form of Numerator and Denominator coefficient matrices. This
format is better suited with the existing filter design, implementation, and visualization tools in
DSP System Toolbox.
• Supports tunable coefficients and scale values properties whose values can change during filter
design and analysis.
• Allows you to not specify scale values for each section through the HasScaleValues property.
For more information on how to replace your existing code, see the Version History section in the
dsp.BiquadFilter reference page.
Starting in R2023b, these fdesign filter specification objects will error. Use the equivalent
replacements instead.
For details on how to replace your existing code, see the Version History section in the reference
page of the corresponding object page.
The iirparameq function errors in R2023b. Use designParamEQ (Audio Toolbox) instead. For
details on how to replace your existing code, see the Version History section in the iirparameq
page.
'Raised Cosine' and 'Square Root Raised Cosine' response methods have been removed
The 'Raised Cosine' and 'Square Root Raised Cosine' response methods in
fdesign.decimator and fdesign.interpolator objects have been removed. Use rcosdesign,
comm.RaisedCosineTransmitFilter, and comm.RaisedCosineReceiveFilter instead.
3-7
R2023b
• spectrumAnalyzer
• dsp.ArrayPlot
• timescope
• dsp.DynamicFilterVisualizer
3-8
Discrete-Time Signals
Discrete-Time Signals
The Convert 1-D to 2-D and Convert 2-D to 1-D blocks will be removed in a future release. Use the
Reshape (Simulink) block instead. When these blocks are removed, existing instances of the blocks
will be automatically replaced with the Reshape block.
Starting in R2023b, the dsp.PeakFinder object has been completely removed. Use findpeaks or
islocalmin instead.
3-9
R2023b
Starting in R2023b, the dsp.LPCToLSF object has been completely removed. Use poly2lsf instead.
3-10
Code Generation
Code Generation
You can generate SIMD code using the Leverage target hardware instruction set extensions
parameter under these conditions:
• You set Algorithm to Sign-Error LMS, Sign-Data LMS, Sign-Sign LMS, LMS or
Normalized LMS.
• Data type of the input signal is single or double.
In addition, configure your model appropriately. In the Modeling tab of the Simulink model window,
click Model Settings and configure these parameters under Code Generation.
• Provide a specific instruction set in the Leverage target hardware instruction set
extensions parameter.
• Select the Optimize reductions parameter.
• Under Optimization levels, set Level to Maximum and Priority to Maximize execution
speed.
• In the Interface pane, under Software environment, clear non-finite numbers.
For more details, see Optimize Code for Reduction Operations by Using SIMD (Simulink Coder). For
more information on SIMD code generation in DSP System Toolbox, see SIMD Code Generation.
3-11
4
R2023a
Version: 9.16
New Features
Bug Fixes
Compatibility Considerations
R2023a
Digital Filters
When you generate code from these blocks, the generated code allows tuning of the filter design.
To enable this behavior, set the NormalizedFrequency property in these objects to true:
• dsp.LowpassFilter
• dsp.HighpassFilter
• dsp.VariableBandwidthFIRFilter
• dsp.VariableBandwidthIIRFilter
To enable this behavior, set the Sample rate mode parameter in these blocks to Use normalized
frequency (0 to 1):
• Lowpass Filter
• Highpass Filter
• Variable Bandwidth FIR Filter
• Variable Bandwidth IIR Filter
For more details, see the Version History sections in the reference pages.
Support for arbitrary input frame length in DSP System Toolbox blocks
Starting in R2023a, these blocks in DSP System Toolbox support input signals with arbitrary frame
lengths when these conditions are met.
4-2
Digital Filters
Block Conditions
Two-Channel Analysis Subband Filter • Input signal is a fixed-size signal (frame length
does not change during simulation) and the
block allows for multirate processing.
• Input signal is a fixed-size signal, block
enforces single-rate processing, and you
select the Allow arbitrary frame length for
fixed-size input signals parameter.
• Input signal is a variable-size signal (frame
length changes during simulation).
• dsp.ComplexBandpassDecimator
• dsp.CICCompensationDecimator
• dsp.SampleRateConverter
• dsp.SubbandAnalysisFilter
Starting in R2023a, the dsp.KalmanFilter object will error. Use Kalman filter functionality in
Sensor Fusion and Tracking Toolbox™ instead.
4-3
R2023a
4-4
Scopes and Visualization
Analyzer Tab
On the Analyzer tab, you can control the display, spectral-bandwidth, and configuration settings of
the Spectrum Analyzer when analyzing a spectrum or a spectrogram.
Estimation Tab
On the Estimation tab, you can specify the input domain, frequency resolution method, frequency
span options, and the averaging method for estimating the power spectrum. If you set the frequency
resolution method to Welch, you can also specify the window options for the filter for spectral
estimation.
4-5
R2023a
Measurements Tab
On the Measurements tab, you can specify the spectral measurements that you want the block to
display.
All measurements available on this tab are related to a specific channel only.
Spectrum Tab
On the Spectrum tab, you can specify the trace and scale options of the Spectrum Analyzer. You can
select the options on this tab for the Spectrum Analyzer to display a two-sided or one-sided spectrum
and a maximum-hold, minimum-hold, or normal trace. You can also specify the reference load and
spectral units.
Spectrogram Tab
To enable the Spectrogram tab, click the Spectrogram view in the Analyzer tab.
On the Spectrogram tab, you can specify the channel over which block computes the spectrogram
and the time resolution and time span of the spectrogram and choose to display a two-sided or one-
sided spectrum. You can also specify the reference load and spectral units in this tab.
4-6
Scopes and Visualization
On the Spectral Mask tab, you can add upper and lower masks to the Spectrum Analyzer to visualize
spectrum limits and compare spectrum values to specification values.
On the Channel Measurements tab, you can control the channel measurement settings.
• Channel Measurements — Select the options in this section to display occupied bandwidth or
adjacent channel power ratio (ACPR) measurements.
• Frequency Options — Select the options in this section to display frequency span, center
frequency, and start and stop frequencies.
• Adjacent Channels — Select the options in this section to display ACPR measurements.
All measurements available on this tab are related to a specific channel only.
4-7
R2023a
The Filter Visualizer can also compute the cursor and the peak finder measurements of the frequency
response that you choose. Specify the frequency response in the Channel section on Measurements
tab. In this image, the Filter Visualizer shows the measurements for the magnitude response of the
filter.
4-8
Scopes and Visualization
4-9
R2023a
Discrete-Time Signals
• Downsample
• Upsample
• Repeat
Starting in R2023a, these System objects will error. Use the equivalent replacements instead.
For details on how to replace your existing code, see the Version History section in the reference
page of the corresponding System object.
4-10
Transforms, Estimation, and Statistics
Block Conditions
• Zoom FFT • Input signal is a fixed-size signal (frame length
does not change during simulation) and you
select the Allow arbitrary frame length for
fixed-size input signals parameter.
• Input signal is a variable-size signal (frame
length changes during simulation).
Starting in R2023a, these System objects will error. Use the equivalent replacements instead.
For details on how to replace your existing code, see the Version History section in the reference
page of the corresponding System object.
4-11
R2023a
4-12
Code Generation
Code Generation
Generate SIMD code for FIR Interpolation and FIR Decimation blocks
on all Intel platforms
In R2023a, if you have an Embedded Coder license, you can generate SIMD code for the FIR
Interpolation and FIR Decimation blocks on all Intel platforms by using the model configuration
parameter Leverage target hardware instruction set extensions. Previously, you had to use a
code replacement library to generate SIMD code.
You can generate SIMD code using the Leverage target hardware instruction set extensions
parameter under these conditions:
• You set Filter structure to Direct form for the FIR Decimation block
• You set Input processing to Columns as channels (frame based)
• Input signal is real-valued with real filter coefficients
• Data type of the input signal is single or double
In addition, configure your model appropriately. In the Modeling tab of the Simulink model window,
click Model Settings and configure these parameters under Code Generation.
• Provide a specific instruction set in the Leverage target hardware instruction set
extensions parameter.
• Select the Optimize reductions parameter.
• Under Optimization levels, set Level to Maximum and Priority to Maximize execution
speed.
• In the Interface pane, under Software environment, clear non-finite numbers.
For computationally intensive operations on supported blocks, SIMD intrinsics can significantly
improve the performance of the generated code on Intel platforms. For more details, see Optimize
Code for Reduction Operations by Using SIMD (Simulink Coder).
4-13
R2023a
Linear Algebra
Starting in R2023a, these System objects will error. Use the equivalent replacements instead.
For details on how to replace your existing code, see the Version History section in the reference
page of the corresponding System object.
4-14
5
R2022b
Version: 9.15
New Features
Bug Fixes
Compatibility Considerations
R2022b
Digital Filters
You can also specify the coefficients in the block dialog box using a
dsp.FourthOrderSectionFilter object. Set Coefficient source to Filter object and specify
a dsp.FourthOrderSectionFilter object directly in the Filter parameter. Alternatively, you can
create this object in the MATLAB workspace or model workspace and specify the filter variable in the
Filter parameter.
Support for arbitrary input frame length in DSP System Toolbox blocks
Starting in R2022b, certain blocks in DSP System Toolbox support input signals with arbitrary frame
lengths when these conditions are met.
Block Conditions
FIR Decimation • Input signal is a fixed-size signal (frame length
FIR Rate Conversion does not change during simulation) and the
block allows for multirate processing
• Input signal is a fixed-size signal, block
enforces single-rate processing, and you
select the Allow arbitrary frame length for
fixed-size input signals parameter (if
enabled)
• Input signal is a variable-size signal (frame
length changes during simulation)
5-2
Digital Filters
• dsp.FIRDecimator
• dsp.FIRRateConverter
• dsp.Channelizer
When you generate code, to support arbitrary frame length for fixed-size signals, you must set the
AllowArbitraryInputLength property to true while generating code.
For more details, see the reference pages for these objects.
Starting in R2022b, these IIR design methods when used with fdesign objects design a
dsp.SOSFilter object instead of the dsp.BiquadFilter object.
• butter
• cheby1
• cheby2
• ellip
• iirlpnorm
For example, calling the design function on an fdesign.lowpass object using the butter design
method outputs a dsp.SOSFilter object.
designSpecs = fdesign.lowpass;
filtObj = design(designSpecs,'butter',SystemObject=true)
filtObj =
For a list of the IIR design methods that the fdesign.response object supports, use the
designmethods function with the 'iir' flag and set the 'Systemobject' flag to true.
5-3
R2022b
designSpecs = fdesign.lowpass;
IIRmethods = designmethods(designSpecs,'iir',SystemObject=true)
IIRmethods =
{'butter'}
{'cheby1'}
{'cheby2'}
{'ellip' }
filtObj = design(designSpecs,'butter',SystemObject=true,...
UseLegacyBiquadFilter=true)
filtObj =
Support for multistage filter design using the fdesign.interpolator and fdesign.decimator
objects will be removed in a future release.
Support for designing mfilt.cascade object using the fdesign.lowpass object has been
removed
Errors
Multistage filter design using the fdesign.lowpass object and the design function now requires
the SystemObject flag to be set to true, unless the resulting design is a single stage filter and not a
cascade. This setting generates a dsp.FilterCascade object instead of the mfilt.cascade
object.
For more details on how to update your existing code, see the Version History section in the
fdesign.lowpass and multistage reference pages.
5-4
Digital Filters
You can no longer design an mfilt.firinterp object using the fdesign.interpolator and the
design functions.
To design an FIR interpolator using the fdesign.interpolator filter specification object, set the
Systemobject flag in the design function to true. Setting this flag to true ensures that the
function outputs a filter System object instead of an mfilt.firinterp object.
fdesignObj = fdesign.interpolator;
FIRInterpObj = design(fdesignObj,SystemObject=true)
FIRInterpObj =
InterpolationFactor: 2
NumeratorSource: 'Property'
Numerator: [-3.0325e-05 0 8.3413e-05 0 … ]
For details on how to replace your existing code, see the Version History section on the
fdesign.interpolator function reference page.
Support for designing an mfilt.firdecim object using the fdesign.decimator and the design
functions will be removed in a future release.
To design an FIR decimator using the fdesign.decimator filter specification object, set the
Systemobject flag in the design function to true. Setting this flag to true ensures that the
function outputs a filter System object instead of an mfilt.firdecim object.
fdesignObj = fdesign.decimator;
FIRDecimObj = design(fdesignObj,SystemObject=true)
FIRDecimObj =
DecimationFactor: 2
NumeratorSource: 'Property'
Numerator: [-1.5162e-05 0 4.1707e-05 0 … ]
Structure: 'Direct form'
For details on how to replace your existing code, see the Version History section on the
fdesign.decimator function reference page.
Support for designing an mfilt.firsrc object using the fdesign.rsrc and the design functions
will be removed in a future release.
5-5
R2022b
To design an FIR rate converter using the fdesign.rsrc filter specification object, set the
Systemobject flag in the design function to true. Setting this flag to true ensures that the
function outputs a filter System object instead of an mfilt.firsrc object.
fdesignObj = fdesign.rsrc;
FIRRCObj = design(fdesignObj,SystemObject=true)
FIRRCObj =
InterpolationFactor: 3
DecimationFactor: 2
NumeratorSource: 'Property'
Numerator: [-3.2490e-05 0 9.1277e-05 1.3523e-04 … ]
For details on how to replace your existing code, see the Version History section on the
fdesign.rsrc function reference page.
5-6
Scopes and Visualization
When the object uses the filter bank spectral estimation method, you can now increase the sharpness
of the filter bank in the spectrumAnalyzer object. Increasing the filter sharpness decreases the
spectral leakage and gives a more accurate power reading.
Starting in R2022b, the Spectrum Analyzer displays these fields on the status bar:
• Updates –– This field shows when you select Spectrum updates processed in the Customize
Status Bar window.
• Channel number –– This field shows when you select Spectrogram channel in the Customize
Status Bar window.
The Spectrogram channel field is enabled only when the display shows spectrogram.
To enable these fields, right-click the status bar and select the properties in the Customize Status Bar
window.
5-7
R2022b
Starting in R2022b, the Spectrum Analyzer supports data cursors even when the scope shows only
the spectrogram display.
In the command line, you can edit the CursorMeasurementsConfiguration object when you set
the ViewType property of the spectrumAnalyzer object to "spectrogram".
In the Measurements tab of the scope UI window, these data cursor settings are new:
• Lock cursor spacing –– This setting corresponds to the LockSpacing property in the
CursorMesaurementsConfiguration object.
• X location –– These fields are enabled and correspond to the XLocation property in the
CursorMesaurementsConfiguration object.
5-8
Scopes and Visualization
• PlotAsMagnitudePhase –– Plot the magnitude and phase response of the filter on two separate
axes within the same window
• PlotType –– Plot type
• AxesScaling –– Axes scaling mode
• AxesScalingNumUpdates –– Number of updates before scaling
• MaximizeAxes –– Maximize axes control
• ShowGrid –– Grid visibility
The Dynamic Filter Visualizer app that you launch using the object has these enhancements in
R2022b:
• MeasurementChannel
• CursorMeasurements
• PeakFinder
The Dynamic Filter Visualizer UI no longer provides the Signal Statistics measurements. You can
launch the visualizer using the dsp.DynamicFilterVisualizer object and by clicking the View
Filter Response button in these blocks.
5-9
R2022b
Discrete-Time Signals
• Input signal is a fixed-size signal (frame length does not change during simulation) and the block
allows for multirate processing
• Input signal is a fixed-size signal, block enforces single-rate processing, and you select the Allow
arbitrary frame length for fixed-size input signals parameter (if enabled)
• Input signal is a variable-size signal (frame length changes during simulation)
When the input is a variable-size signal, you can change the frame size (number of rows) and the
number of channels (columns) of the signal during simulation. The output is also a variable-size
signal.
You can specify the frame size of the output colored noise signal as a nonnegative scalar value that is
less than or equal to the MaxSamplesPerFrame property.
• dsp.AudioFileReader
• dsp.AudioFileWriter
• From Multimedia File
• To Multimedia File
5-10
Transforms, Estimation, and Statistics
To compute these measurements, select the Compute CCDF parameter in the block dialog box and
set the CCDF output.
• Moving Average
• Moving RMS
• Moving Standard Deviation
• Moving Variance
• Power Meter
Support for arbitrary input frame length in DSP System Toolbox blocks
Starting in R2022b, certain blocks in DSP System Toolbox support input signals with arbitrary frame
lengths when these conditions are met.
Block Conditions
Moving Average • Input signal is a fixed-size signal (frame length
Moving RMS does not change during simulation) and you
select the Allow arbitrary frame length for
Moving Standard Deviation fixed-size input signals parameter (if
Moving Variance enabled)
Power Meter • Input signal is a variable-size signal (frame
length changes during simulation).
5-11
R2022b
The dsp.LPCToLSF object has been removed. Use poly2lsf instead. For details on how to replace
your existing code, see the Version History section in the dsp.LPCToLSF object reference page.
5-12
AI for DSP
AI for DSP
The new Wavelet Scattering block creates a framework for wavelet time scattering in the Simulink
environment. Use this block to derive low-variance features from real-valued data and then use those
features in machine learning and deep learning applications. The block uses predefined wavelet
filters to compute the scalogram and applies an averaging filter to the scalogram for feature
extraction. For more information, see Wavelet Scattering (Wavelet Toolbox).
5-13
R2022b
Code Generation
5-14
Code Generation
For a full list of features that support optimized C code generation on ARM Cortex-M processors, see
Supported DSP System Toolbox Blocks and MATLAB System Objects for CMSIS Library (Embedded
Coder Support Package for ARM Cortex-M Processors). For more information on generating code
optimized for ARM Cortex-M processors, see Embedded Coder Support Package for ARM Cortex -M
Processors.
Generate SIMD code for Discrete FIR Filter block on all Intel platforms
In R2022b, if you have Embedded Coder, you can generate SIMD code for the Discrete FIR Filter
block on all Intel platforms by using the model configuration parameter Leverage target hardware
instruction set extensions. Previously, you had to use a code replacement library to generate SIMD
code. You can generate SIMD code using the Leverage target hardware instruction set
extensions parameter under these conditions:
5-15
R2022b
In the Modeling tab of the Simulink model window, click Model Settings and configure these
parameters under Code Generation.
• Provide a specific instruction set in the Leverage target hardware instruction set
extensions parameter.
• Select the Optimize reductions parameter.
• Under Optimization levels, set Level to Maximum and Priority to Maximize execution
speed.
• In the Interface pane, under Software environment, clear non-finite numbers.
For computationally intensive operations on supported blocks, SIMD intrinsics can significantly
improve the performance of the generated code on Intel platforms. For more details, see Optimize
Code for Reduction Operations by Using SIMD (Simulink Coder).
5-16
6
R2022a
Version: 9.14
New Features
Bug Fixes
Compatibility Considerations
R2022a
Digital Filters
Fourth-Order Section Filter Block: Implement a cascade of fourth-
order section filters in Simulink
Starting in R2022a, using the Fourth-Order Section Filter block, you can model a cascade of fourth-
order section filters in the Simulink environment. This block accepts the numerator and the
denominator coefficients of the filter in the form of fourth-order section matrices.
Due to this delay and the potential time scaling that occurs as a result of rate conversion within the
filter, the input and output signals do not appear synchronized on the time domain if plotted against
the same sample time.
To plot the input and output signals on the same plot, you must account for the delay and the time
scaling.
6-2
Digital Filters
The ouputDelay function also returns the output sample rate FsOut. You can optionally specify the
input sample rate to the function FsIn.
[D,FsOut] = outputDelay(filterObj,FsIn=44.1e3)
Note that the outputDelay function also supports multirate filters which have a nonlinear phase
convolution (varying group delay) assuming their inputs are narrow-banded. In this case, you can
specify the center frequency Fc of the input signal. The function can also return an interval of input
frequencies B for which the delay value is valid for up to a specified tolerance.
nonlinearObj = cascade(dsp.FIRFilter(designFracDelayFIR(0.25,200)),...
dsp.FIRDecimator)
[D,FsOut,B] = outputDelay(nonlinearObj,FsIn=44.1e3,Fc=100,Tol=0.1)
You can also use the LMS Update block as an adaptive linear combiner where the input to the block is
not necessarily obtained from a tapped-delay line. You can enable this mode by setting the Adaptive
6-3
R2022a
filter mode parameter to Adaptive linear combiner. In the Adaptive linear combiner
mode, the input samples are not buffered internally inside the block, and the input provided to the
block must be a column vector of size equal to the Filter length parameter.
• dsp.FIRHalfbandDecimator
• dsp.FIRHalfbandInterpolator
• FIR Halfband Decimator
• FIR Halfband Interpolator
The Kaiser window method is optimal to design filters with very tight specifications such as very high
orders and very narrow transition widths. For a given set of design specifications, if the existing
Equiripple design method is not able to optimally meet the design constraints, then use the
Kaiser window design method.
If you are not sure of which method to use, set the design method to its default value Auto. The Auto
mode automatically chooses a design method from the two methods that optimally meets the filter
constraints specified in the block parameters.
• iirftransf
• iirlp2bp
• iirlp2bpc
• iirlp2bs
• iirlp2bsc
• iirlp2hp
• iirlp2lp
• iirlp2mb
• iirlp2mbc
• iirlp2xc
• iirlp2xn
6-4
Digital Filters
To enable this behavior, clear the Force fixed size input and output frames parameter in the block
dialog box. In this mode, the frame size (number of rows) of the input signal can change during
simulation while the number of channels (number of columns) must remain constant.
Also, the frame size of the signal no longer needs to be a multiple of the decimation factor. To
determine the decimation factor of the rate converter, click the View Info button in the block dialog
box.
When you select the Force fixed size input and output frames parameter, the block expects a
fixed-size input signal with a frame size that is a multiple of the decimation factor.
The 'Raised Cosine' and 'Square Root Raised Cosine' response methods in the
fdesign.decimator and fdesign.interpolator objects will be removed in a future release. Use
rcosdesign, comm.RaisedCosineTransmitFilter (Communications Toolbox), and
comm.RaisedCosineReceiveFilter (Communications Toolbox) instead.
Starting in R2022a, the iirparameq function will warn. Use designParamEQ (Audio Toolbox)
instead. For details on how to replace your existing code, see the Version History section on the
iirparameq function reference page.
Starting in R2022a, these fdesign objects will warn. Use the equivalent replacements instead.
For details on how to replace your existing code, see the Version History section on the respective
fdesign filter specification object reference page.
6-5
R2022a
Starting in R2022a, these mfilt objects will error. Use the equivalent replacements instead.
For details on how to replace your existing code, see the Version History section on the respective
mfilt object reference page.
The dsp.ParametricEQFilter object has been fully removed in R2022a. You will no longer be able
to use this object in your code. Use designParamEQ or multibandParametricEQ instead.
6-6
Scopes and Visualization
The new Spectrum Analyzer window has the following toolstrip tabs:
Analyzer Tab
On the Analyzer tab, you can control the spectrum and spectrogram display settings, spectral-
bandwidth-related settings, and configuration settings of the Spectrum Analyzer. You can also
generate script to recreate your spectrum analyzer with the same settings. When doing so, an editor
window opens with the code required to recreate your spectrumAnalyzer object.
Estimation Tab
On the Estimation tab, you can specify the input domain, frequency resolution method, frequency
span options, and the averaging method that is used to estimate the power spectrum. If you specify
the frequency resolution method as Welch, you can also choose the options of the filter window that
is used for spectral estimation.
6-7
R2022a
Measurements Tab
Spectrum Tab
On the Spectrum tab, you can specify the trace and scale options of the Spectrum Analyzer. You can
choose to show a two-sided spectrum or a one-sided spectrum, and select to show maximum-hold
trace, minimum-hold trace, or normal trace. You can also specify the reference load and spectral
units.
Spectrogram Tab
To display the Spectrogram tab, click on the Spectrogram view in the Analyzer tab.
On the Spectrogram tab, you can specify the channel over which the spectrogram is computed, time
resolution and time span of the spectrogram, and choose to show a two-sided spectrum or a one-sided
spectrum. You can also specify the reference load and spectral units.
Add upper and lower masks to the Spectrum Analyzer to visualize spectrum limits and compare
spectrum values to specification values.
6-8
Scopes and Visualization
In the Channel Measurements tab, all measurements are for a specific channel.
Using the dynamic filter visualizer, you can configure the plot settings, measure signal statistics, find
peak values, place data cursors, and so on from the interface of the visualizer. For more details on the
dynamic filter visualizer interface and the available tools, see dsp.DynamicFilterVisualizer.
6-9
R2022a
Time Scope MATLAB object and Array Plot now support additional
signal statistics
The timescope object, dsp.ArrayPlot object, and the Array Plot block now support the following
additional signal statistics:
• Standard deviation
• Variance
• Mean square
For more details, see Configure Time Scope MATLAB Object and Configure Array Plot.
• MeasurementChannel
• BilevelMeasurements
• CursorMeasurements
• PeakFinder
• SignalStatistics
• Trigger
Using these properties, you can now interact with the scope from the command line. Any changes
that you make to the properties in the command line change the corresponding values in the UI. Any
changes that you make in the UI change the corresponding property values in the command line.
6-10
Scopes and Visualization
• MeasurementChannel
• CursorMeasurements
• PeakFinder
• SignalStatistics
Using these properties, you can now interact with the scope from the command line. Any changes
that you make to the properties in the command line change the corresponding values in the UI. Any
changes that you make in the UI change the corresponding property values in the command line.
The CCDFMeasurements property will be removed from the dsp.SpectrumAnalyzer object. If you
try to edit these measurements from the command line or from the user interface (UI), the object
throws a warning message.
6-11
R2022a
Use the powermeter object instead to plot and visualize CCDF measurements.
The underlying graphics of the Time Scope block will change in a future release. Once that happens,
you will not be able to access or modify the Time Scope block through the handle graphics API.
Update any undocumented use of handle graphics APIs that access the Scope window.
The SampleInput parameter of the Time Scope block (currently accessed through the command line
API) will be removed in a future release.
The dsp.SpectrumAnalyzer object will be removed in a future release. Use the new
spectrumAnalyzer MATLAB object instead. The spectrumAnalyzer object has the same
properties as the dsp.SpectrumAnalyzer object. However, the default value of the Method
property has changed to 'filter-bank', and the default value of the AveragingMethod property
has changed to 'vbw', video bandwidth.
For more details on how to update your existing code, see the Version History section on the
dsp.SpectrumAnalyzer object page.
Support for dsp.SpectrumAnalyzer object will be removed from certain object functions
Still runs
The support for dsp.SpectrumAnalyzer object will be removed from the following object functions
in a future release. Use the new spectrumAnalyzer MATLAB object instead in the place of the
dsp.SpectrumAnalyzer object.
• show
• hide
• isVisible
• generateScript
• getMeasurementsData
• getSpectralMaskStatus
• getSpectrumData
• isNewDataReady
No updates to your code are required except for replacing instances of dsp.SpectrumAnalyzer
with spectrumAnalyzer.
6-12
Scopes and Visualization
For more details on how to update your existing code, see the Version History section on the
individual object function pages.
6-13
R2022a
Discrete-Time Signals
Starting in R2022a, you can no longer specify the units of input delay through the Units property in
the dsp.Delay System object. The object now delays the input in samples.
The InitialConditions property in the dsp.Delay object no longer supports a cell array format.
Use a Length-by-numChans matrix instead, where numChans is the number of input channels and
Length is the value you specify in the Length property.
Starting in R2022a, to use the following midi functions, you must have the Audio Toolbox installed.
These System objects have been fully removed in R2022a. You will no longer be able to use these
objects in your code. Use the equivalent replacements instead.
6-14
Transforms, Estimation, and Statistics
These System objects have been fully removed in R2022a. You will no longer be able to use these
objects in your code. Use the equivalent replacements instead.
6-15
R2022a
Code Generation
For more details on constant inputs, see the coder.Constant (MATLAB Coder) object.
In the case of the designMultirateFIR function, the inputs to the function must be constants when
generating code for transition-width-based filter design. In this design, the polyphase length (and
therefore the filter length) is not specified and the function determines this value iteratively. For more
details, see the Code Generation section in the designMultirateFIR page.
6-16
Code Generation
6-17
R2022a
Buffer and Unbuffer blocks now support code generation for Simulink
Real-Time
Starting in R2022a, the Buffer and Unbuffer blocks support code generation for Simulink Real-
Time™. The code generated for this target is executed concurrently.
To generate this code, the system target file of the model should be set to slrealtime.tlc and the
blocks must satisfy certain conditions. For more details on these conditions, see the Extended
Capabilities > C/C++ Code Generation sections on the Buffer and Unbuffer block reference pages.
Compatibility Considerations
Before R2022a, using a To Workspace block inside a Dataflow Subsystem block forced dataflow
domain to single-threaded execution. Starting in R2022a, the To Workspace block supports multi-
6-18
Code Generation
threaded execution inside a Dataflow Subsystem block. However, during multi-threaded execution,
the output of the To Workspace block may be different than the output during the single-threaded
execution. The output may differ due to the distribution of the pipeline delays inside the Dataflow
Subsystem block for multithreading. These delays impact the output of the To Workspace block due to
the latencies in the model. You can visualize these delays and the relationship between the output of
the To Workspace block and the delays. For more information, see Dataflow Domain.
Starting in R2022a, these objects have moved to a new product, DSP HDL Toolbox™. These objects
are no longer available with the DSP System Toolbox product. The objects forward to the new name
and existing code continues to work.
6-19
R2022a
6-20
Code Generation
6-21
R2022a
Starting in R2022a, these blocks have moved from the DSP System Toolbox HDL Support library
to the new DSP HDL Toolbox library. The blocks forward to the new name and library location and
existing models continue to work.
6-22
Code Generation
6-23
R2022a
6-24
Code Generation
6-25
R2022a
Linear Algebra
Starting in R2022a, these blocks have moved from the DSP System Toolbox > Math Functions >
Matrices and Linear > Matrix Operations to Simulink > Matrix Operations. These blocks are
no longer available in the DSP System Toolbox library.
In addition, starting in R2022a, the Identity Matrix block is no longer available in DSP System
Toolbox > Math Functions > Matrices and Linear > Matrix Operations. Instead, use the
Identity Matrix (Simulink) block in Simulink > Matrix Operations.
6-26
7
R2021b
Version: 9.13
New Features
Bug Fixes
Compatibility Considerations
R2021b
Digital Filters
As an example, create a dsp.FIRDecimator object and specify the decimation factor to be 3. The
object designs the filter using designMultirateFIR(1,3). You can access the designed filter
through the Numerator property.
firD3 = dsp.FIRDecimator(3)
firD3 =
DecimationFactor: 3
NumeratorSource: 'Property'
Numerator: [1×72 double]
Structure: 'Direct form'
Now create another dsp.FIRDecimator object with a decimation factor of 5. The object now
designs the filter using designMultirateFIR(1,5).
firD5 = dsp.FIRDecimator(5)
firD5 =
DecimationFactor: 5
NumeratorSource: 'Property'
Numerator: [1×120 double]
Structure: 'Direct form'
If you want to revert the object to the design mode where the filter is not designed based on the rate
conversion factor, pass the keyword 'legacy' as an input while creating the object.
firD5L = dsp.FIRDecimator(5,'legacy')
firD5L =
DecimationFactor: 5
NumeratorSource: 'Property'
Numerator: [1×36 double]
Structure: 'Direct form'
7-2
Digital Filters
After this initial design, if you want to change the rate conversion factor to a different value and have
the filter redesigned automatically based on this new value, set the filter object to operate in the
automatic design mode. This mode enables the object to redesign the filter every time there is an
update in the rate conversion factor. To set the filter object to operate in the automatic design mode,
you can either pass the keyword 'auto' as an input while creating the object, or you can set the
'NumeratorSource' property of the object to 'Auto' explicitly.
firI = dsp.FIRInterpolator(3,'auto')
firI =
InterpolationFactor: 3
NumeratorSource: 'Auto'
DesignMethod: 'Kaiser'
firI =
InterpolationFactor: 3
NumeratorSource: 'Auto'
DesignMethod: 'Linear'
To access the filter coefficients in the automatic design mode, type filterobject.Numerator in
the MATLAB command prompt.
firI.Numerator
ans =
Now change the interpolation factor to 2 and display the filter coefficients. The automatic design
mode redesigns the filter based on the new interpolation factor.
firI.InterpolationFactor = 2
firI =
InterpolationFactor: 2
NumeratorSource: 'Auto'
DesignMethod: 'Linear'
7-3
R2021b
firI.Numerator
ans =
The 'Raised Cosine' and 'Square Root Raised Cosine' response methods in
fdesign.decimator and fdesign.interpolator objects will be removed in a future release. Use
rcosdesign, comm.RaisedCosineTransmitFilter (Communications Toolbox), and
comm.RaisedCosineReceiveFilter (Communications Toolbox) instead.
Starting in R2021b, the dsp.KalmanFilter object will warn. Use Kalman filter functionality in
Sensor Fusion and Tracking Toolbox instead.
7-4
Scopes and Visualization
7-5
R2021b
Discrete-Time Signals
To enable the file name tunability in the dsp.AudioFileReader object, set the
FilenameIsTunableInCodegen property to true. File attributes such as the audio format, the
number of audio channels, the sample rate, and the bit rate are not tunable, and must match the
attributes of the prototype audio file specified through the CodegenPrototypeFile property. The
specified prototype audio file determines the attributes and the type of audio files that can be read by
the generated code.
Starting in R2021b, these objects will warn. Use the equivalent replacements instead.
For details on how to replace your existing code, see the Compatibility Considerations section on
the respective System object reference page.
7-6
Discrete-Time Signals
The dsp.PeakFinder object has been removed in R2021b. To determine the local maxima, use the
findpeaks function. To determine the local minima, use the islocalmin function and find the
signal values corresponding to the local minima indices that the function determines. For more
details, see the Compatibility Considerations section on the object reference page.
Compatibility Considerations
Existing models using these blocks continue to run in R2021b. For new models created in R2021b,
there is no replacement.
7-7
R2021b
• dsp.MovingAverage
• dsp.MovingRMS
• dsp.MovingVariance
• dsp.MovingStandardDeviation
• powermeter
To specify the overlap length, you can either pass the scalar value of the overlap length as a second
value argument while creating the object or explicitly set the OverlapLength property in the object.
In order to specify the overlap length, the objects must compute the statistic using the sliding window
method.
mvgAvg = dsp.MovingAverage(4,1)
mvgAvg =
Starting in R2021b, these objects will warn. Use the equivalent replacements instead.
For details on how to replace your existing code, see the Compatibility Considerations section on
the respective System object reference page.
7-8
Transforms, Estimation, and Statistics
7-9
R2021b
Code Generation
7-10
Code Generation
For more details on the process of using these libraries, and the features that support SIMD code
generation, see SIMD Code Generation.
7-11
R2021b
Change the setting using this command, which takes the values off, OpenMP, or Pthreads.
set_param(myModel, 'DataflowThreadingImplementation','off')
For more information, see Perform Multicore Analysis for Dataflow and Multicore Analysis Using a
Dataflow Domain.
7-12
Linear Algebra
Linear Algebra
Starting in R2021b, these objects will warn. Use the equivalent replacements instead.
For details on how to replace your existing code, see the Compatibility Considerations section on
the respective System object reference page.
7-13
8
R2021a
Version: 9.12
New Features
Bug Fixes
Compatibility Considerations
R2021a
You can now directly specify the decimation factor in the dsp.Channelizer object and the
Channelizer block using the DecimationFactor property and the Decimation Factor parameter,
respectively. The number of frequency bands is specified using the NumFrequencyBands property in
the object and the Number of frequency bands parameter in the block.
8-2
Linear Algebra
SIMD Code Generation: Use Intel AVX2 to generate optimized code for
certain DSP System Toolbox features
In R2021a, these objects support SIMD code generation using Intel AVX2 technology under the
specified conditions.
8-3
R2021a
For a full list, see System objects in DSP System Toolbox that Support SIMD Code Generation.
These blocks support SIMD code generation using Intel AVX2 technology under the specified
conditions.
8-4
Linear Algebra
8-5
R2021a
8-6
Linear Algebra
8-7
R2021a
For a full list, see Simulink Blocks in DSP System Toolbox that Support SIMD Code Generation.
The SIMD technology significantly improves the performance of the generated code.
Using the dynamic filter visualizer, you can configure the plot settings, measure signal statistics, find
peak values, place data cursors, and so on from the interface of the visualizer. For more details on the
dynamic filter visualizer interface and the tools that are available, see
dsp.DynamicFilterVisualizer.
• FIR Decimation
• FIR Interpolation
• LMS Filter
To run the model containing these blocks in the accelerator mode, on the Simulation tab of the
model, in the Simulate section, select Accelerator from the drop-down list. Build an executable for
the model by clicking Run. The acceleration (Simulink) mode uses this executable in simulations as
long as the model remains structurally unchanged. For more details, see Perform Acceleration
(Simulink).
8-8
Linear Algebra
From the toolstrip, you can run the model, modify the settings, turn on measurements, and share an
image of the plot.
8-9
R2021a
Compatibility Considerations
The default index base for the block continues to be zero-based. Existing models created in a previous
release continue to work as expected. If a model created in R2021a has Index base set to One, and
you export the model to a previous release, then the Index base parameter changes to Zero in the
exported model.
Compatibility Considerations
Existing code using the OversamplingRatio property and existing models using the Oversampling
ratio parameter continue to work.
If you create a new model containing the Channelizer block in R2021a, and if the Decimation factor
parameter value in the block equals the value of the Number of frequency bands parameter, then
the model containing the block can be exported to a release prior to R2021a. The exported model will
have the Oversampling ratio parameter set to 1.
If the Decimation factor parameter value is less than and is a divisor of the value of the Number of
frequency bands parameter, and the model is exported to a prior release that is not older than
R2020a, the Channelizer will continue to work and the decimation factor will be replaced with the
appropriate oversampling ratio. For a release older than R2020a, the block will be replaced with any
empty subsystem.
If the specified Decimation factor parameter is not equal to and not a divisor of the Number of
frequency bands parameter, the block will be replaced with an empty subsystem.
8-10
Linear Algebra
examples show how to model the behavioral algorithm in MATLAB MATLAB and then compare that
reference result against a Simulink Simulink model that uses HDL-optimized blocks to implement the
algorithm for HDL code generation.
These objects will be removed in a future release. Use the equivalent replacements instead.
For details on how to replace your existing code, see the Compatibility Considerations section in
the respective System object reference page.
8-11
R2021a
These objects have been removed in R2021a. Use the equivalent replacements instead.
For details on how to replace your existing code, see the Compatibility Considerations section in
the respective System object reference page.
8-12
Linear Algebra
dsp.TimeScope will be removed in a future release. Use timescope instead. The timescope object
has the same properties as the dsp.TimeScope System object. In your code, replace instances of
dsp.TimeScope with timescope.
These blocks have been removed in R2021a. Use the equivalent replacements instead.
8-13
9
R2020b
Version: 9.11
New Features
Bug Fixes
Compatibility Considerations
R2020b
Scopes Tab
On the Scopes tab, you can control the layout and configuration settings, and set the display settings
of the Time Scope. You can also generate script to recreate your time scope with the same settings.
When doing so, an editor window opens with the code required to recreate your timescope object.
Measurements Tab
In the Measurements tab, all measurements are made for a specified channel.
9-2
Linear Algebra
SIMD Code Generation: Use Intel AVX2 to generate optimized code for
certain DSP System Toolbox features
The following features support SIMD code generation using Intel AVX2 technology under these
conditions:
9-3
R2020b
The SIMD technology significantly improves the performance of the generated code.
9-4
Linear Algebra
Using the getFrequencyVector function, you can obtain the vector of frequencies at which the
short-time FFT is computed.
Due to in-place optimization, the generated code uses a single buffer for storing the output data
values. Every time there is a new intermediary output in the model, this output buffer is overwritten
to store that value.
For example, in this model, there is a sequence of Array-Vector Add blocks connected to each other.
Each block adds a vector to its input data and generates an output that is of the same size as the
input.
This image shows a sequence of three s-functions generated in the in-place optimized generated
code. Each block of s-function corresponds to the respective Array-Vector Add block in the Simulink
model. In each s-function, the output buffer rtb_ArrayVectorAdd2[] rewrites its value every time the
Array-Vector Add block has an updated output.
9-5
R2020b
9-6
Linear Algebra
To run the model containing these blocks in the accelerator mode, on the Simulation tab of the
model, in the Simulate section, select Accelerator from the drop-down list. Build an executable for
the model by clicking Run. The acceleration (Simulink) mode uses this executable in simulations as
long as the model remains structurally unchanged. For more details, see Perform Acceleration
(Simulink).
For more details about how to log Stateflow signals, see Log Simulation Output for States and Data
(Stateflow).
9-7
R2020b
This capability increases throughput in hardware designs. For a list of all blocks that support frame-
based input and output for HDL code generation, see High Throughput HDL Algorithms.
To generate HDL code, you must have the HDL Coder product.
To find the optimal latency settings for the Dataflow subsystems in your model, open the Performance
Advisor. In the Performance Advisor > Simulation > Checks that Require Simulation to Run
folder, run the Check Dataflow Domain Settings check.
dsp.TimeScope will be removed in a future release. Use timescope instead. The timescope object
has the same properties as the dsp.TimeScope, therefore, no updates to your code are required
except replacing instances of dsp.TimeScope with timescope.
Starting in R2020b, by default, the Spectrum Analyzer block uses the filter bank algorithm as the
spectrum estimation method and exponential averaging as the averaging method:
Compatibility Considerations
For existing models with a Spectrum Analyzer, the default values are not changed. For new
visualizations with the Spectrum Analyzer block, you may see some changes in the output because of
9-8
Linear Algebra
the spectrum estimation method and averaging method. If you want to use the previous default
values, set:
• Method to Welch
• Averaging method to Running
HDL Minimum Resource FFT and HDL Streaming FFT blocks have been removed
Errors
The HDL Minimum Resource FFT and HDL Streaming FFT blocks have been removed. Use the FFT
HDL Optimized block instead.
• When replacing the HDL Minimum Resource FFT block, set the Architecture parameter of the
FFT HDL Optimized block to Burst Radix 2.
• When replacing the HDL Streaming FFT block, set the Architecture parameter of the FFT HDL
Optimized block to Streaming Radix 2^2.
For more information, see Implement FFT for FPGA Using FFT HDL Optimized Block.
The Matrix Viewer and Waterfall blocks will be removed in a future release.
9-9
10
R2020a
Version: 9.10
New Features
Bug Fixes
Compatibility Considerations
R2020a
SIMD Code Generation: Use Intel AVX2 to generate optimized code for
certain DSP System Toolbox blocks
FIR Interpolation and FIR Decimation blocks
The FIR Interpolation and FIR Decimation blocks now support SIMD code generation using Intel
AVX2 technology when Input processing is set to Columns as channels (frame based), Rate
options is set to Enforce single-rate processing, and the signal is real-valued with a data
type of single or double. The SIMD technology significantly improves the performance of the
generated code.
The LMS Filter block supports SIMD code generation using Intel AVX2 technology when the block's
Algorithm parameter is set to LMS or Normalized LMS and the signal is real-valued with a data
type of single or double.
• Enforce single-rate processing –– The output frame size is L/K times the input frame size,
where L is the interpolation factor and K is the decimation factor.
The output signal rate in Simulink equals the input signal rate in Simulink.
• Allow multirate processing –– The output frame size equals the input frame size.
The output signal rate in Simulink is L/K times the input signal rate.
All blocks connected to the output operate at the output signal rate and all blocks connected to
the input operate at the input signal rate.
10-2
Linear Algebra
The decimation factor D of the channelizer is determined using the ratio D = M/O.
When the oversampling ratio is an integer greater than 1, the channelizer is known as the non-
maximally decimated channelizer or oversampled channelizer. Non-maximally decimated channelizers
offer increased design freedom, but at the expense of increased computational cost.
If you specify complex coefficients, the channelizer and channel synthesizer design a prototype filter
that is centered at a nonzero frequency, also known as a bandpass filter. The modulated versions of
the prototype bandpass filter appear with respect to the prototype filter, and are wrapped around the
frequency range [−Fs Fs]. For an example, see Channelizer with Complex Coefficients.
The function also supports a 'SystemObject' flag, which when set to true returns one of the
following multirate System objects:
When the 'SystemObject' flag is set to false, the function returns a vector of filter coefficients.
10-3
R2020a
These features are also available when using the dsp.HDLCICDecimation System object.
This capability increases throughput in hardware designs. For a list of all blocks that support frame-
based input and output for HDL code generation, see High Throughput HDL Algorithms.
This feature is also available when using the dsp.HDLNCO System object. Set the SamplesPerFrame
property to the desired output vector size.
To generate HDL code, you must have the HDL Coder product.
To improve simulation performance, in the Dataflow Simulation Assistant, next to Change model
settings for simulation performance click Accept all. For more information on the optimal model
settings, see Simulation of Dataflow Domains.
Compatibility Considerations
Make sure you remove all references to this property from your MATLAB code. The System object
will operate in direct feedthrough mode only.
10-4
Linear Algebra
Starting in R2020a, using the following System objects throws an error message. Use the equivalent
replacements instead.
For more details, see the Compatibility Considerations sections in the System object reference
pages.
In previous releases, the input validIn port of the NCO HDL Optimized block was optional. It is now
required, and renamed valid. If you are using no other input ports, the block uses the valid signal as
an enable signal.
When you use the dsp.HDLNCO System object, you must specify an input validIn argument. If you
are using no other input arguments, the object uses the validIn argument as an enable signal.
The output waveform returned from floating-point input values has changed. The output waveform
now matches that returned from the same input values specified in fixed-point types.
In previous releases, when using floating-point input types, the NCO HDL Optimized block did not
quantize the phase internally. The block expected floating-point phase increment and phase offset
inputs specified in radians. Now, the block quantizes the phase internally, and you must specify the
input phase increment and offset in terms of the quantized size, for both floating-point and fixed-point
input types.
For example, in previous releases, for a floating-point HDL NCO to generate output samples with a
desired output frequency of F0 and sample frequency of Fs, you had to specify the phase increment as
2π(F0/Fs) and phase offset as π/2.
10-5
R2020a
Now, you must specify the phase increment and phase offset in terms of the quantized size, N. These
input values are the same as the input values you use with fixed-point types. Specify the phase
increment as (F0×2N)/Fs, and the phase offset as (π/2)2N/2π, or 2N/4.
In previous releases, you could choose from two options for the LUTRegisterResetType parameter
on the HDL Block Properties dialog of the NCO HDL Optimized block. The two options were
default, and none. Starting in R2020a, the block ignores the parameter setting and uses none for
this parameter value. This option does not connect a reset signal to the LUT registers. This
configuration enables the synthesis tool to determine whether to implement the lookup tables with
LUTs or BRAM.
Signal data no longer streams to the Logic Analyzer when signal logging is disabled
Behavior change
Previously, signals marked for logging have streamed to the Logic Analyzer, regardless of the setting
for Signal logging in the model configuration parameters. Starting in R2020a, signals marked for
logging stream to the Logic Analyzer only when signal logging is enabled for a model.
To view data in the Logic Analyzer, you must enable signal logging for the model. (Logging is on by
default.) To enable signal logging, open Model Settings from the toolstrip, navigate to the Data
Import/Export pane, and select Signal logging.
10-6
11
R2019b
Version: 9.9
New Features
Bug Fixes
Compatibility Considerations
R2019b
SIMD code from Discrete FIR Filter Block: Generate optimized code
using Intel AVX2 for FIR Filters in Simulink
When Filter structure is set to Direct form, and the signal is real-valued with a data type of single
or double, the Discrete FIR Filter block supports SIMD code generation using Intel AVX2 technology.
The SIMD technology significantly improves the performance of the generated code, in most cases
meeting or exceeding the simulation performance.
11-2
Linear Algebra
You can visualize dynamic filters with improved graphics, more responsiveness, and better
interactivity. You can access settings and measurements via tabs and toolstrips.
11-3
R2019b
By clicking different buttons in the toolstrip, you can configure settings, turn on measurements, and
share an image of the plot.
Compatibility Considerations
• The dsp.ArrayPlot no longer supports mcc compilation.
• The ReduceUpdates property is no longer applicable. The new Array Plot interface continually
tries to improve performance with update reduction as needed.
11-4
Linear Algebra
intersections and the difference between two intersection points. For more information, see Cursor
Measurements.
in the scope runs the top level model. If the referenced model is opened as a root model, the run
button runs the referenced model in isolation.
This change affects the Time Scope, Spectrum Analyzer, and Array Plot blocks, as well as the Logic
Analyzer app.
11-5
R2019b
Starting in R2019b, using the following System objects throw a warning message. These objects will
be removed in a future release. Use the equivalent replacements instead.
For more details, see the Compatibility Considerations sections in the System object reference
pages.
11-6
12
R2019a
Version: 9.8
New Features
Bug Fixes
Compatibility Considerations
R2019a
The Spectrum Analyzer block and dsp.SpectrumAnalyzer System object now have two averaging
modes for smoothing input samples: running averages (existing) and exponential averages (new). To
specify the smoothing options for your input data, use these properties:
For more details about the averaging methods, see Spectrum Analyzer Algorithms.
In the Spectrum Analyzer block, you can now visualize frequencies of inputs with different
complexities. The signals must have the same sample rate and frame size, but can have both real and
complex values.
After you modify the dsp.SpectrumAnalyzer from the UI, you can generate a MATLAB script to
automatically set up the Spectrum Analyzer with your modified properties. To generate the script, use
one of these methods:
12-2
Linear Algebra
• In the Spectrum Analyzer window, select File > Generate MATLAB Script or the Generate
sa = dsp.SpectrumAnalyzer
show(sa)
% change settings
generateScript(sa)
Note The script only generates commands for settings that are available from the command line,
applicable to the current visualization, and changed from the default value.
• dsp.SpectrumEstimator
• dsp.CrossSpectrumEstimator
• dsp.TransferFunctionEstimator
• Spectrum Estimator
• Cross-Spectrum Estimator
• Discrete Transfer Function Estimator
These objects and blocks now offer two averaging modes to smooth the PSD data: running mode and
exponential weighting mode. In the running mode, the PSD data is averaged over the last N spectral
data vectors. In the exponential weighting mode, the algorithm computes the average over the
current and the previous PSD vector weighted by an exponentially decaying forgetting factor.
For more details about the averaging methods, see the Algorithms section in
dsp.CrossSpectrumEstimator.
Complex Data over UDP: Send and receive complex data directly over
UDP in MATLAB and Simulink
You can now transmit complex data over a UDP network using the following UDP sender and receiver
objects and blocks:
• dsp.UDPSender
12-3
R2019a
• dsp.UDPReceiver
• UDP Send
• UDP Receive
Receive data coming from a UDP network as complex data by setting the IsMessageComplex
property to true in the dsp.UDPReceiver object or by selecting the Message is complex
parameter in the UDP Receive block.
Stream signals only from a defined interval within audio files when
using the From Multimedia File block
You can specify a range of samples to stream from an audio file using the Read range parameter in
the From Multimedia File block. When you run a model that contains this block, the From Multimedia
File block streams data only from the interval defined by the Read range parameter.
• macOS desktop targets– Code generated for a macOS desktop target is now multithreaded
using OpenMP.
• Embedded Coder targets using Linux and VxWorks® operating systems – Code generated
for these Embedded Coder targets is now multithreaded using POSIX threads.
For more information on multicore code generation from dataflow subsystems, see Multicore
Simulation and Code Generation of Dataflow Domains.
Code generation for these targets requires a Simulink Coder or an Embedded Coder license.
When the analysis completes, click Accept to apply the suggested latency to the subsystem.
12-4
Linear Algebra
12-5
R2019a
1 In the Simulink menu, select Display > Sample Time > Colors.
2 Update the model diagram by selecting Simulation > Update Diagram.
3 To open the Timing Legend, select Display > Sample Time > Timing Legend.
4 In the Timing Legend, set Highlight to All or Origin.
5 In the legend, select Data Driven to highlight blocks in the dataflow domain.
12-6
Linear Algebra
These features are also available with the dsp.HDLFIRFilter System object.
The options for configuring a serial filter architecture have changed. For details, see “Changes to
Discrete FIR Filter HDL Optimized serial filter parameters” on page 12-9.
In the scope, zooming and panning buttons appear when you hover over the image:
•
Cursor measurements – Drag the cursor to see the x, y, and matrix value of individual data
points. To customize the label of the cursor data, use the setCursorDataLabels object function.
• Fit to view – After zooming or panning, select the fit to view button to see the full matrix image.
•
Zooming – Zoom in or out by selecting the magnifying glass button or by scrolling with your
mouse.
12-7
R2019a
•
Panning – Pan around the image by selecting the hand button or by clicking and dragging the
matrix image.
DSP System Toolbox Support Packages for ARM Cortex -A and ARM
Cortex -M Processors will be removed
Starting in R2019a, the DSP System Toolbox Support Package for ARM Cortex-A Processors and DSP
System Toolbox Support Package for ARM Cortex-M Processors will no longer be available for
download. This functionality has been moved to Embedded Coder Support Package for ARM Cortex-A
Processors and Embedded Coder Support Package for ARM Cortex-M Processors, respectively. For
more details on installing and getting started with these support packages, see Setup and
Configuration (Embedded Coder Support Package for ARM Cortex-A Processors) and Setup and
Configuration (Embedded Coder Support Package for ARM Cortex-M Processors).
Starting in R2019a, using the following System objects throws a warning message. These objects will
be removed in a future release. Use the equivalent replacements instead.
For more details, see the Compatibility Considerations sections in the System object reference
pages.
12-8
Linear Algebra
The Parametric EQ Filter block has been removed. For new models, use the Parametric EQ Filter
block from Audio Toolbox instead.
Compatibility Considerations
Existing models using this block continue to run.
Prior to R2019a, you specified the serial implementation by setting a requirement for input timing.
Now, you can specify the serialization requirement based on either input timing or resource usage.
For a filter with L coefficients, the block implements a serial filter with not more than M multipliers
and requires input samples that are at least N cycles apart, such that L = N×M.
12-9
13
R2018b
Version: 9.7
New Features
Bug Fixes
Compatibility Considerations
R2018b
• MeasurementChannel
• PeakFinder
• CursorMeasurements
• ChannelMeasurements
• DistortionMeasurements
• CCDFMeasurements
For the Spectrum Analyzer block, these properties belong to the Spectrum Analyzer
Configuration object. To configure measurements for the block, select the Spectrum Analyzer
block in the Simulink model, create a Spectrum Analyzer Configuration object for the selected
block in the MATLAB command prompt, and edit the measurement properties.
Using the getMeasurementData function, you can obtain the measurement data programmatically
for the dsp.SpectrumAnalyzer System object and the Spectrum Analyzer block.
13-2
Linear Algebra
Sample Range for Audio File Reader: Stream signals only from a
defined interval within audio files when using the
dsp.AudioFileReader System object
You can specify a range of samples to stream from an audio file using the ReadRange property in
dsp.AudioFileReader System object. When you run this object, the audio file reader streams data
only from the interval defined by ReadRange.
The simulation speed improves for the blocks only when the Simulate using parameter in each
block is set to Interpreted execution.
13-3
R2018b
Consider an async buffer that contains a column vector of 100 samples, [1:100]'. Peek at the first
three samples using the peek function. The output is [1;2;3]. After peeking, read the first 50
samples using the read function. The output is [1:50]'. This shows that the peek function has not
changed the number of unread samples. Now peek again at the first three samples. Now, the output
is [51;52;53]. Read 50 samples again. The output now contains the sequence [51:100], and the
NumUnreadSamples is set to 0.
Q = dsp.AsyncBuffer;
signal = (1:100).';
write(Q,signal);
out1 = peek(Q,3); % out1 = [1; 2; 3];
out2 = read(Q,50); % out2 = (1:50).';
out3 = peek(Q,3); % out3 = [51; 52; 53];
out4 = read(Q); % out4 = (51:100).';
13-4
Linear Algebra
Compatibility Considerations
Starting in R2018b:
• The validIn port is mandatory. The Enable valid input port parameter is no longer available.
• The ready port is enabled when you select Share DSP resources and disabled when you clear
Share DSP resources. The Enable ready output port parameter is no longer available.
• When you select Direct form systolic without Share DSP resources enabled, the block
implements an improved fully-parallel architecture compared to previous releases. This
architecture may have different latency than previous versions. Use the validOut signal to align
with parallel delay paths. When using this architecture, the default global HDL reset now clears
only the control path registers. Previous releases connected the global HDL reset to the data path
registers and the control path registers. This change improves hardware performance and lowers
the resources used. To implement the same fully parallel architecture as previous releases, select
Share DSP resources and set Sharing factor to 1.
• When you select Direct form systolic, select Share DSP resources, and use any Sharing
factor, the implemented filter has the same latency and uses the same hardware resources as in
previous releases. The reset behavior for this architecture is also the same as previous releases.
The Vector Scope block has been removed. When you open a model in R2018b or later, any Vector
Scope blocks are automatically replaced with one of these blocks:
Compatibility Considerations
For visualizing frequency data, you may need to add a MATLAB Function block to perform a
fftshift. For an example, see Transform Time-Domain Data into Frequency Domain.
The following System objects will be removed in a future release. Use the equivalent functions from
Signal Processing Toolbox™ instead.
13-5
R2018b
For more details, see the Compatibility Considerations sections in the System object reference
pages.
The following properties of the dsp.AllpassFilter System object have been removed in R2018b:
• LatticeCoefficients
• AllpassCoefficients
• WDFCoefficients
Use an N-by-1 or N-by-2 numeric array instead. For details, see the Compatibility Considerations
section of the dsp.AllpassFilter System object.
13-6