ls2apmf.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:2k
源码类别:

波变换

开发平台:

Matlab

  1. function  APMF = ls2apmf(LS)
  2. %LS2APMF Lifting scheme to analyzis polyphase matrix factorization.
  3. %   APMF = LS2APMF(LS) returns the Laurent matrices factorization
  4. %   APMF, corresponding to the lifting scheme LS. APMF is a cell
  5. %   array of Laurent Matrices.
  6. %
  7. %   If LSC is a cell array of lifting schemes, APMFC = LS2APMF(LSC)  
  8. %   returns a cell array of factorizations. For each k, APMFC{k}
  9. %   is a factorization of LSC{k}.
  10. %   
  11. %   Examples:
  12. %      LS = liftwave('db1')
  13. %      APMF = ls2apmf(LS);
  14. %      APMF{:}
  15. %
  16. %      LSC = {liftwave('db1'),liftwave('db2')};
  17. %      LSC{:}
  18. %      APMFC = ls2apmf(LSC);
  19. %      APMFC{1}{:} , APMFC{2}{:} 
  20. %
  21. %   See also APMF2LS, LS2PMF.
  22. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 11-Jun-2003.
  23. %   Last Revision: 27-Jun-2003.
  24. %   Copyright 1995-2004 The MathWorks, Inc.
  25. %   $Revision: 1.1.6.3 $  $Date: 2004/04/13 00:39:49 $
  26. if isempty(LS) , APMF = [];  return; end
  27. cellMODE = ~(isequal(LS{1,1},'p') || ...
  28.              isequal(LS{1,1},'d') || isequal(LS,{1 1,[]}));
  29. if cellMODE
  30.     nbFACT = length(LS);
  31.     APMF = cell(1,nbFACT);
  32.     for k = 1:nbFACT
  33.         APMF{k} = ONE_ls2apmf(LS{k});
  34.     end
  35. else
  36.     APMF = ONE_ls2apmf(LS);
  37. end
  38. %---+---+---+---+---+---+---+---+---+---+---+---+---%
  39. function APMF = ONE_ls2apmf(LS)
  40. nbLIFT = size(LS,1);
  41. APMF = cell(1,nbLIFT);
  42. for jj = nbLIFT:-1:2
  43.     k = 1+nbLIFT-jj;
  44.     P = laurpoly(LS{k,2},'maxDEG',LS{k,3});
  45.     if LS{k,1}=='p'
  46.         APMF{jj} = laurmat({1,P;0,1});
  47.     else
  48.         APMF{jj} = laurmat({1,0;P,1});
  49.     end
  50. end
  51. APMF{1} = laurmat({LS{nbLIFT,1},0;0,LS{nbLIFT,2}});
  52. %---+---+---+---+---+---+---+---+---+---+---+---+---%