| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Filter Design Toolbox |
| Contents | Index |
| Learn more about Filter Design Toolbox |
hd = dfilt.cascadeallpass(c1,c2,...)
hd = dfilt.cascadeallpass(c1,c2,...) constructs a cascade of allpass filters, each of which uses the minimum number of multipliers, given the filter coefficients provided in c1, c2, and so on.
Each vector c represents one section in the cascade filter. c vectors must contain one, two, three, or four elements as the filter coefficients for each section. As a result of the design algorithm, each section is a dfilt.allpass structure whose coefficients are given in the matching c vector, such as the c1 vector contains the coefficients for the first stage.
States for each section are shared between sections.
Vectors c do not have to be the same length. You can combine various length vectors in the input arguments. For example, you can cascade fourth-order sections with second-order sections, or first-order sections.
For more information about the vectors ci and about the transfer function of each section, refer to dfilt.allpass.
Generally, you do not construct these allpass cascade filters directly. Instead, they result from the design process for an IIR filter. Refer to the first example in Examples for more about using dfilt.cascadeallpass to design an IIR filter.
In the next table, the row entries are the filter properties and a brief description of each property.
Property Name | Brief Description |
|---|---|
AllpassCoefficients | Contains the coefficients for the allpass filter object |
FilterStructure | 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. |
PersistentMemory | 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. |
States | 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. |
Two examples show how dfilt.cascadeallpass works in very different applications — designing a halfband IIR filter and constructing an allpass cascade of dfilt objects.
First, design the IIR halfband filter using cascaded allpass filters. Each branch of the parallel cascade construction is a cascadeallpass filter object.
tw = 100; % Transition width of filter to be designed, 100 Hz.
ast = 80; % Stopband attenuation of filter to be designed, 80dB.
fs = 2000; % Sampling frequency of signal to be filtered.
% Store halfband design specs in the specifications object d.
d = fdesign.halfband('tw,ast',tw,ast,fs);Now perform the actual filter design. hd contains two dfilt.cascadeallpass objects.
hd = design(d,'ellip','filterstructure','cascadeallpass');
% Get summary information about one dfilt.cascadeallpass stage.
hd.Stage(1).Stage(1)
ans =
FilterStructure: 'Cascade Minimum-Multiplier Allpass'
AllpassCoefficients: Section1: [0 0.0602973909571244]
Section2: [0 0.412590720361056]
Section3: [0 0.772715653742923]
PersistentMemory: false
This second example constructs a dfilt.cascadeallpass filter object directly given allpass coefficients for the input vectors.
section1 = 0.8; section2 = [1.2,0.7]; section3 = [1.3,0.9]; hd = dfilt.cascadeallpass(section1,section2,section3); info(hd) % Get information about the filter. Discrete-Time IIR Filter (real) ------------------------------- Filter Structure : Cascade Minimum-Multiplier Allpass Number of Multipliers : 5 Stable : Yes Linear Phase : No fvtool(hd) % Visualize the filter.

dfilt, dfilt.allpass, dfilt.cascadewdfallpass, mfilt.iirdecim, mfilt.iirinterp
![]() | dfilt.cascade | dfilt.cascadewdfallpass | ![]() |

Learn how to apply early verification to your development process through these technical resources.
How much time do you spend on testing to ensure implementation meets system-level requirements?
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |