Multistage filter from specification object


hd = design(d,'multistage')
hd = design(...,'filterstructure',structure)
hd = design(...,'nstages',nstages)
hd = design(...,'usehalfbands',hb)


hd = design(d,'multistage') designs a multistage filter whose response you specified by the filter specification object d.

hd = design(...,'filterstructure',structure) returns a filter with the structure specified by structure. Input argument structure is dffir by default and can also be one of the following strings.

structure String

Valid with These Responses


Lowpass or Nyquist response


Lowpass or Nyquist response


Lowpass or Nyquist response


Default lowpass only

Multistage design applies to the default lowpass filter specification object and to decimators and interpolators that use either lowpass or Nyquist responses.

hd = design(...,'nstages',nstages) specifies nstages, the number of stages to be used in the design. nstages must be an integer or the string auto. To allow the design algorithm to use the optimal number of stages while minimizing the cost of using the resulting filter, nstages is auto by default. When you specify an integer for nstages, the design algorithm minimizes the cost for the number of stages you specify.

hd = design(...,'usehalfbands',hb) uses halfband filters when you set hb to true. The default value for hb is false.

    Note:   To see a list of the design methods available for your filter, use designmethods(hd).


Design a minimum-order, multistage Nyquist interpolator.

l = 15;   % Interpolation factor. Also the Nyquist band.
tw = 0.05; % Normalized transition width
ast = 40;   % Minimum stopband attenuation in dB
d = fdesign.interpolator(l,'nyquist',l,'tw,ast',tw,ast);
hm = design(d,'multistage');

Design a multistage lowpass interpolator with an interpolation factor of 8.

m = 8; % Interpolation factor;
d = fdesign.interpolator(m,'lowpass');
% Use halfband filters if possible.
hm = design(d,'multistage','Usehalfbands',true); 

This figure shows the response for hm.

See Also


Introduced in R2011a

Was this topic helpful?