nlop.CoilSense#
- bartorch.nlop.CoilSense()#
Product of an image and unknown coil sensitivities, through any encoding.
The general construction rather than BART’s particular model: a product of two unknowns in front of any linear operator from coil images to data – a wave encoding, a field-corrected one, a subspace one, or one of your own:
_chain(Multiply(image_shape, coil_shape), encoding.to_nonlinear())
Unlike
NonlinearSensethere is no Sobolev weighting on the coils: the sensitivities themselves are the unknown, and nothing constrains them to be smooth. Regularize them by chaining a smoothing operator onto the coil input, or useNonlinearSense, which carries BART’s.- Parameters:
encoding (LinearOperator) – From coil images to data. Its domain is the coil-image shape.
image_shape (tuple of int, default=None) – Where the image lives; by default the encoding’s domain with one coil.
coil_shape (tuple of int, default=None) – Where the sensitivities live; by default the encoding’s domain.
items (bool, default=False) – The encoding’s leading axis holds independent items, each with its own image and coils; the coils are the next axis. A Gauss-Newton step then applies the model to every item at once and solves each item’s inner problem on its own.
- Returns:
Two inputs, the image and the coils, and one output, the data.
- Return type:
Examples
>>> E = linop.Diagonal(pattern, shape) @ linop.FFT(shape, axes=(-1, -2)) >>> F = CoilSense(E) >>> F.ishapes ((1, 128, 128), (8, 128, 128))