FFT Functions¶
Standard FFTs¶
cupy.fft.fft |
Compute the one-dimensional FFT. |
cupy.fft.ifft |
Compute the one-dimensional inverse FFT. |
cupy.fft.fft2 |
Compute the two-dimensional FFT. |
cupy.fft.ifft2 |
Compute the two-dimensional inverse FFT. |
cupy.fft.fftn |
Compute the N-dimensional FFT. |
cupy.fft.ifftn |
Compute the N-dimensional inverse FFT. |
Real FFTs¶
cupy.fft.rfft |
Compute the one-dimensional FFT for real input. |
cupy.fft.irfft |
Compute the one-dimensional inverse FFT for real input. |
cupy.fft.rfft2 |
Compute the two-dimensional FFT for real input. |
cupy.fft.irfft2 |
Compute the two-dimensional inverse FFT for real input. |
cupy.fft.rfftn |
Compute the N-dimensional FFT for real input. |
cupy.fft.irfftn |
Compute the N-dimensional inverse FFT for real input. |
Hermitian FFTs¶
cupy.fft.hfft |
Compute the FFT of a signal that has Hermitian symmetry. |
cupy.fft.ihfft |
Compute the FFT of a signal that has Hermitian symmetry. |
Helper routines¶
cupy.fft.fftfreq |
Return the FFT sample frequencies. |
cupy.fft.rfftfreq |
Return the FFT sample frequencies for real input. |
cupy.fft.fftshift |
Shift the zero-frequency component to the center of the spectrum. |
cupy.fft.ifftshift |
The inverse of fftshift() . |
Normalization¶
The default normalization has the direct transforms unscaled and the inverse transforms are scaled by \(1/n\).
If the ketyword argument norm
is "ortho"
, both transforms will be scaled by \(1/\sqrt{n}\).
Code compatibility features¶
FFT functions of NumPy alway return numpy.ndarray which type is numpy.complex128
or numpy.float64
.
CuPy functions do not follow the behavior, they will return numpy.complex64
or numpy.float32
if the type of the input is numpy.float16
, numpy.float32
, or numpy.complex64
.
Internally, cupy.fft
always generates a cuFFT plan (see the cuFFT documentation for detail) corresponding to the desired transform. When possible, an n-dimensional plan will be used, as opposed to applying separate 1D plans for each axis to be transformed. Using n-dimensional planning can provide better performance for multidimensional transforms, but requires more GPU memory than separable 1D planning. The user can disable n-dimensional planning by setting cupy.fft.config.enable_nd_planning = False
. This ability to adjust the planning type is a deviation from the NumPy API, which does not use precomputed FFT plans.
Moreover, the automatic plan generation can be suppressed by using an existing plan returned by cupyx.scipy.fftpack.get_fft_plan()
as a context manager. This is again a deviation from NumPy.