DSP System Toolbox™ Release Notes

DSP System Toolbox™ Release Notes
DSP System Toolbox™ Release Notes
How to Contact MathWorks
Latest news:
www.mathworks.com
Sales and services:
www.mathworks.com/sales_and_services
User community:
www.mathworks.com/matlabcentral
Technical support:
www.mathworks.com/support/contact_us
Phone:
508-647-7000
The MathWorks, Inc.
3 Apple Hill Drive
Natick, MA 01760-2098
DSP System Toolbox™ Release Notes
© COPYRIGHT 2012–2015 by The MathWorks, Inc.
The software described in this document is furnished under a license agreement. The software may be used
or copied only under the terms of the license agreement. No part of this manual may be photocopied or
reproduced in any form without prior written consent from The MathWorks, Inc.
FEDERAL ACQUISITION: This provision applies to all acquisitions of the Program and Documentation
by, for, or through the federal government of the United States. By accepting delivery of the Program
or Documentation, the government hereby agrees that this software or documentation qualifies as
commercial computer software or commercial computer software documentation as such terms are used
or defined in FAR 12.212, DFARS Part 227.72, and DFARS 252.227-7014. Accordingly, the terms and
conditions of this Agreement and only those rights specified in this Agreement, shall pertain to and
govern the use, modification, reproduction, release, performance, display, and disclosure of the Program
and Documentation by the federal government (or other entity acquiring for or through the federal
government) and shall supersede any conflicting contractual terms or conditions. If this License fails
to meet the government's needs or is inconsistent in any respect with federal procurement law, the
government agrees to return the Program and Documentation, unused, to The MathWorks, Inc.
Trademarks
MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See
www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand
names may be trademarks or registered trademarks of their respective holders.
Patents
MathWorks products are protected by one or more U.S. patents. Please see
www.mathworks.com/patents for more information.
Contents
R2015a
Audio Latency Reduction: Significantly reduce latency for
audio hardware I/O in MATLAB and Simulink . . . . . . . . .
1-2
Filter Design Enhancements: Design high-order IIR
parametric EQ filter, variable bandwidth FIR and IIR
filters, Digital Down-Converter and Digital Up-Converter
blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-2
DSP Simulink Model Templates: Configure the Simulink
environment for digital signal processing models . . . . . . .
1-3
Streaming Scope Improvements: Plot in stem mode, access
log x-axis scaling, customize sample rate, and use infinite
data support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-3
Library for HDL Supported DSP Blocks: Find all blocks that
support HDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-4
C Code Generation of DSP Algorithms for ARM Cortex-A
and Cortex-M processors: Generate optimized and faster
performing C code using Embedded Coder . . . . . . . . . . . .
1-4
Performance Improvements . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-5
Updated Time Scope block toolbar and menus . . . . . . . . . . .
1-5
Specify block filter characteristics through System objects
1-5
Discrete Transfer Function Estimator block . . . . . . . . . . . . .
1-6
Specify filter coefficients as an input to the FIR Decimation
block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-6
iii
Enhanced code generation for CIC Decimation and CIC
Interpolation filter blocks . . . . . . . . . . . . . . . . . . . . . . . . . .
1-7
HDL support for ‘inherit via internal rule’ data type setting
on FIR Decimation and Interpolation blocks . . . . . . . . . . .
1-7
Improvements for creating System objects . . . . . . . . . . . . . .
1-7
Min/Max logging instrumentation for float-to-fixed-point
conversion of DSP System objects . . . . . . . . . . . . . . . . . . . .
1-7
Provide variable-size input to the Delay System object . . . .
1-8
Estimate output coherence of Transfer Function Estimator
System object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-8
Specify filter coefficients as an input to the FIR Decimator
System object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-8
Bit growth to avoid overflow in HDL-optimized FFT and
IFFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-9
Fixed-point support for FIR Half-band Interpolator and FIR
Half-band Decimator System objects . . . . . . . . . . . . . . . . .
1-9
Updated cost method for filter System objects . . . . . . . . . . .
1-9
Frame-based processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Input processing parameter set to Inherited . . . . . . . . . . . .
Rate options parameter set to Inherit from input . . . . . . . .
Treat Mx1 and unoriented sample-based signals as parameter
set to M channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Save 2-D signals as parameter set to Inherit from input . . .
Find the histogram over parameter set to Inherited . . . . . .
Sample-based processing parameter set to Pass through . . .
Running difference parameter set to Inherit from input . . .
1-9
1-10
1-24
Features removed, replaced, and duplicated . . . . . . . . . . . .
Blocks replaced, removed, and available in additional
libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Removal of adaptfilt objects . . . . . . . . . . . . . . . . . . . . . . . .
iv
Contents
1-25
1-25
1-26
1-26
1-27
1-27
1-27
1-28
Functionality changed or being removed for blocks and
System objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Removal of sample mode from the DSP System Toolbox System
objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Option to specify filter coefficients from Digital Up
Converter and Digital Down Converter System objects being
removed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Removal of OutputDataType and OverflowAction properties
for CIC Compensation Interpolator and Decimator System
objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-30
1-30
1-31
1-32
R2014b
Optimized C code generation for ARM Cortex-A Ne10 library
from MATLAB and Simulink with DSP System Toolbox
Support Package for ARM Cortex-A Processors . . . . . . . .
2-2
System objects for DSP System Toolbox Support Package for
ARM Cortex-M Processors . . . . . . . . . . . . . . . . . . . . . . . . . .
2-3
Fixed-point support for Biquad Filter on DSP System
Toolbox Support Package for ARM Cortex-M Processors .
2-3
Multirate filters: Sample and Farrow Rate Converter, CIC
Compensation Interpolator/Decimator, and FIR Halfband
Interpolator/Decimator System objects . . . . . . . . . . . . . . .
2-3
Tunable coefficients and variable-size input available on FIR
Interpolator System object and block . . . . . . . . . . . . . . . . .
2-4
Variable-size input available on FIR Decimator System object
and block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-4
Min/Max logging instrumentation for float-to-fixed-point
conversion of commonly used DSP System objects,
including Biquad Filter, FIR Filter, and FIR Rate
Converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-4
v
HDL-optimized FFT and IFFT System objects and HDLoptimized Complex to Magnitude-Angle System object and
block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-5
Real input, bit-reversed output, reset input available on HDLoptimized FFT and IFFT . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-5
vi
Contents
Option to synthesize lookup table to ROM available on HDLoptimized FFT and IFFT blocks . . . . . . . . . . . . . . . . . . . . .
2-5
Reduced latency of HDL-optimized FFT and IFFT . . . . . . . .
2-5
CIC algorithm and HDL code generation for DC Blocker . . .
2-6
dsp.FilterCascade System object . . . . . . . . . . . . . . . . . . . . . . .
2-6
Phase Extractor block and dsp.PhaseExtractor System
object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-6
Overrun and underrun reporting on audio device blocks and
System objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-6
Unsigned input data type in dsp.CICDecimator and
dsp.CICInterpolator System Objects . . . . . . . . . . . . . . . . . .
2-7
Logic Analyzer support for vector, enumerated, and complex
inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-7
System object support in Simulink For Each Subsystem . . .
2-7
Getting Started Tutorials . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-7
Functionality being removed or replaced for blocks and
System objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-7
Persistence mode in Vector Scope . . . . . . . . . . . . . . . . . . . .
2-15
Code generation for additional DSP System Toolbox System
objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2-15
Tunable amplitude on dsp.SineWave . . . . . . . . . . . . . . . . . .
2-16
R2014a
Up to four-times faster FIR filter simulation in MATLAB
System object and Simulink block . . . . . . . . . . . . . . . . . . .
3-2
Optimized C code generation for ARM Cortex–M processors
from System objects with MATLAB Coder and Embedded
Coder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-2
Notch/peak filter and parametric equalizer filter System
objects in MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-3
Variable bandwidth FIR and IIR filter System objects in
MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-3
Pink/Colored noise generation System object in MATLAB . .
3-3
HDL optimized FFT and IFFT Simulink blocks . . . . . . . . . . .
3-3
Fixed-point data type support for FIR filter, in ARM CortexM support package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-3
Choice of wrapping or truncating input of FFT, IFFT, and
Magnitude FFT in MATLAB and Simulink . . . . . . . . . . . . .
3-4
Variable-size input for biquad and LMS filters in MATLAB
and Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-4
More flexible control of dsp.LMSFilter System object fixedpoint settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-4
DC blocker System object and Simulink block . . . . . . . . . . .
3-4
dsp.DigitalDownConverter and dsp.DigitalUpConverter now
support C code generation . . . . . . . . . . . . . . . . . . . . . . . . . .
3-5
The isDone method of dsp.AudioFileReader honors
PlayCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-5
M4A replaced by MPEG4 in dsp.AudioFileWriter . . . . . . . . .
3-5
vii
Spectrogram cursors and CCDF plots in the spectrum
analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-5
Changed dsp.SpectrumAnalyzer property names . . . . . . . . .
3-5
Conversion to/from allpass from/to wave digital filter . . . . .
3-6
Transfer function estimation in Simulink . . . . . . . . . . . . . . .
3-6
Updates to the Time Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-6
Changed dsp.TimeScope property names . . . . . . . . . . . . . . . .
3-6
Time Scope automatically switches to block-based sample
time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-7
dsp.LogicAnalyzer channel selection . . . . . . . . . . . . . . . . . . .
3-7
System object templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-7
System objects infer number of inputs and outputs from
stepImpl method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-7
System objects setupImpl method enhancement . . . . . . . . . .
3-8
System objects infoImpl method allows variable inputs . . . .
3-8
System objects base class renamed to matlab.System . . . . . .
3-8
System objects Propagates mixin methods . . . . . . . . . . . . . .
3-8
Code generation support for additional functions . . . . . . . .
3-9
R2013b
Support Package for ARM Cortex-M Processors . . . . . . . . . .
viii
Contents
4-2
Channel and distortion measurement, cursors, and
spectrogram visualization using Spectrum Analyzer in
MATLAB and Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-2
Channel mapping for multichannel audio devices in MATLAB
and Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-3
Variable-size support for FIR and Allpole filters in MATLAB
and Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-3
Estimation of Power Spectrum, Cross Power Spectrum, and
Transfer Function for streaming data in MATLAB . . . . . .
4-3
Data logging and archiving using Time Scope in Simulink .
4-4
MIDI control interface support in MATLAB . . . . . . . . . . . . .
4-4
Integer support on the output port of the MIDI Controls
block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-4
Kalman filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-4
Adaptive filters using Lattice, Fast Transversal, Filtered-X
LMS, and Frequency Domain algorithms in MATLAB . . .
4-5
Coupled allpass filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-5
Functionality being removed or changed . . . . . . . . . . . . . . . .
Migrate away from fdesign.pulseshaping . . . . . . . . . . . . . . .
4-5
4-5
Configuration dialog added to Logic Analyzer . . . . . . . . . . .
4-6
Complex trigger support in Time Scope . . . . . . . . . . . . . . . . .
4-6
Default color changes for Array Plot, Time Scope, and
Spectrum Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-7
MATLAB System Block to include System objects in Simulink
models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-7
Restrictions on modifying properties in System object Impl
methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-7
ix
System objects matlab.system.System warnings . . . . . . . . . .
4-8
Removing HDL Support for NCO Block . . . . . . . . . . . . . . . . .
4-9
R2013a
x
Contents
Allpass Filter System object . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-2
Adaptive filter System objects using RLS and Affine
Projection Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-2
Logic Analyzer System object . . . . . . . . . . . . . . . . . . . . . . . . .
5-2
Audio System object support for tunability, variable frame
size, variable number of channels, and writing MPEG-4
AAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-3
Array Plot System object for displaying vectors or arrays in
2-D and Spectrum Analyzer block with enhanced controls
and features such as peak finder . . . . . . . . . . . . . . . . . . . .
5-4
Time Scope block with triggering and peak finder features
Triggers Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Peak Finder Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Panning Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programmatic Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scale Axes Limits After 10 Updates . . . . . . . . . . . . . . . . . .
5-10
5-11
5-11
5-11
5-11
5-12
Change of the default for audio hardware API on Linux . .
5-12
Change of the default for audio file formats in multimedia
blocks and audio file reader and writer System objects .
5-12
Change of property default in the audio file reader System
object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-12
Removal of the signalblks package . . . . . . . . . . . . . . . . . . .
5-12
Scope Snapshot display of additional scopes in Simulink
Report Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-13
Unoriented vector treated as column vector in the Biquad
Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-13
NCO HDL Optimized block . . . . . . . . . . . . . . . . . . . . . . . . . .
5-13
HDLNCO System object . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-13
HDL code generation for NCO HDL Optimized block and
System object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-13
Support for nonpersistent System objects . . . . . . . . . . . . . .
5-14
New method for action when System object input size
changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5-14
Scaled double data type support for System objects . . . . . .
5-14
R2012b
SpectrumAnalyzer System object . . . . . . . . . . . . . . . . . . . . . .
6-2
Cross-platform support for reading and writing WAV, FLAC,
OGG, MP3 (read only), MP4 (read only), and M4a (read
only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-3
Support for code generation for CICDecimator and
CICInterpolator System objects . . . . . . . . . . . . . . . . . . . . .
6-3
Support for HDL code generation for multichannel Discrete
FIR Filter block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-3
Time Scope enhancements, including new cursors, embedded
simulation controls, and External and Rapid Accelerator
modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cursor measurements panel . . . . . . . . . . . . . . . . . . . . . . . . .
Additional embedded simulation controls . . . . . . . . . . . . . . .
6-4
6-4
6-5
xi
Support for external mode and rapid accelerator mode . . . . .
Properties dialog box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Axes Maximization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Automatic calculation of Time Span . . . . . . . . . . . . . . . . . . .
ReduceUpdates property . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Support for conditional subsystems . . . . . . . . . . . . . . . . . . . .
xii
Contents
6-5
6-6
6-6
6-7
6-7
6-8
Source and sink blocks being replaced . . . . . . . . . . . . . . . . .
6-8
Discrete IIRFilter and AllpoleFilter System objects . . . . . . .
6-9
Support for MATLAB Compiler for CICDecimator and
CICInterpolator System objects . . . . . . . . . . . . . . . . . . . . .
6-9
Code generation support for SignalSource System object . .
6-9
Behavior change of locked System objects for loading, saving,
and cloning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-9
Behavior change of statistics blocks for variable-size
inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-10
Simulation state save and restore for additional blocks . . .
6-11
For Each subsystem support for additional blocks . . . . . . .
6-11
Multi-instance model referencing support for additional
blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-12
Expanded analysis support for filter System objects . . . . .
6-12
Removal of the signalblks package . . . . . . . . . . . . . . . . . . . .
6-12
Discrete filter block visible in DSP library . . . . . . . . . . . . .
6-12
System object tunable parameter support in code
generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-12
save and load methods for System objects . . . . . . . . . . . . . .
6-13
Save and restore SimState not supported for System
objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-13
Map integer delay to RAM on Delay block . . . . . . . . . . . . . .
6-13
HDL support for System objects . . . . . . . . . . . . . . . . . . . . . .
6-13
HDL resource sharing for Biquad Filter block . . . . . . . . . .
6-14
R2012a
Frame-Based Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inherited Option of the Input Processing Parameter Now
Warns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Logging Frame-Based Signals in Simulink . . . . . . . . . . . . . .
Model Reference and Using slupdate . . . . . . . . . . . . . . . . . .
Removing Mixed Frameness Support for Bus Signals on Unit
Delay and Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Audio Output Sampling Mode Added to the From Multimedia
File Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-2
System Object Enhancements . . . . . . . . . . . . . . . . . . . . . . . . .
Code Generation for System Objects . . . . . . . . . . . . . . . . . . .
New MAT-File Reader and Writer System Objects . . . . . . . .
New System Object Option on File Menu . . . . . . . . . . . . . . .
Variable-Size Input Support for System Objects . . . . . . . . . .
Data Type Support for System Objects . . . . . . . . . . . . . . . . .
New Property Attribute to Define States . . . . . . . . . . . . . . . .
New Methods to Validate Properties and Get States from
System Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
matlab.system.System changed to matlab.System . . . . . . . . .
7-5
7-5
7-5
7-5
7-6
7-6
7-6
Time Scope Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Time Domain Measurements in Time Scope . . . . . . . . . . . . .
Multiple Display Support in Time Scope . . . . . . . . . . . . . . . .
Style Dialog Box in Time Scope . . . . . . . . . . . . . . . . . . . . . .
Sampled Data as Stairs in Time Scope . . . . . . . . . . . . . . . . .
Complex Data Support in Time Scope . . . . . . . . . . . . . . . . . .
Additional Time Scope Enhancements . . . . . . . . . . . . . . . . .
7-6
7-7
7-7
7-8
7-8
7-8
7-9
ASIO Support in To/From Audio Device Blocks and
Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-2
7-3
7-4
7-4
7-5
7-6
7-6
7-10
xiii
Video Processing Enabled for the DSP System Toolbox
Multimedia File Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-10
System Objects Integrated into Filter Design Workflow . . .
Integration of System Objects into Filter Design via fdesign,
FDATool, and Filterbuilder . . . . . . . . . . . . . . . . . . . . . . .
Convert dfilt and mfilt Filter Objects to System Objects . . .
Filter Analysis and Conversion Methods for System Object
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-10
New Measurement Workflow . . . . . . . . . . . . . . . . . . . . . . . . .
Measurements for Bilevel Pulse Waveforms . . . . . . . . . . . .
System Objects for Peak-to-RMS and Peak-to-Peak
Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-11
7-11
Discrete FIR Filter System Object . . . . . . . . . . . . . . . . . . . .
7-12
Inverse Dirichlet Sinc-Shaped Passband Design Added to
Constrained FIR Equiripple Filter . . . . . . . . . . . . . . . . . .
7-12
Code Generation Support Added to FIR Decimator System
Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-12
7-10
7-10
7-11
7-12
Filter Block Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . .
IC/Coefficient Parameter Ports in the Simulink Discrete Filter
and Discrete Transfer Function . . . . . . . . . . . . . . . . . . . .
Reset Port for Resetting Filter State in Filter Blocks . . . . . .
7-13
7-13
Discrete FIR Filter Block Coefficient Port Changes . . . . . .
7-13
Statistics Blocks and Objects Warning for Region of Interest
Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-13
New and Updated Demos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-14
7-13
R2011b
Frame-Based Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
General Product-Wide Changes . . . . . . . . . . . . . . . . . . . . . . .
xiv
Contents
8-2
8-2
Logging Signals in Simulink . . . . . . . . . . . . . . . . . . . . . . . . .
Triggered to Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Digital Filter Design Block . . . . . . . . . . . . . . . . . . . . . . . . . .
Filterbuilder, FDATool and the Filter Realization Wizard
Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Changes to Row Vector Processing for dsp.Convolver,
dsp.CrossCorrelator, and dsp.Interpolator System Objects .
8-4
8-4
8-5
Custom System Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-6
New Allpole Filter Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-7
New Audio Weighting Filter Functionality . . . . . . . . . . . . . .
8-7
Time Scope Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-7
New Arbitrary Group Delay Design Support . . . . . . . . . . . . .
8-8
Arbitrary Magnitude Responses Now Support Minimum
Order and Minimum/Maximum Phase Equiripple Design
Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-8
Support for Constrained Band Equiripple Designs in
MATLAB and Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-8
New Sinc Frequency Factor and Sinc Power Design Options
for Inverse Sinc Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-9
New Inverse Sinc Highpass Filter Designs . . . . . . . . . . . . . .
8-9
Filterbuilder and dspfdesign Library Blocks Now Support
Different Numerator and Denominator Orders for IIR
Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-9
New Stopband Shape and Stopband Decay Design Options
for Equiripple Highpass Filter Designs . . . . . . . . . . . . . . .
8-9
FFTW Library Support for Non-Power-of-Two Transform
Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-10
MATLAB Compiler Support for dsp.DigitalDownConverter
and dsp.DigitalUpConverter . . . . . . . . . . . . . . . . . . . . . . . .
8-10
8-6
8-6
xv
Complex Input Support for dsp.DigitalDownConverter . . .
8-10
getFilters Method of dsp.DigitalDownConverter and
dsp.DigitalUpConverter Now Return Actual Fixed-Point
Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-10
dsp.SineWave and dsp.BiquadFilter Properties Not
Tunable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-10
System Object DataType and CustomDataType Properties
Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-11
System Objects Variable-Size Input Dimensions . . . . . . . . .
8-11
Conversion of Error and Warning Message Identifiers . . . .
8-11
New and Updated Demos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8-12
Blocks Being Removed in a Future Release . . . . . . . . . . . . .
8-13
R2011a
Product Restructuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-2
Frame-Based Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
General Product-Wide Changes . . . . . . . . . . . . . . . . . . . . . . .
Blocks with a New Input Processing Parameter . . . . . . . . . .
Changes to the Overlap-Add FFT Filter, Overlap-Save FFT
Filter, and Short-Time FFT Blocks . . . . . . . . . . . . . . . . . .
Difference Block Changes . . . . . . . . . . . . . . . . . . . . . . . . . . .
Signal To Workspace Block Changes . . . . . . . . . . . . . . . . . . .
Spectrum Scope Block Changes . . . . . . . . . . . . . . . . . . . . . . .
Sample-Based Row Vector Processing Changes . . . . . . . . . . .
9-2
9-2
9-4
9-6
9-7
9-7
9-8
9-8
New Function for Changing the System Object Package Name
from signalblks to dsp . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-11
New Discrete FIR Filter Block . . . . . . . . . . . . . . . . . . . . . . . .
xvi
Contents
9-11
New Printing Capability from the Time Scope Block . . . . .
9-11
Improved Display Updates for the Time Scope Block and
System Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-12
New Implementation Options Added to Blocks in the Filter
Designs Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-12
New dsp.DigitalDownConverter and dsp.DigitalUpConverter
System Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-13
Improved Performance of FFT Implementation with FFTW
library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-13
Variable-Size Support for System Objects . . . . . . . . . . . . . .
9-13
System Objects FullPrecisionOverride Property Added . . .
9-14
'Internal rule' System Object Property Value Changed to 'Full
precision' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-15
MATLAB Compiler Support for System Objects . . . . . . . . .
9-15
Viewing System Objects in the MATLAB Variable Editor . .
9-16
System Object Input and Property Warnings Changed to
Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-16
New and Updated Demos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9-16
Documentation Examples Renamed . . . . . . . . . . . . . . . . . . .
9-17
Downsample Block No Longer Has Frame-Based Processing
Latency for a Frame Size of One . . . . . . . . . . . . . . . . . . . .
9-17
SignalReader System Object Accepts Column Input Only .
9-18
FrameBasedProcessing Property Removed from the
dsp.DelayLine and dsp.Normalizer System Objects . . . .
9-18
R2010a MAT Files with System Objects Load Incorrectly .
9-18
xvii
R2015a
Version: 9.0
New Features
Bug Fixes
Compatibility Considerations
R2015a
Audio Latency Reduction: Significantly reduce latency for audio hardware
I/O in MATLAB and Simulink
Improvements to the audio I/O infrastructure significantly reduce latency.
To determine audio latency on your system, see “Measuring Audio Latency”.
Filter Design Enhancements: Design high-order IIR parametric EQ filter,
variable bandwidth FIR and IIR filters, Digital Down-Converter and Digital
Up-Converter blocks
Implement FIR and IIR filters conveniently with minimal design options, using the
following new filter design features:
• iirparameq function designs IIR biquad parametric equalizer filters.
• dsp.LowpassFilter System object™ designs FIR or IIR lowpass filters with
minimum-order or with specified order options.
• dsp.HighpassFilter System object designs FIR or IIR highpass filters with
minimum-order or with specified order options.
Implement in Simulink® several new filters, a power spectrum estimator, signal
operations and generate colored noise:
• The Variable Bandwidth FIR Filter and Variable Bandwidth IIR Filter blocks
implement the functionality of dsp.VariableBandwidthFIRFilter and
dsp.VariableBandwidthIIRFilter System objects. These blocks allow you
to vary the passband while filtering. Also, they enable you to tune the filter in a
computationally efficient way while preserving the filter structure.
• The Parametric EQ Filter block implements a parametric equalizer with tunable
gain, bandwidth, and center frequency. These filters are widely used in audio
processing applications. The Parametric EQ Filter block implements the functionality
of dsp.ParametricEQFilter System object. This block replaces the Param EQ
block, found in dspfdesign library.
• The Notch-Peak Filter block implements a notching or peaking IIR filter in Simulink.
Notch-Peak filters are used in many signal processing applications, including tone
removal and removal of power line interference. With the Notch-Peak filter block, you
can use tunable parameters to control the center frequencies and 3-dB bandwidths of
1-2
the notches and peaks. The Notch-Peak Filter block implements the functionality of
the dsp.NotchPeakFilter System object. This block replaces the Peak-Notch Filter
block, found in dspfdesign library.
• The Cross Spectrum Estimator block uses Welch’s modified periodogram method to
compute the cross-power spectrum of inputs. This block implements the functionality
of the dsp.CrossSpectrumEstimator System object.
• The Digital Down-Converter and Digital Up-Converter blocks provide tools to design
decimation and interpolation filters, and simplify the steps required to implement
down conversion and up conversion, in Simulink. These blocks implement the
functionality of the dsp.DigitalDownConverter and dsp.DigitalUpConverter
System objects.
• The Colored Noise block generates a colored noise signal in Simulink. With this block,
you can generate noise with a 1/f α power spectral density. Set α equal to any value
in the interval [-2,2]. Specifying α = 1 results in pink noise. Specifying α = 2 produces
Brownian noise. This block implements the functionality of the dsp.ColoredNoise
System object.
DSP Simulink Model Templates: Configure the Simulink environment for
digital signal processing models
DSP Simulink model templates enable reuse of settings, including configuration
parameters. Create models from templates to encourage best practices and take
advantage of previous solutions to common problems. Instead of the default canvas of
a new model, select a template model to help you get started. Choose blank, basic or
audio model templates to create a skeletal model using settings recommended for DSP
System Toolbox™.
You can use built-in templates or create templates from models that you already
configured for your environment or application.
For more information, see “Configure the Simulink Environment for Signal Processing
Models”.
Streaming Scope Improvements: Plot in stem mode, access log x-axis
scaling, customize sample rate, and use infinite data support
The following improvements have been made to streaming scopes:
1-3
R2015a
• Legend settable programmatically in Spectrum Analyzer block and
dsp.SpectrumAnalyzer System object.
• Stem plot mode for Spectrum Analyzer block and System object.
• Log frequency axis for Spectrogram mode in Spectrum Analyzer block and System
object.
• Vector-tunable frequency offset in Spectrum Analyzer block and System object.
• Custom sample rate in Spectrum Analyzer block.
• Variable-size support in Spectrum Analyzer System object.
• Infinite data support in Time Scope block.
• Log x-axis scaling in the dsp.ArrayPlot System object.
Library for HDL Supported DSP Blocks: Find all blocks that support HDL
In the Simulink Library Browser, use the DSP System Toolbox HDL Support library
to find all the DSP System Toolbox blocks that support HDL code generation.
Alternatively, at the MATLAB® command prompt, enter dsphdllib to open this library.
All blocks in this library have their parameters configured for HDL code generation. To
generate HDL code, you must have an HDL Coder™ license.
C Code Generation of DSP Algorithms for ARM Cortex-A and CortexM processors: Generate optimized and faster performing C code using
Embedded Coder
In R2015a, using Embedded Coder®, you can generate C code optimized for ARM
processors using these DSP blocks and System objects:
ARM Cortex-A processors
• dsp.LowpassFilter System object, with FilterType set to FIR
• dsp.HighpassFilter System object, with FilterType set to FIR
• Variable Bandwidth FIR Filter block
ARM Cortex-M processors
1-4
• dsp.LowpassFilter System object, with FilterType set to FIR or IIR
• dsp.HighpassFilter System object, with FilterType set to FIR or IIR
• dsp.VariableBandwidthIIRFilter System object, with FilterType set to
Lowpass or Highpass
• Variable Bandwidth IIR Filter block, with FilterType property set to Lowpass and
Highpass
• Variable Bandwidth FIR Filter block
Performance Improvements
Simulation speed has improved for:
• dsp.FIRDecimator, dsp.AllpassFilter, and dsp.CoupledAllpassFilter
System objects
• FIR Decimation and Downsample blocks
Updated Time Scope block toolbar and menus
The following Time Scope block menu and toolbar items have been added or updated:
• Zoom Out option added to Tools menu and toolbar
• Axes scaling options grouped into an Axes Scaling submenu of the Tools menu
• Scale Axes Limits option indicates axes to be scaled
• Save and Restore Axes Limits added to Axes Scaling submenu
• Warnings appear in drop-down area above the plot, instead of in a separate dialog box
Specify block filter characteristics through System objects
You can now specify the filter characteristics of FIR Decimation, FIR Interpolation, FIR
Rate Conversion, CIC Decimation, CIC Interpolation, and Biquad Filter blocks using
System objects.
In the block dialog box, under Coefficient source, select Filter object . You can
now specify the name of the System object in the filter object variable. See the Specify
Multirate Filter Object section in each of these block reference pages.
1-5
R2015a
Block
System object to specify
FIR Decimation
dsp.FIRDecimator
FIR Interpolation
dsp.FIRInterpolator
FIR Rate Conversion
dsp.FIRRateConverter
CIC Decimation
dsp.CICDecimator
CIC Interpolation
dsp.CICInterpolator
See the Specify Discrete-Time Filter Object section in this block reference page.
Block
System object to specify
Biquad Filter
dsp.BiquadFilter
This feature is supported for HDL code generation from the FIR Decimation, FIR
Interpolation, CIC Decimation, CIC Interpolation, and Biquad Filter blocks. HDL code
generation requires a HDL Coder license.
Discrete Transfer Function Estimator block
You can now configure the Discrete Transfer Function Estimator block to estimate the
output coherence, or spectral coherence, of the input and output signal of the estimated
transfer function.
In the dialog box, select the Output magnitude squared coherence estimate
parameter to compute the spectral coherence between the input and output signals.
Spectral coherence is a useful metric for estimating transfer functions, especially for the
purposes of system identification.
Specify filter coefficients as an input to the FIR Decimation block
You can now provide filter coefficients to the FIR Decimation block. In the block dialog
box, under Coefficient Source, select Input Port. Coefficient values are tunable (can
change during simulation), while their properties must remain constant.
See the Provide Filter Coefficients through Input port section in the FIR
Decimation block reference page.
1-6
Enhanced code generation for CIC Decimation and CIC Interpolation filter
blocks
Code generated from CIC Decimation and CIC Interpolation filter blocks can now
support data types that have word lengths greater than 32 bits.
HDL support for ‘inherit via internal rule’ data type setting on FIR
Decimation and Interpolation blocks
FIR Decimation and FIR Interpolation blocks now support HDL code generation with
data types specified by Inherit via internal rule. HDL code generation requires a HDL
Coder license.
Improvements for creating System objects
The following improvements have been made to creating your own System objects:
• Number of allowable code generation inputs increased to 32
• Code generation support for unbounded variable-size vectors
• isInputSizeLockedImpl method for specifying whether the input port dimensions
are locked
• matlab.system.display.Action class, used in the getPropertyGroupsImpl
method, to define a MATLAB System block button that can call a System object
method
• getSimulateUsingImpl and showSimulateUsingImpl methods to set the value
of the SimulateUsing parameter and specify whether to show the SimulateUsing
parameter in the MATLAB System block
Min/Max logging instrumentation for float-to-fixed-point conversion of
DSP System objects
Convert the following DSP System Toolbox System objects to fixed-point using the FixedPoint Converter app (requires a Fixed-Point Designer™ license):
• dsp.FIRDecimator
• dsp.FIRInterpolator
1-7
R2015a
• dsp.FIRFilter (direct form transposed)
• dsp.LUFactor
• dsp.VariableFractionalDelay
• dsp.Window
Propose and apply data types for these System objects based on simulation range data.
During the conversion process, you can view simulation minimum and maximum values
and proposed data types for these System objects. You can also view whole number
information and histogram data. You cannot propose data types for these System objects
based on static range data.
Provide variable-size input to the Delay System object
The dsp.Delay System object now supports variable-size input signals. When the input
is a variable-size signal, the number of input rows can change during run time without
having to call release method between two calls to the step method, while the number
of channels must remain fixed.
See “What Is Variable-Size Data?” for information on variable-size signals .
Estimate output coherence of Transfer Function Estimator System object
You can now use dsp.TransferFunctionEstimator System object to estimate the
magnitude squared coherence, or spectral coherence, of the input and output signals
of the estimated transfer function. To compute the spectral coherence, specify the
OutputCoherence property of the System object as true. Spectral coherence is a
useful metric for estimating transfer functions, especially for the purposes of system
identification.
Specify filter coefficients as an input to the FIR Decimator System object
Provide filter coefficients to the dsp.FIRDecimator System object as an input
argument. Specify NumeratorSource property of the System object as one of Property
(default) or Input port. When you specify Input port, the filter object requires the
numerator coefficients to be specified as the third argument at every step.
See the NumeratorSource property of dsp.FIRDecimator for details.
1-8
Bit growth to avoid overflow in HDL-optimized FFT and IFFT
When 1/N scaling is disabled, the FFT algorithm grows the internal word length by 1
bit after each butterfly stage. This adjustment avoids overflow. This change affects the
following blocks and System objects:
• FFT HDL Optimized
• IFFT HDL Optimized
• dsp.HDLFFT
• dsp.HDLIFFT
Fixed-point support for FIR Half-band Interpolator and FIR Half-band
Decimator System objects
Implement HDL focused fixed-point operations on dsp.FIRHalfbandInterpolator
and dsp.FIRHalfbandDecimator System objects.
Updated cost method for filter System objects
The cost method for filter System objects is now a structure with the following fields:
• NumCoefficients
• NumStates
• MultiplicationsPerInputSample
• AdditionsPerInputSample
Frame-based processing
As part of general product-wide changes pertaining to Frame-Based processing, certain
block options that use the frame attribute of the input signal now cause an error.
The following sections provide more detailed information about the specific R2015a DSP
System Toolbox software changes for frame-based processing:
• “Input processing parameter set to Inherited” on page 1-10
• “Rate options parameter set to Inherit from input” on page 1-24
1-9
R2015a
• “Treat Mx1 and unoriented sample-based signals as parameter set to M channels” on
page 1-25
• “Save 2-D signals as parameter set to Inherit from input” on page 1-25
• “Find the histogram over parameter set to Inherited” on page 1-26
• “Sample-based processing parameter set to Pass through” on page 1-26
• “Running difference parameter set to Inherit from input” on page 1-27
Input processing parameter set to Inherited
Setting Input processing parameter to Inherited now causes an error in these blocks:
• Biquad Filter
• FIR Interpolation
• FIR Decimation
• Edge Detector
• Analytic Signal
• Variable Integer Delay
• Variable Fractional Delay
• Zero Crossing
• Two-Channel Analysis Subband Filter
• Two-Channel Synthesis Subband Filter
• CIC Interpolation
• Upsample
• Downsample
• Repeat
• Unwrap
• Minimum, when you set Mode to Running
• Maximum, when you set Mode to Running
• Mean, when you select Running mean check box
• Standard Deviation, when you select Running standard deviation check box
• Variance, when you select Running variance check box
1-10
• RMS, when you select Running RMS check box
• Cumulative Sum, when you set Sum input along to Channels (running sum)
• Cumulative Product, when you set Multiply input along to Channels (running
product)
Compatibility Considerations
To ensure consistent results for models created in previous releases, set Input
processing to:
• Columns as channels (frame based), for frame-based input signals (doubleline)
• Elements as channels (sample based), for sample-based input signals (singleline)
After compiling the model, frame-based signals appear as double lines. Sample-based
signals appear as single lines.
For models created in R2015a:
• To treat each column of the input signal as an independent channel, set Input
processing to Columns as channels (frame based).
• To treat each element of the input signal as an independent channel, set Input
processing to Elements as channels (sample based).
Simulink Upgrade Advisor
If you are not sure which Input processing option applies to your model and choose
Inherited instead, use the Simulink Upgrade Advisor to update your model.
1
Update blocks in a model
In this model, the Biquad Filter block uses frame-based processing.
1-11
R2015a
In the Biquad Filter dialog box, Input processing is set to Inherited.
1-12
1-13
R2015a
When you run the model, Simulink issues an error message.
From the error message, you can open the Simulink Upgrade Advisor by clicking the
hyperlink.
Then you can select the Check model for block upgrade issues requiring
compile time information check and click Run this Check.
1-14
The Upgrade Advisor runs the check on all the blocks in the model, recommends an
update for the needed blocks, and gives the reason for the update.
1-15
R2015a
Click Modify to update the FrameBasedProcessing/Biquad Filter block.
Because the input signal is sample-based, in the Biquad Filter block, the Upgrade
Advisor changes Input processing to Elements as Channels (Sample based).
2
Update blocks in a custom library
When you select the Check model for block upgrade issues requiring
compile time information check box, the Upgrade Advisor does not update
blocks in custom libraries.
1-16
Custom libraries are Simulink block libraries that you can create to reuse your
blocks and subsystems in one or more models. For more information, see “Create
Custom Block Libraries”.
To analyze frame-based processing related errors in custom library blocks, open the
Simulink Upgrade Advisor and select the Check model for custom library
blocks that rely on frame status of the signal, and click Run This
Check. This check does not update the library blocks. It analyzes the blocks,
recommends fixes, and gives reasons for the fixes. You must make the fixes
manually.
In this model, myBlk_Biquad is a block from the custom library. It contains a Biquad
Filter block, which is one of the blocks that causes an error when you set Input
processing to Inherited.
1-17
R2015a
1-18
In the Biquad Filter dialog box, Input processing is set to Inherited.
1-19
R2015a
1-20
When you run the model, Simulink issues an error message.
To resolve this error message, reopen Simulink Upgrade Advisor, select the Check
model for custom library blocks that rely on frame status of the
signal check and click Run This Check.
1-21
R2015a
The Upgrade Advisor runs the check on all the blocks in the custom library
subsystem block, recommends an update for the needed blocks, and gives the reason
for the update.
1-22
For the CustomLibraryModel/myBlk_Biquad/Biquad Filter block, the
Upgrade Advisor recommends changing Input Processing to either Elements as
channels (sample based) or Columns as channels (frame based). To
make the change, you update the parameter in the library block, myBlk_Biquad/
Biquad Filter, not in the specific instance of the block in the model. The model
now runs successfully.
If the custom library block (in this case, myBlk_Biquad block) is used for framebased processing in all the models that use it, set the Input Processing parameter
to Columns as channels (frame based) in the library block. Else, set this
parameter to Elements as channels (sample based).
If the library block is used for frame-based processing in some models and samplebased processing in others, you can add a parameter to the mask of the library block
1-23
R2015a
and configure this parameter to choose one of Columns as channels (frame
based) or Elements as channels (sample based). Choosing the appropriate
option in the block mask should set the Input Processing parameter of underlying
block to Columns as channels (frame based) or Elements as channels
(sample based).
Another approach is to promote the option chosen for Input Processing parameter
from underlying block (in this case, Biquad Filter block) to the mask of the library
block. This is known as parameter promotion. For details on parameter promotion,
see “Promote Underlying Block Parameters to Mask”.
Rate options parameter set to Inherit from input
In the CIC Decimation block, setting the Rate options parameter to Inherit from
input causes an error.
Compatibility Considerations
To ensure consistent results for models created in previous releases, set Rate options to:
• Allow multirate processing, for sample-based input signals
• Enforce single-rate processing, for frame-based input signals
For models created in R2015a:
• To run the block in single-rate mode, set Rate options to Enforce single-rate
processing.
• To run the block in multirate mode, set Rate options to Allow multirate
processing.
If you are not sure which option to choose, run these Simulink Upgrade Advisor checks:
• Check model for block upgrade issues requiring compile time
information, for blocks in a model
• Check model for custom library blocks that rely on frame status of
the signal, for blocks in a custom library
1-24
Treat Mx1 and unoriented sample-based signals as parameter set to M
channels
Setting Treat Mx1 and unoriented sample-based signals as parameter to M
channels now causes an error in these blocks:
• Buffer
• Delay Line
• Overlap-Save FFT Filter
• Overlap-Add FFT Filter
• Short-Time FFT
Compatibility Considerations
To ensure consistent results for models created in previous releases, reshape the input to
be a 1–by-M vector, and set Treat Mx1 and unoriented sample-based signals as to
One channel.
Save 2-D signals as parameter set to Inherit from input
In the Triggered To Workspace block, setting the Save 2-D signals as parameter to
Inherit from input now causes an error.
Compatibility Considerations
To ensure consistent results for models created in previous releases, set Save 2-D
signals as to
• 3-D array (concatenate along third dimension), for sample-based input signals
• 2-D array (concatenate along first dimension), for frame-based input signals
For models created in R2015a:
• For frame-based processing, set Save 2-D signals as to 2-D array (concatenate
along first dimension).
• For sample-based processing, set Save 2-D signals as to 3-D array (concatenate
along third dimension).
If you are not sure which option to choose, run these Simulink Upgrade Advisor checks:
1-25
R2015a
• Check model for block upgrade issues requiring compile time
information, for blocks in a model
• Check model for custom library blocks that rely on frame status of
the signal, for blocks in a custom library
Find the histogram over parameter set to Inherited
In the Histogram block, setting the Find the histogram over to Inherited now
causes an error.
Compatibility Considerations
To ensure consistent results for models created in previous releases, set Find the
histogram over to:
• Entire input, for sample-based input signals
• Each column, for frame-based input signals
For models created in R2015a:
• To compute the histogram for each column of the input independently, set Find the
histogram over to Each column.
• To compute the histogram over the entire input, set the Find the histogram over to
Entire input.
If you are not sure which option to choose, run these Simulink Upgrade Advisor checks:
• Check model for block upgrade issues requiring compile time
information, for blocks in a model
• Check model for custom library blocks that rely on frame status of
the signal, for blocks in a custom library
Sample-based processing parameter set to Pass through
In the Unbuffer block, setting the Sample-based processing to Pass through now
causes an error.
Compatibility Considerations
Unbuffer the M-by-N matrix input into a 1-by-N output vector by setting Sample-based
processing to Same as frame based.
1-26
If you want the input to pass through, remove the Unbuffer block from the model.
Running difference parameter set to Inherit from input
In the Difference block, setting the Running difference to Inherit from input now
causes an error.
Compatibility Considerations
To ensure consistent results for models created in older releases, set Running
difference to:
• No, for sample-based input signals
• Yes, for frame-based input signals
For models created in R2015a:
• To compute the difference between adjacent elements in the current input, set
Running difference to No.
• To compute the running difference across consecutive inputs, set Running
difference to Yes.
If you are not sure which option to choose, run these Simulink Upgrade Advisor checks:
• Check model for block upgrade issues requiring compile time
information, for blocks in a model
• Check model for custom library blocks that rely on frame status of
the signal, for blocks in a custom library
Features removed, replaced, and duplicated
Blocks replaced, removed, and available in additional libraries
DSP Block Replaced
Replaced With
Backward Compatibility —
What Happens When You Run
Models Containing This Block?
Delay
Delay block in Simulink
library
When there is an exact
match in functionality,
the Simulink Delay block
replaces the DSP Delay block
automatically.
1-27
R2015a
DSP Block Replaced
Replaced With
Backward Compatibility —
What Happens When You Run
Models Containing This Block?
Param EQ
Parametric EQ Filter
None
Old models using the Param
EQ block still run.
Peak-Notch Filter
Notch-Peak Filter
None
Old models using PeakNotch Filter block still run.
DSP Block Removed
Use This Block Instead
Backward Compatibility
Transpose
Math Function block in
Simulink library
None
Trigonometric Function
block in Simulink library
None
Complex Exponential
Constant Diagonal Matrix
The Math Function block
replaces the Transpose block
automatically.
The Trignometric Function
block replaces the Complex
Exponential block
automatically.
Constant block in Simulink None
library
The Constant block replaces
the Constant Diagonal
Matrix block automatically.
DSP Block Available in New Library
NCO and NCO HDL Optimized block
Blocks are now available in dspsrcs4
library in addition to dspsigops library.
Removal of adaptfilt objects
adaptfilt objects will be removed in a future release. Instead, use their System object
counterparts, which are more powerful and support code generation.
1-28
adaptfilt Object
Use This System object Instead
adaptfilt.lms
dsp.LMSFilter
adaptfilt.nlms
adaptfilt.se
adaptfilt.sd
adaptfilt.ss
adaptfilt.blms
dsp.BlockLMSFilter
adaptfilt.rls
dsp.RLSFilter
adaptfilt.qrdrls
adaptfilt.swrls
adaptfilt.hrls
adaptfilt.hswrls
adaptfilt.ftf
dsp.FastTransversalFilter
adaptfilt.swftf
adaptfilt.ap
dsp.AffineProjectionFilter
adaptfilt.apru
adaptfilt.bap
adaptfilt.gal
dsp.AdaptiveLatticeFilter
adaptfilt.lsl
adaptfilt.qrdlsl
adaptfilt.filtxlms
dsp.FilteredXLMSFilter
adaptfilt.fdaf
dsp.FrequencyDomainAdaptiveFilter
adaptfilt.ufdaf
adaptfilt.blmsfft
Will be removed in a future release
1-29
R2015a
adaptfilt Object
Use This System object Instead
adaptfilt.adjlms
Will be removed in a future release
adaptfilt.dlms
adaptfilt.pbfdaf
Will be removed in a future release
adaptfilt.pbufdaf
adaptfilt.tdafdct
Will be removed in a future release
adaptfilt.tfafdft
Functionality changed or being removed for blocks and System objects
Removal of sample mode from the DSP System Toolbox System objects
The FrameBasedProcessing property of all DSP System objects will be removed in
a future release. System objects containing this property will then work only in framebased processing mode. See “What Is Frame-Based Processing?” for more information.
Effective R2015a, modifying this property throws a warning for these System objects:
• dsp.AllpoleFilter
• dsp.AnalyticSignal
• dsp.BiquadFilter
• dsp.Buffer
• dsp.CumulativeProduct
• dsp.CumulativeSum
• dsp.Delay
• dsp.FIRFilter
• dsp.IIRFilter
• dsp.MatFileReader
• dsp.MatFileWriter
• dsp.Maximum
• dsp.Mean
• dsp.Minimum
1-30
• dsp.PeakToPeak
• dsp.PeakToRMS
• dsp.PhaseUnwrapper
• dsp.RMS
• dsp.SignalSink
• dsp.StandardDeviation
• dsp.VariableFractionalDelay
• dsp.VariableIntegerDelay
• dsp.Variance
• dsp.ZeroCrossingDetector
In the dsp.CumulativeProduct and dsp.CumulativeSum System objects, the default
value of FrameBasedProcessing property is true.
Option to specify filter coefficients from Digital Up Converter and Digital Down Converter
System objects being removed
FilterSpecification and its related properties will be removed in a future release
from the dsp.DigitalUpConverter and dsp.DigitalUpConverter System objects.
The System objects then will not allow you to specify coefficients for individual stages.
System object
Properties Being Removed
dsp.DigitalUpConverter • FilterSpecification
• FirstFilterCoefficients
• SecondFilterCoefficients
• FirstFilterCoefficientsDataType
• SecondFilterCoefficientsDataType
• CustomFirstFilterCoefficientsDataType
• CustomSecondFilterCoefficientsDataType
dsp.DigitalDownConverter
• FilterSpecification
• SecondFilterCoefficients
• ThirdFilterCoefficients
• SecondFilterCoefficientsDataType
1-31
R2015a
System object
Properties Being Removed
• ThirdFilterCoefficientsDataType
• CustomSecondFilterCoefficientsDataType
• CustomThirdFilterCoefficientsDataType
Removal of OutputDataType and OverflowAction properties for CIC Compensation
Interpolator and Decimator System objects
The OutputDataType and OverflowAction properties for
dsp.CICCompensationInterpolator and dsp.CICCompensationDecimator
System objects have been removed. The OutputDataType property of these System
objects is now always Same word length as input. For these System objects, the
word length matches the input word length, and the fraction length is computed to give
the best possible precision to the data. You no longer have access to this parameter.
1-32
R2014b
Version: 8.7
New Features
Compatibility Considerations
R2014b
Optimized C code generation for ARM Cortex-A Ne10 library from
MATLAB and Simulink with DSP System Toolbox Support Package for
ARM Cortex-A Processors
This release adds code-generation support for ARM® Cortex®-A processors in MATLAB
for select blocks and System objects. With the supported blocks and System objects,
you can generate optimized C code that calls the Ne10 library function and compiles
to provide an executable to run on ARM Cortex-A processors. To use the DSP System
Toolbox Support Package for ARM Cortex-A Processors, you must have the following
products:
• DSP System Toolbox
• Embedded Coder
• MATLAB Coder™
To design in Simulink, you must also have these products:
• Simulink
• Simulink Coder
The following DSP System Toolbox blocks and System objects support the Ne10 library:
• Discrete FIR Fiilter
• FIR Decimation
• FIR Interpolation
• FFT
• IFFT
• dsp.FIRFilter
• dsp.FIRDecimator
• dsp.FIRInterpolator
• dsp.FFT
• dsp.iFFT
• dsp.VariableBandwidthFIRFilter
• dsp.FIRHalfbandInterpolator
• dsp.FIRHalfbandDecimator
• dsp.CICCompensationDecimator
2-2
• dsp.CICCompensationInterpolator
• dsp.DigitalDownConverter
• dsp.DigitalUpConverter
• dsp.SampleRateConverter
For more information, see Support Package for ARM Cortex-A Processors.
System objects for DSP System Toolbox Support Package for ARM CortexM Processors
This release adds support to generate optimized C code for the following System objects
on ARM Cortex-M processors
• dsp.VariableBandwidthFIRFilter
• dsp.FIRHalfbandInterpolator
• dsp.FIRHalfbandDecimator
• dsp.CICCompensationDecimator
• dsp.CICCompensationInterpolator
• dsp.DigitalDownConverter
• dsp.DigitalUpConverter
• dsp.SampleRateConverter
Fixed-point support for Biquad Filter on DSP System Toolbox Support
Package for ARM Cortex-M Processors
This release adds fixed-point support to generate optimized C code for the Biquad Filter
block and dsp.BiquadFilter System object on ARM Cortex-M processors. The supported
data formats are Q15 and Q31.
Multirate filters: Sample and Farrow Rate Converter, CIC Compensation
Interpolator/Decimator, and FIR Halfband Interpolator/Decimator System
objects
This release adds the following multirate filter System objects:
• dsp.SampleRateConverter
2-3
R2014b
• dsp.FarrowRateConverter
• dsp.CICCompensationInterpolator
• dsp.CICCompensationDecimator
• dsp.FIRHalfbandInterpolator
• dsp.FIRHalfbandDecimator
Tunable coefficients and variable-size input available on FIR Interpolator
System object and block
The FIR Interpolation block and the dsp.FIRInterpolator System object now support
tunable coefficients and variable-size input, enabling you to specify filter coefficients from
the input port.
Variable-size input available on FIR Decimator System object and block
The FIR Decimation block and the dsp.FIRDecimator System object now support
variable-size input.
Min/Max logging instrumentation for float-to-fixed-point conversion of
commonly used DSP System objects, including Biquad Filter, FIR Filter, and
FIR Rate Converter
You can now convert the following DSP System Toolbox System objects to fixed point
using the Fixed-Point Converter app (requires a Fixed-Point Designer license).
• dsp.BiquadFilter
• dsp.FIRFilter, direct form only
• dsp.FIRRateConverter
• dsp.LowerTriangularSolver
• dsp.UpperTriangularSolver
• dsp.ArrayVectorAdder
You can propose and apply data types for these System objects based on simulation
range data. During the conversion process, you can view simulation minimum and
maximum values and proposed data types for these System objects. You can also view
whole number information and histogram data. You cannot propose data types for these
System objects based on static range data.
2-4
HDL-optimized FFT and IFFT System objects and HDL-optimized Complex
to Magnitude-Angle System object and block
This release introduces:
• dsp.HDLFFT and dsp.HDLIFFT System objects for the fast Fourier transform and
inverse FFT, optimized for HDL code generation
• Complex to Magnitude-Angle HDL Optimized block and
dsp.ComplexToMagnitudeAngle System object for converting complex inputs to
magnitude and phase angle, optimized for HDL code generation using the CORDIC
algorithm
Real input, bit-reversed output, reset input available on HDL-optimized
FFT and IFFT
The following blocks and System objects now support real input, enable you to select or
disable bit-reversed output, and provide an optional reset input:
• FFT HDL Optimized
• IFFT HDL Optimized
• dsp.HDLFFT
• dsp.HDLIFFT
Option to synthesize lookup table to ROM available on HDL-optimized
FFT and IFFT blocks
To enable this feature, right-click the block, select HDL Code > HDL Block Properties
and set LUTRegisterResetType to none.
The option to synthesize LUT to a ROM is not available on System objects.
Reduced latency of HDL-optimized FFT and IFFT
The FFT HDL Optimized and IFFT HDL Optimized blocks take fewer cycles to compute
one frame of output than in previous releases. For instance, for the default 1024-point
FFT, the latency in R2014a was 1589 cycles. In R2014b, the latency is 1148 cycles. The
latency is displayed on the block icon.
2-5
R2014b
Compatibility Considerations
If you have manually matched latency paths in models using the R2014a version of the
FFT HDL Optimized and IFFT HDL Optimized block, rebalance those paths with the
new latency.
CIC algorithm and HDL code generation for DC Blocker
This release adds an option to implement the DC Blocker using the CIC algorithm.
You can generate HDL code from DC Blocker and dsp.DCBlocker. CIC mode is not yet
supported for HDL code generation.
dsp.FilterCascade System object
This release introduces a new System object, dsp.FilterCascade, that constructs a
cascade of filter System objects.
Phase Extractor block and dsp.PhaseExtractor System object
This release introduces a new block, Phase Extractor, and a new System object,
dsp.PhaseExtractor, that extract the unwrapped phase from complex input signals.
Overrun and underrun reporting on audio device blocks and System
objects
The following blocks and System objects now provide a count of samples lost to queue
underrun/overrun since the last transfer of a frame to or from an audio device. You can
use this information to debug throughput problems.
• To Audio Device
• From Audio Device
• dsp.AudioPlayer
• dsp.AudioRecorder
For an example of how to measure and tune audio throughput see Measuring Audio
Latency example. You can open this example by typing audiolatencymeasurement at
the MATLAB command line.
2-6
Unsigned input data type in dsp.CICDecimator and
dsp.CICInterpolator System Objects
dsp.CICDecimator and dsp.CICInterpolator System objects now support unsigned input
data type.
Logic Analyzer support for vector, enumerated, and complex inputs
The dsp.logicAnalyzer System object now supports vector, enumerated, and complex
input signals.
System object support in Simulink For Each Subsystem
The new supportsMultipleInstanceImpl method enables the use of System objects in
Simulink For Each Subsystem blocks. Include this method in your System object class
definition file when you define a new kind of System object.
Getting Started Tutorials
This release adds 15 new tutorials, which illustrate a broad range of applications
supported by the DSP System Toolbox software. There are new tutorials on the following
topics:
• Streaming signal processing
• Filter design in MATLAB and Simulink
• Real-time audio processing and latency measurements
• Signal visualization in time and frequency
• Algorithm acceleration using code generation
• Multistage-multirate filtering for sample-rate conversion
• Authoring System objects
• Deploying MATLAB code and applications
See Getting Started with DSP System Toolbox for links to the new tutorials.
Functionality being removed or replaced for blocks and System objects
The Signal To Workspace block is now called To Workspace.
2-7
R2014b
Certain functionality in the following blocks and System objects will be removed in future
releases:
• Digital Filter block
• Variable Integer Delay block
• Delay block
• dsp.DigitalFilter
• dsp.VariableIntegerDelay
• dsp.Delay
These features will trigger a warning in R2014b. For most functionality, you can
automatically update your model by running the Upgrade Advisor and selecting
'Check model for known block upgrade issues requiring compile time
information'. See Consult the Upgrade Advisor.
Compatibility Considerations
Digital Filter and dsp.DigitalFilter
Use of the Digital Filter block and dsp.DigitalFilter System object in future releases is
not recommended. Existing instances will continue to operate, but certain functionality
will be disabled. If your model includes the functionality listed in the table below, you
must update your model.
For future designs, choose from Discrete FIR Filter, Discrete Filter, Biquad Filter,
or Allpole Filter blocks, and dsp.FIRFilter, dsp.IIRFilter, dsp.BiquadFilter, or
dsp.AllpoleFilter System objects.
The functionality in the following table will be removed in future releases. The table
describes the changes for the Digital Filter block. For dsp.DigitalFilter, apply the
changes using the corresponding properties.
2-8
Functionality
Applies When...
Use This Functionality Instead
Automatic fix
using Upgrade
Advisor?
Updating
filter
coefficients
Coefficient source
is Input port(s),
Input processing
is Columns as
Set Coefficient update rate
to One filter per frame,
insert the filter block in a For
Iterator subsystem block, and
Yes
Functionality
Applies When...
Use This Functionality Instead
Automatic fix
using Upgrade
Advisor?
once per
sample
channels (frame
based), and
Coefficient update
rate is One filter
per sample
use Variable Selector blocks to
apply one set of coefficients to
each input sample in a loop.
Columnbased
vector filter
coefficients
from input
ports
Coefficient source is
Input port(s)
Transpose your filter coefficients Yes
into a row vector by using a
Transpose block.
Nonunity
denominator
coefficients
from input
ports
Coefficient source
is Input port(s),
Transfer function
type is either
IIR (poles &
zeros) or IIR (all
poles), and the
First denominator
coefficient = 1,
remove a0 term in
the structure check
box is cleared.
Ensure the First denominator Yes
coefficient = 1, remove a0
term in the structure check
box is selected, and scale your
coefficients and initial values
accordingly.
Complex
Biquad scale
values
Transfer function
type is IIR (poles
and zeros) and the
Filter structure is
any SOS form
Use real scale values.
Yes
Alternatively, for non-fixed-point
input data types and zero initial
conditions, set the scale value
to 1, and add a Gain block at
the filter's input port, where
the gain value is equal to the
product of the complex scale
values.
2-9
R2014b
Functionality
Applies When...
Use This Functionality Instead
Automatic fix
using Upgrade
Advisor?
State
data type
different from
Accumulator
data type
Transfer function
type is FIR (all
zeros) and the Filter
structure is Direct
form I transposed
Set the State data type to Same No
as accumulator.
Note: To automatically apply the suggested fix in the Upgrade Advisor, select
Check model for known block upgrade issues requiring compile time
information.
Variable Integer Delay and dsp.VariableIntegerDelay
The DSP Variable Integer Delay block has been replaced with the Simulink Variable
Integer Delay block. Existing instances of the DSP block will continue to operate, but
certain functionality in the DSP block and dsp.VariableIntegerDelay System object will
be disabled in future releases. If your model includes the functionality listed in the table
below, you must update your model.
The functionality in the following table will be removed in future releases.
The table describes the changes for the Variable Integer Delay block. For
dsp.VariableIntegerDelay, apply the changes using the corresponding properties.
2-10
Functionality
Applies When...
Use This Functionality Instead
Nonscalar
delay
Using the block
Insert your block in a For Each
Yes
only. Nonscalar
subsystem and partition the data
delay remains
and delay inputs to apply each
supported in the
delay value to the corresponding
dsp.VariableIntegerDelay
data channel.
System object.
Initial
conditions
Input processing
is Columns as
Specify the Initial conditions
as a 1×NumChansx×R matrix,
where NumChans is the number
Automatic fix
using Upgrade
Advisor?
Yes
Functionality
Applies When...
specified as a channels (frame
vector
based), and the input
has multiple channels
(columns)
Input processing
is Elements as
channels (sample
based), and the input
has multiple channels
(samples)
Use This Functionality Instead
of input channels, and R is the
maximum delay value.
Automatic fix
using Upgrade
Advisor?
Specify the initial conditions as a Yes
(dim1×dim2×...×dimN)×R array
instead, where dimM is the Mth
input dimension and R is the
maximum delay value.
Note: To automatically apply the suggested fix in the Upgrade Advisor, select
Check model for known block upgrade issues requiring compile time
information.
Delay and dsp.Delay
The functionality in the following table will be removed in future releases. The table
describes the changes for the Delay block. For dsp.Delay, apply the changes using the
corresponding properties.
Functionality Applies When...
Use This Functionality Instead
Automatic fix
using Upgrade
Advisor?
Nonscalar
delay
Using the block only.
Nonscalar delay
remains supported in
dsp.Delay System
object.
Use a Variable Integer Delay
Yes
block in a For Each subsystem.
Partition the data and delay
inputs to apply each delay value to
the corresponding data channel.
Delay
specified
in units of
frames
Delay units is
Frames
Set Delay units to Samples and Yes
set your new delay as the delay
in frames multiplied by the frame
length.
2-11
R2014b
Functionality Applies When...
Use This Functionality Instead
Specification The Specify
of different different initial
initial
conditions for
conditions each channel check
for each
box is selected, and the
channel
Specify different
but same
initial conditions
conditions within a channel
within a
check box is cleared.
channel
Clear both check boxes and
Yes
specify the initial condition as
a scalar. Alternatively, you can
select the Specify different
initial conditions within
a channel check box and specify
the initial conditions as follows:
• If Input processing is
Columns as channels
(frame based), specify the
initial conditions as a delayby-NumChans matrix, where
delay is the delay value and
NumChans is the number of
input channels.
• If Input processing is
Elements as channels
(sample based), change
input processing to Columns
as channels (frame
based), reshape the input
to a row vector, and specify
initial conditions as a delayby-NumChans matrix, where
delay is the delay value and
NumChans is the number of
input elements.
2-12
Automatic fix
using Upgrade
Advisor?
Functionality Applies When...
Use This Functionality Instead
Automatic fix
using Upgrade
Advisor?
Specification The Specify
of different different initial
initial
conditions within
conditions a channel check box
within a
is selected, and the
channel
Specify different
but same
initial conditions
conditions for each channel
for each
check box is cleared.
channel
Clear both check boxes and
specify the initial condition as
a scalar. Alternatively, you can
select the Specify different
initial conditions for
each channel check box and
specify the initial conditions as
follows:
Yes
• If Input processing is
Columns as channels
(frame based), specify the
initial conditions as a delayby-NumChans matrix, where
delay is the delay value and
NumChans is the number of
input channels.
• If Input processing is
Elements as channels
(sample based), set Input
Processing to Columns
as channels (frame
based), reshape the input
to a row vector, and specify
initial conditions as a delayby-NumChans matrix, where
delay is the delay value and
NumChans is the number of
input elements.
2-13
R2014b
Functionality Applies When...
Use This Functionality Instead
Automatic fix
using Upgrade
Advisor?
Initial
conditions
specified as
cell array
Clear the Specify different
initial conditions
within a channel and
Specify different initial
conditions for each
channel check boxes and specify
the initial condition as a scalar.
Alternatively, select both check
boxes and modify the initial
conditions as follows:
Yes
• If Input processing is
Columns as channels
(frame based), specify
initial conditions as a delayby-NumChans matrix, where
delay is the delay value and
NumChans is the number of
input channels.
• If Input processing is
Elements as channels
(sample based), set Input
Processing to Columns
as channels (frame
based), reshape the input
to a row vector, and specify
initial conditions as a delayby-NumChans matrix, where
delay is the delay value and
NumChans is the number of
input elements.
Note: To automatically apply the suggested fix in the Upgrade Advisor, select
Check model for known block upgrade issues requiring compile time
information.
2-14
Persistence mode in Vector Scope
The Vector Scope block no longer supports Persistence mode, which retained historical
data on a single plot.
Compatibility Considerations
You do not need to update any existing model that had Persistence mode set. As of
R2014b, you will not see historical data on your Vector Scope.
Code generation for additional DSP System Toolbox System objects
In R2014b, you can generate code from the following additional DSP System Toolbox
System objects. Code generation from MATLAB code requires a MATLAB Coder license.
• dsp.CICCompensationDecimator
• dsp.CICCompensationInterpolator
• dsp.FarrowRateConverter
• dsp.FilterCascade
You cannot generate code directly from dsp.FilterCascade. Instead, first use the
dsp.FilterCascade.generateFilteringCode method to generate a MATLAB function
from the System object. Then generate C/C++ code from the MATLAB function.
• dsp.FIRDecimator for transposed structure
• dsp.FIRHalfbandDecimator
• dsp.FIRHalfbandInterpolator
• dsp.PeakToPeak
• dsp.PeakToRMS
• dsp.PhaseExtractor
• dsp.SampleRateConverter
• dsp.StateLevels
See System Objects in MATLAB Code Generation and Functions and System Objects
Supported for C Code Generation.
2-15
R2014b
Tunable amplitude on dsp.SineWave
The Amplitude property of dsp.SineWave is now tunable when the Method property is
Differential or Trigonometric function.
2-16
R2014a
Version: 8.6
New Features
Compatibility Considerations
R2014a
Up to four-times faster FIR filter simulation in MATLAB System object and
Simulink block
This release introduces a refactoring of the Discrete FIR Filter block and dsp.FIRFilter
System object to significantly improve simulation speed in multi-core processors. The
refactored FIR simulation in MATLAB and Simulink leverages the Intel® Threading
Building Blocks (TBB) library to optimize multi-core parallelism at the channel and
frame level.
Optimized C code generation for ARM Cortex–M processors from System
objects with MATLAB Coder and Embedded Coder
This release adds code-generation support for ARM Cortex-M processors in MATLAB
for select System objects. With the supported System objects, you can generate C code
that can be linked with the CMSIS library and compiled to provide an executable to
run on ARM Cortex-M processors. To use the DSP System Toolbox Support Package for
ARM Cortex-M Processors, you must have the following products in addition to the DSP
System Toolbox: Simulink, Simulink Coder, Embedded Coder and MATLAB Coder. The
following DSP System Toolbox System objects support the CMSIS library:
• dsp.FIRFilter
• dsp.FIRDecimator
• dsp.FIRInterpolator
• dsp.LMSFilter
• dsp.BiquadFilter
• dsp.FFT
• dsp.IFFT
• dsp.Convolver
• dsp.CrossCorrelator
• dsp.Mean
• dsp.RMS
• dsp.StandardDeviation
• dsp.Variance
3-2
Notch/peak filter and parametric equalizer filter System objects in
MATLAB
This release introduces new second-order IIR notching/peaking and parametric equalizer
filters. Use dsp.NotchPeakFilter to implement a peaking or notching filter. With
dsp.NotchPeakFilter, you can control the center frequencies and 3-dB bandwidths of the
peaks/notches with tunable properties.
Use dsp.ParametricEQFilter to implement a parametric equalizer with tunable gain,
bandwidth, and center frequency.
Variable bandwidth FIR and IIR filter System objects in MATLAB
This releases introduces two new System objects, dsp.VariableBandwidthFIRFilter and
dsp.VariableBandwidthIIRFilter, which allow you to vary the passband while filtering.
dsp.VariableBandwidthFIRFilter and dsp.VariableBandwidthIIRFilter
enable you to tune the filter in a computationally efficient way while preserving your
filter structure.
Pink/Colored noise generation System object in MATLAB
This release introduces the ability to generate noise with a 1/f α power spectral density.
You can set α equal to any value in the interval [-2,2]. Specifying α=1 results in pink
noise, while setting α=2 produces Brownian noise. See dsp.ColoredNoise for details.
HDL optimized FFT and IFFT Simulink blocks
This release introduces FFT HDL Optimized and IFFT HDL Optimized blocks for the
discrete Fourier transform (DFT) and inverse DFT optimized for HDL code generation.
Fixed-point data type support for FIR filter, in ARM Cortex-M support
package
The Discrete FIR Filter from the Simulink workflow, and the dsp.FIRFilter from the
MATLAB workflow, support fixed-point data types defined in the CMSIS library.
3-3
R2014a
Choice of wrapping or truncating input of FFT, IFFT, and Magnitude FFT in
MATLAB and Simulink
In the FFT, IFFT, and Magnitude FFT blocks, a boolean parameter has been added
that is by default checked. This widget reads: Wrap input data when FFT length is
shorter than input length, and it gives you the choice of wrapping or truncating the
input, depending on the FFT length. If this parameter is checked, modulo-length data
wrapping occurs before the FFT operation, given FFT length is shorter than the input
length. If this property is unchecked, truncation of the input data to the FFT length
occurs before the FFT operation.
In the dsp.FFT and dsp.IFFT System objects, a boolean property is added that is by
default true. If this property is set to true, modulo-length data wrapping occurs before
the FFT operation, given FFT length is shorter than the input length. If this property
is set to false, truncation of the input data to the FFT length occurs before the FFT
operation.
Variable-size input for biquad and LMS filters in MATLAB and Simulink
The Biquad Filter and LMS Filter blocks and the corresponding System objects,
dsp.BiquadFilter and dsp.LMSFilter, now support variable-size input. In Simulink, this
support means that the frame size (number of rows) can change during simulation. In a
System object, this support allows the step method to handle an input that is changing in
size.
More flexible control of dsp.LMSFilter System object fixed-point
settings
In this release you can specify independent fixed-point data types for all dsp.LMSFilter
System object fixed-point settings.
DC blocker System object and Simulink block
This release adds a new System object and Simulink block to remove the DC component
of a signal. Use dsp.DCBlocker in MATLAB and the corresponding block, DC Blocker, in
Simulink.
3-4
dsp.DigitalDownConverter and dsp.DigitalUpConverter
now support C code generation
In this release you can generate C code for both digital down and up converters.
The isDone method of dsp.AudioFileReader honors PlayCount
The behavior of isDone has changed for this object. isDone returns True when EOF is
reached PlayCount number of times. The default of PlayCount has changed from Inf
to 1.
Compatibility Considerations
If you had a while loop controlled by isDone, and you had set the PlayCount to Inf, you
should now set it to the number of times you want the loop to be executed, otherwise you
will have an infinite loop.
M4A replaced by MPEG4 in dsp.AudioFileWriter
In dsp.AudioFileWriter, the M4A file format has been changed to MPEG4.
Spectrogram cursors and CCDF plots in the spectrum analyzer
This release introduces cursors in dsp.SpectrumAnalyzer when the SpectrumType is
set to 'Spectrogram'. Additionally, you can now obtain complementary cumulative
distribution function (CCDF) plots for your data.
Changed dsp.SpectrumAnalyzer property names
This table lists the dsp.SpectrumAnalyzer property name changes.
Old Property Name
New Property Name
Grid
ShowGrid
LegendSource
ShowLegend
MaxHoldTrace
PlotMaxHoldTrace
MinHoldTrace
PlotMinHoldTrace
NormalTrace
PlotNormalTrace
3-5
R2014a
Old Property Name
New Property Name
TwoSidedSpectrum
PlotAsTwoSidedSpectrum
Compatibility Considerations
Update all instances of old names in your code to the new names.
Conversion to/from allpass from/to wave digital filter
This release introduces two new conversion functions, allpass2wdf and wdf2allpass,
which enable you to convert from an allpass filter to a wave digital filter and from a wave
digital filter to an allpass filter.
Transfer function estimation in Simulink
This release introduces a new Simulink block for transfer function estimation. You can
find the Discrete Transfer Function Estimator block in the Power Spectrum Estimation
library.
Updates to the Time Scope
The following updates have been made to the Time Scope.
• Array, structure, structure with time, and MAT-file logging formats
• Compact toolbar to allow more space for data display
• Scale X-axis , Y-axis, and XY-axes options, autoscaling and panning
• Default display does not show time-axis label. You can, optionally, turn the label on.
• Sampling option
• Model Configuration properties now honored by the Time Scope
• Snap-to-data cursors option to force cursors to data points
• Open Measurements panels saved when you save a model. Those panels reopen when
you open the saved model.
Changed dsp.TimeScope property names
This table lists the dsp.TimeScope property name changes.
3-6
Old Property Name
New Property Name
Grid
ShowGrid
LegendSource
ShowLegend
MagnitudePhase
PlotAsMagnitudePhase
TimeSpanOverrunMode
TimeSpanOverrunAction
Compatibility Considerations
Update all instances of old names in your code to the new names.
Time Scope automatically switches to block-based sample time
The Time Scope uses port-based sample time, except in Simulink External or RapidAccelerator modes. In External and Rapid-Acceleration modes, the Time Scope switches
to block-based sample time. Port-based sample time uses individual sample times for
each input port. Block-based sample time uses the same sample time for the whole block.
dsp.LogicAnalyzer channel selection
In the dsp.LogicAnalyzer System object, you now can select individual or multiple
channels. Then, you can find the next and previous transitions for the selected channel.
Also, you can copy, paste, and move selected channels.
System object templates
The MATLAB New > System object menu now has three new class-definition file
templates. The Basic template sets up a simple System object. The Advanced template
includes additional features of System objects. The Simulink Extension template
provides additional customization of the System object for use in the MATLAB System
block.
System objects infer number of inputs and outputs from stepImpl
method
When you create a new kind of System object that has a fixed number of inputs
or outputs specified in the stepImpl method, you no longer need to include
3-7
R2014a
getNumInputsImpl or getNumOutputsImpl in your class definition file. The correct
number of inputs and outputs are inferred from the stepImpl inputs and outputs,
respectively.
System objects setupImpl method enhancement
When you create a new kind of System object and include the setupImpl method, you
do not have to match the setupImpl method inputs to the stepImpl method inputs.
If your setupImpl method does not use any input characteristics, such as, data type or
size), you can include only the System object as the input argument.
System objects infoImpl method allows variable inputs
When you create a new kind of System object, you can use the info method to provide
information specific to that object. The infoImpl method, which you include in your
class-definition file, now allows varargin as an input argument.
System objects base class renamed to matlab.System
The System object base class, matlab.system.System has been rename to
matlab.System. If you use matlab.system.System when defining a new System
object, a error message results.
Compatibility Considerations
Change all instances of matlab.system.System in your System objects code to
matlab.System.
System objects Propagates mixin methods
Four new methods have been added to the Propagates mixin class. You use this mixin
when creating a new kind of System object for use in the MATLAB System block in
Simulink. You use these methods to query the input and specify the output of a System
object.
• propagatedInputComplexity
• propagatedInputDataType
• propagatedInputFixedSize
3-8
• propagatedInputSize
Code generation support for additional functions
This release introduces code generation support for the following functions. You must
have the MATLAB Coder software to generate code.
• ca2tf
• cl2tf
• firceqrip
• fireqint
• firgr
• firhalfband
• firminphase
• firnyquist
• firpr2chfb
• ifir
• iircomb
• iirgrpdelay
• iirlpnorm
• iirlpnormc
• iirnotch
• iirpeak
• tf2ca
• tf2cl
3-9
R2013b
Version: 8.5
New Features
Compatibility Considerations
R2013b
Support Package for ARM Cortex-M Processors
The DSP System Toolbox Support Package for ARM Cortex-M Processors allows you to
model your signal processing algorithm in Simulink and generate C code. The generated
code can be linked with the CMSIS library, and compiled to provide an executable to
run on ARM Cortex-M processors. To use the DSP System Toolbox Support Package for
ARM Cortex-M Processors, you must have the following products in addition to the DSP
System Toolbox: Simulink , Simulink Coder , Embedded Coder, and MATLAB Coder. The
following DSP System Toolbox blocks, which support this library, make it optimal for use
in the ARM Cortex-M processors.
• Discrete FIR Filter
• FIR Decimation
• FIR Interpolation
• LMS Filter
• Biquad Filter
• FFT
• IFFT
• Correlation
• Convolution
• Mean
• RMS
• Variance
• Standard Deviation
To download and install this feature, select Add-Ons > Get Hardware Support
Packages on the MATLAB Toolstrip. Then, use Support Package Installer to install
the DSP System Toolbox Support Package for ARM Cortex-M Processors. For more
information, see Support Package for ARM Cortex-M Processors.
Channel and distortion measurement, cursors, and spectrogram
visualization using Spectrum Analyzer in MATLAB and Simulink
To enhance visualizing your data, channel measurements, distortion measurements,
cursor measurements, and a spectrogram view have been added to the Spectrum
Analyzer. Channel measurements show occupied bandwidth and adjacent channel power
4-2
ratio (ACPR) measurements. Distortion measurements show harmonic distortion and
intermodulation distortion measurements. Cursor measurements show measurements
between two cursors. A spectrogram is a display of the frequencies in a signal over time.
Channel mapping for multichannel audio devices in MATLAB and
Simulink
The dsp.AudioPlayer and dsp.AudioRecorder System objects, and the To Audio Device
and From Audio Device blocks, now support channel mapping. The term channel
mapping is used to refer to a 1-1 mapping that associates channels on the selected audio
device to channels of the data.
When you play audio, channel mapping allows you to specify on which channel of the
audio device to output a specific channel of audio data. You can specify channel mapping
as a vector of output channel indices corresponding to each output channel of data being
written.
When you record audio, channel mapping allows you to specify on which channel of the
audio data to input a specific channel of audio device. You can specify channel mapping
as a vector of audio channel indices corresponding to each channel of data being read.
Variable-size support for FIR and Allpole filters in MATLAB and Simulink
In this release, dsp.AllpoleFilter, dsp.FIRFilter, Discrete FIR Filter block, and Allpole
Filter block support variable-size input. Thus the number of rows (size of the frame) can
vary.
Estimation of Power Spectrum, Cross Power Spectrum, and Transfer
Function for streaming data in MATLAB
This release introduces dsp.TransferFunctionEstimator, dsp.SpectrumEstimator, and
dsp.CrossSpectrumEstimator. The transfer function estimator, estimates the complex
frequency-domain transfer function from time-domain data, based on the Welch averaged
periodogram method. dsp.TransferFunctionEstimator provides functionality
similar to the Signal Processing Toolbox function tfestimate, albeit in a streamingfriendly manner. The PSD and Cross-PSD estimators, are also provided using the Welch
averaged periodogram method, functionality similar to the Periodogram block in DSP
System Toolbox. These three System objects support double- and single-precision floating
point inputs. They also support C code generation.
4-3
R2013b
Data logging and archiving using Time Scope in Simulink
Data logging and external mode data archiving have been added to the Time Scope block.
You can now log scope data to a MAT-file.
MIDI control interface support in MATLAB
R2013b introduces these five functions that together provide the same functionality as
that of the MIDI Controls block:
• midiid — Interactively identify a MIDI control.
• midicontrols — Open a group of MIDI controls for reading.
• midiread — Read the most recent values of the group of MIDI controls.
• midisync — Send values to update the group of MIDI controls.
• midicallback — Invoke a callback when an open control changes.
Among these functions, only midicontrols, midiread, and midisync support code
generation.
Integer support on the output port of the MIDI Controls block
The MIDI Controls block now supports the uint8 data type on the output port, for the
range of 0 to 127, selecting the raw MIDI mode.
Kalman filter
This release introduces dsp.KalmanFilter. This filter supports C/C++ code generation,
single- and double-precision floating point, MIMO, and optional control input. It also
includes a subset of functionality in the corresponding block, Kalman Filter, including:
• Initial condition for estimated state
• Initial condition for estimated error covariance
• State transition matrix
• Process noise covariance
• Measurement matrix
• Measurement matrix noise covariance
• Output estimated measurement
4-4
• Output estimated state
• Multiple parallel filters
• Disable update on a subset of filters
Adaptive filters using Lattice, Fast Transversal, Filtered-X LMS, and
Frequency Domain algorithms in MATLAB
The following adaptive filters are introduced in this release:
• dsp.AdaptiveLatticeFilter
• dsp.FastTransversalFilter (no code generation)
• dsp.FilteredXLMSFilter (no code generation)
• dsp.FrequencyDomainAdaptiveFilter
They have the following features:
• C/C++ code generation support
• Floating-point data type support (double and single) for inputs
• Variable frame-size for inputs
• Real and complex inputs
Coupled allpass filter
This release introduces the dsp.CoupledAllpass filter, which implements IIR filters as
the sum of two allpass filters operating in parallel. This filter allows you to use complex
coefficients. It supports Variable-size input, floating-point filter analysis, and the
filter coefficients are tunable. You can integrate this filter with filter design workflows
such as fdesign and filterbuilder.
Functionality being removed or changed
Using fdesign.pulseshaping is discouraged because it is being removed in the future.
However, it still runs when you try to use this functionality, but you are encouraged to
use rcosdesign and gaussdesign instead.
Migrate away from fdesign.pulseshaping
Using fdesign.pulseshaping is not recommended. Use rcosdesign or gaussdesign.
This table shows examples of how to replace the old function with the new functions.
4-5
R2013b
fdesign.pulseshaping
rcosdesign and gaussdesign
sps=6;
n1n=rcosdesign(Beta,span,sps);
span=4;
n1n=n1n/max(n1n)*(-1/(pi*sps)...
Beta=fdesign.pulseshaping(sps,...
* (pi*(Beta-1) -4*Beta))
'Square Root Raised Cosine',...
'Nsym,Beta',span,Beta);
d1=design(f1);
n1=d1.Numerator
g1=fdesign.pulseshaping(sps,...
'Square Root Raised Cosine',...
'N,Beta',sps*span,Beta);
h1=design(g1);
k1=h1.Numerator
k1n=rcosdesign(Beta,span,sps);
k1n=k1n/max(k1n)*(-1/(pi*sps)...
*(pi*(Beta)-4*Beta))
f2=fdesign.pulseshaping(sps,...
'Raised Cosine, ...
'Nsym,Beta',span,Beta);
d2=design(f2);
n2=d2.Numerator
n2n=rcosdesign(Beta,span,sps,'normal');
n2n=n2n/max(abs(n2n))/sps
g2=fdesign.pulseshaping(sps,...
'Raised Cosine',...
'N,Beta',sps*span,Beta);
h2=design(g2);
k2=h2.Numerator
k2n=rcosdesign(Beta,span,sps,'normal');
k2n=k2n/max(abs(k2n))/sps
BT=0.3;
n3n=gaussdesign(BT,span,sps)
f3=fdesign.pulseshaping(sps,...'Gaussian',...
'Nsym,BT',span,BT);
d3=design(f3);
n3=d3.Numerator
Configuration dialog added to Logic Analyzer
A Visuals — Logic Analyzer Properties dialog box has been added to the
dsp.LogicAnalyzer. This dialog box allows you to change the appearance of the scope. To
open this dialog box, select View > Configuration Properties.
Complex trigger support in Time Scope
The Time Scope can plot signals as real/imaginary or magnitude/phase. In addition to
using triggers from the real or imaginary data, you can now use magnitude or phase
values from complex signals as triggers.
4-6
Default color changes for Array Plot, Time Scope, and Spectrum Analyzer
The following scopes use a new default color scheme to help emphasize the data being
visualized:
• dsp.ArrayPlot
• dsp.SpectrumAnalyzer and Spectrum Analyzer block
• dsp.TimeScope and Time Scope block
MATLAB System Block to include System objects in Simulink models
The MATLAB System block is a new block in the Simulink User-Defined Functions
library. Use this block to create a Simulink block that includes a System object™ in your
model. This capability is useful for including your algorithm in your model.
Restrictions on modifying properties in System object Impl methods
When defining a new System object, certain restrictions affect your ability to modify a
property.
You cannot use any of the following methods to modify the properties of an object:
• cloneImpl
• getDiscreteStateImpl
• getDiscreteStateSpecificationImpl
• getNumInputsImpl
• getNumOutputsImpl
• getOutputDataTypeImpl
• getOutputSizeImpl
• isInputDirectFeedthroughImpl
• isOutputComplexImpl
• isOutputFixedSizeImpl
• validateInputsImpl
• validatePropertiesImpl
4-7
R2013b
This restriction is required by code generation, which assumes that these methods do not
change any property values. These methods are validation and querying methods that
are expected to be constant and should not impact the algorithm behavior.
Also, if either of the following conditions exist:
• You plan to generate code for the object
• The object will be used in the MATLAB System block
you cannot modify tunable properties for any of the following runtime methods:
• outputImpl
• processTunedPropertiesImpl
• resetImpl
• setupImpl
• stepImpl
• updateImpl
This restriction prevents tunable parameter updates within the object from interfering
with updates from outside the generated code. Tunable parameters can only be changed
from outside the generated code.
Compatibility Considerations
If any of your class definition files contain code that changes a property in one of the
above Impl methods, move that property code into an allowable Impl method. Refer to
the System object Impl method reference pages for more information.
System objects matlab.system.System warnings
The System object base class, matlab.system.System, has been replaced by
matlab.System. If you use matlab.system.System when defining a new System
object, a warning message results.
Compatibility Considerations
Change all instances of matlab.system.System in your System objects code to
matlab.System.
4-8
Removing HDL Support for NCO Block
HDL support for the NCO block will be removed in a future release. Use the NCO HDL
Optimized block instead.
Compatibility Considerations
In the current release, if you generate HDL code for the NCO block, a warning message
appears. In a future release, any attempt to generate HDL code for the NCO block will
cause an error.
4-9
R2013a
Version: 8.4
New Features
Compatibility Considerations
R2013a
Allpass Filter System object
This release introduces an Allpass Filter System object™, dsp.AllpassFilter , which
unifies functionality already existing in a number of dfilt objects under various names.
dsp.AllpassFilter supports three different allpass structures and it can handle both
single-section and cascaded configurations. It also supports double and single floating
point, multichannel and variable-length input, tunability of filter coefficients and filter
analysis.
Adaptive filter System objects using RLS and Affine Projection Filter
This release introduces two adaptive filter System objects, dsp.RLSFilter and
dsp.AffineProjectionFilter. These System objects both support double and single floating
point, and code generation.
Logic Analyzer System object
As of R2013a, DSP System Toolbox software provides a new Logic Analyzer
System object that enables you to view the transitions of signals. To create a Logic
Analyzer System object variable called h, at the MATLAB command prompt, type
h=dsp.LogicAnalyzer. The Logic Analyzer has several graphical features:
• Multiple signals in a single window — The y-axis of the display can contain a number
of channels, vertically tiled on top of each other.
• Ability to vary the display style — You can modify the name, height, color, and font
size of each wave.
• Analog and Digital display formats — Both discrete and continuous signals can
appear as waves or be tiled vertically in the display.
• Data numerical display options — You can display numerical values in various
numeric systems, including unsigned decimal, signed decimal, hexadecimal, octal, and
binary form. Such flexibility is especially useful for visualizing fixed-point signals.
• Cursors to mark points of interest and view values — By placing a cursor at a discrete
time stamp, you can position a solid vertical line on the display and observe the
values of each channel at that time stamp.
• Dividers to delineate groups of waves in a channel — By placing a divider on the
display, you can separate waves by horizontal dashed lines.
For more information, see the dsp.LogicAnalyzer System object reference topic.
5-2
Audio System object support for tunability, variable frame size, variable
number of channels, and writing MPEG-4 AAC
Effective 13a, variable frame size and variable number of channels are supported by
dsp.AudioPlayer. If you use variable-size signals with this System object, you may
experience sound dropouts when the size of the input changes. With the added support,
you can avoid this behavior. Before you start the simulation, call setup for a signal with
maximum dimensions.
This release also enhances dsp.AudioPlayer and dsp.AudioRecorder System objects to
make sample rate, buffer size, and queue duration tunable. Tuning these properties stops
and restarts the sound card, which creates a pause. The length of the pause depends on
your buffer size and queue duration.
In addition, the dsp.AudioFileWriter System object and To Multimedia File block are
enhanced to support MPEG-4 AAC audio files on Windows® 7, and Mac OS X. You can
use both M4A and MP4 extensions. The following platform specific restrictions apply
when writing these files:
Windows 7
Mac OS X
• Only sample rates of 44100 and 48000
Hz are supported.
• Only mono or stereo outputs are
allowed.
• Only mono or stereo outputs are
allowed.
• Output data is padded on both front and • Not all sampling rates are supported,
back of the signal, with extra samples of
although the Mac Audio Toolbox API do
silence.
not explicitly specify a restriction.
Windows AAC encoder places sharp
fade-in and fade-out on an audio signal,
causing the signal to be slightly longer
in samples when written to disk.
• A minimum of 1025 samples must be
written to the MPEG-4 AAC file.
5-3
R2013a
Array Plot System object for displaying vectors or arrays in 2-D and
Spectrum Analyzer block with enhanced controls and features such as
peak finder
As of R2013a, DSP System Toolbox software provides a new Array Plot System object
that enables you to visualize streaming data in two dimensions. Using Array Plot, you
can visualize any set of data on the y-axis, opposite another set of data on the x-axis,
labeling the x- and y-axes anything you choose. To create an Array Plot System object
variable called h, at the MATLAB command prompt, type h=dsp.ArrayPlot. Array Plot
contains the following panels.
• Cursor Measurements — shows cursors on all the displays. In the Settings pane,
you can choose either waveform cursors, which are always attached to the signal data,
or screen cursors, which may be placed anywhere on the axes. In the Measurements
pane, you can see the x-axis value, y-axis value, and other calculated values at the
locations of the cursors.
• Signal Statistics — displays the maximum, minimum, peak-to-peak difference,
mean, median, and RMS values of a selected signal. It also shows the corresponding xaxis values at which the maximum and minimum values occur.
• Peak Finder — displays y-axis maxima and the corresponding x-axis values at
which they occur. These displays allow you to modify the settings for peak threshold,
maximum number of peaks, and peak excursion.
For more information, see the dsp.ArrayPlot System object reference topic.
As of R2013a, DSP System Toolbox software provides a new Spectrum Analyzer block to
replace the Spectrum Scope block in the Sinks library. Using Spectrum Analyzer, you can
view the power spectrum or power spectral density of signals. The graphical interface of
the Spectrum Analyzer block resembles that of the dsp.SpectrumAnalyzer System object.
Spectrum Analyzer contains the following panels.
• Spectrum Settings — enables you to modify settings to control how the spectrum is
calculated. You can modify such parameters as frequency span, resolution bandwidth,
number of spectral averages, and number of FFT points. You can also choose between
a one-sided or two-sided spectrum and toggle normal, maximum hold, and minimum
hold trace views.
• Peak Finder — displays spectral maxima and the corresponding frequencies at
which they occur. These displays allow you to modify the settings for peak threshold,
maximum number of peaks, and peak excursion.
5-4
You can programmatically modify parameters of the Spectrum Analyzer block using
MATLAB code. To do so, you can first use the Simulink get_param function to get an
instance of the spbscopes.SpectrumAnalyzerConfiguration class. Then, you can
use dot notation or the get and set commands to modify properties of the Spectrum
Analyzer block.
For more information, see the Spectrum Analyzer block reference topic.
Compatibility Considerations
All Simulink models containing Spectrum Scope blocks load with Spectrum Analyzer
blocks in R2013a or later. The Spectrum Scope block had several dialog box parameters
that do not appear in any Spectrum Analyzer block settings.
• Several options that were available on the Parameters dialog box of the Spectrum
Scope block are no longer available or have changed. The parameters of Spectrum
Scope map to Spectrum Analyzer parameters in the following manner.
R2012b R2012b
Spectrum Spectrum
Scope
Scope
Block
Parameter
Parameters
dialog
box Tab
name
R2013a Spectrum Analyzer
Change
Scope
Buffer
R2013a Spectrum Analyzer
Propertiesinput check does not require that
input signals are buffered.
box
Spectrum Analyzer
determines the number of
samples needed using the
value of the RBW parameter.
Regardless of whether the
input is a frame-based
or sample-based signal,
Spectrum Analyzer calculates
the spectrum once it has
acquired the requisite
number of samples.
R2013a Spectrum Analyzer
Equivalent Parameter
For Spectrum Scope blocks in
R2012b or earlier models, the
equivalent R2013a Spectrum
Analyzer RBW value is given
by the equation:
RBW =
K ¥ Fs
L
In the preceding equation,
K is the window constant
calculated for a segment
length of 1000, Fs is the
5-5
R2013a
R2012b R2012b
Spectrum Spectrum
Scope
Scope
Block
Parameter
Parameters
dialog
box Tab
name
R2013a Spectrum Analyzer
Change
Scope
Buffer size R2013a Spectrum Analyzer
Propertiesparameter
uses the RBW parameter
to determine the requisite
number of samples to
calculate the spectrum,
instead of using the buffer
size or frame length.
5-6
R2013a Spectrum Analyzer
Equivalent Parameter
sample rate of the block, and
L is the buffer length. If the
input signal to the R2012b
Spectrum Scope block was
frame-based and the Buffer
input check box was cleared,
then the R2013a Spectrum
Analyzer computes the RBW
value with L set to the frame
size of the input signal.
For Spectrum Scope blocks in
R2012b or earlier models, if
the input signal was framebased and the Buffer input
check box was selected,
then the R2013a Spectrum
Analyzer computes the RBW
value with L set to the value
of the Buffer size parameter.
R2012b R2012b
Spectrum Spectrum
Scope
Scope
Block
Parameter
Parameters
dialog
box Tab
name
R2013a Spectrum Analyzer
Change
R2013a Spectrum Analyzer
Equivalent Parameter
Scope
Buffer
PropertiesOverlap
parameter
R2013a Spectrum Analyzer
R2013a Spectrum Analyzer
has an Overlap % parameter will compute its Overlap %
that is directly related to
using the equation:
buffer overlap.
O
O p = l ¥ 100
L
In the preceding equation,
Op is Overlap % parameter
value, Ol is the R2012b
Spectrum Scope Buffer
overlap parameter value,
and L is the buffer length.
Scope
Window
Propertiesparameter
R2013a Spectrum Analyzer
does not have the Bartlett,
Blackman, Triang, or
Hanning settings.
Spectrum Scope blocks in
R2012b or earlier models
with a window parameter
set to any of these values
will have their Window
parameter set to Hann in the
R2013a Spectrum Analyzer.
Scope
Window
PropertiesSampling
parameter
R2013a Spectrum Analyzer
does not have a Periodic
option. All window sampling
is now symmetric in the
R2013a Spectrum Analyzer.
n/a
5-7
R2013a
R2012b R2012b
Spectrum Spectrum
Scope
Scope
Block
Parameter
Parameters
dialog
box Tab
name
R2013a Spectrum Analyzer
Change
R2013a Spectrum Analyzer
Equivalent Parameter
Display Persistence
Propertiescheck box —
this setting
would
execute the
equivalent
of the
MATLAB
hold on
command,
adding
another line
for each
spectrum
computation
on the
display.
This option is not available
in the R2013a Spectrum
Analyzer, which has replaced
this feature with the trace
options, Normal Trace, Max
Hold Trace, and Min Hold
Trace.
Spectrum Scope blocks in
R2012b or earlier models
with persistence enabled will
have their Max Hold Trace
check box selected in the
R2013a Spectrum Analyzer.
Display Compact
PropertiesDisplay
check box
There is no equivalent
capability in the R2013a
Spectrum Analyzer.
n/a
Axis
Inherit
R2013a Spectrum Analyzer
PropertiesSample
always uses the sample time
time from of the input signal.
input check
box
5-8
n/a
R2012b R2012b
Spectrum Spectrum
Scope
Scope
Block
Parameter
Parameters
dialog
box Tab
name
R2013a Spectrum Analyzer
Change
R2013a Spectrum Analyzer
Equivalent Parameter
Axis
Frequency
Propertiesdisplay
limits
parameter
R2013a Spectrum Analyzer
determines the range of
frequencies calculated based
on the Full Span, FStart
(Hz), and FStop (Hz)
parameters.
If this parameter was set to:
• Auto — R2013a Spectrum
Analyzer selects the Full
Span check box on the
Spectrum Settings panel,
Main options pane.
• User-defined — R2013a
Spectrum Analyzer clears
the Full Span check box
on the Spectrum Settings
panel Main options pane.
Axis
Minimum
Propertiesfrequency
(Hz)
parameter
R2013a Spectrum Analyzer
determines the range of
frequencies calculated based
on the Full Span, FStart
(Hz), and FStop (Hz)
parameters.
If the User-defined
parameter was chosen, then
this parameter maps to the
R2013a Spectrum Analyzer
FStart (Hz) parameter.
Axis
Maximum
Propertiesfrequency
(Hz)
parameter
R2013a Spectrum Analyzer
determines the range of
frequencies calculated based
on the Full Span, FStart
(Hz), and FStop (Hz)
parameters.
If the User-defined
parameter was chosen, then
this parameter maps to the
R2013a Spectrum Analyzer
FStop (Hz) parameter.
5-9
R2013a
R2012b R2012b
Spectrum Spectrum
Scope
Scope
Block
Parameter
Parameters
dialog
box Tab
name
R2013a Spectrum Analyzer
Change
Line
Line
There are no equivalent
Propertiesvisibilities, capabilities in the R2013a
Line styles, Spectrum Analyzer.
Line
markers,
and Line
colors
parameters
R2013a Spectrum Analyzer
Equivalent Parameter
Once the simulation has
started, you can modify the
line styles, markers, and
colors using the Style dialog
box.
• The R2012b Spectrum Scope allowed you to retain the axes limits over multiple
simulations by selecting Axes > Save Axes Settings. There is no equivalent
capability in the R2013a Spectrum Analyzer. However, you can automatically scale
the axes to a specified range using the Tools—Plot Navigation Properties dialog box.
Time Scope block with triggering and peak finder features
As of R2013a, DSP System Toolbox provides the following enhancements to the Time
Scope block and the dsp.TimeScope System object:
• “Triggers Panel” on page 5-11
• “Peak Finder Features” on page 5-11
• “Panning Capability” on page 5-11
• “Programmatic Access” on page 5-11
• “Scale Axes Limits After 10 Updates” on page 5-12
For more information on these enhancements, see the Time Scope block reference topic or
the dsp.TimeScope System object reference topic.
5-10
Triggers Panel
The Time Scope contains a new Triggers panel that allows you to pause the display only
when certain events occur. You can use the Triggers panel when you want to align or
search for events.
• In the Mode pane, you choose how often the display should update.
• In the Source / Type pane, you choose the type of events on which to stop. Events
include edges (rising, falling, or both), pulse width, transition, runt, window, or
timeout.
• In the Levels / Timing pane, you can set the trigger level and hysteresis value.
• In the Delay / Holdoff pane, you can offset the trigger position by a fixed delay or set
the minimum possible time between trigger events.
To access the Triggers panel, in the Time Scope toolbar, click the Triggers button (
).
Alternatively, in the Time Scope menu, select Tools > Triggers.
Peak Finder Features
Effective in R2013a, the peak finder now has the option of displaying more than 10
maxima at once. You can also use the Peaks panel to toggle the labels for each local
maximum. This capability allows you to choose whether all the labels show time, value,
or both time and value. R2013a also provides the capability to sort in either ascending or
descending order by value or by time.
Panning Capability
Effective in R2013a, you can pan in all directions on the Time Scope display. In the
Time Scope toolbar, click the Pan button (
). Alternatively, in the Time Scope menu,
select Tools > Pan. Then, click and drag the mouse to the left or right to view a different
range of data on the time-axis. Click and drag the mouse up or down to see a different
Amplitude range on the y-axis.
Programmatic Access
Effective in R2013a, you can change the properties of the Time Scope block using
MATLAB commands. To do so, you can first use the Simulink get_param function to get
an instance of the Simulink.scopes.TimeScopeConfiguration class. Then, you can
use dot notation or the get and set commands to modify properties of the Time Scope
block.
5-11
R2013a
For more information on these enhancements, see the
Simulink.scopes.TimeScopeConfiguration class reference topic.
Scale Axes Limits After 10 Updates
Effective in R2013a, you can scale the axes limits of the Time Scope displays soon after
the simulation starts. To do so, in the Time Scope menu, select Tools > Scale Axes
Limits After 10 Updates.
Change of the default for audio hardware API on Linux
In this release, the default for audio hardware API on Linux® has changed from OSS to
ALSA.
Change of the default for audio file formats in multimedia blocks and
audio file reader and writer System objects
In the To Multimedia File block and the dsp.AudioFileWriter System object,
the file format default is now WAV. In the From Multimedia File block and the
dsp.AudioFileReader System object, the file format default is now MP3.
Change of property default in the audio file reader System object
In the dsp.AudioFileReader System object, the property OutputDataType returns
doubles as default.
Removal of the signalblks package
The signalblks package has been removed. Instead, for System object classes, and
properties, use the dsp package.
Compatibility Considerations
To automatically update the existing code, where the signalblks package is used, run
sysobjupdate. This function updates System object code to work in the current release.
The application recursively searches the specified folder and subfolders for MATLAB files
that contain renamed System object packages, classes, and properties.
5-12
Scope Snapshot display of additional scopes in Simulink Report
Generator
Using Simulink Report Generator™ software, you can include snapshots of the display
produced by a Scope block in a generated report. The Scope Snapshot component, which
inserts images of the Simulink Scope block and XY Graph block, now supports the Time
Scope block and Spectrum Analyzer block in DSP System Toolbox software.
Note: This feature requires that you have a license for the Simulink Report Generator
product.
For more information, see the Simulink Report Generator product documentation.
Unoriented vector treated as column vector in the Biquad Filter
Starting this release, the unoriented vector is treated as a column vector in numerator
and denominator coefficient ports.
NCO HDL Optimized block
The NCO HDL Optimized block provides hardware friendly control signals, optional reset
port, and an optional external dither input port. It also provides a reset function that
resets the phase to its initial value during the sinusoid output generation. In addition,
it includes an option to output the internal phase and hardware-friendly control signals
including valid in and valid out.
HDLNCO System object
The dsp.HDLNCO System object, like the dsp.NCO System object, generates real or
complex sinusoidal signals. In addition, the NCO HDL-optimized System object provides
hardware friendly control signals, optional reset signal, and an optional external dither
input signal.
HDL code generation for NCO HDL Optimized block and System object
Release R2013a provides HDL code generation support for the new NCO HDL Optimized
block and dsp.HDLNCO System object. To generate HDL code, you must have an HDL
Coder license.
5-13
R2013a
Support for nonpersistent System objects
You can now generate code for local variables that contain references to System objects.
In previous releases, you could not generate code for these objects unless they were
assigned to persistent variables.
New method for action when System object input size changes
The new processInputSizeChangeImpl method allows you to specify actions to take
when an input to a System object you defined changes size. If an input changes size after
the first call to step, the actions defined in processInputSizeChangeImpl occur when
step is next called on that object.
Scaled double data type support for System objects
System objects now support scaled double data types.
5-14
R2012b
Version: 8.3
New Features
Compatibility Considerations
R2012b
SpectrumAnalyzer System object
As of R2012b, DSP System Toolbox software provides a new Spectrum Analyzer System
object that enables you to view the power spectrum or power spectral density of signals.
To create a Spectrum Analyzer System object variable called h, at the MATLAB
command prompt, type h=dsp.SpectrumAnalyzer. The Spectrum Analyzer has several
panels and dialog boxes that allow you to perform the following operations:
• Spectrum Settings panel — The Spectrum Settings panel enables you to modify
settings to control the manner in which the spectrum is calculated. You can modify
such parameters as frequency span, resolution bandwidth, number of spectral
averages, and number of FFT points. You can also choose between a one-sided or twosided spectrum and toggle normal, maximum hold, and minimum hold trace views.
To hide or display the Spectrum Settings panel, in the Spectrum Analyzer toolbar,
select the Spectrum Settings button (
). Alternatively, in the Spectrum Analyzer
menu, select View > Spectrum Settings.
• Peak Finder panel — The Peak Finder panel displays maxima and the frequencies
at which they occur. These displays allow you to modify the settings for peak
threshold, maximum number of peaks, and peak excursion. In the Spectrum Analyzer
toolbar, click the Peak Finder button (
). Alternatively, in the Spectrum Analyzer
menu, select Tools > Measurements > Peak Finder.
• Properties dialog box — The Spectrum Analyzer provides a dialog box that allows
you to control the most common properties of a display, including the grid lines,
titles, y-axis labels and y-axis limits. To change options for a display, in the Spectrum
Analyzer toolbar, click the Properties button (
). Alternately, in the Spectrum
Analyzer menu, select View > Properties. You can also right-click the display, and
select Properties.
• Style dialog box — The Spectrum Analyzer allows you to customize the style of
displays using a Style dialog box. You can change the color of the figure containing
the displays, the background and foreground colors of display axes, and properties of
lines in a display. To view or modify the line style of the active signal, in the Spectrum
Analyzer menu, select View > Style. You can also right-click the display and select
Style.
• Axes Scaling Options — The Spectrum Analyzer enables you with the ability to
automatically scale the axes to a specified range. In the Spectrum Analyzer menu,
select Tools > Axes Scaling Options to modify these settings. To manually scale the
axes to the limits you specified, click the Scale Axes Limits button ( ).
6-2
For more information, see the dsp.SpectrumAnalyzer System object reference topic.
Cross-platform support for reading and writing WAV, FLAC, OGG, MP3
(read only), MP4 (read only), and M4a (read only)
The dsp.AudioFileReader System object, and the From Multimedia File block, now
support the following audio file formats on all platforms:
• MP3
• MP4
• M4a
• WAV
• FLAC
• OGG
The dsp.AudioFileWriter System object, and the To Multimedia File block, now support
the following audio file formats on all platforms:
• WAV
• FLAC
• OGG
Support for code generation for CICDecimator and
CICInterpolator System objects
The following System objects now support code generation in MATLAB via the codegen
command:
• dsp.CICDecimator
• dsp.CICInterpolator
To use the codegen function, you must have a MATLAB Coder license. See Use System
Objects in MATLAB Code Generation for more information.
Support for HDL code generation for multichannel Discrete FIR Filter block
Discrete FIR Filter block accepts vector input and supports multichannel implementation
for better resource utilization.
6-3
R2012b
• With vector input and channel sharing option on, the block supports multichannel
fully parallel FIR, including direct form FIR, sym/antisym FIR, and FIRT. Support
for all implementation parameters, for example: multiplier pipeline, add pipeline
registers.
• With vector input and channel sharing option off, the block instantiates one filter
implementation for each channel. If the input vector size is N, N identical filters are
instantiated.
For fully parallel architecture option for FIR filters only.
Time Scope enhancements, including new cursors, embedded simulation
controls, and External and Rapid Accelerator modes
As of R2012b, DSP System Toolbox provides the following enhancements to the Time
Scope block and the dsp.TimeScope System object:
• “Cursor measurements panel” on page 6-4
• “Additional embedded simulation controls” on page 6-5
• “Support for external mode and rapid accelerator mode” on page 6-5
• “Properties dialog box” on page 6-6
• “Axes Maximization” on page 6-6
• “Automatic calculation of Time Span” on page 6-7
• “ReduceUpdates property” on page 6-7
• “Support for conditional subsystems” on page 6-8
Cursor measurements panel
The Time Scope contains a new Cursor Measurements panel that shows cursors on all
the Time Scope displays. In the Settings pane, you may choose either waveform cursors,
which are always attached to the signal data, or screen cursors, which may be placed
anywhere on the axes. The Measurements pane shows the time, amplitude, and other
calculated values at the locations of the cursors. In the Time Scope toolbar, click the
Cursor Measurements button (
). Alternatively, in the Time Scope menu, select Tools
> Measurements > Cursor Measurements.
For more information, see the Time Scope block reference topic or the dsp.TimeScope
System object reference topic.
6-4
Additional embedded simulation controls
Effective in R2012b, additional embedded simulation controls are available through
the Simulation Toolbar and the Simulation Stepping Options dialog box. In previous
releases, the Time Scope block featured a Simulation Toolbar. With this toolbar, you
could control the progression of increasing simulation time from the Time Scope GUI
by clicking the Run, Pause, Stop, and Next Step buttons. In R2012b, the Simulation
Stepping Options dialog box provides you with the ability to further control the
simulation behavior. This dialog box allows you to enable the button on the Simulation
Toolbar to take a Previous Step. Additionally, you can pause the simulation at a specified
time, specify previous stepping options, and modify the number of steps for forward
and backward movement. To access these controls, from the Time Scope menu, select
Simulation > Stepping Options. Alternatively, if previous stepping is disabled, in the
Time Scope toolbar, click the Previous Step button. The Simulation Stepping Options
dialog box appears.
You can enable Time Scope to show a Previous Step button (
), which allows you
to move the simulation time backward by one time step. In the Simulation Stepping
Options dialog box, in the Previous stepping options group, select the Enable
Previous Stepping check box. To test this feature, first run the simulation, and then
pause the simulation. When the simulation is paused, you can now click the Previous
Step button to regress the simulation back by one time step.
Note: This feature is available for the Time Scope block but not for the dsp.TimeScope
System object.
For more information, see the Time Scope block reference topic.
Support for external mode and rapid accelerator mode
As of R2012b, the Time Scope block supports two additional simulation modes in
Simulink, External mode and Rapid Accelerator mode. You can use External mode to
tune block parameters in real time and view block outputs in many types of blocks and
subsystems. External mode establishes communication between a host system, where the
Simulink environment resides, and a target system, where the executable runs after it is
generated by the code generation and build process. For more information about External
mode, see Host/Target Communication in the Simulink Coder product documentation.
6-5
R2012b
You can use Rapid Accelerator mode as a method to increase the execution speed of
your Simulink model. Rapid Accelerator mode creates an executable that includes the
solver and model methods. This executable resides outside of MATLAB and Simulink.
Rapid Accelerator mode uses External mode to communicate with Simulink. For more
information about Rapid Accelerator mode, see Acceleration in the Simulink product
documentation.
Note: This feature is available for the Time Scope block but not for the dsp.TimeScope
System object.
For more information about Time Scope, see the Time Scope block reference topic.
Properties dialog box
As of R2012b, the Time Scope block provides a centralized location where you can modify
the most important properties of a display. The Properties dialog box contains the most
frequently modified Time Scope settings, including all the parameters from the Tools:Plot
Navigation Options dialog box and the Visuals:Time Domain Options dialog box. It also
includes Open at Start of Simulation and Number of Input Ports from the File
menu. To open this dialog box, in the Time Scope toolbar, click the Properties button
(
). Alternately, in the Time Scope menu, select View > Properties. You can also
right-click on the display and select Properties.
Note: This feature is available for the Time Scope block but not for the dsp.TimeScope
System object. In the dsp.TimeScope System object GUI, when you select View >
Properties, the Visuals:Time Domain Options dialog box appears, as in R2012a. This
same dialog box also appears when you right-click on the display and select Properties.
For more information about Time Scope, see the Time Scope block reference topic.
Axes Maximization
In R2012b, you can specify whether to display the Time Scope block or System object in
maximized axes mode. In this mode, the axes are expanded to fill the entire display. In
each display, there is no space to show titles or axis labels. The values at the axis tick
marks appear on top of the axes. You can select one of the following options:
6-6
• Auto — In this mode, the axes appear maximized in all displays only if the Title and
Y-Axis label parameters are empty for every display. If you enter any value in any
display for either of these parameters, the axes are not maximized.
• On — In this mode, the axes appear maximized in all displays. Any values entered
into the Title and Y-Axis label parameters are hidden.
• Off — In this mode, none of the axes appear maximized.
The default setting is Auto. In the Time Scope GUI, you can set this property in the
Main pane of the Properties dialog box. To change options using the dsp.TimeScope
System object, set the MaximizeAxes property to the intended option. For more
information, see the Time Scope block reference topic or the dsp.TimeScope System object
reference topic.
Automatic calculation of Time Span
As of R2012b, the Time Scope block can automatically calculate the Time Span
parameter using the simulation Start Time and Stop Time parameters. By default, the
Time Scope block has the Time Span parameter set to Auto calculate. To modify the
Time Span parameter to use a different value, open the Properties dialog box and click
the Time tab.
Note: This feature is available for the Time Scope block but not for the dsp.TimeScope
System object.
For more information about Time Scope, see the Time Scope block reference topic.
ReduceUpdates property
As of R2012b, the Time Scope System object has an additional property called
ReduceUpdates. By default, this property is set to true. When this property is true,
the Time Scope updates the displays at a rate not exceeding 20 hertz. When you set
this property to false, the Time Scope updates every time the step method is called.
The simulation speed is faster when this property is set to true. Using this property is
equivalent to selecting the Reduce Updates to Improve Performance check box in
the Simulation menu of the Time Scope GUI.
For more information about this property, see the System object reference topic.
6-7
R2012b
Support for conditional subsystems
In previous releases, the Time Scope block could be used within an enabled subsystem.
As of R2012b, the Time Scope block can also be placed in a triggered subsystem, an
enabled and triggered subsystem, and a function-call subsystem. For more information
about these types of subsystems, see Conditional Subsystems in the Simulink
documentation.
Note: This feature is available for the Time Scope block but not for the dsp.TimeScope
System object.
For more information about Time Scope, see the Time Scope block reference topic.
Source and sink blocks being replaced
The following Windows platform blocks now map to other existing blocks that work on all
platforms:
Deprecated blocks
Blocks mapped to
From Wave Device
From Audio Device
To Wave Device
To Audio Device
From Wave File
From Multimedia File
To Wave File
To Multimedia File
This mapping is transparent; no slupdate is needed. When you open an existing model
that contains the original blocks, the replacement blocks are automatically substituted. If
you save the model, the replacement blocks are saved instead of the original blocks.
Compatibility Considerations
Because mapped blocks do not have identical functionality, incompatibilities can be
introduced in certain cases. The From Wave File can have an optional start-of-file
indicator port, whereas the From Multimedia File cannot. Therefore, if you load an old
model where From Wave File has the start-of-file port, a broken link results. In this
case, a warning message appears, providing a link to start_of_file_example, which shows
you how to correct the problem.
6-8
Discrete IIRFilter and AllpoleFilter System objects
This release introduces a discrete IIR Filter System object dsp.IIRFilter and a discrete
Allpole Filter System object dsp.AllpoleFilter.
The IIR Filter System object implements the algorithm, inputs, and outputs described
on the Discrete Filter block reference page. The object properties correspond to the block
parameters. Both this object and its corresponding block let you specify whether to
process inputs as individual samples or as frames of data. This System object supports
code generation.
The Allpole Filter System object implements the algorithm, inputs, and outputs
described on the Allpole Filter block reference page. The object properties correspond
to the block parameters. Both this object and its corresponding block let you specify
whether to process inputs as individual samples or as frames of data. This System object
supports code generation.
Support for MATLAB Compiler for CICDecimator and
CICInterpolator System objects
The following System objects are now supported by MATLAB Compiler™:
• dsp.CICDecimator
• dsp.CICInterpolator
For more information, see Using System Objects with MATLAB Compiler.
Code generation support for SignalSource System object
dsp.SignalSource now support code generation in MATLAB via the codegen command:To
use the codegen function, you must have a MATLAB Coder license. See Use System
Objects in MATLAB Code Generation for more information.
Behavior change of locked System objects for loading, saving, and
cloning
In the previous release, saving, loading, and cloning a locked System object would result
in an unlocked System object. This System object had the same property values as the
one from which it was cloned, but not the same internal state.
6-9
R2012b
In this release, it does not matter whether you save a locked System object into a MAT
file and load it later or clone a locked System object using the clone method. In either
case, the result is a locked System object with the same property values and the same
internal states.
There are, however, a few exceptions. For the following System objects, if you call the
clone method, the resulting System object is not locked, but if you save or load the
System object into and from a MAT file, the result is a locked System object.
• dsp.MatFileWriter
• dsp.AudioRecorder
• dsp.AudioPlayer
Thus, for the above System objects, if you call the clone method, you get an unlocked
System object with the same property values.
Another exception involves the following System objects:
• dsp.AudioFileWriter
• dsp.AudioFileReader
For these System objects, if you save a locked System object to a MAT file and load it
later, you get an unlocked System object with the same property values. However you do
not get the same internal states. This behavior is the same as in the previous release.
Behavior change of statistics blocks for variable-size inputs
When the inputs are of variable size, the running mode behavior of the following blocks
has changed:
• Mean
• RMS
• Variance
• Standard Deviation
• Minimum
• Maximum
If the Input processing parameter is set to Elements as channels (sample
based), the block state is reset when any input dimension changes.
6-10
If the Input processing parameter is set to Columns as channels (frame based),
then the behavior depends on two options:
• When the number of input channels (i.e., number of columns) changes, the block state
is reset to its initial condition.
• When the number of input channels remains the same, there is no reset, even if the
channel length (i.e., number of rows) changes.
Simulation state save and restore for additional blocks
In this release, there are additional blocks that support simulation state save and
restore. These are:
• Cumulative Sum
• Cumulative Product
• Mean
• Variance
• RMS
• Standard Deviation
• Queue
• Stack
Note: The Queue and Stack blocks do not support SimState save and restore in dynamic
memory allocation mode.
For more information on simulation state save and restore, see Save and Restore
Simulation State as SimState.
For Each subsystem support for additional blocks
In this release, most DSP blocks have been updated to support the For Each subsystem.
For details about the For Each subsystem, see For Each. For a list of supported
blocks, see the For Each Subsystem Support column in the table titled Simulink Block
Data Type Support for DSP System Toolbox. This table can be accessed by typing
showsignalblockdatatypetable at the command line.
6-11
R2012b
Multi-instance model referencing support for additional blocks
In this release, most DSP blocks have been updated to support multi-instance normal
mode model referencing. For details about model referencing, see Model Reference. The
blocks that support model referencing are the same blocks that support the For Each
subsystem. Therefore for a list of supported blocks, see the For Each Subsystem Support
column in the table titled Simulink Block Data Type Support for DSP System Toolbox.
This table can be accessed by typing showsignalblockdatatypetable at the command line.
Expanded analysis support for filter System objects
In the previous release, the filter analysis methods for dfilt and mfilt objects were
extended to filter System objects. This release expands the number of supporting
analysis methods to include the following:
• noisepsd
• noisepsdopts
• freqrespest
• freqrespopts
For a comprehensive list of supported analysis methods, see Analysis Methods for Filter
System Objects.
Removal of the signalblks package
In this release, the signalblks package is being removed and any instantiation of a
signalblks object causes an error message. In future releases, the functionality will
be removed entirely, so you should now use the corresponding object in the DSP System
Toolbox.
Discrete filter block visible in DSP library
In addition to accessing the Discrete Filter block from the Simulink library, you can now
also access it from the DSP System Toolbox library.
System object tunable parameter support in code generation
You can change tunable properties in user-defined System objects at any time, regardless
of whether the object is locked. For System objects predefined in the software, the object
6-12
must be locked. In previous releases, you could tune System object properties only for a
limited number of predefined System objects in generated code.
save and load methods for System objects
You can use the save method to save System objects to a MAT file. If the object is locked,
its state information is saved, also. You can recall and use those saved objects with the
load method.
You can also create your own save and load methods for a System object you create.
To do so, use the saveObjectImpl and loadObjectImpl, respectively, in your class
definition file.
Save and restore SimState not supported for System objects
The Save and Restore Simulation State as SimState option is no longer supported for
any System object in a MATLAB Function block. This option was removed because
it prevented parameter tunability for System objects, which is important in code
generation.
Compatibility Considerations
If you need to save and restore simulation states, you may be able to use a corresponding
Simulink block, instead of a System object.
Map integer delay to RAM on Delay block
UseRAM is a block-level parameter on the IntegerDelay block that you access with the
HDL Block properties GUI. You assign it an On or Off value:
• On: Map the integer delay to a RAM. On is not a guarantee that a RAM is inferred:
if all conditions are met (including the threshold criteria), only then is the RAM
inferred.
• Off: The integer delay is always mapped to registers.
HDL support for System objects
HDL support for the following System objects has been added with release R2012b:
• dsp.BiquadFilter
6-13
R2012b
HDL resource sharing for Biquad Filter block
HDL support for second-order section, direct-form I and second-order section, direct-form
II filter structures has been added with release R2012b.
Supported architectures:
• Fully Parallel ('default' interface)
AddPipelineRegisters, ConstrainedOutputPipeline, CoeffMultipliers, InputPipeline,
OutputPipeline
• Fully Serial
ConstrainedOutputPipeline, InputPipeline, OutputPipeline
• Partly Serial
ConstrainedOutputPipeline, InputPipeline, OutputPipeline, ArchitectureSpecifiedBy,
FoldingFactor, NumMultipliers
6-14
R2012a
Version: 8.2
New Features
Bug Fixes
Compatibility Considerations
R2012a
Frame-Based Processing
Beginning in R2010b, MathWorks has been significantly changing the handling of framebased processing. For more information, see “Frame-Based Processing” on page 8-2
in the R2011b Release Notes.
The following sections provide more detailed information about the specific R2012a DSP
System Toolbox software changes that are helping to enable the transition to the new
paradigm for frame-based processing:
• “Inherited Option of the Input Processing Parameter Now Warns” on page 7-2
• “Logging Frame-Based Signals in Simulink” on page 7-3
• “Model Reference and Using slupdate” on page 7-4
• “Removing Mixed Frameness Support for Bus Signals on Unit Delay and Delay” on
page 7-4
• “Audio Output Sampling Mode Added to the From Multimedia File Block” on page
7-5
Inherited Option of the Input Processing Parameter Now Warns
Some DSP System Toolbox blocks are able to process both sample- and frame-based
signals. After the transition to the new way of handling frame-based processing, signals
will no longer carry information about their frame status. Blocks that can perform both
sample- and frame-based processing will have a new parameter that allows you to specify
the appropriate processing behavior.
To prepare for this change, many blocks received a new Input processing parameter
in previous releases. You can set this parameter to Columns as channels (frame
based) or Elements as channels (sample based), depending upon the type of
processing you want. The third choice, Inherited (this choice will be removed
- see release notes), is a temporary selection that is available to help you migrate
your existing models from the old paradigm of frame-based processing to the new
paradigm.
In this release your model will warn when the following conditions are all met for any
block in your model:
• The Input processing parameter is set to Inherited (this choice will be
removed - see release notes).
7-2
• The input signal is sample based.
• The input signal is a vector, matrix, or N-dimensional array.
Compatibility Considerations
To eliminate this warning, you must upgrade your existing models using the slupdate
function. The function detects all blocks that have Inherited (this choice will
be removed - see release notes) selected for the Input processing parameter.
It then asks you whether you would like to upgrade each block. If you select yes, the
function detects the status of the frame bit on the input port of the block. If the frame
bit is 1 (frames), the function sets the Input processing parameter to Columns as
channels (frame based). If the bit is 0 (samples), the function sets the parameter to
Elements as channels (sample based).
In a future release, the frame bit and the Inherited (this choice will be
removed - see release notes) option will be removed. At that time, the Input
processing parameter in models that have not been upgraded will automatically be
set to either Columns as channels (frame based) or Elements as channels
(sample based). The option set will depend on the library default setting for each
block. If the library default setting does not match the parameter setting in your
model, your model will produce unexpected results. Additionally, after the frame bit
is removed, you will no longer be able to upgrade your models using the slupdate
function. Therefore, you should upgrade your existing modes using slupdate as soon as
possible.
Logging Frame-Based Signals in Simulink
In this release, a new warning message appears when a Simulink model is logging
frame-based signals and the Signal logging format is set to ModelDataLogs. In
ModelDataLogs mode, signals are logged differently depending on the status of the
frame bit, as shown in the following table:
Status of Frame Bit
Today
When Frame Bit Is Removed
Sample-based
3-D array with samples in
3-D array with samples in
time in the third dimension time in the third dimension
Frame-based
2-D array with frames in
time concatenated in the
first dimension
3-D array with samples in
time in the third dimension
7-3
R2012a
This warning advises you to switch your Signal logging format to Dataset. The
Dataset logging mode logs all 2-D signals as 3-D arrays, so its behavior is not dependent
on the status of the frame bit.
When you get the warning message, to continue logging signals as a 2-D array:
1
Select Simulation > Model Configuration Parameters > Data Import/Export,
and change Signal logging format to Dataset. To do so for multiple models, click
on the link provided in the warning message.
2
Simulate the model.
3
Use the dsp.util.getLogsArray function to extract the logged signal as a 2-D array.
Model Reference and Using slupdate
In this release, the Model block has been updated so that its operation does not depend
on the frame status of its input signals.
Compatibility Considerations
In a future release, signals will not have a frameness attribute, therefore models that use
the Model block must be updated to retain their behavior. If you are using a model with a
Model block in it, follow the steps below to update your model:
1
For both the child and the parent models:
• In the Model Configuration Parameters dialog box, select the Diagnostics >
Compatibility pane.
• Change the Block behavior depends on input frame status parameter to
warning.
2
For both the child and the parent models, run slupdate.
3
For the child model only:
• In the Model Configuration Parameters dialog box, select the Diagnostics >
Compatibility pane.
• Change the Block behavior depends on input frame status parameter to
error.
Removing Mixed Frameness Support for Bus Signals on Unit Delay and Delay
This release phases out support for buses with mixed sample- and frame-based elements
on Simulink’s Unit Delay and Delay blocks. Support is also removed from the DSP
7-4
System Toolbox’s Delay block. When the frame bit is removed in a future release, any
Delay block that has a bus input of mixed frameness will produce different results.
Compatibility Considerations
This incompatibility is phased over multiple releases. In 2012a, the blocks will produce
a warning message. In a future release, when the frame bit is removed, the blocks will
produce an error message.
Audio Output Sampling Mode Added to the From Multimedia File Block
The From Multimedia File block now provides a new parameter. This parameter allows
you to select frame- or sample-based audio output processing.
System Object Enhancements
• “Code Generation for System Objects” on page 7-5
• “New MAT-File Reader and Writer System Objects” on page 7-5
• “New System Object Option on File Menu” on page 7-5
• “Variable-Size Input Support for System Objects” on page 7-6
• “Data Type Support for System Objects” on page 7-6
• “New Property Attribute to Define States” on page 7-6
• “New Methods to Validate Properties and Get States from System Objects” on page
7-6
• “matlab.system.System changed to matlab.System” on page 7-6
Code Generation for System Objects
System objects defined by users now support C code generation. To generate code, you
must have the MATLAB Coder product.
New MAT-File Reader and Writer System Objects
R2012a adds two new System objects, dsp.MatFileReader and dsp.MatFileWriter.
These System objects stream data into and out of MAT-files.
New System Object Option on File Menu
The File menu on the MATLAB desktop now includes a New > System object menu
item. This option opens a System object class template, which you can use to define a
System object class.
7-5
R2012a
Variable-Size Input Support for System Objects
System objects that you define now support inputs that change size at run time.
Data Type Support for System Objects
System objects that you define now support all MATLAB data types as inputs and
outputs.
New Property Attribute to Define States
R2012a adds the new DiscreteState attribute for properties in your System object
class definition file. Discrete states are values calculated during one step of an object’s
algorithm that are needed during future steps.
New Methods to Validate Properties and Get States from System Objects
The following methods have been added:
• validateProperties – Checks that the System object is in a valid configuration.
This applies only to objects that have a defined validatePropertiesImpl method.
• getDiscreteState – Returns a struct containing System object properties that
have the DiscreteState attribute.
matlab.system.System changed to matlab.System
The base System object class name has changed from matlab.system.System to
matlab.System.
Compatibility Considerations
The previous matlab.system.System class will remain valid for existing System
objects. When you define new System objects, your class file should inherit from the
matlab.System class.
Time Scope Enhancements
• “Time Domain Measurements in Time Scope” on page 7-7
• “Multiple Display Support in Time Scope” on page 7-7
7-6
• “Style Dialog Box in Time Scope” on page 7-8
• “Sampled Data as Stairs in Time Scope” on page 7-8
• “Complex Data Support in Time Scope” on page 7-8
• “Additional Time Scope Enhancements” on page 7-9
Time Domain Measurements in Time Scope
As of R2012a, the Time Scope block and System object support the time domain signal
measurements Signal statistics, Bilevel measurements, and Peak finder. The
Signal Statistics panel displays the maximum, minimum, peak-to-peak difference,
mean, median, and RMS values of a selected signal. It also displays the times at which
the maximum and minimum values occur. The Bilevel Measurements panel displays
information about a selected signal’s transitions, overshoots or undershoots, and cycles.
The Peak Finder panel displays maxima and the times at which they occur. These
displays allow you to modify the settings for peak threshold, maximum number of peaks,
and peak excursion.
To use the new time domain measurements features in the Time Scope block, click one
of the three corresponding buttons in the Time Scope toolbar. You can also access these
panels by selecting Measurements from the Tools menu.
See the Time Scope reference topic for more information.
Multiple Display Support in Time Scope
R2012a allows you to choose to have multiple displays in the Time Scope, using both the
block and the System object. This feature allows you to tile your screen into a number of
separate displays, up to a grid of 4 rows and 4 columns. You may find multiple displays
useful when the Time Scope takes multiple input signals.
To set the number of displays on the Time Scope, click the layout button in the Time
Scope toolbar. You can also select Layout from the View menu. To set the number of
displays using the dsp.TimeScope System object, set the LayoutDimensions property.
To change options for a display, select Properties from the View menu. Select the
Display tab, and use the menu to select the display you want to update. You can
also right-click on the axes, and select Properties. To change options using the
dsp.TimeScope System object, set the ActiveDisplay property to the intended display
number.
See the Time Scope reference topic for more information.
7-7
R2012a
Style Dialog Box in Time Scope
R2012a enhances the Time Scope block and System object by allowing you to customize
the style of displays using a Style dialog box. You are able to change the color of the
figure containing the displays, the background and foreground colors of display axes, and
properties of lines in a display.
The Style dialog box replaces the Line Properties menu item that was used in previous
releases for customizing line properties. To open the Style dialog box, select Style from
the View menu.
Note: This release changes the Time Scope default axes and line colors. The Time Scope
initially displays the axes as black instead of white, as shown in previous releases. For
a real, single-channel signal, Time Scope now displays a yellow line instead of a blue
line. Models containing Time Scope blocks that were created using older versions of DSP
System Toolbox will not be affected by this change.
See the Time Scope reference topic for more information.
Sampled Data as Stairs in Time Scope
In previous releases, the Time Scope plotted a sampled signal as lines connecting each of
the sampled values. This approach is similar to the functionality of the MATLAB line
or plot function. In R2012a, the Time Scope block and System object can also plot a
sampled signal as horizontal lines. These lines represent a sample value for a discrete
sample period connected by vertical lines to represent a change in values occurring
at each new sample. This type of plot is commonly called a Stairstep graph and has
functionality similar to that of the MATLAB stairs function. Stairstep graphs are
useful for drawing time history graphs of digitally sampled data.
To display a sampled signal as a Stairstep graph, first select Style from the View menu.
The Style dialog box opens, allowing you to set the Plot type drop down box to Stairs.
The three options available are Line, Stairs, and Auto. If using the dsp.TimeScope
System object, set the PlotType property to the string 'stairs'.
See the Time Scope reference topic for more information.
Complex Data Support in Time Scope
Beginning in this release, the Time Scope block and System object will support complex
data input. The complex data is displayed by default in real and imaginary form as
7-8
differently colored lines on the same axes. Alternately, you can display the magnitude
and phase of the signal on separate axes in the same display.
To change the complex data options in the Time Scope display, select Properties from
the View menu. Then, select or deselect the Plot signals as magnitude and phase
check box. You can also right-click on the axes and select Properties. To change these
properties using the dsp.TimeScope System object, set the MagnitudePhase property to
either true or false.
See the Time Scope reference topic for more information.
Additional Time Scope Enhancements
In additional to the modifications mentioned above, R2012a also includes the following
enhancements to the Time Scope:
Ability to Change the Time Units of the Display
In previous releases Time Scope always displayed time in metric units. In R2012a, the
Time Scope block and System object allow you to label the X-axis in two additional ways.
First, you can ensure that the X-axis is always labeled as Time (seconds) and that the
appropriate power of 10 appears in the bottom-right corner of the Time Scope display.
Second, you can remove the units in the X-axis label entirely.
To change the manner in which the time units are displayed, select Properties from
the View menu. Then, set the Time Units parameter to either Seconds or None. The
default option is Metric (based on Time Span). To change these properties using
the dsp.TimeScope System object, set the TimeUnits property to either Seconds or
None. The default property value is Metric.
See the Time Scope reference topic for more information.
Simulink Enumerations Supported in Time Scope Block
In previous releases, the Time Scope block supported input signals of floating-point and
fixed-point data types. R2012a adds support for Simulink enumerated data types.
Note: This feature is available only for the Time Scope block but not for the Time Scope
System object. Also, support is provided only for Simulink enumerations, but not for
generic MATLAB enumeration classes.
See the Time Scope reference topic for more information.
7-9
R2012a
ASIO Support in To/From Audio Device Blocks and Objects
The To and From Audio Device blocks and the dsp.AudioPlayer and dsp.AudioRecorder
system objects all now support ASIO™ as an API. ASIO is used to communicate with the
audio hardware. To set ASIO as the Audio Hardware API, select Preferences from the
MATLAB Toolstrip. Then select DSP System Toolbox from the tree menu. If the ASIO
selection is disabled, it is due to the ASIO device not being connected.
Video Processing Enabled for the DSP System Toolbox Multimedia File
Blocks
The To Multimedia File and From Multimedia File blocks no longer require a Computer
Vision System Toolbox™ license for video processing. You can use the DSP From
Multimedia File block to read video and the To Multimedia File block to write video files.
System Objects Integrated into Filter Design Workflow
• “Integration of System Objects into Filter Design via fdesign, FDATool, and
Filterbuilder” on page 7-10
• “Convert dfilt and mfilt Filter Objects to System Objects” on page 7-10
• “Filter Analysis and Conversion Methods for System Object Filters” on page 7-11
Integration of System Objects into Filter Design via fdesign, FDATool, and Filterbuilder
In R2012a, you can use the fdesign workflow and interactive tools, fdatool and
filterbuilder, to create IIR, FIR, and multirate System object filters.
Using the interactive tools, you can generate MATLAB code to construct a System object
filter. You can also generate MATLAB code to filter data with your System object that is
compatible with C/C++ code generation. C/C++ code generation requires the MATLAB
Coder software.
Convert dfilt and mfilt Filter Objects to System Objects
In R2012a, you can convert dfilt and mfilt objects to System objects. Use the sysobj
method to convert an existing dfilt or mfilt object to a System object. Refer to the
command-line help for dfilt.sysobj and mfilt.sysobj for details on supported
single-rate and multirate filter structures.
7-10
Filter Analysis and Conversion Methods for System Object Filters
The R2012a release extends filter analysis and conversion methods for dfilt and mfilt
objects to System object filters. For System object filters, you can examine the filter
magnitude, impulse, step, zero phase, group delay, and phase responses. You can also
view a pole-zero plot of your filter’s z-transform.
Additionally, you can obtain detailed measurements and implementation costs for your
System object filter. For System object filters, you can determine if the phase response
is linear. For FIR linear-phase filters, you can determine the type of linear phase. You
can also assess the stability of your filter design and whether your design represents a
minimum-phase or maximum-phase system.
To obtain a comprehensive list of supported methods and links to the command-line help,
enter
dsp.SystemObjectFilter.helpFilterAnalysis
at the command line, where SystemObjectFilter is a specific System object filter class
name. For example:
dsp.BiquadFilter.helpFilterAnalysis
New Measurement Workflow
• “Measurements for Bilevel Pulse Waveforms” on page 7-11
• “System Objects for Peak-to-RMS and Peak-to-Peak Measurements” on page 7-12
Measurements for Bilevel Pulse Waveforms
The R2012a release introduces System objects that perform a number of basic
measurements on bilevel pulse waveforms. These measurements include:
• State-level estimation for bilevel pulse waveforms using the histogram method. See
the help for dsp.StateLevels for details.
• Transition metrics for bilevel pulse waveforms. The System object,
dsp.TransitionMetrics, determines low-, middle-, and high-reference level crossings
and also duration and slew rate. You can also use dsp.TransitionMetrics to
measure the behavior of bilevel waveforms in pretransition and posttransition regions
such as overshoot, undershoot, and settling time.
7-11
R2012a
Using dsp.PulseMetrics, you can measure transition rise and fall times.
dsp.PulseMetrics contains a superset of the capabilities found in
dsp.TransitionMetrics.
• Cycle metrics for bilevel pulse waveforms. You can use dsp.PulseMetrics to measure
pulse width, pulse separation, pulse period, and duty cycle.
System Objects for Peak-to-RMS and Peak-to-Peak Measurements
The R2012a release introduces System objects to measure the root-mean-square (RMS)
value of a waveform. These System objects also measure the peak-to-RMS and peakto-peak values. For details, see the reference pages for dsp.RMS, dsp.PeakToRMS, and
dsp.PeakToPeak.
Discrete FIR Filter System Object
This release introduces a discrete FIR Filter System object, which filters each channel
of the input using static or time-varying FIR filter implementations. This System object
implements the algorithm, inputs, and outputs described on the Discrete FIR Filter
block reference page. The object properties correspond to the block parameters. Both this
object and its corresponding block let you specify whether to process inputs as individual
samples or as frames of data. The object uses the FrameBasedProcessing property.
The block uses the Input processing parameter. This System object supports code
generation.
Inverse Dirichlet Sinc-Shaped Passband Design Added to Constrained FIR
Equiripple Filter
The R2012a release adds the ability to design a constrained FIR equiripple filter with an
inverse-Dirichlet-sinc-shaped passband using firceqrip. An inverse-Dirichlet-sinc-shaped
response is often used to compensate for the Dirichlet-sinc-shaped response of a cascade
integrator comb (CIC) filter. An inverse-sinc-shaped response is a valid approximation to
the response of a CIC filter only when the sampling rate change is sufficiently high. The
Dirichlet sinc provides a more exact match to the response of a CIC filter.
Code Generation Support Added to FIR Decimator System Object
In this release, FIR Decimator has been added to the list of objects that can now support
code generation in MATLAB via the codegen function.
7-12
Filter Block Enhancements
• “IC/Coefficient Parameter Ports in the Simulink Discrete Filter and Discrete Transfer
Function” on page 7-13
• “Reset Port for Resetting Filter State in Filter Blocks” on page 7-13
IC/Coefficient Parameter Ports in the Simulink Discrete Filter and Discrete Transfer Function
The Simulink Discrete Filter and Discrete Transfer Function blocks now have the
capability of specifying the numerator and denominator coefficients via either input
parameter ports or block dialog boxes. Also, the initial filter states can be specified via an
input parameter port or a block dialog box.
Reset Port for Resetting Filter State in Filter Blocks
The Simulink Discrete Filter and Discrete Transfer Function blocks now allow the filter
states to be reset via a reset parameter port called External reset.
Discrete FIR Filter Block Coefficient Port Changes
In this release, if you feed a column vector input into the coefficient port of the Discrete
FIR Filter block, the block issues a command-line warning. This warning will state that
column vector inputs to the coefficient port are not supported and that you will see an
error message in future releases.
Compatibility Considerations
You are advised to run slupdate to insert a reshape block and transpose the input from a
column vector to a row vector.
Statistics Blocks and Objects Warning for Region of Interest Processing
ROI processing will be removed in a future release. Currently, ROI processing is
available only if you have a Computer Vision System Toolbox license. If you do not have a
license for that product, you can still use ROI processing, but you are limited to the use of
ROI type rectangles.
Compatibility Considerations
When you use region of interest (ROI) processing, MATLAB will issue a warning. ROI
processing will be removed in a future release.
7-13
R2012a
New and Updated Demos
R2012a adds the following new demo:
Using System Objects with MATLAB Coder — Shows you how to use the MATLAB Coder
product to generate code for a MATLAB file that uses System objects.
Additionally, this release updates the Arbitrary Magnitude Filter Design demo to include
examples that showcase the new capabilities of the arbitrary magnitude filter design.
7-14
R2011b
Version: 8.1
New Features
Bug Fixes
Compatibility Considerations
R2011b
Frame-Based Processing
In signal processing applications, you often need to process sequential samples of data at
once as a group, rather than one sample at a time. DSP System Toolbox documentation
refers to the former as frame-based processing and the latter as sample-based processing.
A frame is a collection of samples of data, sequential in time.
Historically, Simulink-family products that can perform frame-based processing
propagate frame-based signals throughout a model. The frame status is an attribute
of the signals in a model, just as data type and dimensions are attributes of a signal.
The Simulink engine propagates the frame attribute of a signal by means of a frame bit,
which can either be on or off. When the frame bit is on, Simulink interprets the signal
as frame based and displays it as a double line, rather than the single line sample-based
signal.
General Product-Wide Changes
Beginning in R2010b, MathWorks® started to significantly change the handling of framebased processing. In the future, frame status will no longer be a signal attribute. Instead,
individual blocks will control whether they treat inputs as frames of data or as samples
of data. To learn how a particular block handles its input, you can refer to the block
reference page.
To make the transition to the new paradigm of frame-based processing, many blocks
have received new parameters. You can view an example of how to use these parameters
to control sample- and frame-based processing in R2011b and future releases. To
open the model, type ex_inputprocessing at the MATLAB command line. This model
demonstrates how a block can process a signal as sample based or frame based,
depending on the setting of that block's Input processing parameter.
Notice that when the Discrete FIR Filter and Time Scope blocks are configured to
perform frame-based processing, they interpret columns as channels and treat the 2-by-2
input signal as two independent channels. Conversely, when the blocks are configured to
perform sample-based processing, they interpret elements as channels and treat the 2by-2 input signal as four independent channels. For further information about sampleand frame-based processing, see Sample- and Frame-Based Concepts.
The following sections provide more detailed information about the specific R2011b DSP
System Toolbox software changes that are helping to enable the transition to the new
way of frame-based processing:
• “Logging Signals in Simulink” on page 8-4
8-2
• “Triggered to Workspace” on page 8-4
• “Digital Filter Design Block” on page 8-5
• “Filterbuilder, FDATool and the Filter Realization Wizard Block” on page 8-6
• “Changes to Row Vector Processing for dsp.Convolver, dsp.CrossCorrelator, and
dsp.Interpolator System Objects” on page 8-6
Compatibility Considerations
During this transition to the new way of handling frame-based processing, both the
old way (frame status as an attribute of a signal) and the new way (each block controls
whether to treat inputs as samples or as frames) will coexist for a few releases. For now,
the frame bit will still flow throughout a model, and you will still see double signal lines
in your existing models that perform frame-based processing.
• Backward Compatibility — By default, when you load an existing model in R2011b
any new parameters related to the frame-based processing change will be set to
their backward-compatible option. For example, if any blocks in your existing models
received a new Input processing parameter this release, that parameter will be
set to Inherited (this choice will be removed - see release notes)
when you load your model in R2011b. This setting enables your existing models to
continue working as expected until you upgrade them. Because the inherited option
will be removed in a future release, you should upgrade your existing models as soon
as possible.
• slupdate Function — To upgrade your existing models to the new way of handling
frame-based processing, you can use the slupdate function. Your model must be
compilable in order to run the slupdate function. The function detects all blocks
in your model that are in need of updating, and asks you whether you would like to
upgrade each block. If you select yes, the slupdate function updates your blocks
accordingly.
• Timely Update to Avoid Unexpected Results — It is important to update your
existing models as soon as possible because the frame bit will be removed in a future
release. At that time, any blocks that have not yet been upgraded to work with the
new paradigm of frame-based processing will automatically transition to perform
their library default behavior. The library default behavior of the block might not
produce the results you expected, thus causing undesired results in your models. Once
the frame bit is removed, you will no longer be able to upgrade your models using
the slupdate function. Therefore, you should upgrade your existing modes using
slupdate as soon as possible.
8-3
R2011b
Logging Signals in Simulink
R2011b adds new capabilities to the DSP System Toolbox product for logging signals in
Simulink. When you log signals using the Dataset logging mode, you can now use DSP
System Toolbox utility functions to help you access that logged data in either a 2-D or 3D format. For more information about selecting a signal logging format, see Specifying
the Signal Logging Data Format in the Simulink documentation.
After you log a signal using the Dataset logging mode, you can choose to extract that
logged signal in either a 2-D or 3-D format. To fully support this new workflow, the
following utility functions and class have been added to the DSP System Toolbox product:
• dsp.util.getLogsArray — Formats and returns a 2-D or 3-D MATLAB array from
a logged signal in a Dataset object.
• dsp.util.getSignalPath — Returns all paths to signals with a specified name in
the Dataset object.
• dsp.util.SignalPath — Contains path information for signals in
Simulink.SimulationData.Dataset objects.
Triggered to Workspace
R2011b adds a new Save 2-D signals as parameter to the Triggered to Workspace
block. This parameter allows you to specify whether the block saves 2-D signals as 2-D
arrays or as 3-D arrays. To provide for backward compatibility, the Save 2-D signals
as parameter also has an option Inherit from input (this choice will be
removed — see release notes). When you select this option, the block saves
sample-based data as a 3-D array and frame-based data as a 2-D array.
Compatibility Considerations
In a future release, the following option will be removed: Inherit from input (this
choice will be removed — see release notes). From this time forward, you
must specify whether the block saves 2-D signals as 2-D or 3-D arrays. The block will no
longer make that choice based on the status of the frame bit.
You can use the slupdate function to upgrade your existing models that contain a
Triggered To Workspace block. The function detects whether your models contain any
Triggered To Workspace blocks with the Save 2-D signals as parameter set to Inherit
from input (this choice will be removed — see release notes). If you
8-4
do, the function detects the status of the frame bit and sets the Save 2-D signals as
parameter accordingly.
• If the input signal is frame based, the function sets the Save 2-D signals as
parameter to 2-D array (concatenate along first dimension).
• If the input signal is sample based, the function sets the Save 2-D signals as
parameter to 3-D array (concatenate along third dimension).
Digital Filter Design Block
R2011b adds a new Input processing parameter to the Digital Filter Design block.
This parameter allows you to choose whether you want the block to perform sample- or
frame-based processing on the input. You can set this parameter to either Elements as
channels (sample based) or Columns as channels (frame based). The third
choice, Inherited (this choice will be removed - see release notes), is
a temporary selection. This additional option will help you as you move control of framebased processing from the signals to the blocks themselves.
Compatibility Considerations
When you load an existing model R2011b, all Digital Filter Design blocks in your model
will have the new Input processing parameter. By default, it will be set to Inherited
(this choice will be removed - see release notes). This setting enables
your existing models to continue to work as expected until you upgrade them. Although
your old models will still work when you open and run them in R2011b, you should
upgrade them as soon as possible.
You can upgrade your existing models using the slupdate function. The function detects
all blocks that have Inherited (this choice will be removed - see release
notes) selected for the Input processing parameter. It then asks you whether you
would like to upgrade each block. If you select yes, the function detects the status of the
frame bit on the input port of the block. If the frame bit is 1 (frames), the function sets
the Input processing parameter to Columns as channels (frame based). If the
bit is 0 (samples), the function sets the parameter to Elements as channels (sample
based).
In a future release, the frame bit and the Inherited (this choice will be
removed - see release notes) option will be removed. At that time, the
Input processing parameter on blocks in models that have not been upgraded will
automatically be set to the block’s library default setting. In the case of the Digital Filter
8-5
R2011b
Design block, the library default setting is Columns as channels (frame based).
If the library default setting does not match the parameter setting in your model, your
model will produce unexpected results.
Additionally, after the frame bit is removed, you will no longer be able to upgrade your
models using the slupdate function. Therefore, you should upgrade your existing modes
using slupdate as soon as possible.
Filterbuilder, FDATool and the Filter Realization Wizard Block
R2011b adds new Input processing and Rate options parameters to filterbuilder,
FDATool and the Filter Realization Wizard block. For filterbuilder, these new
parameters are available when you click the Generate Model button on the Code
Generation pane of the dialog box. For FDATool and the Filter Realization Wizard block,
the new parameters are available on the Realize Model pane of the dialog box. When
you use the Realize Model button to create a block, you can use the Input processing
parameter to specify whether the block will perform sample- or frame-based processing
on its input.
If you are creating a multirate filter block, the Rate options parameter will also be
available. This parameter allows you to specify whether the filter block you create will
Enforce single-rate processing or Allow multirate processing.
Changes to Row Vector Processing for dsp.Convolver, dsp.CrossCorrelator, and dsp.Interpolator
System Objects
In previous releases, the dsp.Convolver, dsp.CrossCorrelator, and dsp.Interpolator
System objects processed row vector inputs as a column vector. As of R2011b, these
objects now process row vector inputs as a row vector (multiple channels).
Compatibility Considerations
Starting in R2011b, you must update your code to transpose the row vector data to a
column vector before providing it as an input to the dsp.Convolver, dsp.CrossCorrelator,
or dsp.Interpolator System objects.
Custom System Objects
You can now create custom System objects in MATLAB. This capability allows you to
define your own System objects for time-based and data-driven algorithms, I/O, and
visualizations. The System object API provides a set of implementation and service
8-6
methods that you incorporate into your code to implement your algorithm. See Define
New System Objects in the DSP System Toolbox documentation for more information.
New Allpole Filter Block
R2011b adds a new Allpole Filter block to the Filtering/Filter Implementations library.
This block provides direct form, direct form transposed, and Lattice AR allpole filter
structures.
New Audio Weighting Filter Functionality
R2011b adds new audio weighting filter functionality to MATLAB and Simulink. In
MATLAB, you can now design audio weighting filters in the filterbuilder GUI or by using
the preexisting fdesign.audioweighting object. In Simulink, you can use the new Audio
Weighting Filter block from the Filtering/Filter Designs library.
Time Scope Enhancements
R2011b includes the following enhancements to the Time Scope:
• Improvements to default signal names in the scope legend — In previous
releases, the default names for signals displayed by the Time Scope block were
Channel 1, Channel 2, Channel 3, etc. In R2011b, the default naming convention
has been improved to also identify the source of the signal. For example, if the input
to the Time Scope block is two separate two channel signals named SignalA and
SignalB, the default legend names would appear as:
SignalA:1, SignalA:2, SignalB:1, SignalB:2
See the Time Scope reference topic for more information.
• New scrolling display mode simplifies debugging process — R2011b adds
a new option to the Time Scope block and System object. This option allows you to
specify how the scope displays new data beyond the visible time span. In previous
releases, the scope always displayed new data up until it reached the maximum Xaxis limit. When the data reached the maximum X-axis limit of the scope window,
the scope cleared the display and updated the time offset value. It then displayed
subsequent data points starting from the minimum X-axis limit. In the new scrolling
display mode, the scope scrolls old data to the left to make room for new data on the
right side of the scope display. This mode is graphically intensive and can affect run8-7
R2011b
time performance, but it is beneficial for debugging and for monitoring time-varying
signals.
To use the new scrolling display mode in the Time Scope block, set the Time span
overrun mode parameter to Scroll on the Visuals:TimeDomainOptions dialog
box. To use the new scrolling display mode in the dsp.TimeScope System object, set
the TimeSpanOverrunMode property to Scroll. By default, both the block and the
System object display data using the previously supported Wrap mode.
New Arbitrary Group Delay Design Support
This release adds a new fdesign.arbgrpdelay filter specification object. Arbitrary group
delay filters are allpass filters useful for correcting phase distortion introduced by other
filters. Systems with nonlinear phase responses result in nonconstant group delay, which
causes dispersion of the frequency components of the signal. This type of phase distortion
can be undesirable even if the magnitude distortion introduced by the filter produces the
desired effect. In these cases, you can compensate for the phase distortion by cascading
the frequency-selective filter with an allpass filter that compensates for the group delay.
Arbitrary Magnitude Responses Now Support Minimum Order and
Minimum/Maximum Phase Equiripple Design Options
R2011b adds new minimum order, minimum phase equiripple, and maximum phase
equiripple design options. These design options are now available on the Arbitrary
Response design panel in filterbuilder and through the fdesign.arbmag filter specification
object.
Support for Constrained Band Equiripple Designs in MATLAB and
Simulink
R2011b adds support for constrained band equiripple designs to the following filter
response types:
8-8
fdesign Filter Specification Object filterbuilder Response String
dspfdesign Library Block
fdesign.arbmag
arbmag
Arbitrary Response Filter
fdesign.bandpass
bandpass
Bandpass Filter
fdesign.bandstop
bandstop
Bandstop Filter
fdesign.differentiator
diff
Differentiator Filter
New Sinc Frequency Factor and Sinc Power Design Options for Inverse
Sinc Filters
R2011b adds two new design options for designing inverse sinc filters in MATLAB and
Simulink. The new design options allow you to control the sinc frequency factor and sinc
power for inverse sinc filters designed with fdesign.isinclp, the new fdesign.isinchp, the
isinc filterbuilder response type, or the Inverse Sinc Filter block in the dspfdesign
library.
These new design options allow you to design inverse sinc lowpass filters with a
passband magnitude response equal to H(ω) = sinc(Cω)^(–P). C is the sinc frequency
factor, and P is the sinc power. Similarly, you can design inverse sinc highpass filters
with a passband magnitude response equal to H(ω) = sinc(C(1-ω))^(–P). For both
the highpass and lowpass filters, the default values of C and P are set to 0.5 and 1,
respectively. For more information about the sinc frequency factor and sinc power design
options, see the corresponding reference topics.
New Inverse Sinc Highpass Filter Designs
This release adds support for designing highpass inverse sinc filters in MATLAB and
Simulink. This capability is available through a new fdesign.isinchp filter specification
object as well as a new isinchp filterbuilder response type.
Filterbuilder and dspfdesign Library Blocks Now Support Different
Numerator and Denominator Orders for IIR Filters
As of R2011b, you can now specify different numerator and denominator orders for
IIR filters designed using certain filter responses. This capability is available for the
bandpass, bandstop, highpass, and lowpass filter responses in the filterbuilder GUI and
the corresponding dspfdesign library blocks.
New Stopband Shape and Stopband Decay Design Options for Equiripple
Highpass Filter Designs
This release adds new stopband shape and stopband decay design options in MATLAB
and Simulink. These options are available through the fdesign.highpass filter
specification object, the highpass filterbuilder response type, and the Highpass Filter
block in the dspfdesign library.
8-9
R2011b
FFTW Library Support for Non-Power-of-Two Transform Length
The FFT, IFFT blocks, and the dsp.IFFT, dsp.FFT System objects include the use of the
FFTW library. The blocks and objects now support non-power-of-two transform lengths.
MATLAB Compiler Support for dsp.DigitalDownConverter and
dsp.DigitalUpConverter
R2011b adds MATLAB Compiler support for the dsp.DigitalDownConverter and
dsp.DigitalUpConverter System objects. With this capability, you can use the MATLAB
Compiler to take MATLAB files, which can include System objects, as input and generate
standalone applications.
Complex Input Support for dsp.DigitalDownConverter
The dsp.DigitalDownConverter System object now supports complex inputs.
getFilters Method of dsp.DigitalDownConverter and
dsp.DigitalUpConverter Now Return Actual Fixed-Point Settings
You can now access the actual fixed-point settings of the filter being used by the
dsp.DigitalDownConverter and dsp.DigitalUpConverter System objects. To do so,
you must first provide a fixed-point input to the object using the step method. Then,
after the object is locked, call the getFilters method to access the actual fixed-point
properties of the filter being implemented by the System object. Calling getFilters on
an unlocked dsp.DigitalDownConverter or dsp.DigitalUpConverter System object returns
the same results as previous releases.
dsp.SineWave and dsp.BiquadFilter Properties Not Tunable
The following dsp.SineWave properties are now nontunable:
• Frequency
• PhaseOffset
The following dsp.BiquadFilter properties are now nontunable:
• SOSMatrix
• ScaleValues
8-10
When objects are locked (i.e., after calling the step method), you cannot change any
nontunable property values.
Compatibility Considerations
Review any code that changes any dsp.SineWave or dsp.BiquadFilter property
value after calling the step method. You should update the code to use property values
that do not change.
System Object DataType and CustomDataType Properties Changes
When you set a System object, fixed-point <xxx>DataType property to ‘Custom’, it
activates a dependent Custom<xxx>DataType property. If you set that dependent
Custom<xxx>DataType property before setting its <xxx>DataType property, a warning
message displays. <xxx> differs for each object.
Compatibility Considerations
Previously, setting the dependent Custom<xxx>DataType property would automatically
change its <xxx>DataType property to ‘Custom’. If you have code that sets the
dependent property first, avoid warnings by updating your code. Set the <xxx>DataType
property to ‘Custom’ before setting its Custom<xxx>DataType property.
Note: If you have a Custom<xxx>DataType in your code, but do not explicitly update
your code to change <xxx>DataType to ‘Custom’, you may see different numerical
output.
System Objects Variable-Size Input Dimensions
System objects that process variable-size input now also accept inputs where the number
of input dimensions change.
Conversion of Error and Warning Message Identifiers
R2011b changes some error and warning message identifiers in DSP System Toolbox
software. For System objects, both error and warning message identifiers have changed.
On the Simulink side, the Time Scope block has one warning message with a new
identifier.
8-11
R2011b
Compatibility Considerations
If you have scripts or functions that use message identifiers that changed, you must
update the code to use the new identifiers. Typically, message identifiers are used to turn
off specific warning messages. You can also use them in code that uses a try/catch
statement and performs an action based on a specific error identifier.
For example, for System objects, the
MATLAB:system:System:inputSpecsChangedWarning identifier has changed
to MATLAB:system:inputSpecsChangedWarning. If your code checks for
MATLAB:system:System:inputSpecsChangedWarning, you must update it to check
for MATLAB:system:inputSpecsChangedWarning instead.
For the Time Scope block, the
Simulink:Engine:Simulink:Engine:UnableToUpdateDisplayInRapidAccelMode
identifier has changed to Simulink:Engine:UINotUpdatedDuringRapidAccelSim. If
your code checks for
Simulink:Engine:Simulink:Engine:UnableToUpdateDisplayInRapidAccelMode,
you must update it to check for
Simulink:Engine:UINotUpdatedDuringRapidAccelSim instead.
To determine the identifier for a warning, run the following command just after you see
the warning:
[MSG,MSGID] = lastwarn;
This command saves the message identifier to the variable MSGID.
To determine the identifier for an error that appears at the MATLAB prompt, run the
following command just after you see the error:
exception = MException.last;
MSGID = exception.identifier;
Warning messages indicate a potential issue with your code. While you can turn off a
warning, a suggested alternative is to change your code so it runs without warnings.
New and Updated Demos
R2011b adds the following new demos:
8-12
• 3-Band Parametric Audio Equalizer Using UDP Packets and Code Generation —
Provides a three-band parametric equalizer algorithm based in MATLAB. The demo
allows you to dynamically adjust the coefficients of the filters and shows you how to
use the MATLAB Coder product to build a standalone executable file that you can run
outside of MATLAB.
• Creating New Kinds of System Objects for File Input and Output — Provides an
example of creating custom System objects in MATLAB for file input and output.
Additionally, this release updates the IIR Filter Design Given a Prescribed Group Delay
demo to use the new fdesign.arbgrpdelay object.
Blocks Being Removed in a Future Release
The following blocks will be removed from the DSP System Toolbox product in a future
release.
Block Being Removed (library)
Replacement Block
Digital FIR Filter Design (dspddes3)
Discrete FIR Filter
Remez FIR Filter Design (dspddes3)
Discrete FIR Filter
Least Squares FIR Filter Design
(dspddes3)
Discrete FIR Filter
Digital FIR Raised Cosine Filter Design
(dspddes3)
Discrete FIR Filter
Digital IIR Filter Design (dspddes3)
Discrete Filter
Yule-Walker IIR Filter Design (dspddes3) Discrete Filter
Integer Delay (dspobslib)
Delay
Dyadic Analysis Filter Bank (dspobslib)
Dyadic Analysis Filter Bank (dspmlti4)
Dyadic Synthesis Filter Bank (dspobslib) Dyadic Synthesis Filter Bank (dspmlti4)
Wavelet Analysis (dspobslib)
DWT
Wavelet Synthesis (dspobslib)
IDWT
Direct-Form II Transpose Filter
(dsparch3)
Digital Filter
Time-Varying Direct-Form II Transpose
Filter (dsparch3)
Digital Filter, Discrete FIR Filter, or
Allpole Filter
8-13
R2011b
Block Being Removed (library)
Replacement Block
Time-Varying Lattice Filter (dsparch3)
Digital Filter, Discrete FIR Filter, or
Allpole Filter
Compatibility Considerations
Beginning in R2011b, Simulink will generate a warning when you load a model that
contains one or more of the blocks listed in the preceding table. To ensure that your
models continue to work as expected when these blocks are removed from the product in
a future release, it is strongly recommended that you replace these unsupported blocks
as soon as possible. You can automatically update the blocks in your model by using the
slupdate function.
8-14
R2011a
Version: 8.0
New Features
Bug Fixes
Compatibility Considerations
R2011a
Product Restructuring
The DSP System Toolbox product replaces the Signal Processing Blockset™ and Filter
Design Toolbox™ products in R2011a.
You can access archived documentation for the Signal Processing Blockset and Filter
Design Toolbox products on the MathWorks Web site.
Frame-Based Processing
In signal processing applications, you often need to process sequential samples of data at
once as a group, rather than one sample at a time. DSP System Toolbox documentation
refers to the former as frame-based processing and the latter as sample-based processing.
A frame is a collection of samples of data, sequential in time.
Historically, Simulink-family products that can perform frame-based processing
propagate frame-based signals throughout a model. The frame status is an attribute
of the signals in a model, just as data type and dimensions are attributes of a signal.
The Simulink engine propagates the frame attribute of a signal by means of a frame bit,
which can either be on or off. When the frame bit is on, Simulink interprets the signal
as frame based and displays it as a double line, rather than the single line sample-based
signal.
General Product-Wide Changes
Beginning in R2010b, MathWorks started to significantly change the handling of framebased processing. In the future, frame status will no longer be a signal attribute. Instead,
individual blocks will control whether they treat inputs as frames of data or as samples
of data. To learn how a particular block handles its input, you can refer to the block
reference page.
To make the transition to the new paradigm of frame-based processing, many blocks
have received new parameters. You can view an example of how to use these parameters
to control sample- and frame-based processing in R2011a and future releases. To
open the model, type ex_inputprocessing at the MATLAB command line. This model
demonstrates how a block can process a signal as sample based or frame based,
depending on the setting of that block's Input processing parameter.
Notice that when the Discrete FIR Filter and Time Scope blocks are configured to
perform frame-based processing, they interpret columns as channels and treat the 2-by-2
9-2
input signal as two independent channels. Conversely, when the blocks are configured to
perform sample-based processing, they interpret elements as channels and treat the 2by-2 input signal as four independent channels. For further information about sampleand frame-based processing, see Sample- and Frame-Based Concepts.
The following sections provide more detailed information about the specific R2011a DSP
System Toolbox software changes that are helping to enable the transition to the new
way of frame-based processing:
• “Blocks with a New Input Processing Parameter” on page 9-4
• “Changes to the Overlap-Add FFT Filter, Overlap-Save FFT Filter, and Short-Time
FFT Blocks” on page 9-6
• “Difference Block Changes” on page 9-7
• “Signal To Workspace Block Changes” on page 9-7
• “Spectrum Scope Block Changes” on page 9-8
• “Sample-Based Row Vector Processing Changes” on page 9-8
Compatibility Considerations
During this transition to the new way of handling frame-based processing, both the
old way (frame status as an attribute of a signal) and the new way (each block controls
whether to treat inputs as samples or as frames) will coexist for a few releases. For now,
the frame bit will still flow throughout a model, and you will still see double signal lines
in your existing models that perform frame-based processing.
• Backward Compatibility — By default, when you load an existing model in R2011a
any new parameters related to the frame-based processing change will be set to
their backward-compatible option. For example, if any blocks in your existing models
received a new Input processing parameter this release, that parameter will be
set to Inherited (this choice will be removed - see release notes)
when you load your model in R2011a. This setting enables your existing models to
continue working as expected until you upgrade them. Because the inherited option
will be removed in a future release, you should upgrade your existing models as soon
as possible.
• slupdate Function — To upgrade your existing models to the new way of handling
frame-based processing, you can use the slupdate function. Your model must be
compilable in order to run the slupdate function. The function detects all blocks
in your model that are in need of updating, and asks you whether you would like to
9-3
R2011a
upgrade each block. If you select yes, the slupdate function updates your blocks
accordingly.
• Timely Update to Avoid Unexpected Results — It is important to update your
existing models as soon as possible because the frame bit will be removed in a future
release. At that time, any blocks that have not yet been upgraded to work with the
new paradigm of frame-based processing will automatically transition to perform
their library default behavior. The library default behavior of the block might not
produce the results you expected, thus causing undesired results in your models. Once
the frame bit is removed, you will no longer be able to upgrade your models using
the slupdate function. Therefore, you should upgrade your existing modes using
slupdate as soon as possible.
For more detailed information about the specific compatibility considerations related
to the R2011a frame-based processing changes, see the following Compatibility
Considerations sections.
Blocks with a New Input Processing Parameter
Some DSP System Toolbox blocks are able to process both sample- and frame-based
signals. After the transition to the new way of handling frame-based processing, signals
will no longer carry information about their frame status. Blocks that can perform both
sample- and frame-based processing will require a new parameter that allows you to
specify the appropriate processing behavior. To prepare for this change, many blocks are
receiving a new Input processing parameter. You can set this parameter to Columns
as channels (frame based) or Elements as channels (sample based),
depending upon the type of processing you want. The third choice, Inherited (this
choice will be removed - see release notes), is a temporary selection. This
additional option will help you to migrate your existing models from the old paradigm of
frame-based processing to the new paradigm.
For a list of blocks that received a new Input processing parameter in R2011a, expand
the following list.
Blocks with the New Input Processing Parameter
• Arbitrary Response Filter
• Bandpass Filter
• Bandstop Filter
• CIC Compensator
• CIC Filter
9-4
• Comb Filter
• Differentiator Filter
• Halfband Filter
• Highpass Filter
• Hilbert Filter
• Inverse Sinc Filter
• Lowpass Filter
• Nyquist Filter
• Octave Filter
• Parametric Equalizer
• Peak-Notch Filter
• Pulse Shaping Filter
• Unwrap
For a list of blocks that received an Input processing parameter in R2010b, see the
R2010b Signal Processing Blockset Release Notes.
Compatibility Considerations
When you load an existing model R2011a, any block with the new Input processing
parameter will show a setting of Inherited (this choice will be removed see release notes). This setting enables your existing models to continue to work as
expected until you upgrade them. Although your old models will still work when you open
and run them in R2011a, you should upgrade them as soon as possible.
You can upgrade your existing models, using the slupdate function. The function detects
all blocks that have Inherited (this choice will be removed - see release
notes) selected for the Input processing parameter, and asks you whether you would
like to upgrade each block. If you select yes, the function detects the status of the frame
bit on the input port of the block. If the frame bit is 1 (frames), the function sets the
Input processing parameter to Columns as channels (frame based). If the bit
is 0 (samples), the function sets the parameter to Elements as channels (sample
based).
In a future release, the frame bit and the Inherited (this choice will be
removed - see release notes) option will be removed. At that time, the Input
9-5
R2011a
processing parameter in models that have not been upgraded will automatically be
set to either Columns as channels (frame based) or Elements as channels
(sample based), depending on the library default setting for each block. If the library
default setting does not match the parameter setting in your model, your model will
produce unexpected results. Additionally, after the frame bit is removed, you will no
longer be able to upgrade your models using the slupdate function. Therefore, you
should upgrade your existing modes using slupdate as soon as possible.
Changes to the Overlap-Add FFT Filter, Overlap-Save FFT Filter, and Short-Time FFT Blocks
R2011a updates the Overlap-Add FFT Filter, Overlap-Save FFT Filter, and Short-Time
FFT blocks to the use new way of frame-based processing. In previous releases, the frame
status of the input signal determined how these blocks processed the input. In R2011a,
the default behavior of these blocks is to always perform frame-based processing.
Unless you specify otherwise, these blocks now treat each column of the input signal as
an individual channel, regardless of its frame status. You can now enable the behavior
change in these blocks while still allowing for backward compatibility. This release adds
a Treat Mx1 and unoriented sample-based signals as parameter for this purpose.
This parameter will be removed in a future release, at which point the blocks will always
perform frame-based processing.
Compatibility Considerations
The Treat Mx1 and unoriented sample-based signals as parameter will be removed
in a future release. From that point, the Overlap-Add FFT Filter, Overlap-Save FFT
Filter, and Short-Time FFT blocks will always perform frame-based processing.
You can use the slupdate function to upgrade your existing models that contain one of
these blocks. The function detects all Overlap-Add FFT Filter, Overlap-Save FFT Filter,
and Short-Time FFT blocks in your model. Then, if you allow it to, slupdate performs
the following actions:
• If the input to the block is an M-by-1 or unoriented sample-based signal, the
slupdate function:
• Places a Transpose block in front of the affected block in your model. This block
transposes the M-by-1 or unoriented sample-based input into a 1-by-M row vector.
By converting the input to a row vector, the block continues to produce the same
results as in previous releases (an Mo-by-Mi output).
9-6
• Sets the Treat Mx1 and unoriented sample-based signals as parameter to
One channel. This setting ensures that your model will continue to produce the
same results when the Treat Mx1 and unoriented sample-based signals as
parameter is removed in a future release.
• If the input to the block is not an M-by-1 or unoriented sample-based signal, the
slupdate function sets the Treat Mx1 and unoriented sample-based signals as
parameter to One channel. This setting does not affect the behavior of your current
model. However, the change does ensure that your model will continue to produce
the same results when the Treat Mx1 and unoriented sample-based signals as
parameter is removed in a future release.
Difference Block Changes
R2011a adds a new Running difference parameter to the Difference block.
Compatibility Considerations
In a future release, the following option for the Running difference parameter will be
removed: Inherit from input (this choice will be removed — see release
notes). From this time forward, you must specify whether or not the block computes a
running difference; the block will no longer make that choice based on the status of the
frame bit.
You can use the slupdate function to upgrade your existing models that contain a
Difference block. The function detects whether your models contain any Difference blocks
with the Running difference parameter set to Inherit from input (this choice
will be removed — see release notes). If you do, the function detects the status
of the frame bit, and sets the Running difference parameter accordingly.
Signal To Workspace Block Changes
R2011a updates the Signal To Workspace block. The block now allows you to choose an
output format using the Save format parameter. You can choose to save your data as an
Array, Structure, or Structure with time.
Additionally, the old Frames parameter has been replaced by a new Save 2-D signals
as parameter. This parameter allows you to specify whether the block saves 2-D signals
as a 2-D array, or as a 3-D array. To provide for backward compatibility, the Save 2-D
signals as parameter also has an option Inherit from input (this choice will
9-7
R2011a
be removed — see release notes). When you select this option, the block saves
sample-based data as a 3-D array and frame-based data as a 2-D array.
Compatibility Considerations
In a future release, the following option will be removed: Inherit from input (this
choice will be removed — see release notes). From this time forward, you
must specify whether the block saves signals as a 2-D or 3-D array. The block will no
longer make that choice based on the status of the frame bit.
You can use the slupdate function to upgrade your existing models that contain a Signal
To Workspace block. The function detects whether your models contain any Signal
To Workspace blocks with the Save 2-D signals as parameter set to Inherit from
input (this choice will be removed — see release notes). If you do, the
function detects the status of the frame bit and sets the Save 2-D signals as parameter
accordingly.
• If the input signal is frame based, the function sets the Save 2-D signals as
parameter to 2-D array (concatenate along first dimension).
• If the input signal is sample based, the function sets the Save 2-D signals as
parameter to 3-D array (concatenate along third dimension).
Spectrum Scope Block Changes
R2011a updates the Spectrum Scope block to use the new way of frame-based processing.
To enable this change, the block received a new Treat Mx1 and unoriented samplebased signals as parameter. This new parameter is available only when you select the
Buffer input check box. By default, the new parameter is set to One channel. In this
mode, the block treats M-by-1 and unoriented sample-based input as a single column
vector and buffers the input along that column.
Sample-Based Row Vector Processing Changes
In previous releases, some DSP System Toolbox blocks handled sample-based row vector
inputs in a special way. Of the blocks that can treat sample-based row vector inputs
differently, there are two categories:
• Some blocks have a Treat sample-based row input as a column check box which
allows you to explicitly specify how the block should treat sample-based row vector
inputs. Expand the following section for a full list of these blocks.
9-8
Blocks with a Check Box
• Maximum
• Mean
• Median
• Minimum
• Normalization
• RMS
• Standard Deviation
• Variance
• Other blocks automatically treat a sample-based row vector input as a single channel
(column vector). Expand the following section for a full list of these blocks.
Blocks That Implicitly Treat Sample-Based Row Vectors as a Single Channel
• Autocorrelation
• Autocorrelation LPC
• Burg AR Estimator
• Burg Method
• Complex Cepstrum
• Convolution
• Correlation
• Covariance AR Estimator
• Covariance Method
• DCT
• FFT
• IDCT
• IFFT
• Interpolation
• Levinson-Durbin
• LPC to LSF/LSP Conversion
• LPC to/from Cepstral Coefficients
9-9
R2011a
• LPC to/from RC
• LPC/RC to Autocorrelation
• LSF/LSP to LPC Conversion
• Modified Covariance AR Estimator
• Modified Covariance Method
• Peak Finder
• Polynomial Stability Test
• Real Cepstrum
• Sort
• Window Function
• Yule-Walker AR Estimator
• Yule-Walker Method
The special treatment of sample-based row vector inputs will be removed in a future
release. See the compatibility considerations for more information about how this change
will affect your models.
Compatibility Considerations
The blocks listed will continue to work as expected in R2011a. However, in a future
release these blocks will produce a warning when you provide them with a sample-based
row vector input, and eventually, their behavior will change.
You can prepare your models for the upcoming change by running the slupdate function.
If the function detects any blocks that have a Treat sample-based row input as a
column check box, it performs the following actions:
• If the input to the block is a sample-based row vector, and the Treat sample-based
row input as a column check box is selected, the slupdate function places a
Transpose block in front of the affected block. The Transpose block transposes the
sample-based row vector into a column vector, which is then input into the affected
block. Transposing the input signal ensures that your model will produce the same
results in future releases.
• If the Treat sample-based row input as a column check box is not selected, or if
the input to the block is not a sample-based row vector, the slupdate function takes
no action. Your model will continue to work as expected in future releases.
9-10
If the slupdate function detects any blocks that automatically treat sample-based row
vectors as a column, it performs the following actions:
• If the input to the block is a sample-based row vector, the slupdate function places
a Transpose block in front of the affected block. The Transpose block transposes the
sample-based row vector into a column vector, which is then input into the affected
block. Transposing the input signal ensures that your model will produce the same
results in future releases.
• If the input to the block is not a sample-based row vector, the slupdate function
takes no action. Your model will continue to work as expected in future releases.
New Function for Changing the System Object Package Name from
signalblks to dsp
In R2010b, the package name of Signal Processing Blockset™ System objects changed
from signalblks to dsp. In R2011a, a new function is available to help you update
your code. You can use the sysobjupdate function to recursively search a folder and its
subfolders for MATLAB files that contain System object packages, classes, and properties
that have been renamed.
Compatibility Considerations
If you have any existing System object code that uses a package name of signalblks,
you should use the sysobjupdate function to update your code. For more information,
type help sysobjupdate at the MATLAB command line.
New Discrete FIR Filter Block
R2011a adds a new Discrete FIR Filter block to the DSP System Toolbox Filtering/Filter
Implementations library. The block is an implementation of the Simulink Discrete FIR
Filter block.
New Printing Capability from the Time Scope Block
You can now print the data you see in the Time Scope block. To send the data to your
printer, select File > Print ... from the scope menu. To print the data to a MATLAB
figure, select File > Print to Figure.
9-11
R2011a
Improved Display Updates for the Time Scope Block and System Object
R2011a introduces the capability to improve the performance of the Time Scope block
and dsp.TimeScope System object by reducing the frequency with which the display
updates. You can now choose between this new enhanced performance mode and the
old behavior by selecting Reduce Updates to Improve Performance from the
Simulation menu of the block, or the Playback menu of the System object. By default,
both the block and System object operate in the new enhanced performance mode.
New Implementation Options Added to Blocks in the Filter Designs
Library
This release provides filter customization options for blocks in the Filtering/Filter
Designs library. You can access these options in the Filter implementation section of
the block dialog box:
• Implement designed filters as Simulink basic elements or as a digital filter.
• Customize filters built using Simulink basic elements using the Optimizations
parameters.
Blocks in the Filtering/Filter Designs library also support Input processing and Rate
options parameters in R2011a. For more information, see “Blocks with a New Input
Processing Parameter”.
Compatibility Considerations
• Frame-based processing and filters with algebraic loops — For filters that contain
sample-by-sample feedback, using a lumped-element implementation instead of
Simulink basic elements can eliminate algebraic loops. For supported blocks, use
the slupdate function on older models with designed filters to convert the designed
filters into lumped filters. You can enable this feature manually by clearing the Use
basic elements for filter customization check box.
For filters with algebraic loops that do not have this option, specify sample-based
processing by setting the Input processing parameter to Elements as channels
(sample based).
• Rate Options parameter — Filters that allow multirate processing, such as FIR
decimators and interpolaters, perform single-rate processing by default. For more
information, see the block reference pages.
9-12
New dsp.DigitalDownConverter and dsp.DigitalUpConverter System
Objects
This release adds new dsp.DigitalDownConverter and dsp.DigitalUpConverter System
objects. The digital up converter (DUC) and digital down converter (DDC) System objects
provide tools to design interpolation/decimation filters and simplify the steps required to
implement the up/down conversion process.
Improved Performance of FFT Implementation with FFTW library
The FFT, IFFT blocks include the use of the FFTW library.
Variable-Size Support for System Objects
The following System objects support inputs that change their size at runtime.
• dsp.ArrayVectorAdder
• dsp.ArrayVectorDivider
• dsp.ArrayVectorMultiplier
• dsp.ArrayVectorSubtractor
• dsp.FFT
• dsp.IFFT
• dsp.Maximum
• dsp.Mean
• dsp.Minimum
• dsp.Normalizer
• dsp.RMS
• dsp.StandardDeviation
• dsp.UDPReceiver
• dsp.UDPSender
• dsp.Variance
9-13
R2011a
Compatibility Considerations
For the dsp.UDPSender and dsp.UDPReceiver System objects only, you should update
your code to stop sending or receiving any data length settings. Support for variable-size
data makes the data length settings redundant. For example,
% Change these lines to remove explicit lengths:
step(hudps, dataSent, dataLength);
[dataReceived len] = step(hudpr);
bytesReceived = bytesReceived + ...
length(dataReceived) len;
% Code lines with lengths removed:
step(hudps,datasent);
[dataReceived] = step(hudpr);
bytesReceived = bytesReceived + ...
length(dataReceived);
System Objects FullPrecisionOverride Property Added
A FullPrecisionOverride property has been added to the System objects listed below.
This property is a convenient way to control whether the object uses full precision to
process fixed-point input.
When you set this property to true, which is the default, it eliminates the need to set
many fixed-point properties individually. It also hides the display of these properties
(such as RoundingMode, OverflowAction, etc.) because they are no longer applicable
individually.
To set individual fixed-point properties, you must first set FullPrecisionOverride to
false.
Note: The CoefficientDataType property is not controlled by
FullPrecisionOverride
The following System objects are affected:
• dsp.ArrayVectorAdder
• dsp.ArrayVectorSubtractor
9-14
• dsp.Autocorrelator
• dsp.Convolver
• dsp.Crosscorrelator
• dsp.FIRDecimator
• dsp.FIRInterpolator
• dsp.FIRRateConverter
• dsp.SubbandAnalysisFilter
• dsp.SubbandSynthesisFilter
• dsp.Window
Compatibility Considerations
All of these System objects have their new FullPrecisionOverride property set to the
default, true. If you had set any fixed-point properties to non-default values for these
objects, those values are ignored. As a result, you may see different numerical answers
from those answers in a previous release. To use your nondefault fixed-point settings, you
must first change FullPrecisionOverride to false.
'Internal rule' System Object Property Value Changed to 'Full precision'
To clarify the value of many DataType properties, the 'Internal rule' option has
been changed to 'Full precision'.
Compatibility Considerations
The objects allow you to enter either 'Internal rule' or 'Full precision'. If you
enter 'Internal rule', that option is stored as 'Full precision'.
MATLAB Compiler Support for System Objects
The DSP System Toolbox supports the MATLAB Compiler for most System objects. With
this capability, you can use the MATLAB Compiler to take MATLAB files, which can
include System objects, as input and generate standalone applications.
The following System objects are not supported by the MATLAB Compiler software:
• dsp.CICDecimator
9-15
R2011a
• dsp.CICInterpolator
• dsp.DigitalDownConverter
• dsp.DigitalUpConverter
• dsp.TimeScope
Viewing System Objects in the MATLAB Variable Editor
The MATLAB Variable Editor now displays System objects properties in the same order
as they display at the command line. Note that the Variable Editor provides a read-only
view for System objects.
System Object Input and Property Warnings Changed to Errors
When a System object is locked (e.g., after the step method has been called), the
following situations now produce an error. This change prevents the loss of state
information.
• Changing the input data type
• Changing the number of input dimensions
• Changing the input complexity from real to complex
• Changing the data type, dimension, or complexity of tunable property
• Changing the value of a nontunable property
Compatibility Considerations
Previously, the object issued a warning for these situations. The object then unlocked,
reset its state information, relocked, and continued processing. To update existing code
so that it does not produce an error, use the release method before changing any of the
items listed above.
New and Updated Demos
R2011a adds the following new demos:
• Digital Up and Down Conversion for Family Radio Service — Shows you how to use
the new dsp.DigitalDownConverter and dsp.DigitalUpConverter System objects to
design a Family Radio Service (FRS) transmitter and receiver.
9-16
• Design and Analysis of a Digital Down Converter — Shows you how to use the
dsp.DigitalDownConverter System object to simplify the steps required to emulate the
TI Graychip 4016 digital down converter.
• Using System Objects with MATLAB Compiler — Shows you how to use MATLAB
Compiler to create a standalone application from MATLAB System objects.
Additionally, the Simulink-based demo, GSM Digital Down Converter, has been
enhanced to use the Fixed-Point Toolbox™ cordicrotate function. The demo now
allows you to compare an NCO-based mixer to a CORDIC-based mixer.
Documentation Examples Renamed
In previous releases, the example models used throughout the Signal Processing
Blockset™ documentation were named with a prefix of doc_. In R2011a, this prefix has
changed to ex_. For example, in R2010b, you could launch an example model using the
Time Scope block by typing doc_timescope_tut at the MATLAB command line. To
launch the same model in R2011a, you must type ex_timescope_tut at the command line.
Compatibility Considerations
You can no longer launch DSP System Toolbox documentation example models using the
doc_ name. To open these models in R2011a, you must replace the doc_ prefix in the
model name with ex_.
Downsample Block No Longer Has Frame-Based Processing Latency for a
Frame Size of One
As of R2011a, the Downsample block no longer exhibits frame-based processing latency
when the input frame size is one.
Compatibility Considerations
Existing models that use the Downsample block in frame-based processing mode may
produce different results in R2011a. Specifically, the Downsample block no longer has
one-frame of latency when the input frame size is one. If your model uses a Downsample
block in frame-based processing mode and the input frame size is one, you will see
different results when you run your model in R2011a. If you need to restore the one9-17
R2011a
frame latency, you can use a Delay block to delay the output of the Downsample block by
one frame.
SignalReader System Object Accepts Column Input Only
The SignalReader System object now accepts column inputs only.
Compatibility Considerations
Update any code with row input to the SignalReader object to convert the input to
column form before passing it to the object. (Note that this change occurred in R2010b.)
FrameBasedProcessing Property Removed from the dsp.DelayLine and
dsp.Normalizer System Objects
In R2010b, the FrameBasedProcessing property was removed from the dsp.DelayLine
and dsp.Normalizer System objects. Both objects now treat each column of the input as a
separate channel (frame-based processing).
Compatibility Considerations
As of R2010b, MATLAB issues a warning when you set the FrameBasedProcessing
property of the dsp.DelayLine or dsp.Normalizer System objects.
R2010a MAT Files with System Objects Load Incorrectly
If you saved a System object to a MAT file in R2010a and load that file in R2011a,
MATLAB may display a warning that the constructor must preserve the class of the
returned object. This occurs because an aspect of the class definition changed for that
object in R2011a. The object's saved property settings may not restore correctly.
Compatibility Considerations
MAT files containing a System object saved in R2010a may not load correctly in R2011a.
You should recreate the object with the desired property values and save the MAT file.
9-18
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement