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
supportpixels, \(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 thensamples 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 exceeds1 / supportthe readout is aliased andregularizationonly 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 ofsample_positions; a(coils, samples)readout is resampled asreadout @ operator.T.- Return type:
torch.Tensor
- Raises:
ValueError – If either position set has fewer than two entries, or
supportis not positive.