Main Content


Allpass filter


hd = dfilt.allpass(c)


hd = dfilt.allpass(c) constructs an allpass filter with the minimum number of multipliers from the elements in vector c. To be valid, c must contain one, two, three, or four real elements. The number of elements in c determines the order of the filter. For example, c with two elements creates a second-order filter and c with four elements creates a fourth-order filter.

The transfer function for the allpass filter is defined by


given the coefficients in c.

To construct a cascade of allpass filter objects, use dfilt.cascadeallpass. For more information about creating cascades of allpass filters, refer to dfilt.cascadeallpass.


The following table provides a list of all the properties associated with an allpass dfilt object.

Property Name

Brief Description


Contains the coefficients for the allpass filter object


Describes the signal flow for the filter object, including all of the active elements that perform operations during filtering — gains, delays, sums, products, and input/output.


Specifies whether to reset the filter states and memory before each filtering operation. Lets you decide whether your filter retains states from previous filtering runs. False is the default setting.


This property contains the filter states before, during, and after filter operations. States act as filter memory between filtering runs or sessions. They also provide linkage between the sections of a multisection filter, such as a cascade filter. For details, refer to filtstates in Signal Processing Toolbox™ documentation or in the Help system.


This example constructs and displays the information about a second-order allpass filter that uses the minimum number of multipliers.

c = [1.5, 0.7];
% Create a second-order dfilt object.
hd = dfilt.allpass(c);
Introduced in R2011a