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

提示

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

快速傅里叶变换 (FFTs)#

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

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

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

计算一维逆FFT。

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

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

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

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

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

计算 N 维傅里叶变换。

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

计算 N 维逆 FFT。

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

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

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

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

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

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

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])

计算具有厄米特对称性的二维信号的逆快速傅里叶变换。

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])

计算多维离散正弦变换。

快速汉克尔变换#

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

计算快速汉克尔变换。

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

计算逆快速汉克尔变换。

辅助函数#

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 变换,它们目前不支持计划参数。

  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 后端

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

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