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

波变换

开发平台:

Matlab

  1. function [t,X] = cfs2wdt(WT_Settings,size_of_DATA,tn_of_TREE,order,CFS)
  2. %CFS2WDT Wavelet decomposition tree construction from coefficients.
  3. %
  4. %   See also WDECTREE.
  5. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 13-Mar-2003.
  6. %   Last Revision: 14-Jul-2003.
  7. %   Copyright 1995-2004 The MathWorks, Inc.
  8. %   $Revision: 1.1.6.2 $
  9. % Computing dummy data and tree depth.
  10. %-------------------------------------
  11. if length(size_of_DATA)==1
  12.     size_of_DATA = [1 size_of_DATA];
  13. end
  14. dummy_DATA = zeros(size_of_DATA);
  15. [d,p] = ind2depo(order,tn_of_TREE);
  16. depth_of_TREE = max(d);
  17. % Building the tree.
  18. %-------------------
  19. t = wdectree(dummy_DATA,order,1,WT_Settings);
  20. tn = leaves(t);
  21. nodes_to_SPLIT = setdiff(tn,tn_of_TREE);
  22. while ~isempty(nodes_to_SPLIT)
  23.     for k = 1:length(nodes_to_SPLIT)
  24.         t = wdtsplit(t,nodes_to_SPLIT(k));
  25.     end
  26. tn = leaves(t);
  27. nodes_to_SPLIT = setdiff(tn,tn_of_TREE);    
  28. end   
  29. % Restoring the coefficients.
  30. %----------------------------
  31. if nargin>4
  32.     dummy_CFS = read(t,'data');
  33.     if isequal(size(dummy_CFS),size(CFS))
  34.         t = write(t,'data',CFS);
  35.     end
  36. end
  37. if nargout<2 , return; end
  38. % Computing the original data.
  39. %-----------------------------
  40. X = wdtrec(t);