Version 3.3 (R14SP3) Filter Design Toolbox™

This table summarizes what's new in Version 3.3 (R14SP3):

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

New Approach and Methods for Designing Filters

To unify and take advantage of the object-based nature of the filters in the toolbox, this release introduces a new design approach for filters using filter design objects and new design methods. In the new process, your filter design tasks begin with identifying the filter response you need for your application.

Here is the new process.

  1. Determine the response type for your filter.

  2. Choose the appropriate fdesign.response method to create a filter specifications object.

  3. Select the specifications to use to define your filter object. Here you can select minimum order designs, IIR or FIR designs, or designs that specify the filter order as well as the frequency and magnitude specifications, among many choices.

  4. Use designmethods to find out which design algorithms apply to your specifications object. Select the design method to use.

  5. Use designopts with your design object to review the input arguments for your specifications object and your selected design method.

  6. Now design your filter using your filter design object, the design method you chose, and the input arguments you require.

The result of this process is a filter object that meets your requirements in response shape or form and designed by the method you selected.

Based on three design methods and a new help method, you now design filters starting with the desired response and moving to the final filter. These new methods are:

Method

Description

design

Design a filter from the specifications using either a default method or a specified method.

designmethods

Find out which design methods apply to your current design object, including dependence on the specifications.

designopts

Find out which input arguments apply to your design method and design object.

Here is a short example that demonstrates the new design flow. This fdesign.lowpass syntax uses the default response specification 'Fp,Fst,Ap,Ast', where Fp is the passband edge, Fst is the stopband edge, Ap specifies the ripple in the passband, and Ast defines the desired stopband attenuation.

d = fdesign.lowpass % Select the response.
designmethods(d) % Determine the design methods available.
hd = design(d) % Design the filter using the default method (equiripple).
 
d =
 
               Response: 'Lowpass'      
          Specification: 'Fp,Fst,Ap,Ast'
            Description: {4x1 cell}     
    NormalizedFrequency: true           
                  Fpass: 0.45           
                  Fstop: 0.55           
                  Apass: 1              
                  Astop: 60             
                                        


Design Methods for class fdesign.lowpass (Fp,Fst,Ap,Ast):


butter
cheby1
cheby2
ellip
equiripple
ifir
kaiserwin
multistage

 
hd =
 
     FilterStructure: 'Direct-Form FIR'
          Arithmetic: 'double'         
           Numerator: [1x43 double]    
    PersistentMemory: false            

For more information about a particular design method, use the new help capability with your specification object and the design method as input arguments to help.

This help example gets more information about using the equiripple method to design a lowpass filter.

help(d,'equiripple') % Get help on using equiripple with your lowpass filter.

 DESIGN Design a Equiripple FIR filter.
    HD = DESIGN(D, 'equiripple') designs a Equiripple filter specified by the
    FDESIGN object H.
 
    HD = DESIGN(..., 'FilterStructure', STRUCTURE) returns a filter with the
    structure STRUCTURE.  STRUCTURE is 'dffir' by default and can be any of
    the following.

    'dffir'
    'dffirt'
    'dfsymfir'
    'fftfir'
 
    HD = DESIGN(..., 'DensityFactor', DENS) specifies the grid density DENS
    used in the optimization.  DENS is 16 by default.
 
    HD = DESIGN(..., 'MinPhase', MPHASE) designs a minimum-phase filter
    when MPHASE is TRUE.  MPHASE is FALSE by default.
 
    HD = DESIGN(..., 'MinOrder', 'any') designs a minimum-order filter.
    The order of the filter can be even or odd. This is the default.

    HD = DESIGN(..., 'MinOrder', 'even') designs an minimum-even-order filter.

    HD = DESIGN(..., 'MinOrder', 'odd') designs an minimum-odd-order filter.
 
    HD = DESIGN(..., 'StopbandShape', SHAPE) designs a filter whose stopband
    has the shape defined by SHAPE.  SHAPE can be 'flat', '1/f', or 'linear'.
    SHAPE is 'flat' by default.

    HD = DESIGN(..., 'StopbandDecay', DECAY) specifies the decay to use when
    'StopbandShape' is not set to 'flat'.  When the shape is '1/f' this
    specifies the power that 1/f is raised.  When shaped is 'linear' this
    specifies the slope of the stopband in dB/rad/s.
 
    % Example #1 - Design a lowpass Equiripple filter in a transposed structure.
       h  = fdesign.lowpass('Fp,Fst,Ap,Ast');
       Hd = design(h, 'equiripple', 'FilterStructure', 'dffirt');

New Way to Get Help for Filter Designs

Getting help about filter design and filter design methods is now dynamic and depends on the design object and method. When you want help about designing a filter, use help with both the filter specification object and the method to use to design the filter. Here is an example.

d = fdesign.bandpass(0.25,0.35,0.55,0.65,50,0.05,50)
designmethods(d)
 
d =
 
               Response: 'Bandpass'                      
          Specification: 'Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2'
            Description: {7x1 cell}                      
    NormalizedFrequency: true                            
                 Fstop1: 0.25                            
                 Fpass1: 0.35                            
                 Fpass2: 0.55                            
                 Fstop2: 0.65                            
                 Astop1: 50                              
                  Apass: 0.05                            
                 Astop2: 50                              
                                                         


Design Methods for class fdesign.bandpass (Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2):

butter
cheby1
cheby2
ellip
equiripple
kaiserwin

