Iterative Soft Thresholding

Iterative soft thresholding algorithm.

mr_utils.cs.thresholding.iterative_soft_thresholding.IST(A, y, mu=0.8, theta0=None, k=None, maxiter=500, tol=1e-08, x=None, disp=False)[source]

Iterative soft thresholding algorithm (IST).

Parameters:
  • A (array_like) – Measurement matrix.
  • y (array_like) – Measurements (i.e., y = Ax).
  • mu (float, optional) – Step size (theta contraction factor, 0 < mu <= 1).
  • theta0 (float, optional) – Initial threshold, decreased by factor of mu each iteration.
  • k (int, optional) – Number of expected nonzero coefficients.
  • maxiter (int, optional) – Maximum number of iterations.
  • tol (float, optional) – Stopping criteria.
  • x (array_like, optional) – True signal we are trying to estimate.
  • disp (bool, optional) – Whether or not to display iterations.
Returns:

x_hat – Estimate of x.

Return type:

array_like

Notes

Solves the problem:

\[\min_x || y - Ax ||^2_2 \text{ s.t. } ||x||_0 \leq k\]

If disp=True, then MSE will be calculated using provided x. If theta0=None, the initial threshold of the IHT will be used as the starting theta.

Implements Equations [22-23] from [1]

References

[1]Rani, Meenu, S. B. Dhok, and R. B. Deshmukh. “A systematic review of compressive sensing: Concepts, implementations and applications.” IEEE Access 6 (2018): 4875-4894.