MATLAB 5.2 Product Family New Features     Search    Help Desk 

Chapter 1
MATLAB 5.2 Enhancements


What's New in MATLAB 5.2? 

MATLAB Language Enhancements 

PC and UNIX Environment Tools Enhancements 

Online Documentation Enhancements 

ActiveX Support Enhanced 

HDF File Format Support 

Visualization Enhancements 

GUI Development Enhancements 

MATLAB Compiler 

MATLAB C Math Library 1.2 

MATLAB C++ Math Library 1.2 

Simulink 2.2 

Real-Time Workshop 2.2 

Stateflow 1.0.6 

Toolboxes and Blocksets 



What's New in MATLAB 5.2?

MATLAB 5.2 completes bringing the whole MATLAB product family up to a MATLAB 5 level: the MATLAB Compiler and MATLAB C and C++ Math Libraries now work with MATLAB 5 and its associated products.

MATLAB 5.2 also adds many important application development and visualization features.

In addition, other licensed products have been updated with the release of MATLAB 5.2:

Enhancements to MATLAB

The language and development environment enhancements introduced with MATLAB 5.2 include:

MATLAB 5.2 also includes the following visualization and GUI development enhancements:

Upgrades to Simulink, Real-Time Workshop, Toolboxes, and Blocksets

Simulink 2.2 includes several enhancements, including Level 2 S-function support, new user interface features on the PC and Macintosh platforms, additional simulation features, some new blocks and commands, and the ability to add print frames (header and footer annotation) to printouts of Simulink models.

Real-Time Workshop 2.2 utilizes the Simulink Level-2 S-function feature to support Interrupt Service Routines (ISRs) for VxWorks, customized ISRs for your target system, multiple input/multiple output S-functions, and parameter checking while running.

Almost all toolboxes and blocksets were updated for MATLAB 5.2. Toolboxes and blocksets with especially significant enhancements for the MATLAB 5.2 release include:

New Power System Blockset

The Power System Blockset 1.0 is introduced with MATLAB 5.2. This new blockset is described in more detail later in this chapter.

MATLAB Language Enhancements

Links to Command Descriptions
Clicking on the command name in the following tables displays the documentation for that command. Use your browser's Back button to return to this document.

Support for try/catch

MATLAB 5.2 adds functions to support try/catch error handling.

Function
Description
catch
Begin catch block.
try
Begin try block.

Warning Messages

The new lastwarn function, depending how it is called, returns either a string containing the last warning message issued by MATLAB, an empty string matrix until the next warning is encountered, or sets the last warning message to a specified string.

Setting the Recursion Limit

You can now set the limit for recursion so that you will receive an error instead of being forced out of MATLAB when the recursion limit is reached. The default recursion limit is 500 on PC and UNIX platforms and 200 on Macintosh platforms. To change the recursion limit, change the following line:

in your matlabrc.m file in the toolbox/local directory.

New Mathematical Functions

MATLAB 5.2 provides these new mathematical functions.

Function
Description
cholinc
Sparse incomplete Cholesky and Cholesky-infinity factorizations.
cholupdate
Rank 1 update to Cholesky factorization.
ifftshift
Inverse fast Fourier transform shift.
ode23t
Solve moderately stiff problems for a solution without numerical damping.
ode23tb
Solve stiff systems using crude error tolerances. May also be used if there is a mass matrix.

qrupdate
Rank 1 update to QR factorization.

New String Comparison Functions

Function
Description
strcmpi
Compare strings ignoring case.
strncmpi
Compare first n characters of strings ignoring case.
MATLAB 5.2 provides two additional string comparison functions.

M-File Locking

You can now lock (and unlock) an M-file so that clear does not clear that M-file from memory.

Function
Description
mislocked
True if M-file cannot be cleared.
mlock
Prevent M-file clearing.
munlock
Permit M-file clearing.

Persistent Variables

A variable may be defined as persistent (with the keyword persistent) so that it does not change value from one call to another. Persistent variables may be used within a function only. Persistent variables remain in memory until the M-file is cleared or changed. persistent is exactly like global, except that the variable name is not in the global workspace, and the value is reset if the M-file is changed or cleared.

Three MATLAB functions support the use of persistent variables (see "M-File Locking" above):

File and Directory Handling

You can copy a file and make a directory from within MATLAB.

Function
Description
copyfile
Copy a file.
mkdir
Make a directory.

Enhancement to load

MATLAB 5.2 adds a new option to the load function:

returns the contents of a MAT-file as a structure instead of directly loading the file into the workspace. The field names in S match the names of the variables that were retrieved. When the file is ASCII, S will be a double precision array.

Cell Array of Strings

You can now use a cell array of strings with the following functions:

Enhancement to strjust

The strjust function now does right, left, and center justification.

Change in clc and home Behavior

The clc and home commands now both clear the Command Window. After issuing either of these commands, it is no longer possible to scroll back to see previous contents of the command window.

Additional Functions Changed in MATLAB 5.2

In addition to the above functions, the MATLAB 5.2 version of the following functions have minor changes, generally to reflect the addition of the new functions described above (e.g., clear does not clear if mlock is called first).

PC and UNIX Environment Tools Enhancements

