Home > matlab > sopt_mltb_solve_rwTVDN.m

sopt_mltb_solve_rwTVDN

PURPOSE ^

sopt_mltb_solve_rwTVDN - Solve reweighted TVDN problem

SYNOPSIS ^

function sol = sopt_mltb_solve_rwTVDN(y, epsilon, A, At, paramT,sigma, tol, maxiter, initsol)

DESCRIPTION ^

 sopt_mltb_solve_rwTVDN - Solve reweighted TVDN problem

 Solve the reweighted TV minimization function using an homotopy
 continuation method to approximate the L0 norm of the magnitude of the 
 gradient.  At each iteration the following problem is solved:

   min_x ||W x||_TV   s.t.  ||y-A x||_2 < epsilon

 where W is a diagonal matrix with diagonal elements given by esentially
 the inverse of the graident.
   
 The input parameters are defined as follows.

   - y: Input data (measurements).

   - epsilon: Noise bound.

   - A: Forward measurement operator.

   - At: Adjoint measurement operator.

   - paramT: Structure containing parameters for the TV solver (see 
       documentation for sopt_mltb_solve_TVDN).  

   - sigma: Noise standard deviation in the analysis domain.

   - tol: Minimum relative change in the solution.
       The algorithm stops if 
           ||x(t)-x(t-1)||_2/||x(t-1)||_2 < tol.
       where x(t) is the estimate of the solution at iteration t.

   - maxiter: Maximum number of iterations of the reweighted algorithm.

   - initsol: Initial solution for a warmstart.

 References:
 [1] R. E. Carrillo, J. D. McEwen, D. Van De Ville, J.-Ph. Thiran, and 
 Y. Wiaux. Sparsity averaging for compressive imaging. IEEE Sig. Proc. 
 Let., in press, 2013.
 [2] R. E. Carrillo, J. D. McEwen, and Y. Wiaux. Sparsity Averaging 
 Reweighted Analysis (SARA): a novel algorithm for radio-interferometric 
 imaging. Mon. Not. Roy. Astron. Soc., 426(2):1223-1234, 2012.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function sol = sopt_mltb_solve_rwTVDN(y, epsilon, A, At, paramT, ...
0002   sigma, tol, maxiter, initsol)
0003 % sopt_mltb_solve_rwTVDN - Solve reweighted TVDN problem
0004 %
0005 % Solve the reweighted TV minimization function using an homotopy
0006 % continuation method to approximate the L0 norm of the magnitude of the
0007 % gradient.  At each iteration the following problem is solved:
0008 %
0009 %   min_x ||W x||_TV   s.t.  ||y-A x||_2 < epsilon
0010 %
0011 % where W is a diagonal matrix with diagonal elements given by esentially
0012 % the inverse of the graident.
0013 %
0014 % The input parameters are defined as follows.
0015 %
0016 %   - y: Input data (measurements).
0017 %
0018 %   - epsilon: Noise bound.
0019 %
0020 %   - A: Forward measurement operator.
0021 %
0022 %   - At: Adjoint measurement operator.
0023 %
0024 %   - paramT: Structure containing parameters for the TV solver (see
0025 %       documentation for sopt_mltb_solve_TVDN).
0026 %
0027 %   - sigma: Noise standard deviation in the analysis domain.
0028 %
0029 %   - tol: Minimum relative change in the solution.
0030 %       The algorithm stops if
0031 %           ||x(t)-x(t-1)||_2/||x(t-1)||_2 < tol.
0032 %       where x(t) is the estimate of the solution at iteration t.
0033 %
0034 %   - maxiter: Maximum number of iterations of the reweighted algorithm.
0035 %
0036 %   - initsol: Initial solution for a warmstart.
0037 %
0038 % References:
0039 % [1] R. E. Carrillo, J. D. McEwen, D. Van De Ville, J.-Ph. Thiran, and
0040 % Y. Wiaux. Sparsity averaging for compressive imaging. IEEE Sig. Proc.
0041 % Let., in press, 2013.
0042 % [2] R. E. Carrillo, J. D. McEwen, and Y. Wiaux. Sparsity Averaging
0043 % Reweighted Analysis (SARA): a novel algorithm for radio-interferometric
0044 % imaging. Mon. Not. Roy. Astron. Soc., 426(2):1223-1234, 2012.
0045 
0046 Psit = @(x) x; Psi=@(x) x;
0047 
0048 param=paramT;
0049 iter=0;
0050 rel_dist=1;
0051 
0052 if nargin<9
0053     fprintf('RW iteration: %i\n', iter);
0054     sol = sopt_mltb_solve_TVoA_B2(y, epsilon, A, At, Psi, Psit, param);
0055 else
0056     sol = initsol;
0057 end
0058 
0059 
0060 delta=std(sol(:));
0061 
0062 while (rel_dist>tol && iter<maxiter)
0063   
0064     iter=iter+1;
0065     delta=max(sigma/10,delta);
0066     fprintf('RW iteration: %i\n', iter);
0067     fprintf('delta = %e\n', delta);
0068     
0069     %Warm start
0070     param.initsol=sol;
0071     sol1=sol;
0072     
0073     % Weights
0074     [param.weights_dx_TV param.weights_dy_TV] = sopt_mltb_gradient_op(real(sol));
0075     param.weights_dx_TV = delta./(abs(param.weights_dx_TV)+delta);
0076     param.weights_dy_TV = delta./(abs(param.weights_dy_TV)+delta);
0077     param.identical_weights_flag_TV = 0;
0078     param.gamma=1e-1*max(abs(sol1(:)));
0079     
0080     %Weighted TV problem
0081     sol = sopt_mltb_solve_TVDNoA(y, epsilon, A, At, Psi, Psit, param);
0082 
0083     %Relative distance
0084     rel_dist=norm(sol(:)-sol1(:))/norm(sol1(:)); 
0085     fprintf('relative distance = %e\n\n', rel_dist);
0086     delta = delta/10;
0087     
0088 end
0089

Generated on Fri 22-Feb-2013 15:54:47 by m2html © 2005