mars.tensor.fft.fft2#
- mars.tensor.fft.fft2(a, s=None, axes=(-2, -1), norm=None)[来源]#
计算二维离散傅里叶变换
此函数通过快速傅里叶变换(FFT)计算任意轴上的n维离散傅里叶变换,适用于M维数组。默认情况下,变换是在输入数组的最后两个轴上计算的,即 2 维 FFT。
- Parameters
a (array_like) – 输入张量,可以是复数
s (序列 of 整数, 可选) – 输出的形状(每个变换轴的长度) (
s[0]指的是轴 0,s[1]指的是轴 1, 等等)。 这对应于n对于fft(x, n)。 沿每个轴,如果给定的形状小于输入的形状, 输入将被裁剪。如果形状更大,输入将用零填充。 如果未提供 s,则使用由 axes 指定的轴上的输入形状。axes (序列 of ints, 可选) – 用于计算FFT的轴。如果未给定,使用最后两个轴。axes中的重复索引意味着在该轴上进行多次变换。一个元素的序列意味着执行一维FFT。
norm ({None, "ortho"}, 可选) – 归一化模式(见 mt.fft)。默认值为 None。
- Returns
out – 截断或零填充的输入,沿着axes所指示的轴进行变换,或者如果未给出axes,则沿着最后两个轴进行变换。
- Return type
复合张量
- Raises
ValueError – 如果 s 和 axes 的长度不同,或者 axes 未给出且
len(s) != 2.IndexError – 如果axes的某个元素大于a的轴数量。
另请参阅
备注
fft2只是将fftn的axes默认值更改为不同的。
输出与fft类似,包含在变换轴的低阶角落的零频率项,第一半轴上的正频率项,轴中间的Nyquist频率项,以及第二半轴上的负频率项,按越来越负的频率顺序排列。
请参见 fftn 获取详细信息和绘图示例,以及 mt.fft 获取使用的定义和约定。
示例
>>> import mars.tensor as mt
>>> a = mt.mgrid[:5, :5][0] >>> mt.fft.fft2(a).execute() array([[ 50.0 +0.j , 0.0 +0.j , 0.0 +0.j , 0.0 +0.j , 0.0 +0.j ], [-12.5+17.20477401j, 0.0 +0.j , 0.0 +0.j , 0.0 +0.j , 0.0 +0.j ], [-12.5 +4.0614962j , 0.0 +0.j , 0.0 +0.j , 0.0 +0.j , 0.0 +0.j ], [-12.5 -4.0614962j , 0.0 +0.j , 0.0 +0.j , 0.0 +0.j , 0.0 +0.j ], [-12.5-17.20477401j, 0.0 +0.j , 0.0 +0.j , 0.0 +0.j , 0.0 +0.j ]])