# ToepNufft

class ToepNufft[source]

Forward/backward NUFFT with Toeplitz embedding.

This module applies $$Tx$$, where $$T$$ is a matrix such that $$T \approx A'A$$, where $$A$$ is a NUFFT matrix. Using Toeplitz embedding, this module approximates the $$A'A$$ operation without interpolations, which is extremely fast.

The module is intended to be used in combination with an FFT kernel computed as frequency response of an embedded Toeplitz matrix. You can use calc_toeplitz_kernel() to calculate the kernel.

The FFT kernel should be passed to this module’s forward operation, which applies a (zero-padded) FFT filter using the kernel.

Examples

>>> image = torch.randn(1, 1, 8, 8) + 1j * torch.randn(1, 1, 8, 8)
>>> omega = torch.rand(2, 12) * 2 * np.pi - np.pi
>>> toep_ob = tkbn.ToepNufft()
>>> kernel = tkbn.calc_toeplitz_kernel(omega, im_size=(8, 8))
>>> image = toep_ob(image, kernel)

forward(image, kernel, smaps=None, norm=None)[source]

Toeplitz NUFFT forward function.

Parameters
Return type

Tensor

Returns

image after applying the Toeplitz forward/backward NUFFT.