| Version 3.4 (R2006a) Filter Design Toolbox™ Release Notes | ![]() |
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 | Yes | Printable Release Notes: PDF |
New features and changes introduced in this version are described here.
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.
Now the toolbox provides design tools for IIR polyphase decimators and interpolators using fdesign.decimator and fdesign.interpolator.
Eight new filter function enable you to design both single-rate and multirate allpass filters, including wave digital 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.
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.
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, 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.
FullPrecision mode automatically sets the CIC filter word lengths and fraction lengths to maintain the maximum precision in the filtering process. (new)
MinWordLengths mode lets you set the output word length for the filter.
SpecifyWordLengths mode lets you specify the word lengths for all sections of the filter and for the output. But you cannot set the fraction lengths.
SpecifyPrecision mode lets you set all fraction lengths and word lengths for the filter sections and for the output. (new)
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
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.
The new round mode behavior is now matches MATLAB® round as well.
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.
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.
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.
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.
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:
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.
![]() | Version 4.0 (R2006b) Filter Design Toolbox™ | Version 3.3 (R14SP3) Filter Design Toolbox™ | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |