RadioInterferometry

class deepinv.physics.RadioInterferometry(img_size, samples_loc, dataWeight=tensor([1.]), k_oversampling=2, interp_points=7, real_projection=True, device='cpu', **kwargs)[source]

Bases: LinearPhysics

Radio Interferometry measurement operator.

The operator handles ungridded measurements using the non-uniform FFT (NUFFT), which is based in Kaiser-Bessel kernel interpolation. This particular implementation relies on the torchkbnufft package.

The forward operator is defined as \(A:x \mapsto y\), where \(A\) can be decomposed as \(A = GFZ \in \mathbb{C}^{m \times n}\). There, \(G \in \mathbb{C}^{m \times d}\) is a sparse interpolation matrix, encoding the non-uniform Fourier transform, \(F \in \mathbb{C}^{d\times d}\) is the 2D Discrete orthonormal Fourier Transform, \(Z \in \mathbb{R}^{d\times n}\) is a zero-padding operator, incorporating the correction for the convolution performed through the operator \(G\).

Parameters:
  • img_size (tuple) – Size of the target image, e.g., (H, W).

  • samples_loc (torch.Tensor) – Normalized sampling locations in the Fourier domain (Size: N x 2).

  • dataWeight (torch.Tensor) – Data weighting for the measurements (Size: N). Default is torch.tensor([1.0]) (i.e. no weighting).

  • interp_points (Union[int, Sequence[int]]) – Number of neighbors to use for interpolation in each dimension. Default is 7.

  • k_oversampling (float) – Oversampling of the k space grid, should be between 1.25 and 2. Default is 2.

  • real_projection (bool) – Apply real projection after the adjoint NUFFT. Default is True.

  • device (torch.device) – Device where the operator is computed. Default is cpu.

Warning

If the real_projection parameter is set to False, the output of the adjoint will have a complex type rather than a real typed.

A(x)[source]

Applies the weighted NUFFT operator to the input image.

Parameters:

x (torch.Tensor) – input image

Returns:

(torch.Tensor) containing the measurements

A_adjoint(y)[source]

Applies the adjoint of the weighted NUFFT operator.

Parameters:

y (torch.Tensor) – input measurements

Returns:

(torch.Tensor) containing the reconstructed image

Examples using RadioInterferometry:

Radio interferometric imaging with deepinverse

Radio interferometric imaging with deepinverse