| 查看: 1088 | 回复: 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 |
» 猜你喜欢
085700资源与环境308求调剂
已经有7人回复
265求调剂
已经有5人回复
279分求调剂 一志愿211
已经有3人回复
求调剂
已经有3人回复
一志愿吉林大学材料学硕321求调剂
已经有12人回复
286分人工智能专业请求调剂愿意跨考!
已经有3人回复
329求调剂
已经有5人回复
申请回稿延期一个月,编辑同意了。但系统上的时间没变,给编辑又写邮件了,没回复
已经有4人回复
材料学硕318求调剂
已经有5人回复
一志愿中国海洋大学,生物学,301分,求调剂
已经有6人回复













回复此楼