2

我有一个代码,它创建一个尺寸为 4x4 arcsec 的正方形图像,从 -2 arcsec 到 +2 arcsec 运行,并在 80x80 网格上创建。为此,我想添加另一个图像。第二张图像是通过 80x80 网格的 FFT 创建的,因此从傅立叶空间开始。在 FFT 之后,我希望图像在真实空间中的尺寸与第一张图像完全相同。

因为傅里叶空间代表尺度,波数定义为 k = 2pi/x(尽管在这种情况下 numpy.fft 使用我认为 k = 1/x 的定义),我认为最大的尺度必须有最小的k-value 和最小的 scale 最大的 k-value。

因此,如果 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 的文献中找到任何对此的确认或解释,并且真的很想知道这是否正确。

提前致谢

4

1 回答 1

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)
于 2012-05-02T07:36:36.870 回答