www.gusucode.com > signal 工具箱matlab源码程序 > signal/@dfilt/@cascadeallpass/cascadeallpass.m

    function this = cascadeallpass(varargin)
%CASCADEALLPASS  Cascade of minimum-multiplier allpass structures.
%   Hd = DFILT.CASCADEALLPASS(C1,C2,...) constructs a cascade of
%   minimum-multiplier allpass structures given the allpass coefficients in
%   vectors C1, C2, etc.
%
%   Each vector Ci represents one section of the cascade and must be a
%   vector of at most length 4. Each section is basically a DFILT.ALLPASS
%   filter with coefficients given by the corresponding Ci vector, but the
%   states are shared between sections.
%
%   Note that the vectors Ci do not have to be of the same length. For
%   example it is possible to cascade several fourth-order sections with
%   second-order, or first-order sections.
%
%   See the help for DFILT.ALLPASS for more information about the vectors
%   Ci and the transfer function of each section.
%
%   Note that one usually does not construct these filters directly.
%   Instead, they are used as part of the result of a design of an IIR
%   filter. See example below for more on this.
%
%   % Example #1: Design an IIR halfband filter that uses cascade allpass
%   % filters, each branch of the parallel connection is a cascade allpass
%   % filter.
%   TW = 100;  % Transition width of filter to be designed, 100 Hz
%   Ast = 80;  % Stopband attenuation of filter to be designed, 80 db
%   Fs = 2000; % Sampling frequency of signal to be filtered
%   f = fdesign.halfband('TW,Ast',TW,Ast,Fs); % Store halfband design specs
%   % Now perform actual design. Hd contains two dfilt.cascadeallpass
%   Hd = design(f,'ellip','FilterStructure','cascadeallpass'); 
%   Hd.Stage(1).Stage(1) % Summary on one of the dfilt.cascadeallpass
%   realizemdl(Hd.stage(1).Stage(1)) % Requires Simulink; build model for filter
%
%   % Example #2: Construct a DFILT.CASCADEALLPASS directly given
%   % allpass coefficients.
%   section1 = 0.8;
%   section2 = [1.2,0.7];
%   section3 = [1.3,0.9];
%   Hd = dfilt.cascadeallpass(section1,section2,section3);
%   info(Hd)    % Show information on the filter
%   fvtool(Hd)  % Visualize filter 
%
%   See also DFILT/STRUCTURES

%   Author(s): R. Losada
%   Copyright 2005 The MathWorks, Inc.

this = dfilt.cascadeallpass;

this.FilterStructure = 'Cascade Minimum-Multiplier Allpass';

constr(this,varargin{:});

% [EOF]