| Version 3.3 (R14SP3) Filter Design Toolbox™ Release Notes | ![]() |
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 | Yes | Printable Release Notes: |
New features and changes introduced in this version are
New Demo Programs to Introduce fdesign Filter Design Approach
Fdesign Now Provides Arbitrary Magnitude Filter Response Design
Fdesign Now Provides Hilbert and Differentiator Filter Response Design
Fdesign Objects Now Use a Default Design Method When Available
butter and ellip Half-Band Design Methods Added for IIR Fdesign Objects
With Fdesign Objects, New Filter Specification Mask View Option
Fdesign Object Display No Longer Shows Fs When the Design Object Uses Normalized Frequency
For cicinterp Objects, Changed the Order of the Properties in the Display
block Method for mfilt.firfracdecim Filter Objects No Longer Works
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.
Choose the appropriate fdesign.response method to create a filter specifications object.
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.
Use designmethods to find out which design algorithms apply to your specifications object. Select the design method to use.
Use designopts with your design object to review the input arguments for your specifications object and your selected design method.
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 a filter from the specifications using either a default method or a specified method. | |
Find out which design methods apply to your current design object, including dependence on the specifications. | |
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');
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);
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.
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.
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.
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.
For designing IIR halfband filters with fdesign and design, we added both butter and ellip to the available design methods.
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
The function limitcycle is now available to test your fixed-point IIR filters for the limit cycle behavior.
To let you convert your filters to use normalized frequency specifications, rather than absolute frequency, the toolbox adds normalizefreq for filter objects.
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.
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.
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.

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.
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.
The filter property Fcutoff is now called F3dB to be more descriptive.
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.
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.
The following methods are now obsolete.
As you see in the table, new methods replace them, providing the same or expanded design capability.
Obsolete Method | Replacement Method |
|---|---|
fdesign.decim | |
fdesign.interp | |
fdesign.src |
The obsolete methods continue to work, but they may be removed in the future.
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)
Programs that use the block method for firfracdecim require that you convert your mfilt.firfracdecim multirate filter to firsrc form using the convert method.
![]() | Version 3.4 (R2006a) Filter Design Toolbox™ | Version 3.2 (R14SP2) Filter Design Toolbox™ | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |