numpy.fft.fft2#

fft.fft2(a, s=None, axes=(-2, -1), norm=None, out=None)[source]#

计算二维离散傅里叶变换。

此函数通过快速傅里叶变换 (FFT) 计算 M 维数组中任意轴上的 n 维离散傅里叶变换。默认情况下,变换是在输入数组的最后两个轴上计算的,即进行二维 FFT。

参数:
a类数组

输入数组,可以是复数

s整数序列,可选

输出的形状(每个变换轴的长度)(s[0] 指轴 0,s[1] 指轴 1,依此类推)。这对应于 fft(x, n) 中的 n。沿每个轴,如果给定形状小于输入形状,则输入将被裁剪。如果大于输入形状,则输入将用零填充。

2.0 版本变更: 如果为 -1,则使用整个输入(不填充/裁剪)。

如果未给出 s,则使用由 axes 指定的轴的输入形状。

自 2.0 版本弃用: 如果 s 不为 None,则 axes 也不能为 None

自 2.0 版本弃用: s 必须只包含 int 类型的值,而不是 None。目前 None 值表示在相应的 1-D 变换中使用了 n 的默认值,但此行为已被弃用。

axes整数序列,可选

计算 FFT 的轴。如果未给出,则使用最后两个轴。axes 中的重复索引意味着对该轴的变换将执行多次。单个元素的序列表示执行一维 FFT。默认值:(-2, -1)

自 2.0 版本弃用: 如果指定了 s,则要变换的相应 axes 不能为空 None

norm{“backward”, “ortho”, “forward”},可选

归一化模式(参见 numpy.fft)。默认值为 “backward”。指示正向/反向变换对的哪个方向被缩放以及使用何种归一化因子。

1.20.0 版本新增: 添加了“backward”、“forward”值。

out复数 ndarray,可选

如果提供,结果将放入此数组中。它应具有所有轴的适当形状和 dtype(因此只有最后一个轴的 s 可以不等于该轴的形状)。

2.0.0 版本新增。

返回:
out复数 ndarray

沿 axes 指示的轴(如果未给出 axes 则为最后两个轴)变换后的截断或零填充输入。

抛出:
ValueError

如果 saxes 长度不同,或者未给出 axeslen(s) != 2

IndexError

如果 axes 的某个元素大于 a 的轴数。

另请参见

numpy.fft

离散傅里叶变换的整体视图,包括所使用的定义和约定。

ifft2

二维 FFT 的逆变换。

fft

一维 FFT。

fftn

n 维 FFT。

fftshift

将零频率项移到数组中心。对于二维输入,交换第一和第三象限,以及第二和第四象限。

注意

fft2 只是 fftn 的一个特例,它使用了不同的 axes 默认值。

输出类似于 fft,在变换轴的低阶角包含零频率项,在这些轴的前半部分包含正频率项,在轴的中间包含奈奎斯特频率项,在轴的后半部分包含负频率项,按负频率递减的顺序排列。

有关详细信息和绘图示例,请参见 fftn,有关所使用的定义和约定,请参见 numpy.fft

示例

>>> import numpy as np
>>> a = np.mgrid[:5, :5][0]
>>> np.fft.fft2(a)
array([[ 50.  +0.j        ,   0.  +0.j        ,   0.  +0.j        , # may vary
          0.  +0.j        ,   0.  +0.j        ],
       [-12.5+17.20477401j,   0.  +0.j        ,   0.  +0.j        ,
          0.  +0.j        ,   0.  +0.j        ],
       [-12.5 +4.0614962j ,   0.  +0.j        ,   0.  +0.j        ,
          0.  +0.j        ,   0.  +0.j        ],
       [-12.5 -4.0614962j ,   0.  +0.j        ,   0.  +0.j        ,
          0.  +0.j        ,   0.  +0.j        ],
       [-12.5-17.20477401j,   0.  +0.j        ,   0.  +0.j        ,
          0.  +0.j        ,   0.  +0.j        ]])