nlop.CoilSense#
- bartorch.nlop.CoilSense()#
Product of an image and unknown coil sensitivities before a linear encoding.
The model
y = E(x * s)with imagexand sensitivitiessboth unknown, for any linearEfrom coil images to data: a wave encoding, a field-corrected or subspace encoding, or any other. UnlikeNonlinearSensethe 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:
- Raises:
ValueError – If
itemsis 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))