Function: frsyniter
FRSYNITER  Iterative synthesis
  Usage:  f=frsyniter(F,c);
          f=frsyniter(F,c,Ls);
          [f,relres,iter]=frsyniter(F,c,...);

  Input parameters:
        F       : Frame
        c       : Array of coefficients.
        Ls      : length of signal.
  Output parameters:
        f       : Signal.
        relres  : Vector of residuals.
        iter    : Number of iterations done.

  f=FRSYNITER(F,c) iteratively inverts the analysis operator of F, so
  FRSYNITER always performs the inverse operation of FRANA, even
  when a perfect reconstruction is not possible by using FRSYN.

  [f,relres,iter]=FRSYNITER(...) additionally returns the relative
  residuals in a vector relres and the number of iteration steps iter.

  *Note:* If it is possible to explicitly calculate the canonical dual
  frame then this is usually a much faster method than invoking
  FRSYNITER.

  FRSYNITER takes the following parameters at the end of the line of
  input arguments:

    'tol',t      Stop if relative residual error is less than the
                 specified tolerance. Default is 1e-9 (1e-5 for single precision)

    'maxit',n    Do at most n iterations.

    'cg'         Solve the problem using the Conjugate Gradient
                 algorithm. This is the default.

    'pcg'        Solve the problem using the Preconditioned Conjugate Gradient
                 algorithm. Please note that preconditioning is not supported
                 for all frame types.               

    'print'      Display the progress.

    'quiet'      Don't print anything, this is the default.

  Algorithms
  ----------

  The function uses the (Preconditioned) Conjugate Gradient algorithm
  to solve the following problem:

       FF*f=Fc

  The preconditioning alters the equations such that

       inv(M)FF*f=inv(M)Fc

  Examples
  --------

  The following example shows how to rectruct a signal without ever
  using the dual frame:

     F=frame('dgtreal','gauss',10,20);
     c=frana(F,bat);
     [r,relres]=frsyniter(F,c,'tol',1e-14);
     norm(bat-r)/norm(bat)
     semilogy(relres);
     title('Conversion rate of the CG algorithm');
     xlabel('No. of iterations');
     ylabel('Relative residual');

Url: http://ltfat.github.io/doc/frames/frsyniter.html

See also: frame, frana, frsyn, franaiter.

Package: ltfat