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. For more information, see SciPy FFT backend.

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()`.