MATLAB 5.2 provides enhanced environment tools for the PC (Microsoft Windows 95 and NT) platform and introduces environment tools for the UNIX platform. These enhancements are described in detail in Chapter 2 of the online (PDF) version of Using MATLAB.

Changes to the MATLAB Editor/Debugger

With MATLAB 5.2, the Editor/Debugger provides a new Tools menu for Microsoft Windows 95, Windows NT, and UNIX platforms. Some of the options that were under the View menu in previous releases on the PC are now found under the Tools menu. MATLAB 5.2 provides a tabbed dialog that allows you to set General and Editor options. You do so from the Tools menu, by selecting Options.

You can now use MATLAB to add your own commands to the Editor, by using the Customize option that appears as a submenu of the Tools menu. Commands that you add will also work with the Path Browser and Array Editor although the results may differ. Chapter 2 of Using MATLAB provides a table that explains these differences.

You can set up the Editor so that the values of MATLAB variables are expanded and displayed in the Editor window as the cursor hovers over a variable. To do so, under General options, check Show Data Tips.

Also under General options, if you check Show worksheet style tabs, the main Editor window displays a tab at the bottom for each open file. This allows quick navigation among all open files.

Also, you can control the Editor's font, style, and size. In previous releases of MATLAB, font control was available only for the Command Window. In MATLAB 5.2, you can select Font from the Tools menu to control Editor fonts.

Array Editor Added for PC and UNIX Platforms

MATLAB 5.2 provides an Array Editor for both the PC and UNIX platforms. This tool allows you to view and edit two-dimensional numeric arrays.

SGI64 Fully Supported

The SGI64 platform is fully supported for MATLAB 5.2. The SGI64 platform was supported only as a Beta product in previous MATLAB 5 versions.

Note: The Symbolic Math Toolbox 2.0.1 and Extended Symbolic Math Toolbox 2.0.1 are not available for the SGI64 platform; however, the SGI image can be used on the SGI64 platform.

Online Documentation Enhancements

Full-Text Search Facility

The 5.2 Help Desk includes a full-text search facility for the HTML online documentation. You can access the full-text search facility from the top page of the Help Desk or from the "Search" link on reference pages.

Reference Page Navigation

The 5.2 HTML reference pages provide additional navigational aids. The "Examples" and "See Also" links at the top of the first reference page for a function allow you to jump directly to the examples or to links to associated functions.

Also at the top of the reference pages is a "Go to function" edit box. Enter the name of the function and press the Enter key to see the reference page for that function.

The doc Command

The doc command now accesses the HTML reference documentation for all MathWorks products for which HTML reference documentation has been installed. Before Version 5.2, the doc command only accessed the documentation for MATLAB functions.

Japanese Help Desk

MATLAB 5.2 provides a Japanese version of the Help Desk, in addition to the English version.

Note: Most of the Japanese documentation is at the 5.0 or 5.1 level.

During the installation process you can specify what, if any, Japanese documentation you want to install.

If you install any Japanese documentation, the Japanese Help Desk will be displayed when you use the helpdesk command.

ActiveX Support Enhanced

MATLAB 5.2 supports two new ActiveX technologies: ActiveX control containment and ActiveX Automation client capabilities. ActiveX controls are application components, which can be both visually and programmatically integrated into an ActiveX control container; in the MATLAB context, this would be figure windows. Some examples of useful ActiveX controls are the Microsoft Internet Explorer Web Browser control, the Microsoft Windows Communications control for serial port access, and the graphical user interface controls delivered with the Visual Basic development environment.

Prior to 5.2, MATLAB supported ActiveX Automation server capabilities. When MATLAB is controlled by another component, it is acting as an automation server. MATLAB 5.2 adds support for ActiveX Automation client capabilities. When MATLAB controls another component, MATLAB is the automation client, and the other component is the automation server. In other words, MATLAB 5.2 ActiveX Automation allows MATLAB to both control and be controlled by other ActiveX components.

This feature is described in more detail in Chapter 7 of the Application Program Interface Guide.

HDF File Format Support

MATLAB 5.2 extends the support for HDF files beyond that previously provided by imread and imwrite. This additional support is provided through an interface to different HDF formats via new MATLAB functions that enable you to access the HDF library developed and supported by the National Center for Supercomputing Applications (NCSA). MATLAB 5.2 also provides an extensible gateway for reading and writing HDF files.

To use these functions, you must be familiar with the HDF library. Documentation for the library is available on the NCSA HDF Web page at http://hdf.ncsa.uiuc.edu. MATLAB provides extensive command line help for each of these functions.

Function
Interface
hdfan
Multifile annotation
hdfdf24
24-bit raster image
hdfdfr8
8-bit raster image
hdfh
HDF H interface
hdfhd
HDF HD interface
hdfhe
HDF HE interface
hdfml
Gateway utilities
hdfsd
Multifile scientific data set
hdfv
Vgroup
hdfvf
Vdata VF functions
hdfvh
Vdata VH functions
hdfvs
Vdata VS functions

Visualization Enhancements

Support for OpenGL Renderers

