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

波变换

开发平台:

Matlab

  1. function [a,h,v,d] = hlwt2(x,integerFlag)
  2. %HLWT2 Haar (Integer) Wavelet decomposition 2-D using lifting.
  3. %
  4. %     [a,h,v,d] = hlwt2(x) ou
  5. %     [a,h,v,d] = hlwt2(x,integerFlag)
  6. %     Dans le cas 2, on a une transformation en entiers
  7. %     modulo la normalisation.
  8. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 28-Jan-2000.
  9. %   Last Revision 16-Jun-2003.
  10. %   Copyright 1995-2004 The MathWorks, Inc.
  11. %   $Revision: 1.1.6.3 $ $Date: 2004/04/13 00:39:39 $ 
  12. % Test si transformation en entiers.
  13. notInteger = nargin<2;
  14. % Splitting.
  15. L = x(:,2:2:end);
  16. H = x(:,1:2:end);
  17. % Lifting.
  18. H = H-L;        % Dual lifting.
  19. if notInteger
  20.     L = (L+H/2);      % Primal lifting.
  21. else
  22.     L = (L+fix(H/2)); % Primal lifting.
  23. end
  24. % Splitting.
  25. a = L(2:2:end,:);
  26. h = L(1:2:end,:);
  27. clear L
  28. % Lifting.
  29. h = h-a;        % Dual lifting.
  30. if notInteger
  31.     a = (a+h/2);      % Primal lifting.
  32. else
  33.     a = (a+fix(h/2)); % Primal lifting.
  34. end
  35. % Splitting.
  36. v = H(2:2:end,:);
  37. d = H(1:2:end,:);
  38. % Lifting.
  39. d = d-v;         % Dual lifting.
  40. if notInteger
  41.     v = (v+d/2); % Primal lifting.
  42.     % Normalization.
  43.     h = h/2;
  44.     v = v/2;
  45.     d = d/4;
  46. else
  47.     v = (v+fix(d/2)); % Primal lifting.
  48. end