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

波变换

开发平台:

Matlab

  1. function  varargout = pmf2ls(PMF,factMode)
  2. %PMF2LS Polyphase matrix factorization(s) to lifting scheme(s).
  3. %   LS = PMF2LS(PMF,FACTMODE) returns the lifting scheme LS 
  4. %   corresponding to the Laurent polyphase matrices factorization
  5. %   PMF which is a cell array of Laurent matrices. FACTMODE 
  6. %   indicates the type of factorization to be use with PMF.
  7. %   The valid values for FACTMODE are: 
  8. %      'd' (dual factorization) or 'p' (primal factorization).
  9. %
  10. %   LS = PMF2LS(PMF), is equivalent to LS = PMF2LS(PMF,'d') .
  11. %
  12. %   If PMFC is a cell array of factorizations, LSC = PMF2LS(PMFC,...)
  13. %   returns a cell array of Lifting Schemes. For each k, LSC{k} 
  14. %   is associated to the factorization PMFC{k}.
  15. %
  16. %   [LS_d,LS_p] = PMF2LS(PMF,'t') returns the two possible lifting
  17. %   schemes.
  18. %
  19. %   See also LS2PMF.
  20. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 26-Apr-2001.
  21. %   Last Revision: 26-Jun-2003.
  22. %   Copyright 1995-2004 The MathWorks, Inc.
  23. %   $Revision: 1.1.6.3 $  $Date: 2004/04/13 00:40:03 $
  24. if isempty(PMF) , varargout = cell(1,nargout); return; end
  25. if nargin<2 , factMode = 'd'; end
  26. %-------------------------------------------%
  27. % PMF2APMF is an involutive transformation. %
  28. % So:  M == PMF2APMF(PMF2APMF(M))           %
  29. % And: APMF2PMF == PMF2APMF                 %
  30. %-------------------------------------------%
  31. factMode = lower(factMode(1));
  32. switch factMode
  33.     case 't' ,
  34.         [APMF_d,APMF_p] = pmf2apmf(PMF,factMode);
  35.         varargout{1} = apmf2ls(APMF_d);
  36.         varargout{2} = apmf2ls(APMF_p);
  37.     case {'d','p'}
  38.         APMF = pmf2apmf(PMF,factMode);
  39.         varargout{1} = apmf2ls(APMF);
  40.         
  41.     otherwise
  42.         error('Invalid value for factorization mode.')
  43. end