完整的curvelet变换(2.0)实现

源代码在线查看: invmeyerpartition.m

软件大小: 808 K
上传用户: oujk123
关键词: curvelet 2.0 变换
下载地址: 免注册下载 普通下载 VIP

相关代码

				function x = InvMeyerPartition(y, L, deg)
				% InvMeyerPartition: Inverse the scale partitioning
				%  Usage:
				%     y = MeyerPartition(xhat, L, deg);
				%  Inputs: 
				%    y      Vector of length 2*n; signal separated into disjoint scales 
				%    L      Coarsest Scale
				%    deg    Degree of the polynomial
				%  Outputs:
				%    x     Vector of length n
				%  Description
				%    Performs the inverse of MeyerPartition; i.e., reconstruct
				%    an object from its different scale contributions.
				%
				% By Emmanuel candes, 2003-2004
				
				
				        n = length(y)/2;
					J = log2(n);
					x = zeros(1,n);
				
				% 
				%  Unfold Partition at Coarse Level.
				%
				        [index, window] = CoarseMeyerWindow(L-1,deg);
					l_index = reverse(n/2 + 1 - index);
					r_index = n/2 + index;
					x(l_index) = y(1:2^L).* reverse(window);
					x(r_index) = y((2^L+1):2^(L+1)).* window;  
					
					
				%
				%  Loop to Unfold Partition for  j = L - 1, ..., J - 3.
				%
					for j = L-1:(J-3),
					  dyadic_points = [2^j 2^(j+1)];
					  [index, window] = DetailMeyerWindow(dyadic_points,deg); 
					  yy = y((2^(j+2)+1):(2^(j+3)));
					  m = length(yy)/2;
					  l_index = reverse(n/2 + 1 - index);
					  x(l_index) = x(l_index) + yy(1:m).* reverse(window);
					  r_index = n/2 + index;
					  x(r_index) = x(r_index) + yy((m+1):(2*m)).* window; 	   
					end
				
				%
				%  Finest Subband (for j = J - 2).
				%
				        
				        j = J - 2;
				        [index, window] = FineMeyerWindow(j,deg);
					yy = y((2^(j+2)+1):(2^(j+3)));
					m = length(yy)/2;
					l_index = reverse(n/2 + 1 - index);
				        x(l_index) = x(l_index) + yy(1:m).* reverse(window);
				        r_index = n/2 + index;
					x(r_index) = x(r_index) + yy((m+1):(2*m)).* window; 	  
					
					
					
								

相关资源