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

波变换

开发平台:

Matlab

  1. function t = wtree(x,depth,wname,modeDWT,userdata)
  2. %WTREE Constructor for the class WTREE.
  3. %   T = WTREE(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 = WTREE(X,DEPTH,WNAME,DWTMODE) returns a wavelet tree T
  9. %   built using DWTMODE as DWT extension mode.
  10. %
  11. %   With T = WTREE(X,DEPTH,WNAME,DWTMODE,USERDATA)
  12. %   you may set a userdata field.
  13. %
  14. %   If ORDER = 2, T is a WTREE 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 WTREE 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-Sep-1999.
  22. %   Last Revision: 14-May-2003.
  23. %   Copyright 1995-2004 The MathWorks, Inc.
  24. %   $Revision: 1.4.4.2 $  $Date: 2004/03/15 22:36:12 $ 
  25. %===============================================
  26. % Class WTREE (parent class: DTREE)
  27. % Fields:
  28. %   dtree   - Parent object
  29. %   dwtMode - DWT extension mode
  30. %   wavInfo - Structure (wavelet infos)
  31. %     wavName : Wavelet Name.
  32. %     Lo_D    : Low Decomposition filter
  33. %     Hi_D    : High Decomposition filter
  34. %     Lo_R    : Low Reconstruction filter
  35. %     Hi_R    : High Reconstruction filter
  36. %===============================================
  37. % Check arguments.
  38. %-----------------
  39. nbIn = nargin;
  40. if nbIn < 3
  41.   error('Not enough input arguments.');
  42. end
  43. switch nbIn
  44.   case 3 , userdata = {}; modeDWT = dwtmode('status','nodisp');
  45.   case 4 , userdata = {};
  46. end
  47. % Tree creation.
  48. %---------------
  49. if min(size(x))>1 , order = 4; else , order = 2; end
  50. t = dtree(order,depth,x,'spsch',[1 ; zeros(order-1,1)],'spflg',0,'ud',userdata);
  51. % Wavelet infos.
  52. %---------------
  53. obj.dwtMode = modeDWT;
  54. obj.waveInfo.wavName = wname;
  55. [ obj.waveInfo.Lo_D,obj.waveInfo.Hi_D, ...
  56.   obj.waveInfo.Lo_R,obj.waveInfo.Hi_R ] = wfilters(wname);
  57. % Built object.
  58. %---------------
  59. t = class(obj,'wtree',t);
  60. t = expand(t);