| Contents | Index |
This table summarizes what's new in V8.1 (R2011b):
| New Features and Changes | Version Compatibility Considerations | Fixed Bugs and Known Problems |
|---|---|---|
| Yes Details below | Yes—Details labeled as Compatibility Considerations, below. See also Summary. | Bug
Reports Includes fixes |
New features and changes introduced in this version are:
Support for Constrained Band Equiripple Designs in MATLAB and Simulink
New Sinc Frequency Factor and Sinc Power Design Options for Inverse Sinc Filters
New Stopband Shape and Stopband Decay Design Options for Equiripple Highpass Filter Designs
MATLAB Compiler Support for dsp.DigitalDownConverter and dsp.DigitalUpConverter
System Object DataType and CustomDataType Properties Changes
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.
Beginning in R2010b, MathWorks started to significantly change the handling of frame-based 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 2-by-2 input signal as four independent channels. For further information about sample- and 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:
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.
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 3-D 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.
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 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).
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 frame-based processing from the signals to the blocks themselves. Refer to the Compatibility Considerations section for more information about migrating your existing models to the new paradigm of frame-based processing.
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 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.
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.
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.
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 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.
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.
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.
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 X-axis 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 run-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.
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.
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.
R2011b adds support for constrained band equiripple designs to the following filter response types:
| 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 |
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.
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.
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.
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.
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.
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.
The dsp.DigitalDownConverter System object now supports complex inputs.
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.
The following dsp.SineWave properties are now nontunable:
Frequency
PhaseOffset
The following dsp.BiquadFilter properties are now nontunable:
SOSMatrix
ScaleValues
When objects are locked (i.e., after calling the step method), you cannot change any nontunable property values.
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.
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.
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 that process variable-size input now also accept inputs where the number of input dimensions change.
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.
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.
R2011b adds the following new demos:
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.
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 |
| Time-Varying Lattice Filter (dsparch3) | Digital Filter, Discrete FIR Filter, or Allpole Filter |
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.
![]() | Version 8.2 (R2012a) DSP System Toolbox | Version 8.0 (R2011a) DSP System Toolbox | ![]() |

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.
| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |