我试图在一组数据上使用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乘以2乘以我的w那我的结果是正确的。有人可以解释一下吗?
(我能想到获得2pi的唯一原因是关系k = 2pi / lambda,但它并不适合)