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

波变换

开发平台:

Matlab

  1. function t = wptree(order,depth,x,wname,type_ent,parameter,userdata)
  2. %WPTREE Constructor for the class WPTREE.
  3. %   T = WPTREE(ORDER,DEPTH,X,WNAME,ENT_TYPE,ENT_PAR) returns
  4. %   a complete wavelet packet tree T.
  5. %
  6. %   ORDER is an integer representing the order of the tree
  7. %   (number of "children" of each non terminal node). It must
  8. %   be equal to 2 or 4.
  9. %
  10. %   If ORDER = 2, T is a WPTREE object corresponding to a 
  11. %   wavelet packet decomposition of the vector (signal) X,
  12. %   at level DEPTH with a particular wavelet WNAME.
  13. %
  14. %   If ORDER = 4, T is a WPTREE object corresponding to a 
  15. %   wavelet packet decomposition of the matrix (image) X,
  16. %   at level DEPTH with a particular wavelet WNAME.
  17. %
  18. %   ENT_TYPE is a string containing the type of entropy
  19. %   and ENT_PAR is an optional parameter used for entropy
  20. %   computation (see WENTROPY, WPDEC or WPDEC2 for more 
  21. %   information).
  22. %
  23. %   T = WPTREE(ORDER,DEPTH,X,WNAME) is equivalent to 
  24. %   T = WPTREE(ORDER,DEPTH,X,WNAME,'shannon').
  25. %
  26. %   With T = WPTREE(ORDER,DEPTH,X,WNAME,ENT_TYPE,ENT_PAR,USERDATA)
  27. %   you may set a userdata field.
  28. %
  29. %   The function WPTREE returns a WPTREE object.
  30. %   For more information on object fields, type: help wptree/get.  
  31. %
  32. %   See also DTREE, NTREE.
  33. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 15-Oct-96.
  34. %   Last Revision: 22-May-2003.
  35. %   Copyright 1995-2004 The MathWorks, Inc.
  36. %   $Revision: 1.7.4.2 $  $Date: 2004/03/15 22:39:27 $
  37. %===============================================
  38. % Class WPTREE (parent objects: DTREE)
  39. % Fields:
  40. %   dtree - Parent object.
  41. %   wavInfo - Structure (wavelet infos)
  42. %     wavName : Wavelet Name.
  43. %     Lo_D    : Low Decomposition filter
  44. %     Hi_D    : High Decomposition filter
  45. %     Lo_R    : Low Reconstruction filter
  46. %     Hi_R    : High Reconstruction filter
  47. %
  48. %   entInfo - Structure (entropy infos)
  49. %     entName : Entropy Name
  50. %     entPar  : Entropy Parameter
  51. %   -----------------------------------------
  52. %   allNI - Array(nbnode,5)  <---  in DTREE
  53. %     [ind,size,ent,ento]
  54. %          ind  = indice
  55. %          size = size of data
  56. %          ent  = Entropy
  57. %          ento = Optimal Entropy
  58. %===============================================
  59. % Check arguments.
  60. %-----------------
  61. nbIn = nargin;
  62. switch nbIn
  63.   case 0 % Dummy. Only for loading object!
  64.       order = 2 ; depth = 0; x = 1;  wname = 'db1';
  65.       userdata  = []; parameter = 0.0; type_ent  = 'shannon';
  66.   case {1,2,3} , error('Invalid number of input arguments.');
  67.   case 4 , userdata  = []; parameter = 0.0; type_ent  = 'shannon';
  68.   case 5 , userdata  = []; parameter = 0.0;
  69.   case 6 , userdata  = [];
  70.   case 7 ,
  71.   otherwise , error('Too many input arguments.');
  72. end
  73. if strcmp(lower(type_ent),'user')
  74.     if ~ischar(parameter)
  75.         error('Invalid function name for user entropy.');
  76.     end
  77.     type_ent  = ['user' '&' parameter];
  78.     parameter = 0.0;
  79. end
  80. % Tree creation.
  81. %---------------
  82. d = dtree(order,depth,x,'spflg','notexpand',[],userdata);
  83. % Wavelet infos.
  84. %---------------
  85. t.wavInfo.wavName = wname;
  86. [ t.wavInfo.Lo_D,t.wavInfo.Hi_D, ...
  87.   t.wavInfo.Lo_R,t.wavInfo.Hi_R ] = wfilters(wname);
  88. % Entropy infos.
  89. %---------------
  90. t.entInfo.entName = type_ent;
  91. t.entInfo.entPar  = parameter;
  92. % Built object.
  93. %---------------
  94. t = class(t,'wptree',d);
  95. t = set(t,'wtboInfo',class(t));
  96. t = expand(t);