www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/wavelet/ls2pmf.m

    function  varargout = ls2pmf(LS,factMode)
%LS2PMF Lifting scheme(s) to polyphase matrix factorization(s).
%   PMF = LS2PMF(LS,FACTMODE) returns the polyphase matrix
%   factorization corresponding to the lifting scheme LS.
%   PMF is a cell array of Laurent matrices. FACTMODE indicates 
%   the type of factorization from which LS is issued. The valid 
%   values for FACTMODE are: 
%      'd' (dual factorization) or 'p' (primal factorization).
%
%   PMF = LS2PMF(LS) is equivalent to PMF = LS2PMF(LS,'d') .
%
%   If LSC is a cell array of Lifting Schemes, PMFC = LS2PMF(LSC)  
%   returns a cell array of factorizations. For each k, PMFC{k}
%   is a factorization of LSC{k}.
%
%   [PMF_d,PMF_p] = LS2PMF(LS,'t') returns the two possible 
%   polyphase matrix factorizations.
%
%   See also LS2APMF, PMF2LS.

%   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 28-May-2001.
%   Last Revision: 20-Dec-2010.
%   Copyright 1995-2010 The MathWorks, Inc.

if isempty(LS) , varargout = cell(1,nargout);  return; end
if nargin<2 , factMode = 'd'; end

%-------------------------------------------%
% PMF2APMF is an involutive transformation. %
% So:  M == PMF2APMF(PMF2APMF(M))           %
% And: APMF2PMF == PMF2APMF                 %
%-------------------------------------------%
APMF = ls2apmf(LS);
factMode = lower(factMode(1));
switch factMode
    case 't' ,
        [varargout{1},varargout{2}] = pmf2apmf(APMF,factMode);
    case {'d','p'}
        varargout{1} = pmf2apmf(APMF,factMode);
    otherwise
        error(message('Wavelet:FunctionArgVal:Invalid_FactVal'))
end