【发布时间】:2017-06-28 08:41:21
【问题描述】:
我想对函数 psi(x) 进行傅里叶变换,将其乘以 k 空间函数 exp(-kx^2-ky^2),然后将乘积逆傅里叶变换回 x 空间。
但是我的 x 空间和 k 空间网格是居中的,我知道我需要 fftshift 和 ifftshift 来正确实现我的 k 空间乘法。但是我不明白它们是如何工作的,所以我不知道以什么顺序来实现它们。有人可以告诉我我在这里做得是否正确吗?
import scipy.fftpack as spfft
import numpy as np
#Create a centred k-space grid]
kxmax, kymax = 10,10
kxgrid = np.linspace(-kxmax/2, kxmax/2, NX)
kygrid = np.linspace(-kymax/2, kymax/2, NY)
KX, KY = np.meshgrid(kxgrid, kygrid, indexing='xy')
psi = spfft.ifft2(spfft.fftshift(np.exp(-(KX**2 + KY**2)) * spfft.fftshift(spfft.fft2(psi))))
【问题讨论】: