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

📄 wpsynthesis.sci

📁 小波分解源代码
💻 SCI
字号:
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
//
//  Copyright Aldo I Maalouf

	[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)';   
    
  endfunction  
    

⌨️ 快捷键说明

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