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

波变换

开发平台:

Matlab

  1. function Ds = wpthcoef(Ds,Ts,keepapp,sorh,thr)
  2. %WPTHCOEF Wavelet packet coefficients thresholding.
  3. %   NDATA = WPTHCOEF(DATA,TREE,KEEPAPP,SORH,THR) 
  4. %   returns new data structure obtained from the wavelet
  5. %   packet decomposition structure [DATA,TREE] (see MAKETREE) 
  6. %   by coefficients thresholding.
  7. %
  8. %   If KEEPAPP = 1, approximation coefficients are not
  9. %   thresholded, otherwise it is possible.
  10. %   If SORH = 's', soft thresholding is applied,
  11. %   if SORH = 'h', hard thresholding is applied
  12. %   (see WTHRESH).
  13. %   THR is the threshold value.
  14. %
  15. %   See also MAKETREE, WPDEC, WPDEC2, WPDENCMP, WTHRESH.
  16. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
  17. %   Last Revision: 04-May-1999.
  18. %   Copyright 1995-2002 The MathWorks, Inc.
  19. % $Revision: 1.11 $
  20. % Check arguments.
  21. if errargn(mfilename,nargin,[5],nargout,[0:1]), error('*'), end
  22. [tnods,ltor] = tnodes(Ts);   % Keep terminal nodes.
  23. tnods = tnods(ltor);         % Sort terminal nodes
  24.                              % from left to right.
  25.                              % Approximation index is 1.
  26. if keepapp==1
  27.     % Save approximation.
  28.     app_coefs = wdatamgr('read_cfs',Ds,Ts,tnods(1));
  29. end
  30. coefs = wdatamgr('rallcfs',Ds);
  31. coefs = wthresh(coefs,sorh,thr);
  32. Ds = wdatamgr('replace',Ds,coefs);
  33. if keepapp==1
  34.     % Restore approximation.
  35.     Ds = wdatamgr('write_cfs',Ds,Ts,tnods(1),app_coefs);
  36. end