The OpenGL renderer is available on many computer systems. This renderer is generally faster than MATLAB's painters or zbuffer renderers in some cases. If your system has graphics hardware that is available to OpenGL, MATLAB uses it to achieve even greater performance improvements. This results in greatly improved drawing performance, particularly with graphics cards that support OpenGL. See the Figure Renderer property in the MATLAB Function Reference for more information.

New View Control Commands

MATLAB 5.2 contains a number of new commands that simplify camera positioning and aspect ratio control. These commands implement operations similar to those associated with movie camera operation - dollying, panning, rolling, as well as some that are more typically associated with computer graphics, such as orbiting the camera around the scene and selecting a method for projecting the 3-D scene on the computer screen.

Links to Command Descriptions
Clicking on the command name in the following tables displays the documentation for that command. Use your browser's Back button to return to this document.

Complex Camera Operations

This table lists commands that simplify the process of moving the camera in a well defined manner through three-dimensional space.

Function or Property
Purpose
Camera Graphics Convenience Functions
camdolly
Translate camera position and camera target (analogous to dollying a movie camera).
camorbit
Rotate camera position around camera target (rotation specified in degrees).
campan
Rotate camera target around camera position (rotation specified in degrees).
camroll
Rotate camera about camera viewing axis (rotation specified in degrees).
camzoom
Zoom camera in or out on a scene by specified zoom factor.

Camera and Axis Control

This table lists new commands that provide a convenient way to set Axes properties. These properties control camera positioning as well as axis limits and aspect ratio.

Function or Property
Purpose
campos
Set or get camera position and camera position mode.
camproj
Set or get camera projection type to orthographic or perspective.
camtarget
Set or get camera target and camera target mode.
camup
Set or get camera up vector and camera up vector mode.
camva
Set or get camera view angle and camera view angle mode.
daspect
Set or get data aspect ratio and data aspect ratio mode.
pbaspect
Set or get plot box aspect ratio and plot box aspect ratio mode.
xlim
Set or get x-axis limits and x-axis limit mode.
ylim
Set or get y-axis limits and y-axis limits mode.
zlim
Set or get z-axis limits and z-axis limits mode.

New Lighting Convenience Commands

MATLAB 5.2 contains two new commands to simplify the placement of Light objects in the Axes.

Function or Property
Purpose
camlight
Create or move a Light object in the camera's coordinate system. This is useful when you want to place a Light at or near the camera and maintain the same relative position as the camera moves.
lightangle
Create or move a Light object in spherical coordinates (i.e., by specifying azimuth and elevation).

Support for Predefined Paper Types

MATLAB supports a number of new predefined paper types. For a list of these paper types, see the Figure PaperType property.

Mechanism to Hide Objects from Selection

All graphics objects have a new property called HitTest that enables you to determine if this object can become the current object or in appropriate cases, the current Figure or current Axes (see the Figure CurrentObject and CurrentAxes properties and the Root CurrentFigure property). This feature is useful to exclude certain graphics objects from user interaction (for example, to prevent MATLAB from selecting text annotations that overlay an image as the user clicks on the image to obtain information returned by a callback routine). See the HitTest property for an example.

New Behavior for newplot, clf, and cla

The behavior of the newplot, clf, and cla commands is now clearly defined with respect to hidden-handle objects. Basically, there are three options when drawing graphics in existing Figures:

These features are particularly useful for protecting Uicontrol objects that comprise part of a user interface constructed with MATLAB.

Behavior of newplot

The newplot function now always sets the Figure NextPlot property to add after obeying the current setting. Previously, newplot

With MATLAB 5.2, newplot

Behavior of clf and cla

The behavior of the clf command without the reset argument has not changed: clf deletes all children of the current Figure whose handles are not hidden (i.e., their HandleVisibility property is set to on).

clf reset now deletes all children of the current Figure, regardless of the setting of their HandleVisibility property. In addition, clf reset also resets all Figure properties to their defaults with the exception of Position, Units PaperPosition, and PaperUnits. Previously, clf reset deleted only handle-visible objects.

cla behaves in a way directly analogous to that of clf: cla deletes all children of the current Axes whose handles are not hidden (i.e., their HandleVisibility property is set to on).

cla reset deletes all children of the current Axes, regardless of the setting of their HandleVisibility property. In addition, cla reset also resets all Axes properties to their defaults with the exception of Position and Units.

GUI Development Enhancements

MATLAB 5.2 provides a number of new features to make it easier for you to develop effective graphical user interfaces (GUIs) for your applications. In the online HTML version of this document, you can use the highlighted links to get more information about these new features.

New Units Property Value

If you write user interfaces intended to be used on more than one computer platform, you may find that you need to adjust the size of controls to accommodate the differences in the size of the fonts used to label the controls.

The new characters value for the Units property enables you to define Uicontrol objects whose sizes are based on the default system font size.

Tooltips

A tooltip is a small rectangle that contains textual information. A tooltip is associated with a Uicontrol and appears below the control when the cursor is held over the control for a certain amount of time (determined by system settings).

You define a tooltip for a Uicontrol by specifying a string value for the new TooltipString property.

Toggle Buttons

MATLAB 5.2 provides a new style of Uicontrol object called a toggle button. Toggle buttons have two states, down (selected) and up (unselected). When you click on a toggle button, its state changes and its callback is executed.

Displaying Truecolor Images on Controls

