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
and2
. Default is2
.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 toFalse
, 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