linop.Sobolev

Contents

linop.Sobolev#

class bartorch.linop.Sobolev#

Bases: LinearOperator

Image from Sobolev-weighted k-space coefficients, BART’s linop_noir_weights.

The coefficients are multiplied by c (1 + a |k|^2)^(-b/2) and transformed by the centred unitary inverse FFT along axes. k_i is the frequency index along axis i, from -(n_i // 2), divided by n_i. Penalising the coefficients rather than the image is the Sobolev-norm regularization NLINV applies to coil sensitivities and moba to B1 and B0 maps.

Parameters:
  • shape (tuple of int) – Domain and codomain, C order.

  • axes (int or tuple of int) – Axes weighted and transformed.

  • a (float) – Width and order of the weighting (NLINV’s a and b).

  • b (float) – Width and order of the weighting (NLINV’s a and b).

  • c (float, default=1.0) – Weight at the centre of k-space.

Examples

A map on a 64x64 grid under moba’s B1 weighting, started from a constant:

>>> W = Real((64, 64)) @ Sobolev((64, 64), (0, 1), 440.0, 20.0)
>>> coefficients = W.H(torch.ones(64, 64, dtype=torch.complex64))

Also has the methods and properties of LinearOperator.