MATLAB 5.2 supports the ability to display truecolor images on push buttons and toggle buttons.

Context Menus

A context menu is a menu that is attached to an object and is activated by a right-button click on a Microsoft Windows or UNIX system, or a Ctrl-click on a Macintosh system (called an extended click). Defining a context menu requires that you define a Uicontextmenu object and Uimenu children and associate the Uicontextmenu with the object to which it is attached.

MATLAB Compiler

Compatibility Release

Version 1.2 of the MATLAB Compiler is a compatibility release that brings the MATLAB Compiler into compliance with MATLAB 5. Although the Compiler works with MATLAB 5, it does not support several of the new features of MATLAB 5.

Improved Installation and Configuration Process

Based on customer feedback, installing and configuring the MATLAB Compiler 1.2 is easier than before. The MATLAB Compiler User's Guide includes a complete set of recommended steps to perform during installation to ensure that everything is working properly. It includes troubleshooting sections to help diagnose and correct some of the more common installation problems.

Enhanced Support for Windows 95 and NT Compilers

In MATLAB 5.2 and the Compiler, all of the main Compiler vendors and product releases are supported "out of the box" (no additional steps required). These compilers include:

Building Simulink CMEX S-Functions

The MATLAB Compiler now supports building Simulink CMEX S-functions from the MATLAB Function block in Simulink. See the MATLAB Compiler User's Guide for details.

Additional Enhancements

Version 1.2 of the MATLAB Compiler also includes these enhancements:

Documentation

The MATLAB Compiler User's Guide has been updated to reflect the current version of the Compiler.

See <matlab>/toolbox/compiler/Readme.m for additional details about using the Compiler.

MATLAB C Math Library 1.2

Compatibility Release

Version 1.2 of the MATLAB C Math Library is a compatibility release that brings the library into compliance with MATLAB 5. Although the library works with MATLAB 5, it does not support several of the new features of MATLAB 5.

Note: Many functions have changed between MATLAB 4 and MATLAB 5. These changes are reflected in the MATLAB C Math Library. If you are using the MATLAB Compiler to generate your C Math Library programs, you will need to regenerate your C files from your M-files before the C files will work with the new libraries. If you have written C Math Library programs by hand, you need to make the changes manually.

New Features

Version 1.2 of the C Math Library adds 47 new functions, providing several significant new features, including:

Documentation

The C Math Library User's Guide has been updated to reflect the new version of the library.

Also, HTML online reference documentation has been written for this library for 5.2.

See the release notes (release.txt) that are included with the C Math Library for additional details about this version of the library.

MATLAB C++ Math Library 1.2

Compatibility Release

Version 1.2 of the MATLAB C++ Math Library is a compatibility release that brings the library into compliance with MATLAB 5. Although the library works with MATLAB 5, it does not support several of the new features of MATLAB 5.

Note: Many functions have changed between MATLAB 4 and MATLAB 5. However, through the use of C++ function overloading, most of the old functions remain for backward compatibility, and new functions have been added to handle the new functionality (in most cases, with additional function arguments).

If you are generating C++ Math Library programs using the MATLAB Compiler, this should not affect you very much, since the MATLAB Compiler knows about the new functions, and generates the correct code. You will, in some cases, however, have to regenerate your C++ code from your M-files in order to use the new libraries. If you have written stand-alone programs by hand, you may have to edit some of your code before you can link with the new libraries.

New Features

Version 1.2 of the C++ Math Library adds 47 new functions, providing several significant new features, including:

Documentation

The C++ Math Library User's Guide has been updated to reflect the new version of the library.

Also, HTML online reference documentation has been written for this library for 5.2.

See the release notes (release1.txt) that are included with the C++ Math Library for additional details about this version of the library.

Simulink 2.2

Simulink 2.2 provides many enhancements relating to these aspects of the product:

These enhancements are described in more detail in the online (PDF) version of Using Simulink; changes are highlighted with change bars.

User Interface

Note: See Chapter 3 of Using Simulink (online version) for more information about each of these new user interface features.

Toolbar

The PC (Microsoft Windows 95 and NT) and Macintosh versions of Simulink display an optional toolbar below the menu bar in the model and block library windows. You can use the toolbar's buttons to create, save, edit, print, and run models.

Status Bar

The PC and Macintosh versions of Simulink display an optional status bar at the bottom of model and block library windows. The status bar displays the current time and solver when a simulation is running.

Context-Sensitive Menus

The PC and Macintosh (OS8) versions of Simulink display a pop-up menu when you press the right mouse button over a model or block library window. If a block is selected, the menu displays editing, formatting, and property commands applicable to blocks and annotations; otherwise, the menu displays commands applicable to the model or library as a whole.

Automatic Block Connection

You can insert a block having a single input and output into a model by dropping it onto a line segment.

Block Properties Dialog Box

Simulink 2.2 adds a Block Properties dialog box, accessed from the Edit menu. You can set the following block parameter values:

Undoing Breaking of Library Links

Simulink 2.2 allows you to undo the breaking of library links.

Simulation

Block Priorities

You can assign evaluation priorities to nonvirtual blocks in a model. Higher priority blocks evaluate before lower priority blocks, though not necessarily before blocks that have no assigned priority. You can do this with either the Block Properties dialog box from the Edit menu or with the set_param command. See Chapter 3 of Using Simulink (online version) for more information.

