Home > matlab > sopt_mltb_solve_rwBPDN.m

sopt_mltb_solve_rwBPDN

PURPOSE ^

sopt_mltb_solve_rwBPDN - Solve reweighted BPDN problem

SYNOPSIS ^

function sol = sopt_mltb_solve_rwBPDN(y, epsilon, A, At, Psi, Psit,paramT, sigma, tol, maxiter, initsol)

DESCRIPTION ^

 sopt_mltb_solve_rwBPDN - Solve reweighted BPDN problem

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

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

 where W is a diagonal matrix with diagonal elements given by

   [W]_ii = delta(t)/(delta(t)+|[Psit x(t)]_i|).

 The input parameters are defined as follows.

   - y: Input data (measurements).

   - epsilon: Noise bound.

   - A: Forward measurement operator.

   - At: Adjoint measurement operator.

   - Psi: Synthesis sparsity transform.

   - Psit: Analysis sparsity transform.

   - paramT: Structure containing parameters for the L1 solver (see 
       documentation for sopt_mltb_solve_BPDN).  

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

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