Discrete Fourier transforms (cupyx.scipy.fft)

Fast Fourier Transforms (FFTs)

fft(x[, n, axis, norm, overwrite_x, plan])

Compute the one-dimensional FFT.

ifft(x[, n, axis, norm, overwrite_x, plan])

Compute the one-dimensional inverse FFT.

fft2(x[, s, axes, norm, overwrite_x, plan])

Compute the two-dimensional FFT.

ifft2(x[, s, axes, norm, overwrite_x, plan])

Compute the two-dimensional inverse FFT.

fftn(x[, s, axes, norm, overwrite_x, plan])

Compute the N-dimensional FFT.

ifftn(x[, s, axes, norm, overwrite_x, plan])

Compute the N-dimensional inverse FFT.

rfft(x[, n, axis, norm, overwrite_x, plan])

Compute the one-dimensional FFT for real input.

irfft(x[, n, axis, norm, overwrite_x, plan])

Compute the one-dimensional inverse FFT for real input.

rfft2(x[, s, axes, norm, overwrite_x, plan])

Compute the two-dimensional FFT for real input.

irfft2(x[, s, axes, norm, overwrite_x, plan])

Compute the two-dimensional inverse FFT for real input.

rfftn(x[, s, axes, norm, overwrite_x, plan])

Compute the N-dimensional FFT for real input.

irfftn(x[, s, axes, norm, overwrite_x, plan])

Compute the N-dimensional inverse FFT for real input.

hfft(x[, n, axis, norm, overwrite_x, plan])

Compute the FFT of a signal that has Hermitian symmetry.

ihfft(x[, n, axis, norm, overwrite_x, plan])

Compute the FFT of a signal that has Hermitian symmetry.

Helper functions

fftshift(x[, axes])

Shift the zero-frequency component to the center of the spectrum.

ifftshift(x[, axes])

The inverse of fftshift().

fftfreq(n[, d])

Return the FFT sample frequencies.

rfftfreq(n[, d])

Return the FFT sample frequencies for real input.

next_fast_len(target[, real])

Find the next fast size to fft.

Code compatibility features

  1. As with other FFT modules in CuPy, FFT functions in this module can take advantage of an existing cuFFT plan (returned by get_fft_plan()) to accelarate the computation. The plan can be either passed in explicitly via the keyword-only plan argument or used as a context manager.

  2. The boolean switch cupy.fft.config.enable_nd_planning also affects the FFT functions in this module, see Discrete Fourier Transform (cupy.fft). This switch is neglected when planning manually using get_fft_plan().

  3. Like in scipy.fft, all FFT functions in this module have an optional argument overwrite_x (default is False), which has the same semantics as in scipy.fft: when it is set to True, the input array x can (not will) be overwritten arbitrarily. For this reason, when an in-place FFT is desired, the user should always reassign the input in the following manner: x = cupyx.scipy.fftpack.fft(x, ..., overwrite_x=True, ...).

  4. The cupyx.scipy.fft module can also be used as a backend for scipy.fft e.g. by installing with scipy.fft.set_backend(cupyx.scipy.fft). This can allow scipy.fft to work with both numpy and cupy arrays.

  5. The boolean switch cupy.fft.config.use_multi_gpus also affects the FFT functions in this module, see Discrete Fourier Transform (cupy.fft). Moreover, this switch is honored when planning manually using get_fft_plan().

Note

scipy.fft requires SciPy version 1.4.0 or newer.

Note

To use scipy.fft.set_backend() together with an explicit plan argument requires SciPy version 1.5.0 or newer.