Additional Solvers

Simulink 2.2 adds two stiff solvers, ode23t and ode23tb. See the "Solvers" section in Chapter 4 of Using Simulink (online version) for more information.

Debugger

The Simulink debugger allows you to run a model step by step and inspect the values of any variables at any step. See Chapter 12 of Using Simulink (online version) for more information.

Tunable Mask Parameters

You can specify whether a mask parameter is tunable, that is, modifiable while a simulation is running. See Chapter 6 of Using Simulink (online version) for more information.

Level 2 S-Functions

Simulink 2.2 supports Level 2 S-functions in a C MEX S-function. In particular, these Level 2 S-functions support:

Merge Block

The Merge block allows you to combine multiple input lines into a single output line for reduced memory utilization and increased model flexibility. See Chapter 9 of Using Simulink (online version) for more information.

Non-Algebraic Feedback Loops

Prior to Version 2.2, Simulink treated as algebraic loops any loops that involved Triggered Subsystems and that were also composed entirely of blocks with direct feedthrough.

With Version 2.2, for Variable-Step solvers, Simulink now takes advantage of the implicit sequencing inherent in triggered execution (i.e., inputs must be stable prior to the trigger and outputs appear after the trigger) to break such loops, thus

For Fixed-Step solvers, it is still necessary to insert a memory block in the appropriate location (usually at the output of the triggered subsystem) to break such algebraic loops.

See "Algebraic Loops" in Chapter 10 of Using Simulink (online version) for more information.

Model Construction Commands

Object Parameters

The command get_param(obj,'ObjectParameters') where obj is an object name returns a cell array describing the object's parameters. See get_param in Using Simulink (online version) for more information.

Dialog Parameters

The command get_param(b,'DialogParameters'), where b is the name of a block, returns a cell array describing the parameters that appear in a block's parameter dialog. See get_param in Using Simulink (online version) for more information.

Lines/Annotations API

You can use the find_system command to get handles to all the lines and annotations in a model. The returned handles can be used with get_param and set_param to read and write the line or annotation properties. See find_system in Chapter 11 of Using Simulink (online version) for more information.

Printing

Print Frames

You can add print frames (customized headers and footers) to printouts of Simulink model diagrams. To edit a print frame, use the new frameedit command. See "Printing a Block Diagram" in Chapter 3 of Using Simulink (online version) for more information.

Real-Time Workshop 2.2

Asynchronous Processes

The Real-Time Workshop now supports asynchronous interrupt handling in VxWorks and provides templates so that you can create your own interrupt handlers for your target hardware. These blocks include:

For a discussion of asynchronous processes, see the chapter on RTWlib in the Real-Time Workshop User's Guide (online version).

RTWlib

The Real-Time Workshop now has a graphical user interface (GUI), called RTWlib, for quick access to:

The GUI is located in the "Blocksets and Toolboxes" Library in the Simulink window. For more information about RTWlib, see the Real-Time Workshop User's Guide (online version).

Merge Block Added

The new Merge block merges multiple signals into one for reduced memory utilization and increased model flexibility.

Level 2 S-Functions

Real-Time Workshop 2.2 supports Level 2 S-functions. In particular, these Level 2 S-functions support:

Stateflow 1.0.6

Version 1.0.6 of Stateflow and Stateflow Coder is shipped with MATLAB 5.2. Version 1.0.6 is essentially the same as the Patch Release 1.0.5 that was made available to Stateflow customers via FTP. However, 1.0.6 fixes some software problems that still existed in the patch release.

Stateflow and Stateflow Coder 1.0.6 are not supported on the Macintosh platform.

Toolboxes and Blocksets

Almost all of the toolboxes and blocksets have been updated for release with MATLAB 5.2. For many of these toolboxes and blocksets, the updates simply involved fixing software problems and taking more advantage of MATLAB 5 features.

These toolboxes and blocksets listed have been updated for 5.2. The toolboxes and blocksets with significant updates are highlighted with an asterisk and are discussed in more detail in the rest of this chapter (in alphabetical order).

The Power System Blockset is a new blockset introduced with MATLAB 5.2.

Power System Blockset 1.0

The Power System Blockset 1.0 is a modern design tool that allows scientists and engineers to build rapidly and easily models that simulate power systems. The blockset uses the Simulink environment, allowing a model to be built using simple click-and-drag procedures. Not only can you draw the circuit topology rapidly, but the analysis of the circuit can include its interactions with mechanical, thermal, control, and other disciplines. This is possible because the electrical portions of the simulation interact with Simulink's extensive modeling library. Since Simulink uses MATLAB as the computational engine, MATLAB's toolboxes can also be used by the designer.

Power System Blockset libraries contain models of typical power equipment such as transformers, lines, machines, and power electronics. Their validity is based on the experience of the Power Systems Testing Laboratory of Hydro-Quebec, a large North American utility located in Canada.

See the Power System Blockset User's Guide for information about using this blockset.

Communications Toolbox 1.3

