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

波变换

开发平台:

Matlab

  1. function tnd = split(t,node,x,varargin)
  2. %SPLIT Split (decompose) the data of a terminal node.
  3. %   TNDATA = SPLIT(T,N,X) decomposes the data X 
  4. %   associated to the terminal node N of the 
  5. %   wavelet tree T.
  6. %
  7. %   TNDATA is a cell array (ORDER x 1) such that
  8. %   TNDATA{k} contains the data associated to
  9. %   the k-th child of N.
  10. %
  11. %   The method uses DWT (respectively DWT2) for
  12. %   one-dimensional (respectively two-dimensional) data.
  13. %
  14. %   This method overloads the DTREE method.
  15. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi  12-Feb-2003.
  16. %   Last Revision: 21-May-2003.
  17. %   Copyright 1995-2004 The MathWorks, Inc.
  18. %   $Revision: 1.1.6.2 $  $Date: 2004/03/15 22:38:56 $ 
  19.  
  20. order = treeord(t);
  21. tnd   = cell(order,1);
  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_D = t.WT_Settings.Filters.Lo_D;
  28.         Hi_D = t.WT_Settings.Filters.Hi_D;
  29.         switch order
  30.             case 2 , 
  31.                 [tnd{1},tnd{2}] = ...
  32.                     dwt(x,Lo_D,Hi_D,'mode',extMode,'shift',shift);
  33.             case 4 ,
  34.                 [tnd{1},tnd{2},tnd{3},tnd{4}] = ...
  35.                     dwt2(x,Lo_D,Hi_D,'mode',extMode,'shift',shift);
  36.         end
  37.     case {'lwt','lwpt'}
  38.         typeDEC = typeWT(2:3);
  39.         LS = t.WT_Settings.LS;
  40.         switch order
  41.             case 2 ,
  42.                 [tnd{1},tnd{2}] = lwt(x,LS,1,'typeDEC',typeDEC);
  43.             case 4 ,
  44.                 [tnd{1},tnd{2},tnd{3},tnd{4}] = lwt2(x,LS,1,'typeDEC',typeDEC);
  45.         end        
  46. end