我有一个代码,可以创建一个尺寸为4x4 arcsec的正方形图像,从-2 arcsec到+2 arcsec,并在80x80网格上创建。为此,我想添加另一个图像。 第二个图像是通过80x80网格的FFT创建的,因此从傅里叶空间开始。在FFT之后,我希望图像在真实空间中具有与第一图像完全相同的尺寸。
因为傅里叶空间代表尺度而波数被定义为k = 2pi / x(尽管在这种情况下numpy.fft使用我认为k = 1 / x的定义),我认为最大尺度必须具有最小的k值,最小的尺度是最大的k值。
因此,如果x_max = 2(第一个图像的x方向的尺寸)和dim_x = 80(网格中的列数):
k_x,max = 1 /(2 * x_max / dim_x)
k_x,min = 1 /(2 * x_max)
让傅立叶空间中的网格从k_x,min运行到k_x,max(y方向相同)
我希望我能够清楚地解释这一点,但是我在文献中找不到关于FFT的任何确认或解释,并且真的想知道这是否正确。
提前致谢
答案 0 :(得分:2)
这不正确。 k空间值的范围为-N/2*omega_0
到(N-1)/2*omega_0
,其中omega_0
是样本长度的倒数,由2*pi/(max(x)-min(x))
给出,N是样本数。因此,对于您的情况,您可以获得以下内容:
N = len(x)
dx = x[-1]-x[0]
k = np.linspace(-N*pi/dx, (N+1)*pi/dx, N)