1

我试图对一组数据使用 np.fft.ifft 执行傅里叶逆变换,但我对如何创建适当的域感到困惑。我做了一个关于 np.fft.fft 的示例,它将函数从时域转换为(角)频率,这是我构建的域:

t = np.arange(-N,N)*dt # time domain
df = 1/(2*N*dt)
w = np.arange(-N,N)*df*2*np.pi # angular frequency domain

我在这里乘以 2pi 的原因是因为我认为 Python 给了我 f 和 w = 2*pi*f 的输出,并且一切正常。但是,当我针对不同的物理问题从 k 域到 r 域进行 ifft 时,我感到很困惑(我假设这里的 k 是波数,而 r 可能是径向距离):

r = np.arange(-N,N)*dr # (radial) distance domain
dk = 1/(2*N*dk)
k = np.arange(-N,N)*dk # wave number domian

在这里,我没有将 k 与 2*np.pi 相乘,因为我们没有 w 和 f 那样的关系,但是我得到了错误的结果,显然如果我确实将 k 乘以 2pi,就像我对 w 所做的那样,那么我有正确的结果. 有人可以解释吗?

(我能想到在其中获得 2pi 的唯一原因是关系 k = 2pi/lambda,但它并不真正适合)

4

0 回答 0