www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/wavedemo/@wtree/wtree.m
function t = wtree(x,depth,wname,modeDWT,userdata) %WTREE Constructor for the class WTREE. % T = WTREE(X,DEPTH,WNAME) returns a wavelet tree T. % If X is a vector, the tree is of order 2. % If X is a matrix, the tree is of order 4. % The DWT extension mode is the current one. % % T = WTREE(X,DEPTH,WNAME,DWTMODE) returns a wavelet tree T % built using DWTMODE as DWT extension mode. % % With T = WTREE(X,DEPTH,WNAME,DWTMODE,USERDATA) % you may set a userdata field. % % If ORDER = 2, T is a WTREE object corresponding to a % wavelet decomposition of the vector (signal) X, % at level DEPTH with a particular wavelet WNAME. % % If ORDER = 4, T is a WTREE object corresponding to a % wavelet decomposition of the matrix (image) X, % at level DEPTH with a particular wavelet WNAME. % M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 09-Sep-1999. % Last Revision: 02-Nov-2007. % Copyright 1995-2007 The MathWorks, Inc. %=============================================== % Class WTREE (parent class: DTREE) % Fields: % dtree - Parent object % dwtMode - DWT extension mode % wavInfo - Structure (wavelet infos) % wavName : Wavelet Name. % Lo_D : Low Decomposition filter % Hi_D : High Decomposition filter % Lo_R : Low Reconstruction filter % Hi_R : High Reconstruction filter %=============================================== % Check arguments. %----------------- nbIn = nargin; if nbIn < 3 error(message('Wavelet:FunctionInput:NotEnough_ArgNum')); end switch nbIn case 3 , userdata = {}; modeDWT = dwtmode('status','nodisp'); case 4 , userdata = {}; end % Tree creation. %--------------- if min(size(x))>1 , order = 4; else order = 2; end t = dtree(order,depth,x,'spsch',[1 ; zeros(order-1,1)],'spflg',0,'ud',userdata); % Wavelet infos. %--------------- obj.dwtMode = modeDWT; obj.waveInfo.wavName = wname; [ obj.waveInfo.Lo_D,obj.waveInfo.Hi_D, ... obj.waveInfo.Lo_R,obj.waveInfo.Hi_R ] = wfilters(wname); % Built object. %--------------- t = class(obj,'wtree',t); t = expand(t);