看板 MATLAB 關於我們 聯絡資訊
請教各位大大,小弟是利用一平行光源照射一長方型狹縫, 並於狹縫及屏幕間放置一透鏡,狹縫至透鏡距離及透鏡至屏幕距離皆設定為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
aada:可以不用到迴圈 07/31 23:06
aada:簡單來說用fresnel transform 07/31 23:08
aada:*lens equation * inverse fresnel transform 07/31 23:08
aada:Etotal改成Etotal(xt,yt) 07/31 23:11
aada:詳細參考傅光4 5 章 07/31 23:12
dinosaurep: 用fft可以不需要迴圈 08/11 21:42