Version 3.4 (R2006a) Filter Design Toolbox™

This table summarizes what's new and changed in Version 3.4 (R2006a):

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 described here.

Farrow Filters

The toolbox now provides Farrow filter capability with farrow. Using farrow you create filters based on the structure and a few options. After you create your filter, various analysis functions, like cost and fvtool, help you determine your filter's fitness. realizemdl works with Farrow filters to produce blocks for Simulink® models as well.

IIR Polyphase Decimators and Interpolators

Now the toolbox provides design tools for IIR polyphase decimators and interpolators using fdesign.decimator and fdesign.interpolator.

Single-Rate Allpass Discrete-time and Multirate Filters

Eight new filter function enable you to design both single-rate and multirate allpass filters, including wave digital filters.

iirlinphase Method for Designing Linear Phase IIR Filters

The new iirlinphase method added in this release designs quasi-linear phase IIR filters from a halfband filter specification objects. Use the form

hd = design(d,'iirlinphase'); 

when d is a halfband specification object. Returned filter object hd is an IIR filter with linear phase in the passband.

Arbitrary Magnitude and Phase Filter Specification Object

The new arbmagnphase specification object added in this release designs filters where you define the filter magnitude response and the phase response explicitly. Use the form

d = fdesign.arbmagnphase(); 

d is a filter specification object where the magnitude and phase responses are specified as a complex frequency response you provide.

iirlinphase/elliptic Design for Hilbert Transformers

When you use fdesign.hilbert to create a Hilbert transformer specification object, the toolbox provides new ellip and iirlinphase design methods to implement the filter from the specification object as an elliptic filter or as a quasilinear phase IIR filter.

CIC Filters Provide Full Precision and Specify All Options

CIC filters, such as those created by fdesign.decimator and fdesign.interpolator, now supports full precision and three word and fraction length modes for the property FilterInternals.

For more information, refer to the reference pages for fdesign.decimator and fdesign.interpolator in the Filter Design Toolbox™ documentation.

The following example uses the SpecifyPrecision mode. Use a decimation factor of 5 and differential delay equal to 1.

d=fdesign.decimator(5,'cic',1) % M=5, D=1.
 
d =
 
          MultirateType: 'Decimator'                                      
       DecimationFactor: 5                                                
               Response: 'CIC'                                            
          Specification: 'Fp,Ast'                                         
            Description: {'Passband Frequency';'Aliasing Attenuation(dB)'}
      DifferentialDelay: 1                                                
    NormalizedFrequency: true                                             
                  Fpass: 0.01                                             
                  Astop: 60                                               
                                                                          
hm=design(d) % Use the default multisection design method.
 
hm =
 
          FilterStructure: 'Cascaded Integrator-Comb Decimator'
               Arithmetic: 'fixed'
        DifferentialDelay: 1
         NumberOfSections: 2
         DecimationFactor: 5
         PersistentMemory: false
 
    InputWordLength: 16             
    InputFracLength: 15             
                                    
    FilterInternals: 'FullPrecision'
                                    
hm.FilterInternals='specifyPrecision'
 
hm =
 
          FilterStructure: 'Cascaded Integrator-Comb Decimator'
               Arithmetic: 'fixed'
        DifferentialDelay: 1
         NumberOfSections: 2
         DecimationFactor: 5
         PersistentMemory: false
 
       InputWordLength: 16                
       InputFracLength: 15                
                                          
       FilterInternals: 'SpecifyPrecision'
    SectionWordLengths: [21 21 21 21]     
    SectionFracLengths: [15 15 15 15]     
      OutputWordLength: 21                
      OutputFracLength: 15 

Nearest Round Mode for dfilt and mfilt Objects

dfilt and mfilt objects include an additional mode for rounding the results of calculations —nearest. Results round to the nearest representable value in the chosen format. Changing this behavior makes round for dfilt and mfilt objects consistent with round in Simulink.

