Description of sopt_mltb_solve_rwTVDN
Description: sopt_mltb_solve_rwTVDN - Solve reweighted TVDN problem

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:

- sopt_mltb_solve_TVDNoA sopt_mltb_solve_TVDNoA - Solve augmented TVDN problem

This function is called by:

- Experiment1 % Experiment1
- Experiment2 % Experiment2

## 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