Version 3.2 (R14SP2) Filter Design Toolbox

This table summarizes what's new in Version 3.2 (R14SP2):

New Features and Changes

Version Compatibility Considerations

Fixed Bugs and Known Problems

Related Documentation at Web Site

Yes
Details below

Yes
Summary

Bug Reports

Printable Release Notes:

PDF

New features and changes introduced in this version are

Improved Fixed-Point Support for FIR Filters

Four FIR filters now support fixed-point processing using the same properties or attributes and methods (mostly) that the fixed-point multirate filters use.

With the improved filter objects, the properties for your discrete-time filters now look the same as your multirate filters. Unifying the look and feel makes working with the full range of filters in the toolbox easier and more clear.

Additionally, making the switch from floating-point to fixed-point by setting Arithmetic to fixed creates a fixed-point version of your floating-point filter that uses full precision arithmetic internally. The result—a fixed-point filter that most closely matches to your floating-point prototype. If your design cannot support the resources for this fixed-point implementation, you can start to adjust the fixed-point properties as you need.

To continue to use your existing fixed-point FIR filters, you have to upgrade them to the new format. The toolbox includes a new utility for making the transition—legacyfixptfir. Note that this utility is not covered in the Filter Design Toolbox documentation. You can get help by entering

help legacyfixptfir 

at the MATLAB prompt.

For information about converting your existing fixed-point FIR filters to the new objects, refer to Upgrading Your Existing Fixed-Point FIR Filters to the New Properties.

Fixed-Point Linear and Hold Interpolators

Both mfilt.holdinterp and mfilt.linearinterp let you use fixed-point arithmetic. After you create the interpolator object, you can switch the setting for the Arithmetic property to fixed to use fixed-point interpolation.

Both also support single-precision floating-point arithmetic.

realizemdl Creates CIC Filters

You can use realizemdl to construct CIC filters from basic blocks for processing signals. If you construct a CIC decimator filter, as shown in this example, realizemdl can make an atomic subsystem CIC filter block in the Simulink product for you.

hm=mfilt.cicdecim(4);   realizemdl(hm) 

A new Simulink model window opens and you see a filter block. Double-clicking on the new block shows you the CIC filter subsystem.

Context-Sensitive Help for FDATool Returns

FDATool now provides help for options on the quantization, multirate filter design, and frequency transformation panels. Access the new help feature either by right-clicking on an option and selecting What's This from the context menu, or clicking the What's This help icon on the tool bar.

Second-Order Section Filter View Options Available from the Command Line

In Filter Visualization Tool (FVTool), you can view second-order section filters as "individual sections," "cumulative sections," or as sections that you define. Now this functionality is available from the MATLAB command line, by using the sosViewSettings property of the FVTool object. In previous releases these view options were available only as options in the SOS View Settings dialog box in FVTool.

Access the FVTool object properties by launching FVTool with a filter object and including a left-hand side output argument:

handle = fvtool(hd) 

handle now contains the FVTool properties, similar to the following listing — you use set and get to manipulate the property values.

handle=fvtool(hd)
 
handle =
 
     1

set(handle.sosviewsettings,'view')

ans = 

    'Complete'
    'Individual'
    'Cumulative'
    'UserDefined'

set(handle.sosviewsettings,'view','individual')

In SOSViewSettings, the options are the same, with the same meaning, that you find in View > SOS View Settings in FDATool.

For more information about the fvtool properties, refer to fvtool in the Signal Processing Toolbox™ documentation or in the online Help system.

Function fdesign Specifies Filter Response with Specified Structure

You can use fdesign.response to specify a filter response and specify the filter structure to use during construction.

Upgrading Your Existing Fixed-Point FIR Filters to the New Properties

There is a utility named legacyfixptfir to ensure backward compatibility of your existing scripts and a function update to help you migrate to the new FIR filters. legacyfixptfir switches the preferences for your session between pre- and post-Filter Design Toolbox 3.2 FIR filters.

Here is an example of the process of converting your old FIR filters to the new form in this version of the toolbox.

Begin with an existing direct-form FIR filter h that you constructed with

h = dfilt.dffir 

in an earlier version of the toolbox. First, use legacyfixptfir to retrieve h in the old format. Then convert h to the new form.

legacyfixptfir(true) % To get the old form of h. 
h.Arithmetic='fixed'
 
h =
 
     FilterStructure: 'Direct-Form FIR'
          Arithmetic: 'fixed'
           Numerator: 1
    PersistentMemory: false
 
     CoeffWordLength: 16             
      CoeffAutoScale: true           
              Signed: true           
                                     
     InputWordLength: 16             
     InputFracLength: 15             
                                     
    OutputWordLength: 16             
          OutputMode: 'AvoidOverflow'
                                     
         ProductMode: 'FullPrecision'
                                     
           AccumMode: 'KeepMSB'      
     AccumWordLength: 40             
       CastBeforeSum: true           
                                     
           RoundMode: 'convergent'   
        OverflowMode: 'wrap'         
                                     
update(h) % Convert h to the new properties.
h
 
h =
 
     FilterStructure: 'Direct-Form FIR'
          Arithmetic: 'fixed'
           Numerator: 1
    PersistentMemory: false
     CoeffWordLength: 16                
      CoeffAutoScale: true              
              Signed: true              
                                        
     InputWordLength: 16                
     InputFracLength: 15                
     FilterInternals: 'SpecifyPrecision'
    OutputWordLength: 16                
    OutputFracLength: 13                
   ProductWordLength: 32                
   ProductFracLength: 29                
                                        
     AccumWordLength: 40                
     AccumFracLength: 29                
                                        
           RoundMode: 'convergent'      
        OverflowMode: 'wrap' 

Note the changes in properties. The filter performs the same way but the attributes are now updated to the newest form.

Filter Weights Have Been Removed from the Specifications in fdesign

The weights applied to the filter magnitude response are now design options. They are no longer properties of the fdesign.typeobject. To set them, pass them as property name/property value (PV) pairs to the appropriate filter design method, as shown in this example.

h = fdesign.lowpass('N,Fp,Fst',30) % Was 'N,Fp,Fst,Wp,Wst'. 
                                    % Removed Wp and Wst.
hd = equiripple(h, 'Wpass', 3, 'Wstop', 25); % Specify the 
                                             % weights here.
hd(2) = equiripple(h, 'Wpass', 3, 'Wstop', 1);
fvtool(hd)
  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS