离散傅里叶变换 (cupyx.scipy.fft)#

快速傅里叶变换 (FFTs)#

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

计算一维 FFT。

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

计算一维逆 FFT。

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

计算二维 FFT。

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

计算二维逆 FFT。

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

计算 N 维 FFT。

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

计算 N 维逆 FFT。

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

计算实数输入的一维 FFT。

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

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

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

计算实数输入的二维 FFT。

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

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

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

计算实数输入的 N 维 FFT。

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

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

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

计算具有厄密特对称性的信号的 FFT。

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

计算具有厄密特对称性的信号的 FFT。

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

计算具有厄密特对称性的二维信号的 FFT。

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

计算具有厄密特对称性的二维信号的逆 FFT。

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

计算具有厄密特对称性的 N 维信号的 FFT。

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

计算具有厄密特对称性的 N 维信号的逆 FFT。

离散余弦变换和正弦变换 (DST 和 DCT)#

dct(x[, type, n, axis, norm, overwrite_x])

返回数组 x 的离散余弦变换。

idct(x[, type, n, axis, norm, overwrite_x])

返回数组 x 的逆离散余弦变换。

dctn(x[, type, s, axes, norm, overwrite_x])

计算多维离散余弦变换。

idctn(x[, type, s, axes, norm, overwrite_x])

计算多维离散余弦变换。

dst(x[, type, n, axis, norm, overwrite_x])

返回数组 x 的离散正弦变换。

idst(x[, type, n, axis, norm, overwrite_x])

返回数组 x 的逆离散正弦变换。

dstn(x[, type, s, axes, norm, overwrite_x])

计算多维离散正弦变换。

idstn(x[, type, s, axes, norm, overwrite_x])

计算多维离散正弦变换。

快速 Hankel 变换#

fht(a, dln, mu[, offset, bias])

计算快速 Hankel 变换。

ifht(A, dln, mu[, offset, bias])

计算逆快速 Hankel 变换。

辅助函数#

fftshift(x[, axes])

将零频率分量移动到频谱中心。

ifftshift(x[, axes])

fftshift() 的逆操作。

fftfreq(n[, d])

返回 FFT 采样频率。

rfftfreq(n[, d])

返回实数输入的 FFT 采样频率。

next_fast_len(target[, real])

找到 fft 的下一个快速大小。

代码兼容性特性#

  1. 与 CuPy 中的其他 FFT 模块一样,此模块中的 FFT 函数可以利用现有的 cuFFT 计划(由 get_fft_plan() 返回)来加速计算。该计划可以通过仅限关键字的 plan 参数显式传入,或用作上下文管理器。DCT 和 DST 变换是一个例外,它们目前不支持 plan 参数。

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

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

  4. cupyx.scipy.fft 模块也可以用作 scipy.fft 的后端,例如通过 scipy.fft.set_backend(cupyx.scipy.fft) 进行安装。这使得 scipy.fft 可以同时处理 numpycupy 数组。更多信息请参见 SciPy FFT backend

  5. 布尔开关 cupy.fft.config.use_multi_gpus 也影响此模块中的 FFT 函数,详见 离散傅里叶变换 (cupy.fft)。此外,使用 get_fft_plan() 手动规划时,此开关会被*遵循*。

  6. 类型 II 和 III 的 DCT 和 DST 变换均已实现。类型 I 和 IV 的变换目前尚不可用。