原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.fft.fftn.html
校对:(虚位以待)
numpy.fft.
fftn
(a, s=None, axes=None, norm=None)[source]计算N维离散傅里叶变换。
该函数通过快速傅里叶变换(FFT)计算M t>维数组中任何数量的轴上的N离散傅里叶变换。
参数: | a:array_like
s:ints序列,可选
axes:ints序列,可选
norm:{None,“ortho”},可选
|
---|---|
返回: | out:complex ndarray
|
上升: | ValueError
IndexError
|
也可以看看
笔记
类似于fft
的输出包含所有轴的低阶角中的零频率项,所有轴的前半部分中的正频率项,所有轴中的奈奎斯特频率的项所有轴的中间和所有轴的后半部分中的负频率项,以负频率的减小的顺序。
有关详细信息,定义和使用的约定,请参见numpy.fft
。
例子
>>> a = np.mgrid[:3, :3, :3][0]
>>> np.fft.fftn(a, axes=(1, 2))
array([[[ 0.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j]],
[[ 9.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j]],
[[ 18.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j]]])
>>> np.fft.fftn(a, (2, 2), axes=(0, 1))
array([[[ 2.+0.j, 2.+0.j, 2.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j]],
[[-2.+0.j, -2.+0.j, -2.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j]]])
>>> import matplotlib.pyplot as plt
>>> [X, Y] = np.meshgrid(2 * np.pi * np.arange(200) / 12,
... 2 * np.pi * np.arange(200) / 34)
>>> S = np.sin(X) + np.cos(Y) + np.random.uniform(0, 1, X.shape)
>>> FS = np.fft.fftn(S)
>>> plt.imshow(np.log(np.abs(np.fft.fftshift(FS))**2))
<matplotlib.image.AxesImage object at 0x...>
>>> plt.show()