Products & Services Solutions Academia Support User Community Company

Learn more about Filter Design Toolbox   

Version 4.5 (R2009a) Filter Design Toolbox

This table summarizes what is new and changed in Version 4.5 (R2009a):

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

Current product documentation

New features and changes introduced in this version are described here.

Fdesign Support for Comb Filters

fdesign now supports IIR peaking and notching comb filters. You can use comb filters to enhance (peaking) or eliminate (notching) energy in the input data at a series of harmonically-related frequencies.

To construct comb filters use the fdesign.comb function and specify the Combtype property as 'notch' or 'peak'.

Maximum Phase Option Added for Equiripple Designs

Equiripple filter designs now include a maximum phase option. You can construct maximum-phase equiripple filter using the fdesign.lowpass, fdesign.bandpass, and fdesign.bandstop filter designers.

The impulse response of a maximum-phase filter builds more slowly than any other filter of equal length and magnitude response. All the zeros of a maximum-phase filter lie on or outside the unit circle. Maximum-phase filters are useful in a number of applications including channel equalization. The following example demonstrates how to construct a maximum-phase equiripple filter using the lowpass filter designer:

d=fdesign.lowpass; %Construct a lowpass filter object using the defaults.
Hd=design(d,'equiripple','maxphase',true); %Implement the filter.
zplane(Hd) %Note all the zeros are on or outside the unit circle.
fvtool(Hd,'analysis','impulse') %Plot the impulse response.

Changes in SOS IIR Design Defaults

Changes have been made to the default specifications invoked by fdesign when constructing second-order sections (SOS) IIR filters.

Previous to the R2009a release, lowpass, highpass, bandpass, or bandstop SOS IIR filters used peak magnitude response scaling (Linf) by default.

In R2009a no scaling is applied by default to lowpass, highpass, bandpass, or bandstop SOS IIR filters.

Compatibility Considerations

Section-order sections IIR filters generated in R2009a will be scaled differently than in previous releases. Users can recreate their pre-R2009a default designs by setting the 'SOSScaleNorm' property to 'Linf'. The following example illustrates a lowpass Butterworth filter design in R2008b and its equivalent in R2009a.

Code in R2008b:

d=fdesign.lowpass; %lowpass filter designer
Hd=design(d,'butter'); %Butterworth filter with default (Linf) scaling

Equivalent code in R2009a:

d=fdesign.lowpass; %lowpass filter designer
Hd=design(d,'butter','sosscalenorm','linf'); 

Changes in FIR Equiripple Design Defaults

In R2009a, the firpm function is used by default to construct the following FIR equiripple filters:

fdesign.lowpass('Fp,Fst,Ap,Ast')
fdesign.lowpass('N,Fp,Fst')
fdesign.highpass('Fst,Fp,Ast,Ap')
fdesign.highpass('N,Fst,Fp')
fdesign.bandpass('Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2')
fdesign.bandpass('N,Fst1,Fp1,Fp2,Fst2')
fdesign.bandstop('Fp1,Fst1,Fst2,Fp2,Ap1,Ast,Ap2')
fdesign.bandstop('N,Fp1,Fst1,Fst2,Fp2')
fdesign.arbmag('N,F,A') 
fdesign.arbmag('N,B,F,A')
fdesign.differentiator(‘N')
fdesign.differentiator('N,Fp,Fst')
fdesign.hilbert('N,TW')

In pre-R2009a releases, the firgr function was used to construct the FIR equiripple filters in the previous code samples.

Beginning with R2009a, users of the Signal Processing Toolbox™ can use fdesign and design to specify and design filters. However, only concurrent users of the Filter Design Toolbox have access to the enhanced capabilities of firgr.

The change in the default algorithm for the specified FIR equiripple filter designs facilitates code sharing between Signal Processing Toolbox users and concurrent users of the Filter Design Toolbox.

Filter Design Toolbox users can access a new UniformGrid property, which allows them to design equiripple filters with either the firpm or firgr functions. Setting the UniformGrid property to false calls the firgr function to construct the filter. Leaving the UniformGrid property unspecified, or setting it to true, calls the firpm function.

Compatibility Considerations

Code used to generate FIR equiripple filters in pre-R2009a releases may produce filters with different orders or coefficients in R2009a. Users can recreate their pre-R2009a default designs in the current release by explicitly setting the UniformGrid property to false. The following examples illustrate equivalent filter designs in R2008b and R2009a using the UniformGrid property.

Code in R2008b:

d=fdesign.lowpass; 
Hd=design(d,'equiripple');

Equivalent code in R2009a:

d=fdesign.lowpass;
Hd=design(d,'equiripple','UniformGrid',false);

There are two exceptions in equiripple filter design where fdesign sets the UniformGrid property internally:

If you attempt to override the internal settings to these exceptions, you will get a warning message.

New Quantization Rounding Modes Added for Realizemdl, Block, and Filterbuilder

The rounding modes for the realizemdl method, the block method, and filterbuilder GUI-based wizard now include round and convergent modes.

The rounding mode determines how the filter quantizes numeric values that lie between representable values for the data format (word and fraction lengths).

When you set the rounding mode to convergent, values round to the closest representable integer, and ties round to the nearest even stored integer. This approach is the least biased of the methods available in the toolbox.

When the rounding mode is set to round, values round to the closest representable integer, negative ties round toward negative infinity, and positive ties round toward positive infinity.

  


Free Early Verification Kit

Learn how to apply early verification to your development process through these technical resources.

How much time do you spend on testing to ensure implementation meets system-level requirements?

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