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

波变换

开发平台:

Matlab

  1. function t = rwvtree(varargin)
  2. %RWVTREE Constructor for the class RWVTREE.
  3. %   T = RWVTREE(X,DEPTH,WNAME) returns a wavelet tree T.
  4. %   If X is a vector, the tree is of order 2.
  5. %   If X is a matrix, the tree is of order 4.
  6. %   The DWT extension mode is the current one.
  7. %
  8. %   T = RWVTREE(X,DEPTH,WNAME,DWTMODE) returns a wavelet tree T
  9. %   built using DWTMODE as DWT extension mode.
  10. %
  11. %   With T = RWVTREE(X,DEPTH,WNAME,DWTMODE,USERDATA)
  12. %   you may set a userdata field.
  13. %
  14. %   If ORDER = 2, T is a RWVTREE object corresponding to a
  15. %   wavelet decomposition of the vector (signal) X,
  16. %   at level DEPTH with a particular wavelet WNAME.
  17. %
  18. %   If ORDER = 4, T is a RWVTREE object corresponding to a
  19. %   wavelet decomposition of the matrix (image) X,
  20. %   at level DEPTH with a particular wavelet WNAME.
  21. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 09-Oct-1998.
  22. %   Last Revision: 21-May-2003.
  23. %   Copyright 1995-2004 The MathWorks, Inc.
  24. %   $Revision: 1.4.4.2 $  $Date: 2004/03/15 22:36:08 $ 
  25. %===============================================
  26. % Class RWVTREE (parent class: WTREE)
  27. % Fields:
  28. %   dummy - Not Used
  29. %   wtree - Parent object
  30. %===============================================
  31. % Check arguments.
  32. %-----------------
  33. nbIn = nargin;
  34. if nbIn < 3
  35.   error('Not enough input arguments.');
  36. end
  37. % Tree creation.
  38. %---------------
  39. depth = varargin{2};
  40. varargin{2} = 0;
  41. % Tree creation.
  42. %---------------
  43. O.dummy = 'right';
  44. t = wtree(varargin{:});
  45. order = treeord(t);
  46. t = set(t,'spsch',[zeros(order-1,1) ; 1]);
  47. % Built object.
  48. %---------------
  49. t  = class(O,'rwvtree',t);
  50. tn = 0;
  51. for d = 1:depth
  52.     t = nodesplt(t,tn);
  53.     tn = order*(tn+1);
  54. end