fcm168 发表于 2008-9-4 09:46

空间域与波数域的问题

各位高手,这个问题我实在搞不定了,所以只能来求助了。这是个电磁场传播的问题。问题是这样的:这个问题的理论公式的推导全是在波数域(kx,ky)中推导的,所以最后得到的结果也就是波数域中的结果(当然都是解析式)。这样在进行数值计算的时候我给出很多对的(kx,ky),就得出了对应的结果(电磁场的大小E)。而我想得到空间域的结果则需要进行ifft2(我用的matlab)。问题就出来了,我不知道怎么给(kx,ky),波数的范围应该给在【-pi,pi】之间吗?
Nx=200;Ny=200;
dx=100;
dy=100;
dkx=2*pi/Nx/dx;
dky=2*pi/Ny/dy;
n1=floor(-(N-1)/2:-1/2);n2=floor(0:(N-1)/2);
kx=*dkx;
ky=kx;
=meshgrid(kx,ky);

算出波数域中的E后
Ex=ifft2(E/dx/dy);
Ex=fftshift(E);
但算出来后结果不对。到底是哪里的问题??

antonylau 发表于 2008-9-5 14:36

1.空间域 x 到波数域kx 有一个对应关系,如你所写,n2 n1
2.空间域值 fft2可以得到 波数谱, 同样得到的结果要把负波数变换到前面, 而你在IFFT2时应该把负波数的谱值变化到后面以保持对应

fcm168 发表于 2008-9-5 15:05

antonylau你好,感谢你的留言。你写的第二个我看不太懂。因为我手里的公式就是波数域中的公式,所以我给出(kx,ky),就能计算出相应的谱值。而kx=*dkx;后,相应的谱值也就是前面的对应的正波数的,后面对应负波数的,所以“Ex=ifft2(E/dx/dy)”中的E已经是把负波数的谱值变化到后面了啊。

fcm168 发表于 2008-9-7 20:01

是不是坛子里搞这个的人很少啊,怎么没有人帮我呢?

antonylau 发表于 2008-9-9 14:58

我觉得如果都对应好了,应该不会有问题, 我之前做过fft2的,结果和文献对比过,没有什么问题
ifft2原理应该一致

shenxiaoxi20021 发表于 2012-7-3 18:20

楼主,不知道你这个问题解决没有?我也很想了解空间域到波数域的变化问题
页: [1]
查看完整版本: 空间域与波数域的问题