| 查看: 1077 | 回复: 0 | |||
[交流]
在写matlab关于基尔霍夫单缝衍射时遇到了,向大家问题求助下
|
|
我的一个目的是想模拟线光源的基尔霍夫双缝衍射图案,想先从单缝衍射编写matlab,然后在乘以干涉因子得到双缝衍射图案。 现在上面写的是单缝衍射的matlab语言。 上面是我按照 书本上的基尔霍夫衍射公式遍公式 ,先求出取线光源上一点的电光源发出相干光通过一定大小的孔后的衍射图像,然后在把线光源上每个非相干光源产生的衍射图案的光强相叠加。 只求出了关于光强的向量。 所以最后遇到的问题有: 1求出I光强分布后怎么能用坐标表示出来,怎么得到I光强的灰度图? 2还有书本中使用积分求E的,而我是采用间隔取点(间距值的大小不好取)来求E,能优化成积分形式吗? lamda=500e-9;%波长 L=1;%线光源的衍射屏的垂直距离 D=10;%衍射孔到观察面的垂直距离 k=2*pi/lamda; c=1/1j*lamda; ym=2.5*lamda*D/d;%线光源长度 ys=linspace(-ym,ym,2000); d=1e-3;%衍射孔半径 A=1;%E的振幅 um=2.5*lamda*D/d;%观察面 us=linspace(-um,um,2000); for y=-ym:1;ym I=zeros(2000,1); for n=-1e-3:1e-9:1e-3%衍射孔上间隔取点 E=zeros(2000,1); R=sqrt((y-n)^2+L^2);%点光源到衍射孔面上的距离 r=sqrt(d^2+(us-n).^2);%衍射孔到观察面的距离 E=(A/R)*exp(1j*k*R); theta=[(L/R)+(D./r)]/2;%K因子 dE=c*E*theta.*exp(i.*k.*r)./r; E=E+dE;%小孔发出的子波到观察面的叠加 end I=I+(E).*2;%非相干光的光强叠加 end |
» 猜你喜欢
青椒八年已不青,大家都被折磨成啥样了?
已经有14人回复
多组分精馏求助
已经有3人回复
交叉科学部支持青年基金,对三无青椒是个机会吗?
已经有6人回复
免疫学博士有名额,速联系
已经有4人回复
国家基金申请书模板内插入图片不可调整大小?
已经有6人回复
国家级人才课题组招收2026年入学博士
已经有5人回复
Fe3O4@SiO2合成
已经有6人回复
青年基金C终止
已经有4人回复
26申博求博导推荐-遥感图像处理方向
已经有4人回复
西南交通大学国家级人才团队2026年博士研究生招生(考核制)—机械、材料、力学方向
已经有3人回复













回复此楼