声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5372|回复: 5

[FFT] 空间域与波数域的问题

[复制链接]
发表于 2008-9-4 09:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
各位高手,这个问题我实在搞不定了,所以只能来求助了。这是个电磁场传播的问题。问题是这样的:这个问题的理论公式的推导全是在波数域(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=[n2,n1]*dkx;
ky=kx;
[k_x,k_y]=meshgrid(kx,ky);

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

使用道具 举报

发表于 2008-9-5 14:36 | 显示全部楼层
1.空间域 x 到波数域kx 有一个对应关系,如你所写,n2 n1
2.空间域值 fft2可以得到 波数谱, 同样得到的结果要把负波数变换到前面, 而你在IFFT2时应该把负波数的谱值变化到后面以保持对应
 楼主| 发表于 2008-9-5 15:05 | 显示全部楼层
antonylau你好,感谢你的留言。你写的第二个我看不太懂。因为我手里的公式就是波数域中的公式,所以我给出(kx,ky),就能计算出相应的谱值。而kx=[n2,n1]*dkx;后,相应的谱值也就是前面的对应的正波数的,后面对应负波数的,所以“Ex=ifft2(E/dx/dy)”中的E已经是把负波数的谱值变化到后面了啊。
 楼主| 发表于 2008-9-7 20:01 | 显示全部楼层
是不是坛子里搞这个的人很少啊,怎么没有人帮我呢?
发表于 2008-9-9 14:58 | 显示全部楼层
我觉得如果都对应好了,应该不会有问题, 我之前做过fft2的,结果和文献对比过,没有什么问题
ifft2原理应该一致
发表于 2012-7-3 18:20 | 显示全部楼层
楼主,不知道你这个问题解决没有?我也很想了解空间域到波数域的变化问题
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 05:59 , Processed in 0.061180 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表