单个 ffts 的 numpy fftn 顺序

numpy fftn order of individual ffts

fft2 和 fftn 提供轴参数,允许指定在哪些轴上执行变换。该方法是否服从命令?

给定一个二维 numpy 数组

a = np.array([[1,2],[3,4]])

fft2(a,axis=(0,1)

不同于

fft2(a,axis=(1,0)

我有跨行相关但不跨列的数据...

DFT 是可分离的,这意味着计算 2D DFT 与沿每个轴计算两个单独的 1D DFT 相同:

import numpy as np

a = np.arange(25).reshape(5, 5)

out1 = np.fft.fft2(a)

tmp = np.fft.fft(a, axis=0)
out2 = np.fft.fft(tmp, axis=1)

np.allclose(out1, out2) # True

并且由于 nested summations of the DFTs commute,操作顺序无关紧要

tmp = np.fft.fft(a, axis=1)
out3 = np.fft.fft(tmp, axis=0)

np.allclose(out1, out3) # True

这意味着 axes 参数的顺序也无关紧要

out4 = np.fft.fft2(a, axes=(1, 0))

np.allclose(out1, out4) # True