www.gusucode.com > signal 工具箱matlab源码程序 > signal/@filtdes/@freqiirpeak/maskinfo.m

    function cmd = maskinfo(h, d)
%MASKINFO

%   Author(s): J. Schickler
%   Copyright 1988-2003 The MathWorks, Inc.

nbands = get(d, 'Order');

bw = getbandwidth(d);

fn = getnyquist(d);

if nbands == 1,
    cmd{1}.frequency  = [fn-bw/2 fn];
    cmd{1}.filtertype = 'highpass';
    cmd{1}.freqfcn    = 'wpass';
else
    sep = fn/(nbands/2);
    
    for indx = 1:2:nbands-1
        cmd{(indx+1)/2}.frequency  = [sep/2-bw/2+sep*((indx+1)/2-1) sep/2+bw/2+sep*((indx+1)/2-1)];
        cmd{(indx+1)/2}.filtertype = 'bandpass';
        cmd{(indx+1)/2}.freqfcn    = 'wpass';
    end
    
    if rem(nbands, 2),
        cmd{end+1} = cmd{end};
        cmd{end}.frequency  = [fn-bw/2 fn];
        cmd{end}.filtertype = 'highpass';
    end
end

% [EOF]