


 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.

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