prtools.fftconv#

fftconv(array, kernel, axes=(-2, -1), normalize_kernel=True, fft_array=True, fft_kernel=False, fftshift_kernel=False)[source]#

Convolve an array with a kernel using the FFT.

The colvolution is computed as

\[u*v = \mathcal{F}^{-1}\left\{\mathcal{F}\{u\}\cdot\mathcal{F}\{v\}\right\}\]
Parameters:
  • array (array_like) – Array to be convolved with kernel.

  • kernel (array_like) – Convolution kernel. Should have the same shape as array.

  • axes (sequence of ints, optional) – Axes over which to apply the convolution. If not given, the last two axes are used.

  • normalize_kernel (bool, optional) – If True (default), kernel is normalized so that sum(kernel) == 1.

  • fft_array (bool, optional) – If True (default), the array is assumed to be provided in the spatial domain and its FFT will be computed by this function. If False, the array is assumed to be provided in the frequency domain.

  • fft_kernel (bool, optional) – If True, the kernel is assumed to be provided in the spatial domain and its FFT will be computed by this function. If False (default), the kernel is assumed to be provided in the frequency domain.

  • fftshift_kernel (bool, optional) – If True, the supplied kernel will be shifted so that its zero-frequency (DC) term is placed at the upper left (0,0) corner of the array. Default is False.

Return type:

ndarray