tools.epi_ramp_operator

tools.epi_ramp_operator#

bartorch.tools.epi_ramp_operator()#

Band-limited resampling of a readout from its sampled to its target positions.

The readout is modelled as the transform of an object of support pixels, \(s(k) = \sum_x e^{-2\pi i k x} o_x\) over \(x = -\lfloor S/2 \rfloor, \dots, S - 1 - \lfloor S/2 \rfloor\). The operator is \(E_t (E_s^H E_s + \lambda n I)^{-1} E_s^H\), the regularized least-squares fit of the object to the n samples followed by the transform at the targets. It is exact for a band-limited readout whose samples determine the object, which ramp sampling with readout oversampling provides; where the sample spacing exceeds 1 / support the readout is aliased and regularization only limits the noise gain.

Parameters:
  • sample_positions (torch.Tensor) – k-space position of each sample, in cycles per pixel of the reconstructed matrix, within \([-1/2, 1/2]\): the readout’s trajectory under the ADC, ramps included.

  • target_positions (torch.Tensor) – Positions of the uniform grid, in the same units.

  • support (int) – Pixels the object spans along the readout: the reconstructed matrix size.

  • regularization (float, default=1e-06) – Tikhonov weight \(\lambda\), relative to the sample count.

Returns:

Complex64 operator (targets, samples) on the device of sample_positions; a (coils, samples) readout is resampled as readout @ operator.T.

Return type:

torch.Tensor

Raises:

ValueError – If either position set has fewer than two entries, or support is not positive.

Examples using epi_ramp_operator#

EPI Nyquist ghost and ramp sampling

EPI Nyquist ghost and ramp sampling