help(d,'kaiserwin')
 DESIGN Design a Kaiser Windowed FIR filter.
    HD = DESIGN(D, 'kaiserwin') designs a Kaiser Windowed filter 
    specified by the FDESIGN object H.
 
    HD = DESIGN(..., 'FilterStructure', STRUCTURE) returns a filter with the
    structure STRUCTURE.  STRUCTURE is 'dffir' by default and can be any of
    the following.

    'dffir'
    'dffirt'
    'dfsymfir'
    'dfasymfir'
    'fftfir'
 
    HD = DESIGN(..., 'ScalePassband', SCALE) scales the first passband so
    that it has a magnitude of 0 dB after windowing when SCALE is TRUE.
    SCALE is TRUE by default.
 
    % Example #1 - Design a bandpass Kaiser Windowed FIR filter.
       h  = fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2');
       Hd = design(h, 'kaiserwin', 'ScalePassband', false);

New Demo Programs to Introduce fdesign Filter Design Approach

This release adds many new tutorial demos that introduce you to using fdesign for your filter design tasks. To access the new demos, enter

demos

at the Command prompt. When the Help system opens, select Filter Design > Tutorial Demos from the Help Navigator tree in the left pane.

Alternatively, use the demo command with input arguments:

demo('toolbox','filter design') 

to open the Demos directory showing the Filter Design Toolbox™ demos.

Fdesign Now Provides Arbitrary Magnitude Filter Response Design

The designs available for fdesign now include arbitrary magnitude response filters. You use fdesign.arbmag with input arguments to specify a vector of frequency points and response values at those points to define a custom filter response curve.

Fdesign Now Provides Hilbert and Differentiator Filter Response Design

The designs available for fdesign now include differentiator and Hilbert magnitude response filters. You use fdesign.differentiator or fdesign.hilbert with input arguments to specify a differentiator or Hilbert filter design object.

Fdesign Objects Now Use a Default Design Method When Available

design now applies a default design method if you do not provide the design method as an input. Usually the default method is equiripple for FIR filters and ellip for IIR filters.

butter and ellip Half-Band Design Methods Added for IIR Fdesign Objects

For designing IIR halfband filters with fdesign and design, we added both butter and ellip to the available design methods.

Added multistage Filter Design Method

In addition to single-stage filters, you can now design multistage filters from lowpass filter design objects by applying the multistage design method to the object.

For example, after you create a lowpass filter object, use multistage to create the filter as a multistage filter.

d=fdesign.lowpass(0.25,0.35,0.05,50);
hd = design(d,'multistage')
 
hd =
 
     FilterStructure: Cascade
            Stage(1): Direct-Form FIR Polyphase Decimator
            Stage(2): Direct-Form FIR Polyphase Decimator
            Stage(3): Direct-Form FIR Polyphase Interpolator
            Stage(4): Direct-Form FIR Polyphase Interpolator
    PersistentMemory: false

limitcycle Method Restored to the Toolbox

The function limitcycle is now available to test your fixed-point IIR filters for the limit cycle behavior.

normalizefreq Method Added to the Toolbox

To let you convert your filters to use normalized frequency specifications, rather than absolute frequency, the toolbox adds normalizefreq for filter objects.

New measure Method for Filters

A new method, measure, lets you measure the response of filters after you design them. measure returns the response values at a variety of frequencies in the filter magnitude response.

With Fdesign Objects, New Passband Zoom View Option

Selecting the View > Passband option from the menu bar automatically zooms the display to focus on the passband for the filter shown. Using an fdesign object to design your filter enables the Passband Zoom option in FVTool.

With Fdesign Objects, New Filter Specification Mask View Option

When you use FVTool or FDATool to display a filter response for a filter you design with an fdesign object, you see new masks that outline the filter passband, stopband, and transition regions as specified by your filter object.

The following graphic shows the mask for a lowpass filter. To display the specification mask, use a filter design object to construct your filter, and then display the filter in FVTool. Select View > Specification Mask from the menu bar in FVTool to see the specification mask.

Fdesign Object Display No Longer Shows Fs When the Design Object Uses Normalized Frequency

In this release, the default filter display no longer shows the sampling frequency Fs when you specify the filter to use normalized frequency instead of absolute frequency.

For cicinterp Objects, Changed the Order of the Properties in the Display

Reordered the listing of the filter properties in the default display of CIC filters. The new arrangement better matches the display organization for single rate filters.

For IIR Design Objects, Property Fcutoff is Now Called F3dB

The filter property Fcutoff is now called F3dB to be more descriptive.

Changes to the Displays in MATLAB® for Filters

Some of the displays for filter objects, showing the properties and values, are different in this release. Some property names have changed, and some properties reordered to make the displays more logically grouped and consistent across the various objects. Among the changed displays are the CIC object property arrangements and the names of some properties for bandpass, bandstop, and general IIR filter objects.

Compatibility Considerations

If you depend on the displays in your code or scripts or programs, be sure to modify your work to accommodate the new display names and arrangements.

Obsolete Functions and Methods in This Release

The following methods are now obsolete.

Compatibility Considerations

As you see in the table, new methods replace them, providing the same or expanded design capability.

Obsolete Method

Replacement Method

fdesign.decim

fdesign.decimator

fdesign.interp

fdesign.interpolator

fdesign.src

fdesign.rsrc

The obsolete methods continue to work, but they may be removed in the future.

block Method for mfilt.firfracdecim Filter Objects No Longer Works

Changes in the FIR Sample Rate Change block in the Signal Processing Blockset™ software required that the block method for firfracdecim filters be made obsolete. You cannot use block to create a Simulink® block from an firfracdecim filter object. To create a block from the firfracdecim object, convert the object to an firsrc object, and then use block.

hm = mfilt.firfracdecim(4,7); convert(hm,'firsrc') block(hm) 

Compatibility Considerations

Programs that use the block method for firfracdecim require that you convert your mfilt.firfracdecim multirate filter to firsrc form using the convert method.

  


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