⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wpsynthesis.m

📁 老外写的小波变换的工具箱
💻 M
字号:
function x = WPSynthesis(basis,pkt,qmf)
% WPSynthesis -- Synthesize signal from wavelet packet coefficients
%  Usage
%    x = WPSynthesis(btree,wp,qmf)
%  Inputs
%     btree    basis tree indicating wavelet packet to use
%     wp       wavelet packet table
%     qmf      quadrature mirror filter
%  Outputs
%     x        1-d signal whose wavelet packet coefft's in
%              basis btree are in wp
%
%  Examples
%     [n,D] = dyadlength(signal);
%     qmf = MakeONFilter('Haar');
%     wp = WPAnalysis(signal,D,qmf);
%     stree = CalcStatTree(wp,'Entropy');
%     [btree,vtree] = BestBasis(stree,D);
%     signal2 = WPSynthesis(btree,wp,qmf); % signal == signal2

	[n,L] = size(pkt);
	wp = pkt;
%
% initialize tree traversal stack
%
	stack = zeros(3,2^L);
	k = 1;
	stack(:,k) = [0 0 0 ]';
%
	while(k > 0),
		d = stack(1,k); b = stack(2,k); marked = stack(3,k); k=k-1;
		if(basis(node(d,b)) ~= 0) ,  % nonterminal node
		   if(marked == 0),
			   k = k+1; stack(:,k) = [d b 1]';
			   k = k+1; stack(:,k) = [(d+1) (2*b) 0]';
			   k = k+1; stack(:,k) = [(d+1) (2*b+1) 0]';
		   else
			   lson = rem(b,2);
			   lpchan = wp(packet(d+1,2*b+lson    ,n),d+2)';
			   hpchan = wp(packet(d+1,2*b+(1-lson),n),d+2)';
			   s = UpDyadHi(hpchan,qmf) + UpDyadLo(lpchan,qmf);
			   wp(packet(d,b,n),d+1) = s';
		   end         
		 end
	end
	x = wp(:,1)';

%
% Copyright (c) 1993. David L. Donoho
%     
    
    
  %%  Part of Wavelab Version 850%  Built Tue Jan  3 13:20:41 EST 2006%  This is Copyrighted Material%  For Copying permissions see COPYING.m%  Comments? e-mail wavelab@stat.stanford.edu 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -