SOLVE_TVDN - Solve TVDN problem

Usage

sol = solve_tvdn(y, epsilon, A, At, param)
sol = solve_tvdn(y, epsilon, A, At)
[sol, info] = solve_tvdn(...)

Input parameters

y Measurements
epsilon Radius of the L2 ball
A Operator
At Adjoint of A
param Optional parameter

Output parameters

sol Solution
info Structure summarizing informations at convergence

Description

sol = solve_tvdn(Y, epsilon, A, At, PARAM) solves:

\begin{equation*} arg \min_x \|x\|_{TV} s.t. \|y-A x\|_2 < \epsilon \end{equation*}

Y contains the measurements. A is the forward measurement operator and At the associated adjoint operator. PARAM a Matlab structure containing the following fields:

General parameters:

  • param.verbose : 0 no log, 1 print main steps, 2 print all steps.

  • param.maxit : max. nb. of iterations (default: 200).

  • param.useGPU : Use GPU to compute the TV prox operator. Please prior call init_gpu and free_gpu to launch and release the GPU library (default: 0).

  • param.tol : is stop criterion for the loop. The algorithm stops if

    \begin{equation*} \frac{ n(t) - n(t-1) }{ n(t)} < tol, \end{equation*}

    where \(n(t) = ||(x)||_{TV}\) is the objective function at iteration t by default, tol=10e-4.

  • param.gamma : control the converge speed (default: 1e-1).

Projection onto the L2-ball :

  • param.tight_b2 : 1 if A is a tight frame or 0 if not (default = 1)

  • param.nu_b2 : bound on the norm of the operator A, i.e.

    \begin{equation*} \|A x\|^2 \leq \nu \|x\|^2 \end{equation*}
  • param.tol_b2 : tolerance for the projection onto the L2 ball (default: 1e-3):

    \begin{equation*} \frac{\epsilon}{1-tol} \leq \|y - A z\|_2 \leq \frac{\epsilon}{1+tol} \end{equation*}
  • param.maxit_b2 : max. nb. of iterations for the projection onto the L2 ball (default 200).

Proximal TV operator:

  • param.maxit_tv : Used as stopping criterion for the proximal TV operator. Maximum number of iterations.

info is a Matlab structure containing the following fields:

  • info.algo : Algorithm used
  • info.iter : Number of iteration
  • info.time : Time of exectution of the function in sec.
  • info.final_eval : Final evaluation of the objectivs functions
  • info.crit : Stopping critterion used
  • info.rel_norm : Relative norm at convergence
  • info.residue : Final residue

The problem is solved thanks to a Douglas-Rachford splitting algorithm.

References:

P. Combettes and J. Pesquet. A douglas--rachford splitting approach to nonsmooth convex variational signal recovery. Selected Topics in Signal Processing, IEEE Journal of, 1(4):564--574, 2007.