This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Equiripple single-rate FIR filter from specification object


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


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,
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.


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.



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.


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');
% Print out the filter structure- - direct-form FIR
% 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);

Introduced in R2009a

Was this topic helpful?