Quantcast

Documentation Center

  • Trial Software
  • Product Updates

equiripple

Equiripple single-rate FIR filter from specification object

Syntax

hd = design(d,'equiripple')
hd = design(d,'equiripple',designoption,value,designoption,
...value,...)

Description

hd = design(d,'equiripple') designs an equiripple FIR digital filter using the specifications supplied in the object d. Equiripple filter designs minimize the maximum ripple in the passbands and stopbands. hd is a dfilt object

hd = design(d,'equiripple',designoption,value,designoption,
...value,...)
returns an equiripple FIR filter where you specify design options as input arguments.

To determine the available design options, use designopts with the specification object and the design method as input arguments as shown.

designopts(d,'method')

For complete help about using equiripple, refer to the command line help system. For example, to get specific information about using equiripple with d, the specification object, enter the following at the MATLAB prompt.

help(d,'equiripple')

Examples

First create a lowpass equiripple filter. Assume the data is sampled at 10,000 Hertz. The passband frequency is 500 Hertz with a stopband frequency of 700 Hz. The desired passband ripple is 1 dB with 60 dB of stopband attenuation.

Fs=10000;
Hd=fdesign.lowpass('Fp,Fst,Ap,Ast',500,700,1,60,10000);
d=design(Hd,'equiripple');
fvtool(d);

Displaying the filter in FVTool shows the equiripple nature of the filter.

The next example designs a lowpass equiripple filter with a direct-form transposed structure and density factor of 20 by specifying the FilterStructure and DensityFactor properties.

To set the design options for the filter, use the designopts method to obtain a structure array containing the current design options.

Change the fields of the structure array to specify your design options and invoke the design method with the structure array as an input argument.

% Use the same filter design as the previous example
Fs = 10000;
Hd = fdesign.lowpass('Fp,Fst,Ap,Ast',500,700,1,60,10000);
% Return the design options for the filter as a struct array
opts = designopts(Hd,'equiripple');
fieldnames(opts)
% Print out the filter structure- - direct-form FIR
opts.FilterStructure
% Change the filter structure to direct-form FIR transposed
opts.FilterStructure = 'dffirt';
% Change the filter density factor to 20
opts.DensityFactor = 20;
% Design the filter
d = design(Hd,'equiripple',opts)      

An alternate way to design the preceding filter without using the structure array is:

Fs = 10000;
Hd = fdesign.lowpass('Fp,Fst,Ap,Ast',500,700,1,60,10000);
d = design(Hd,'equiripple','FilterStructure','dffirt','DensityFactor',20);

See Also

|

Was this topic helpful?