Table 1. Pseudocode for the Iterative Soft Thresholding Processing of Ultrafast 2D NMR Data.
Input: | |
G(t)- Gradient waveform (N×1); FID (N×1); k/ν1-axis grid (n×1); ν2 – the direct domain frequency vector (1×m), ε , MaxIter – maximal number of iterations | |
Output: | |
S(k/ν1, ν2) – 2D spectrum matrix (n-by-m): | |
Preliminary calculations: | |
k(t) – wavenumber as a function of acquisition | |
t2(k) – n vectors containing the t2 points at each wavenumber k | |
- n complex matrices | |
Initialization: | |
Residual vectors | r0(k)=FID(k,t2) |
Correlation vectors | |
Global threshold value | λ0=μ·max{|c0(k)|} |
Solution | S0=0 of size n×m |
while (p<MaxIter) and | |
Update solution | Sp+1(k) = Sp(k)+δλp (cp (k)) |
Calculate residual | |
Calculate correlation | |
Update threshold value | λp+1=μ·max{|cp+1(k)|} |
end while | |
Post-processing: Inverse FT for
S(k/ν1,
ν2) along the direct domain;
Exponential, Gaussian
or Lorentzian Filtering; FT for S(k/ν1, ν2) along the direct domain. |