[討論] 光學繞射繪圖疑問

看板MATLAB作者 (Eenie)時間10年前 (2014/07/31 22:20), 編輯推噓3(303)
留言6則, 2人參與, 最新討論串1/1
請教各位大大,小弟是利用一平行光源照射一長方型狹縫, 並於狹縫及屏幕間放置一透鏡,狹縫至透鏡距離及透鏡至屏幕距離皆設定為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://www.ptt.cc/bbs/MATLAB/M.1406816456.A.163.html

07/31 23:06, , 1F
可以不用到迴圈
07/31 23:06, 1F

07/31 23:08, , 2F
簡單來說用fresnel transform
07/31 23:08, 2F

07/31 23:08, , 3F
*lens equation * inverse fresnel transform
07/31 23:08, 3F

07/31 23:11, , 4F
Etotal改成Etotal(xt,yt)
07/31 23:11, 4F

07/31 23:12, , 5F
詳細參考傅光4 5 章
07/31 23:12, 5F

08/11 21:42, , 6F
用fft可以不需要迴圈
08/11 21:42, 6F
文章代碼(AID): #1Jsb385Z (MATLAB)