作者Eenie (Eenie)
看板MATLAB
标题[讨论] 光学绕射绘图疑问
时间Thu Jul 31 22:20:53 2014
请教各位大大,小弟是利用一平行光源照射一长方型狭缝,
并於狭缝及屏幕间放置一透镜,狭缝至透镜距离及透镜至屏幕距离皆设定为f,
请问大大如果要将最终屏幕上Etotal的结果与E(xt,yt)
同时绘制出来需於程式末段加上哪些指令??
(目前小弟只有绘制出光源经过狭缝後的结果E(xt,yt))
(程式内容如有任何问题也请各位大大指教 谢谢!!)
clc
clear
lamda=632e-9; %波长
k=2*pi/lamda;
f=5;
a=3e-1;
l=6e-1;
bw2=zeros(101);%光源
bw2(49:51,49:51)=1;
Fix=fftshift(fft2(bw2));
x=linspace(-3,3,101);
y=linspace(-3,3,101);
xt=1;
for xc=-3:0.06:3
yt=1;
for yc=-3:0.06:3
E(xt,yt)=(((a*l)/(1i*lamda*f))*exp((1i*k)*(f+((xc^2)+(yc^2))/(2*f))))*
(Fix(xt,yt));
Etotal=E(xt,yt)*exp((1i*k*f)-((1i*pi*lamda*f)*
(((xc/(lamda*f))^2)+((yc/(lamda*f))^2))));
yt=yt+1;
end
xt=xt+1;
end
[xx,yy]=meshgrid(x,y);
mesh(xx,yy,abs(E));
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.251.157.122
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MATLAB/M.1406816456.A.163.html
1F:推 aada:可以不用到回圈 07/31 23:06
2F:→ aada:简单来说用fresnel transform 07/31 23:08
3F:→ aada:*lens equation * inverse fresnel transform 07/31 23:08
4F:推 aada:Etotal改成Etotal(xt,yt) 07/31 23:11
5F:→ aada:详细参考傅光4 5 章 07/31 23:12
6F:推 dinosaurep: 用fft可以不需要回圈 08/11 21:42