Note: Much of the new functionality of the Communications Toolbox 1.3 requires Simulink 2.2. However, even if you use the Communications Toolbox without Simulink, upgrading to Version 1.3 will let you take advantage of a number of other software quality improvements in the toolbox.

The Communications Toolbox 1.3 includes 22 new Simulink function blocks and 12 new example block diagrams.

The new function blocks are:

These new blocks expand the functionality of the Communications Toolbox so that it now provides:

The Communications Toolbox 1.3 also builds on recent MATLAB and Simulink enhancements. These minor changes to the Communications Toolbox are primarily in the area of graphical scopes such as the Error Rate Meter, Eye-Pattern and Scatter plots, and the Trellis plot in the Convolutional Decode block.

This release of the Communications Toolbox also includes changes made to ensure integration with Version 2.2 of the Real-Time Workshop (RTW). If you are using RTW with the Communications Toolbox 1.3, you need Version 2.2 of RTW. Specifically, a few parameter definitions in the Communications Toolbox have been changed for use with C-coded S-functions in RTW.

See the Communication Toolbox 1.3 New Features Guide, available in printed form and online (PDF) for more details on these new features.

Control System Toolbox 4.1

The Control System Toolbox 4.1 contains two main enhancements:

The Root Locus Design GUI is an interactive design tool that you can use to

The Root Locus Design GUI is documented in Chapter 6 of the Control System User's Guide.

The Simulink LTI Viewer is similar to the Control Systems Toolbox LTI Viewer. The Simulink LTI Viewer is used to analyze portions of a Simulink model. Its features include:

The Simulink LTI Viewer is documented in Chapter 4 of the Control System User's Guide.

Two additional enhancements are:

DSP Blockset 2.2

DSP Blockset 2.2 introduces a number of new features and improvements. There are over 30 new and enhanced blocks, a filter design wizard, support for data frames, and expanded support of vector and matrix inputs. This section outlines the new additions, and provides pointers to the complete feature descriptions in the DSP Blockset User's Guide. See Chapter 1 of the online User's Guide for an overview of the blockset's contents.

Also see the DSP Blockset readme file for a summary of the new additions. To view the readme file, type

at the MATLAB command line.

Note: Version 2.2 of the DSP Blockset is the first release of this product since Version 2.0 (there was no Version 2.1). This adjustment in version numbering allows the DSP Blockset to begin sharing the same version number as the associated release of Simulink. Therefore, beginning with this release, the DSP Blockset requires the equivalently numbered version of Simulink (e.g., DSP Blockset 2.2 requires Simulink 2.2).

Data Frames

The DSP Blockset now offers support for data frames, vectors whose elements represent consecutive time samples from a single signal. Framed data is a common format in real-time systems, where the data acquisition hardware often operates most efficiently by accumulating a large number of signal samples at a high rate, and then propagating these samples to the real-time system as a block, or frame, of data. Data frames can also be constructed through the usual DSP Blockset buffering operations (using the Buffer and Complex Buffer blocks, for example).

Version 2.2 includes two new blocks designed to operate specifically on framed data. They are frame-oriented counterparts to the FIR Rate Conversion and Multichannel IIR Filter blocks, and are distinguished by the word "Frame" in the block name:

Use these blocks to directly filter or resample framed data in its native format without the computational expense of unbuffering. Other blocks that operate on framed data include the FFT, DCT, and cepstrum blocks in the Transforms library.

In addition to these frame-based blocks, the data frame format is accepted by all blocks in the blockset that accept vector inputs. Be aware, however, that many blocks implicitly expect the elements of vector inputs to represent independent channels, and not consecutive samples. Besides the FIR Rate Conversion and Multichannel IIR Filter blocks, others that expect non-frame data include the "running" blocks in the Statistics library, the variable delay blocks, and the filter design blocks. In general, if a block uses past inputs in generating the current output (and is not specifically designated as a frame-based block), then it considers the elements of a vector (or matrix) input to represent distinct channels, and not a frame of consecutive samples.

See "Working with Frames" in Chapter 3 of the User's Guide for a complete discussion of this data format.

Filter Realization Wizard

Another new element of the blockset is the Filter Realization Wizard, a graphical user interface (GUI) that allows you to easily construct filters with a a variety of different architectures. The GUI is shown below:


When you click the GUI's Build button with the particular settings shown above, the wizard constructs the specified moving average (MA) lattice architecture as a subsystem within a new model window:


You can then alter or optimize the filter to suit your own needs. Additional information about the Filter Realization Wizard can be found in the online Reference.

New and Enhanced Blocks

The table below lists the new blocks in Version 2.2. Among the most significant additions are variable delay blocks, discrete cosine transform and cepstrum blocks, linear prediction blocks (LPC, Levinson-Durbin), and new spectral estimation blocks.