For more information about rounding, refer to fi in the Fixed Point Toolbox documentation, since the new rounding modes derive from the fi object used by fixed-point filters.

Compatibility Considerations

The new round mode behavior is now matches MATLAB® round as well.

Cost Method

After you create a filter, you can use cost to determine the arithmetic cost when you filter data. cost returns estimates of the add, multiplies, and other operations that occur when you use the filter.

New Online Help for fdesign.structure

With the addition of more fdesign methods and specification objects, the toolbox changes the way you get help about a specific design method—the command-line help is now adaptive, recognizing the object and the design method in the help syntax.

The command-line help adapts to the filter specification object you have and the design method you intend to use, and provides help specifically for that combination of specification and method. For example, if you are designing a highpass filter and plan to use the butter design method, here is the new way to get help:

d = fdesign.highpass('fst,fp,ast,ap',0.45,0.55,1,60))

designmethods(d)


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


butter
cheby1
cheby2
ellip
equiripple
ifir
kaiserwin

help(d,'butter') % New help command syntax with object and method.

DESIGN Design a Butterworth IIR filter.
HD = DESIGN(D, 'butter') designs a Butterworth filter specified by the
FDESIGN object D.
 
HD = DESIGN(..., 'FilterStructure', STRUCTURE) returns a filter with the
structure STRUCTURE.  STRUCTURE is 'df2sos' by default and can be any of
the following.

'df1sos'
'df2sos'
'df1tsos'
'df2tsos'
 
HD = DESIGN(..., 'MatchExactly', MATCH) designs a Butterworth filter
and matches the frequency and magnitude specification for the band
MATCH exactly.  The other band will exceed the specification.  MATCH
can be 'stopband' or 'passband' and is 'stopband' by default.
 
% Example #1 - Compare passband and stopband MatchExactly.
h     = fdesign.highpass('Fst,Fp,Ast,Ap', .7, .9, 60, 1);
Hd    = design(h, 'butter', 'MatchExactly', 'passband');
Hd(2) = design(h, 'butter', 'MatchExactly', 'stopband');

% Compare the passband edges in FVTool.
fvtool(Hd);
axis([.89 .91 -2 0]);

Suppose you decide to use an equiripple design method instead. Again, the help command with the specification object d and the method equiripple provides help for that combination.

help (d,'equiripple') % New help command syntax with object and method.

DESIGN Design a Equiripple FIR filter.
HD = DESIGN(D, 'equiripple') designs a Equiripple filter specified by the
FDESIGN object D.
 
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(..., '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.
 
% Example #1 - Design a lowpass Equiripple filter in a transposed 
structure.
       h  = fdesign.highpass('Fst,Fp,Ast,Ap');
       Hd = design(h, 'equiripple', 'FilterStructure', 'dffirt');

Notice that the content is different for the different methods. This makes it easier for you to know the options that apply to any combination of specification object and design method.

Info Method Updated to Include Filter Measurements

When you request information about a filter, the information now includes measurements of the filter characteristics based on the filter specifications. These are the same results that measure provides.

Measurement Display Changes

measure now shows more information and more specific information for any referred object. Now the display provides full text descriptions of the measured values, such as Sampling Frequency (instead of Fs) and Stopband Edge instead of Fstop. You should find this a more clear presentation of the filter information.

realizemdl Creates Additional Multirate Polyphase Filters

From the command line, you can use realizemdl to create realizations for firdecim, firtdecim, firinterp, and linearinterp filters. You can also apply realizemdl to the new IIR single-rate and multirate filters:

Filter Design Object Now Called Filter Specification Object in the Documentation

When you use fdesign.response, MATLAB returns an object, usually called d, that contains the specifications for a filter design. In the documentation, the returned object is now called a specification object.

For clarity, we renamed the filter design object to filter specification object, because the object specifies the filter specifications, such as the magnitude response parameters. The specification object is not a filter, but an intermediate step in the filter design process that uses fdesign.response and design.

  


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