旧版离散傅里叶变换 (cupyx.scipy.fftpack)#

注意

从 SciPy 1.4.0 版本开始,推荐使用 scipy.fft 而非 scipy.fftpack。请考虑改用 cupyx.scipy.fft

快速傅里叶变换 (FFT)#

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

计算一维 FFT。

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

计算一维逆 FFT。

fft2(x[, shape, axes, overwrite_x, plan])

计算二维 FFT。

ifft2(x[, shape, axes, overwrite_x, plan])

计算二维逆 FFT。

fftn(x[, shape, axes, overwrite_x, plan])

计算 N 维 FFT。

ifftn(x[, shape, axes, overwrite_x, plan])

计算 N 维逆 FFT。

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

计算实数输入的一维 FFT。

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

计算实数输入的一维逆 FFT。

get_fft_plan(a[, shape, axes, value_type])

为多达三个轴的变换生成 CUDA FFT 计划。

代码兼容性特性#

  1. 与 CuPy 中的其他 FFT 模块一样,此模块中的 FFT 函数可以利用现有的 cuFFT 计划(由 get_fft_plan() 返回)来加速计算。该计划可以显式通过 plan 参数传入,或用作上下文管理器。plan 参数目前处于实验阶段,其接口未来版本中可能会改变。get_fft_plan() 函数在 scipy.fftpack 中没有对应项。

  2. 布尔开关 cupy.fft.config.enable_nd_planning 也会影响此模块中的 FFT 函数,请参见 离散傅里叶变换 (cupy.fft)。当使用 get_fft_plan() 手动规划时,此开关会被忽略。

  3. scipy.fftpack 中一样,此模块中的所有 FFT 函数都有一个可选参数 overwrite_x(默认为 False),其语义与 scipy.fftpack 中相同:当设置为 True 时,输入数组 x 可能(而非 一定)被任意覆盖。因此,当需要原地 FFT 时,用户应始终按以下方式重新赋值输入:x = cupyx.scipy.fftpack.fft(x, ..., overwrite_x=True, ...)

  4. 布尔开关 cupy.fft.config.use_multi_gpus 也会影响此模块中的 FFT 函数,请参见 离散傅里叶变换 (cupy.fft)。此外,当使用 get_fft_plan() 手动规划时,此开关是生效的。