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

波变换

开发平台:

Matlab

  1. function OUT = lwtcoef(type,xDEC,LS,level,levEXT)
  2. %LWTCOEF Extract or reconstruct 1-D LWT wavelet coefficients.
  3. %   Y = LWTCOEF(TYPE,XDEC,LS,LEVEL,LEVEXT) returns the coefficients
  4. %   or the reconstructed coefficients of level LEVEXT, extracted 
  5. %   from XDEC, the LWT decomposition at level LEVEL obtained with 
  6. %   the lifting scheme LS.
  7. %   The valid values for TYPE are:
  8. %      - 'a'  for approximations
  9. %      - 'd'  for details
  10. %      - 'ca' for coefficients of approximations
  11. %      - 'cd' for coefficients of details
  12. %
  13. %   Y = LWTCOEF(TYPE,XDEC,W,LEVEL,LEVEXT) returns the same output
  14. %   using W which is the name of a "lifted wavelet".
  15. %
  16. %   See also ILWT, LWT.
  17. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 03-Feb-2000.
  18. %   Last Revision: 30-Jun-2003.
  19. %   Copyright 1995-2004 The MathWorks, Inc.
  20. %   $Revision: 1.1.6.3 $  $Date: 2004/04/13 00:39:59 $
  21. firstIdxAPP = 1;
  22. firstIdxDET = 1+mod(firstIdxAPP,2);
  23. DELTA = firstIdxAPP-1;
  24. indCFS = [1:length(xDEC)];
  25. indEXT = (1-DELTA)*ones(1,levEXT);
  26. switch type
  27.   case {'a','ca'}
  28.   case {'d','cd'} , indEXT(levEXT) = DELTA;
  29. end
  30. % Extract coefficients.
  31. for k=1:levEXT
  32.     first = 2-indEXT(k);
  33.     indCFS = indCFS(first:2:end);
  34. end
  35. switch type
  36.   case {'a','d'}
  37.     OUT = zeros(size(xDEC));
  38.     OUT(indCFS) = xDEC(indCFS);
  39.     OUT = ilwt(OUT,LS,level);
  40.   case {'ca','cd'}
  41.     OUT = xDEC(indCFS);
  42.     if isequal(type,'ca') & (level>levEXT)
  43.         OUT = ilwt(OUT,LS,level-levEXT);
  44.     end
  45. end