传统离散傅里叶变换 (cupyx.scipy.fftpack)#

备注

自 SciPy 版本 1.4.0 起,推荐使用 scipy.fft 而非 scipy.fftpack。建议考虑使用 cupyx.scipy.fft

提示

SciPy API 参考:旧版离散傅里叶变换(scipy.fftpack) <https://docs.scipy.org/doc/scipy/reference/fftpack.html>`_

快速傅里叶变换 (FFTs)#

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

计算一维快速傅里叶变换。

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

计算一维逆FFT。

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

计算二维快速傅里叶变换。

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

计算二维逆快速傅里叶变换。

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

计算 N 维傅里叶变换。

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

计算 N 维逆 FFT。

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

计算实输入的一维快速傅里叶变换。

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() 手动规划时,此开关也会被*遵守*。