資源描述:
《模擬夫瑯禾費衍射和菲涅耳衍射實驗matlab程序》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、模擬夫瑯禾費衍射實驗程序說明:本實驗可以選擇孔徑類型、孔徑半徑、輸入波長、衍射屏和衍射孔的距離等。當衍射屏和衍射孔的距離相對較小時,此衍射為菲涅耳衍射,當距離相對較大時滿足夫瑯禾費衍射的條件,兩者的程序一樣,只是距離Z的大小不一致。又由于夫瑯禾費衍射與傅里葉變換成正比,只差一個系數(shù)關系。所以程序中的衍射既是直接對物光進行傅里葉變換即可。Matlab源程序:N=512;disp('衍射孔徑類型1.圓孔2.單縫3.方孔')kind=input('pleaseinput衍射孔徑類型:');%輸入衍射孔徑類型wh
2、ilekind~=1&kind~=2&kind~=3disp('超出選擇范圍,請重新輸入衍射孔徑類型');kind=input('pleaseinput衍射孔徑類型:');%輸入衍射孔徑類型endswitch(kind)case1r=input('pleaseinput衍射圓孔半徑(mm):');%輸入衍射圓孔的半徑I=zeros(N,N);[m,n]=meshgrid(linspace(-N/16,N/16-1,N));D=(m.^2+n.^2).^(1/2);I(find(D<=r))=1;subpl
3、ot(1,2,1),imshow(I);title('生成的衍射圓孔');case2a=input('pleaseinput衍射縫寬:');%輸入衍射單縫的寬度b=1000;%單縫的長度I=zeros(N,N);[m,n]=meshgrid(linspace(-N/4,N/4,N));I(-a4、(N,N);[m,n]=meshgrid(linspace(-N/4,N/4,N));I(-a/25、m):');%輸入衍射波長;lamda=lamda_1/1e6k=2*pi/lamda;z=input('pleaseinput衍射屏距離衍射孔的距離(mm):');%衍射屏距離衍射孔的距離h=exp(1j*k*z)*exp((1j*k*(x.^2+y.^2))/(2*z))/(1j*lamda*z);%脈沖相應H=fftshift(fft2(h));%傳遞函數(shù)B=fftshift(fft2(I));%孔頻譜G=fftshift(ifft2(H.*B));subplot(1,2,2),imshow(log
6、(1+abs(G)),[]);title('衍射后的圖樣');figuremeshz(x,y,abs(G));title('夫瑯禾費衍射強度分布')實驗輸入:衍射孔徑類型1.圓孔2.單縫3.方孔pleaseinput衍射孔徑類型:1pleaseinput衍射圓孔半徑(mm):3pleaseinput衍射波長(nm):632lamda=6.3200e-04pleaseinput衍射屏距離衍射孔的距離(mm):1000000實驗結果: