# calc_toeplitz_kernel

calc_toeplitz_kernel(omega, im_size, weights=None, norm=None, grid_size=None, numpoints=6, table_oversamp=1024, kbwidth=2.34, order=0.0)[source]

Calculates an FFT kernel for Toeplitz embedding.

The kernel is calculated using a adjoint NUFFT object. If the adjoint applies $$A'$$, then this script calculates $$D$$ where $$F'DF \approx A'WA$$, where $$F$$ is a DFT matrix and $$W$$ is a set of non-Cartesian k-space weights. $$D$$ can then be used to approximate $$A'WA$$ without any interpolation operations.

For details on Toeplitz embedding, see Efficient numerical methods in non-uniform sampling theory (Feichtinger et al.).

This function has optional parameters for initializing a NUFFT object. See KbNufftAdjoint for details.

Note

This function is intended to be used in conjunction with ToepNufft for forward operations.

• omega should be of size (len(im_size), klength) or (N, len(im_size), klength), where klength is the length of the k-space trajectory.

Parameters
Return type

Tensor

Returns

The FFT kernel for approximating the forward/adjoint operation.

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)