nlop.CoilSense

Contents

nlop.CoilSense#

bartorch.nlop.CoilSense()#

Product of an image and unknown coil sensitivities before a linear encoding.

The model y = E(x * s) with image x and sensitivities s both unknown, for any linear E from coil images to data: a wave encoding, a field-corrected or subspace encoding, or any other. Unlike NonlinearSense the sensitivities themselves are the unknown, with no Sobolev weighting; smoothness is imposed by chaining a smoothing operator onto the coil input, if at all.

Parameters:
  • encoding (LinearOperator) – Encoding from coil images, its domain, to data.

  • image_shape (tuple of int, default=None) – Image shape; the encoding’s domain with one coil.

  • coil_shape (tuple of int, default=None) – Sensitivity shape; the encoding’s domain.

  • items (bool, default=False) – The encoding’s leading axis holds independent items, each with its own image and coils, and the coil axis is the next one. A Gauss-Newton step applies the model to all items at once and solves each item’s inner problem on its own.

Returns:

Inputs: image, sensitivities. Output: data.

Return type:

NonlinearOperator

Raises:

ValueError – If items is set and the image, coil and encoding shapes do not share their leading size.

Examples

>>> E = linop.Diagonal(pattern, shape) @ linop.FFT(shape, axes=(-1, -2))
>>> F = CoilSense(E)
>>> F.ishapes
((1, 128, 128), (8, 128, 128))