Skip to main content
. Author manuscript; available in PMC: 2015 Oct 1.
Published in final edited form as: Magn Reson Med. 2013 Nov 18;72(4):959–970. doi: 10.1002/mrm.24997

Table 1.

Pseudo-code for SAKE

Inputs: y - acquired (Cartesian/non-Cartesian) data from all channels
D/D - operators relating reconstructed data to the acquired data y, and vice versa
H/H - operators that construct the data matrix from k-space values, and vice versa
k - rank of the data matrix
Tol - tolerance on error
Outputs: xn - reconstructed data for all channels
Algorithm: x0 = Dy, n = 0
do {
n = n + 1
An = H(xn−1)% construct data matrix
 [U Σ V] = svd(An) % perform SVD
An = U|| Σk V||H % hard-threshold singular values (low-rankness projection)
xn = H(An) % transform data matrix back to k-space data (structural consistency projection)
xn = (IDD) xn + Dy % data consistency projection (see Appendix for details)
 err = ||xnxn−1||
} while err > Tol