Block Library
Block Name
Purpose
DSP Sources
Complex Diagonal Matrix
Generate a square, constant-diagonal complex matrix
DSP Sinks
Triggered Complex Matrix To Workspace
Send a time-sequence of complex matrices to the MATLAB workspace
Triggered Complex To Workspace
Write the time-sequence of a complex input to the MATLAB workspace
Triggered Matrix To Workspace
Send a time-sequence of matrices to the MATLAB workspace
Triggered To Workspace
Write the time-sequence of an input to the MATLAB workspace
Signal Operations
Complex Delay
Delay a complex input by an integer number of sample periods
Complex Levinson-Durbin
Apply Levinson-Durbin recursion to design an IIR filter with a prescribed autocorrelation sequence
Complex LPC
Determine the coefficients of an FIR filter that predicts the next sequence value from past and present inputs
Levinson-Durbin
Apply Levinson-Durbin recursion to design an IIR filter with a prescribed autocorrelation sequence
LPC
Determine the coefficients of an FIR filter that predicts the next sequence value from past and present inputs
Variable Fractional Delay
Delay an input by a fractional number of sample periods
Variable Integer Delay
Delay an input by an integer number of sample periods
Transforms
Complex Cepstrum
Compute the complex cepstrum of an input
DCT
Compute the DCT of a complex vector input
IDCT
Compute the complex-valued IDCT of a complex input
Real Cepstrum
Compute the real cepstrum of an input
Real DCT
Compute the DCT of a real vector input
Real IDCT
Compute the IDCT of a real input
Buffers
Shift Register
Convert a scalar time-series into a vector time-series with the same sample period (serial-to-parallel conversion)
Triggered Shift Register
Convert a scalar time-series into a vector time-series with the same sample period (serial-to-parallel conversion)
Switches and Counters
N-Sample Enable w/Reset
Output 1s for a specified number of sample times
Sample and Hold
Sample and hold an input signal
Vector Math
Autocorrelation
Compute the autocorrelation of a real vector
Complex Autocorrelation
Compute the autocorrelation of a complex vector
Complex
Complex Gain
Multiply an input by a complex constant
Real to Complex
Construct a complex output from a real input
Statistics
Histogram
Compute the histogram (frequency distribution) of values in a vector input
Median
Find the median value of a vector input
Running Histogram
Track frequency distribution of values in a vector input over time
Sort
Sort the elements in a vector by value
Filter Realizations
Filter Realization Wizard
Build an IIR or FIR filter with a particular architecture
Multichannel IIR Filter (Frame)
Apply an IIR filter to a multichannel input signal
Time Varying FIR Filter
Apply a variable FIR filter to a multichannel input signal
Time Varying IIR Filter
Apply a variable IIR filter to a multichannel input signal
Multirate Filters
FIR Rate Conversion (Frame)
Upsample, filter, and downsample a real input
Spectrum Analysis
Burg Method
Compute a parametric estimate of the spectrum using the Burg method
Yule-Walker AR
Compute a parametric estimate of the spectrum using the Yule-Walker AR method

In addition to the new blocks, several blocks have been enhanced for Version 2.2, and are highlighted in the table below. The most important area of growth among the existing blocks is in the expanded support of vector and matrix inputs for buffering and unbuffering operations.

Block Library
Block Name
Enhancement
DSP Sources
Diagonal Matrix
Allows specification of a non-constant diagonal
DSP Sinks
Frequency Vector Scope
Offers new menus, and window position memory
Time Vector Scope
Offers new menus, and window position memory
Signal Operations
Complex Zero Pad
Offers the option of truncating the input to the specified output vector length
Delay
Accepts an initial condition
Zero Pad
Offers the option of truncating the input to the specified output vector length
Buffers
Buffer
Supports vector inputs, and accepts an initial condition
Complex Buffer
Supports vector inputs, and accepts an initial condition
Complex Partial Unbuffer
Supports matrix inputs
Complex Unbuffer
Supports matrix inputs
Partial Unbuffer
Supports matrix inputs
Unbuffer
Supports matrix inputs
Switches and Counters
Commutator
Supports matrix inputs
Distributor
Supports vector inputs, and accepts an initial condition
Multirate Filters
FIR Rate Conversion
Supports matrix inputs

For Users Upgrading from Version 1.0a

The DSP Blockset 2.2 is completely compatible with Version 1.0a, but there are some limitations on mixing buffer blocks from the two versions, and you will need to recompile any custom blocks that use C-MEX S-functions so that they work with Simulink 2.2.

See "DSP Blockset: Upgrading from Version 1.0a" in Chapter 4 for more details about upgrading from Version 1.0a.

Financial Toolbox 1.1

The Financial Toolbox 1.1 supports detailed term structure analysis. In addition, this version provides new date functions, coupon date functions, portfolio allocation tools, and a new derivative pricing function. These new functions are summarized below.

For information about these functions, refer to the Financial Toolbox User's Guide for Version 1.1.

Term Structure Functions

Function
Description
disc2zero
Zero rate curve from a discount curve
fwd2zero
Forward rate curve from a zero curve
pyld2zero
Par yield curve from a zero curve
tbl2bond
Conversion of TBills to TBond market convention
termfit
Demo function for smoothing rates with splines
tr2bonds
Conversion of Treasury data to bond input format
zbtprice
Bootstrap a zero curve from market bond prices
zbtyield
Bootstrap a zero curve from market bond yields
zero2disc
Discount factors from a zero curve
zero2fwd
Zero curve from a forward curve
zero2pyld
Zero curve from a par curve

Derivitives Function

Function
Description
blkprice
Black's pricing model

Portfolio Analysis Function

Function
Description
ewcov
Asset covariance estimation with exponential weighting

Date Functions

