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

波变换

开发平台:

Matlab

  1. function x = merge(t,node,tnd)
  2. %MERGE Merge (recompose) the data of a node.
  3. %   X = MERGE(T,N,TNDATA) recomposes the data X 
  4. %   associated to the node N of the data tree T,
  5. %   using the data associated to the children of N.
  6. %
  7. %   TNDATA is a cell array (ORDER x 1) or (1 x ORDER)
  8. %   such that TNDATA{k} contains the data associated to
  9. %   the k-th child of N.
  10. %
  11. %   The method uses IDWT (respectively IDWT2) for
  12. %   one-dimensional (respectively two-dimensional) data.
  13. %
  14. %   This method overloads the DTREE method.
  15.  
  16. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi  12-Feb-2003.
  17. %   Last Revision: 21-May-2003.
  18. %   Copyright 1995-2004 The MathWorks, Inc.
  19. %   $Revision: 1.1.6.2 $  $Date: 2004/03/15 22:38:52 $ 
  20. order = treeord(t);
  21. s = read(t,'sizes',node);
  22. typeWT = t.WT_Settings.typeWT;
  23. switch typeWT
  24.     case {'dwt','wpt'}
  25.         shift   = t.WT_Settings.shift;
  26.         extMode = t.WT_Settings.extMode;
  27.         Lo_R = t.WT_Settings.Filters.Lo_R;
  28.         Hi_R = t.WT_Settings.Filters.Hi_R;
  29.         switch order
  30.             case 2 , 
  31.                 x = idwt(tnd{1},tnd{2},...
  32.                     Lo_R,Hi_R,max(s),'mode',extMode,'shift',shift);
  33.             case 4 ,
  34.                 x = idwt2(tnd{1},tnd{2},tnd{3},tnd{4},...
  35.                     Lo_R,Hi_R,s,'mode',extMode,'shift',shift);
  36.         end
  37.  
  38.     case {'lwt','lwpt'}
  39.         typeDEC = typeWT(2:3);
  40.         LS = t.WT_Settings.LS;
  41.         switch order
  42.             case 2 ,
  43.                 x = ilwt(tnd{1},tnd{2},LS,1,'typeDEC',typeDEC);
  44.             case 4 ,
  45.                 x = ilwt2(tnd{1},tnd{2},tnd{3},tnd{4},LS,1,'typeDEC',typeDEC);
  46.         end        
  47. end