[讨论] 光学绕射绘图疑问

楼主: Eenie (Eenie)   2014-07-31 22:20:53
请教各位大大,小弟是利用一平行光源照射一长方型狭缝,
并于狭缝及屏幕间放置一透镜,狭缝至透镜距离及透镜至屏幕距离皆设定为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));
作者: aada (aada)   2014-07-31 23:06:00
可以不用到循环简单来说用fresnel transform*lens equation * inverse fresnel transformEtotal改成Etotal(xt,yt)详细参考傅光4 5 章
作者: dinosaurep (dino)   2014-08-11 21:42:00
用fft可以不需要循环

Links booklink

Contact Us: admin [ a t ] ucptt.com