Function
Description
accrfrac
Accrued interest coupon period fraction
busdate
Next or previous business day
cfdates
Cash flow dates of a security
datefind
Indices of date numbers in a matrix
eomdate
Last date of month
fbusdate
First business date of month
holidays
Holidays and nontrading days
ibusday
True for dates that are business days
lbusday
Last business date of the month
lweekdate
Date of last occurrence of weekday in month
m2xdate
MATLAB serial date number to Excel date number
months
Number of whole months between dates
nweekdate
Date of specific occurrence of weekday in month
yeardays
Number of days in year
x2mdate
Excel serial date number to MATLAB date number

Demo of an Excel Link Portfolio Optimizer Tool

The following files provide a demo of an Excel Link portfolio optimizer tool:

Fuzzy Logic Toolbox 2.0

The Fuzzy Logic Toolbox 2.0 features several improvements, including

Graphical User Interface Enhancements

Fuzzy Logic Toolbox 2.0 adds or enhances several graphical user interfaces (GUIs):

Fuzzy Algorithm Improvements

The following Fuzzy Logic algorithms have been added or enhanced:

FIS Represented As MATLAB Structures

The Fuzzy Inference System (FIS) is now represented as a MATLAB structure. A structure (instead of a flat matrix) is now the basic element in constructing a fuzzy logic system. This fundamental change in the way of representing the fuzzy logic system makes many details of working with the constructed system easier.

A Fuzzy Inference System that you created with a pre-2.0 version of the Fuzzy Logic Toolbox is still usable in 2.0, if you run the convertfis function on it. The convertfis function automatically converts pre-2.0 Fuzzy Inference Systems to work with Version 2.0.

More Dimensions Allowed for User-Defined Membership Functions

You can now use up to 16 parameters when you define your own customized membership functions.

Image Processing Toolbox 2.1

Interactive Pixel Value Display

The new function pixval installs in a figure an interactive display of the data values for whatever image pixel the cursor is currently over. You can also click and drag to display the Euclidean distance between two pixels.

Feature Measurement

The new function imfeature computes feature measurements, such as the center of mass and the bounding box, for regions in an image.

Inverse Radon Transform

The new function iradon uses the inverse Radon transform to reconstruct images from projection data. In addition, the toolbox has a new function, phantom, that generates test images for use with the Radon and inverse Radon transforms.

Canny Edge Detector

The edge function now supports the Canny edge detection method. This method is better at detecting weak edges and is less sensitive to noise than the other supported edge-detection methods.

Other Enhancements

Neural Network Toolbox 3.0

The Neural Network Toolbox 3.0 provides several important new features, including:

These features are summarized in more detail in the "What's New in 3.0" section of the updated Neural Network Toolbox User's Guide.

Signal Processing Toolbox 4.1

The Signal Processing Toolbox 4.1 introduces a number of improvements, including a new GUI for the Filter Designer. This section outlines the new additions and provides pointers to the complete feature descriptions in the online (PDF) Signal Processing Toolbox User's Guide. The Signal Processing Toolbox readme file also contains a short summary of this information.

To view the readme file, type at the MATLAB command line

Spectral Estimation

The MEM spectral estimation method (previously implemented by the pmem function) has been more accurately renamed the Yule-Walker AR method, and is now implemented by the pyulear function. The pmem function continues to work, but generates the following warning message:

In addition to this name change, the Burg method of spectral estimation has been added to the toolbox via the pburg function.

SPTool Graphical User Interface

Several areas of the SPTool interactive signal processing environment have been enhanced for Version 4.1. See Chapter 5 in the PDF version of the User's Guide for complete instructions on using the new features.

The Filter Designer interface has been revised for improved usability. A signal's spectrum can now be superimposed on any filter response, and a new Measurements panel displays the filter's characteristics as it is being designed.


The Filter Viewer is now capable of displaying multiple filter responses simultaneously, and also benefits from new rulers that can be used for fine measurement on all of the plot types.


The Spectrum Viewer offers two new spectral estimation methods, the fundamental FFT method, and the Burg method. Additionally, the MEM method has been renamed the Yule-Walker AR method. The MEM option has been retained in the Method pop-up menu for backwards compatibility, but will be removed in a future release. Please use Yule AR instead.

General Enhancements

The following enhancements and bug-fixes are also included in the 4.1 release.

Spline Toolbox 2.0

Multivariate Spline Support

All M-files for the construction of splines (in B-form or ppform) have been expanded to handle tensor-product splines in any number of variables. The same is true for most of the M-files that make use of splines. This means that it is now possible to interpolate, approximate, or smooth gridded data in any number of variables and then evaluate, plot, differentiate, or integrate the resulting multivariate spline.

User Interface Enhancements

In the same spirit of keeping the number of commands small (and of object-oriented programming), most of the form-specific commands (such as spval or ppbrk) have been replaced by generic commands (such as fnval or fnbrk). The forms themselves are now structures, but that should be irrelevant to the casual user.

Vector-Valued Spline Enhancements

Since splines in the toolbox can be vector-valued, it is now possible to handle certain surfaces as 3-vector-valued bivariate tensor-product splines.

Additional Enhancements

Further new features include:



[ Previous | Help Desk | Next ]