MATLAB光學模擬仿真實訓報告模_第1頁
MATLAB光學模擬仿真實訓報告模_第2頁
MATLAB光學模擬仿真實訓報告模_第3頁
MATLAB光學模擬仿真實訓報告模_第4頁
MATLAB光學模擬仿真實訓報告模_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

學號:20163152616姓名:彭宏輝專業(yè)年級:光電16MATLAB光學模擬仿真實訓目的1、熟悉matlab繪圖和仿真功能2、復習物理光學等相關知識3、掌握運用matlab軟件的仿真等功能與專業(yè)知識相結合實訓內容MATLAB基礎訓練及光波在介質分界面的反射和折射相關原理當一個單色平面波射到兩種不同介質的分界面時,將分為兩個波,一個折射波一個反射波。從電磁場的邊值關系可以求出它們的傳播方向和入射波的振幅關系相位關系。實訓任務已知界面兩側的折射率n2、n1和入射角,繪出在n1<n2(光由光疏介質射向光密介質)和n1>n2(光由光密介質射向光疏介質)兩種情況下,反射系數、透射系數隨入射角的變化曲線。程序如下:clear;%清空disp('請輸入介質折射率n1和n2');%在顯示括號內語句n1=input('n1=');%接受鍵盤任意輸入合適的折射率n1n2=input('n2=');%接受鍵盤任意輸入合適的折射率n2theta=0:0.1:90;%入射角范圍范圍0~90,步距0.1a=theta*pi/180;%角度化為弧度rp=(n2*cos(a)-n1*sqrt(1-(n1/n2*sin(a)).^2))./(n2*cos(a)+n1*sqrt(1-(n1/n2*sin(a)).^2));%p分量振幅反射率rs=(n1*cos(a)-n2*sqrt(1-(n1/n2*sin(a)).^2))./(n1*cos(a)+n2*sqrt(1-(n1/n2*sin(a)).^2));%s分量振幅反射率tp=2*n1*cos(a)./(n2*cos(a)+n1*sqrt(1-(n1/n2*sin(a)).^2));%p分量振幅透射率ts=2*n1*cos(a)./(n1*cos(a)+n2*sqrt(1-(n1/n2*sin(a)).^2));%s分量振幅透射率figure(1);%創(chuàng)建一個窗口subplot(1,2,1);%作圖rp,rs,|rp|,|rs|隨入射角的變化曲線plot(theta,rp,'-',theta,rs,'--',theta,abs(rp),':',theta,abs(rs),'-.','LineWidth',2);%用‘-’、‘--’,‘:’、‘-.’符號標注對應曲線legend('rp','rs','|rp|','|rs|');%標注曲線圖例xlabel('入射角/theta_i');%命名x軸ylabel('振幅');%命名y軸title(['n_1=',num2str(n1),',n2=',num2str(n2),'時反射系數隨入射角的變化曲線']);%命名圖像axis([090-11]);%設定作圖區(qū)間gridon;%添加網格subplot(1,2,2);%tp,ts,|tp|,|ts|隨入射角的變化曲線plot(theta,tp,'-',theta,ts,'--',theta,abs(tp),':',theta,abs(ts),'-','LineWidth',2);%用‘-’、‘--’,‘:’、‘-.’符號標注對應曲線legend('tp','ts','|tp|','|ts|');%標注曲線圖例xlabel('入射角/theta_i');%命名x軸ylabel('振幅');%命名y軸title(['n_1=',num2str(n1),',n2=',num2str(n2),'時透射系數隨入射角的變化曲線']);%命名圖像ifn1<n2%如果此時從光疏到光密axis([09001]);%設定作圖區(qū)間else%否則axis([09003.5]);%設定作圖區(qū)間end%結束gridon;%添加網格光波的疊加相關原理光波在空間某一區(qū)域相遇時,發(fā)生光波疊加現象。波的疊加服從疊加原理,波在相遇點產生的合振動是各個波單獨產生的振動的矢量和。實訓任務兩列單色平面波的模擬。程序如下:w1=50;%波1頻率w2=60;%波2頻率k1=5;%波1波數k2=4;%波2波數t=0.1:0.2:1.3;%對時間進行等間隔取點a=1;%波動振幅x=0:0.001:5;%對傳播方向x軸進行等間隔取點A2=a*cos(k2*x-w2*t(end));%A2波動函數A1=a*cos(k1*x-w1*t(end));%A1波動函數plot(x,A1,'-',x,A2,':')%繪制兩個波形圖set(gcf,'color',[111]);%添加顏色對比度set(gca,'YTick',[-1:0.5:1]);%標記Y軸坐標刻度set(gca,'XTicK',[0:1:5]);%標記X軸坐標刻度xlabel('變量X')%添加x軸說明ylabel('振幅')%添加y軸說明title('兩列單色平面波的模擬')%添加標題legend('光波1','光波2')%添加圖例光波1和光波2繪制合成波光強曲線。程序如下:w1=50,w2=60,k=0,k1=5,k2=4,a=1;%兩列波的參數x=0:0.001:30;%傳播方向X軸進行等間隔取點t=0.1:0.2:1.3%對時間進行等間隔取點k=k+1;%累加A=2*a*cos((k1-k2)/2*x-(w1-w2)/2*t(end));%波動函數I=A.*A;%合成光強plot(x,I);%繪制圖形set(gca,'YTick',[0:1:4])%添加Y軸坐標刻度set(gca,'XTick',[0:5:30])%添加X軸做坐標刻度xlabel('變量X')%添加X軸說明ylabel('振幅變化')%添加Y軸說明title('合成波光強曲線')%添加標題兩列單色平面波合成的動態(tài)仿真。程序如下:w1=50,w2=60,k1=5,k2=4,a=1;%兩列波的參數x=0:0.001:30;%傳播方向X軸進行等間隔取點k=0;%賦初值m2=moviein(length(0.1:0.2:1.3));%形成動態(tài)函數fort=0.1:0.2:1.3%對時間進行等間隔取點k=k+1;%累加A=2*a*cos((k1-k2)/2*x-(w1-w2)/2*t);%波動函數v=a*cos(k1*x-w1*t)+a*cos(k2*x-w2*t);%波動函數plot(x,v,'k-',x,A,'g:',x,-A,'b-.');%繪制圖形axis([030-22]);%設置坐標軸set(gcf,'color',[111])%設置顏色對比度set(gca,'YTick',[-2:1:2])%添加Y軸坐標刻度set(gca,'XTick',[0:5:30])%添加X軸做坐標刻度xlabel('變量X')%添加X軸說明ylabel('振幅變化')%添加Y軸說明title('光學拍')%添加標題legend('合成波振幅','包絡線1','包絡線2')%添加圖例m2(:,k)=getframe;%獲取坐標為界的圖像end%循環(huán)結束movie(m2,3)%繪制動態(tài)函數光波的干涉相關原理滿足一定條件的兩列相干波相遇疊加,在疊加區(qū)域某些點的振動始終加強,某些點的振動始終減弱,即在干涉區(qū)域內振動強度有穩(wěn)定的空間分布。實訓任務楊氏雙縫干涉的模擬。程序如下:clearalllam=500e-9;%設置輸入波長a=2e-3;%設置屏幕到雙縫平面距離D=1;%設置雙縫距離ym=5*lam*D/a;%設定光屏范圍xs=ym;%賦值n=101;ys=linspace(-ym,ym,n);%把光屏Y方向分成101點fori=1:n%開始循環(huán)r1=sqrt((ys(i)-a/2).^2+D^2);%兩個相干光源到到屏幕上任意點P的距離r2=sqrt((ys(i)+a/2)^2+D^2);%兩個相干光源到到屏幕上任意點P的距離phi=2*pi*(r2-r1)/lam;%相位差B(i,:)=4*cos(phi/2).^2;%p點的光強end%循環(huán)結束N=255%確定灰度級為255級Br=(B/4.0)*N;%最大光強對應的灰度級subplot(1,2,1);%將一行二列的圖從左到右從上到下的第一個位置image(xs,ys,Br);%畫干涉條紋colormap(gray(N));%輸出一個灰色的曲線圖subplot(1,2,2);%將一行二列的圖從左到右從上到下的第二個位置plot(B,ys);%畫光強變化曲線模擬非定域干涉下點光源的干涉條紋。程序如下:xmax=40;ymax=40;%干涉條紋范圍設定Lambad=632.8e-006;%光波長的選擇,此處用氦氖激光器f=190;%擴束鏡的焦距n=1.0%介質折射率,空氣為1N=800;%精度或分辨率,決定x,y的數據量x=linspace(-xmax,xmax,N);%產生-xmax,xmax之間的N點行線性的矢量y=linspace(-ymax,ymax,N);%產生-xmax,xmax之間的N點行線性的矢量fork=0:15%模擬增加光程差次數d=0.39-0.00005*k;%模擬增加光程差fori=1:N%循環(huán)體forj=1:N%循環(huán)體r(i,j)=sqrt(x(i)*x(i)+y(j)*y(j));B(i,j)=cos(pi*(2*n*d*cos(asin(n*sin(atan(r(i,j)/f)))))/Lambad).^2;end%計算不同光程差條件下的條紋位置endfigure(gcf);%建立N1=255;%設置分辨率或精度Br=2.5*B*N1;%調整最終的條紋位置image(x,y,Br);%顯示仿真結果colormap(gray(N1));%灰度圖顯示set(gca,'XTick',[]);%設置x坐標set(gca,'YTick',[]);%設置y坐標axisequal%坐標軸設置drawnow%立即繪圖pause%保留圖像end模擬定域干涉下的等傾干涉條紋。程序如下:d=2;%設置透鏡厚度Lambad=632.8e-006;%光波長的選擇,此處用氦氖激光器theta=0.15;%設置初始的入射傾角rmax=d*tan(theta/2)%設置標度N=800;%精度或分辨率,決定x,y的數據量x=linspace(-rmax,rmax,N);%設置x軸范圍和標度y=linspace(-rmax,rmax,N);%設置y軸范圍和標度fork=0:15%模擬增加傾角次數theta=theta-0.01*k%傾角減小rmax=d*tan(theta/2)%每條等傾條紋的新標度fori=1:N%循環(huán)體forj=1:N%循環(huán)體x(i)=(i-2)*2*rmax/(N-1)-rmax;%等傾條紋的x坐標y(j)=(j-2)*2*rmax/(N-1)-rmax;%等傾條紋的y坐標r(i,j)=sqrt(x(i)^2+y(j)^2);%等傾條紋的半徑delta(i,j)=2*d/sqrt(1+r(i,j)^2/d^2);%中間參量角計算Phi(i,j)=2*pi*delta(i,j)/Lambad;%計算參量PhiB(i,j)=4*cos(Phi(i,j)/2)^2;%計算不同傾角條件下的條紋位置endendfigure(gcf);%創(chuàng)建圖像顯示窗口N1=255;%設置分辨率或精度Br=2.5*B*N1;%調整最終的條紋位置image(x,y,Br);%顯示仿真結果colormap(gray(N1));%灰度圖顯示set(gca,'XTick',[]);%設置x坐標set(gca,'YTick',[]);%設置y坐標axisequal%坐標軸設置drawnow%立即繪圖pause%保留圖像end光的衍射相關原理光在傳播路徑中,遇到不透明或透明的障礙物或者小孔(窄縫),繞過障礙物,產生偏離直線傳播的現象稱為光的衍射。衍射時產生的明暗條紋或光環(huán),叫衍射圖樣實訓任務繪出單色光的衍射光強曲線。程序如下:clear;Lambda=input('輸入光的波長(單位為nm):(取500)');%輸入光波長Lambda=Lambda*(1e-9);%輸入米*10^-9aWidth=input('輸入縫寬(單位為mm):(取0.2)');%輸入縫寬aWidth=aWidth*0.001;%輸入米*0.0001Z=input('輸入縫到屏的距離(單位為):(取1)');%輸入縫到屏的距離ymax=3*Lambda*Z/aWidth;%屏幕范圍沿沿y軸Ny=51;%屏幕上的點數ys=linspace(-ymax,ymax,Ny);%將屏幕分成Ny個點NPoints=51;%單縫的點數yPoint=linspace(-aWidth/2,aWidth/2,NPoints);%把單縫分成NP個光源forj=1:Ny%對屏幕上y方向各點作循環(huán)L=sqrt((ys(j)-yPoint).^2+Z^2);%光源到接收屏的距離Phi=2*pi.*(L-Z)./Lambda;%從距離差計算各波長的相位差SumCos=sum(cos(Phi));%余弦疊加SumSin=sum(sin(Phi));%正弦疊加B(j)=(SumCos^2+SumSin^2)/NPoints^2'%疊加各波長并影響計算光強end%循環(huán)結束plot(ys,B,'*',ys,B);grid;%畫光強曲線axis([-ymax,ymax,0.0,1.0]);%y軸的區(qū)間控制在1內set(gcf,'color,','w');%將背景設置為白色并計算光強模擬單狹縫的衍射圖樣和光強分布曲線。程序如下:clearlam=500e-9;%設置輸入波長a=1e-3;%設置屏幕到雙縫平面距離D=1;%設置雙縫距離ym=3*lam*D/a;%屏幕范圍沿沿y軸ny=51;%屏幕上的點數ys=linspace(-ym,ym,ny);%將屏幕分成ny個點np=51;%單縫的點數yp=linspace(0,a,np);%把單縫分成NP個光源fori=1:ny%循環(huán)開始sinphi=ys(i)/D;%計算余弦值alpha=2*pi*yp*sinphi/lam;%計算角度值sumcos=sum(cos(alpha));%余弦疊加sumsin=sum(sin(alpha));%正弦疊加B(i,:)=(sumcos^2+sumsin^2)/np^2;%將光強賦值給B矩陣end%循環(huán)結束N=255;%確定灰度級為255級Br=(B/max(B))*N;%最大光強對應的灰度級subplot(1,2,1)%將一行二列的圖從左到右從上到下的第一個位置image(ym,ys,Br);%畫干涉條紋colormap(gray(N));%輸出一個灰色的曲線圖subplot(1,2,2)%將一行二列的圖從左到右從上到下的第二個位置plot(B,ys);%畫光強變化曲線模擬圓孔的夫瑯禾費衍射。程序如下:clear;lam=632.8e-9;%波長R=5e-4;%孔徑大小f=1;%透鏡焦距ym=2.5e-3;%y軸的范圍m=1000;%畫的點數y=linspace(-ym,ym,m);%取值范圍從-ym到y(tǒng)m,取值數量為mx=y%賦值fori=1:m%開始循環(huán)r=x(i).^2+y.^2;%圓孔半徑s=sqrt(r./(r+f^2));%光源到接收屏距離x1=2*pi*R*s./lam;%計算參數x1I(:,i)=((2*besselj(1,x1)).^2./x1.^2).*5000;%將光強賦值給I矩陣end%循環(huán)結束image(x,y,I);%繪制圖形title('圓孔夫瑯禾費衍射分布');%添加標題n=100;%設置灰度級colormap(gray(n));%設置圖像為灰色colorbar;%添加色標模擬光柵衍射圖樣。程序如下:clear;lam=500e-9;%波長N=2;%設置灰度級a=2e-4,D=5,d=5*a;%設置參數ym=2*lam*D/a;xs=ym;%Y軸的范圍n=1001;%賦值ys=linspace(-ym,ym,n);%把光屏的y向分成1001個點fori=1:n%開始循環(huán)sinphi=ys(i)/D;%余弦值alpha=pi*a*sinphi/lam;%計算角度值beta=pi*d*sinphi/lam;%計算角度值B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;%將光強賦值給B矩陣B1=B/max(B);%將最大光強設為1end%結束循環(huán)NC=255;%確定灰度級Br=(B/max(B))*NC;%最大光強對應的灰度級subplot(1,2,1)%選中1*2區(qū)中的1號區(qū)image(xs,ys,Br);%畫出干涉條紋colormap(gray(NC));%設置圖像為灰色subplot(1,2,2)%選中1*2區(qū)中的2號區(qū)plot(B1,ys);%畫出沿y向的相對光強變化曲線光的偏振相關原理兩個光源發(fā)出的單色光波頻率相同,振動方向互相垂直,一個平行于x軸,一個平行于y軸,考察它們在z軸方向上的疊加。由于兩疊加光波的角頻率,很容易看出合矢量沿橢圓旋轉的角頻率不變。我們把光矢量周期性旋轉,其末端的運動軌跡為一個橢圓的成為橢圓偏振光。實訓任務繪制偏振光波軌跡的二維圖形。程序如下:clearall:%復位c=3e+8;%設置光速lamd=5e-7;%波長T=lamd/c;t=linspace(0,T,1000);%設置t取值范圍從0到1000,取值數量為T個z=linspace(0,5,1000);%設置z取值范圍從0到1000,取值數量為5個w=2*pi/T%角頻率k=2*pi/lamd;%波數Eox=10;Eoy=5;%兩波的單位矢量Fx=0;%設置平行于X軸光波的位相i=1;%設置i參數forFy=0:pi/4:7*pi/4%進行for循環(huán),設置平行于Y軸光波的位相Ex=Eox*cos(w*t+k*z);%平行于X軸的波的光振動表達式Ey=Eoy*cos(w*t+k*z+Fy);%平行于Y軸的波的光振動表達式subplot(2,4,i);%將2行4列的圖繪制到一個圖里i=i+1;%i在for循環(huán)中的疊加plot(Ex,Ey);%以Ex為橫坐標,Ey為縱坐標繪制圖像n=i-2%n=i-2xlabel('x');%命名橫坐標名稱ylabel('y');%命名縱坐標名稱title(['Fy-Fx=',num2str(n),'*pi/4']);%命名圖像名稱gridon%顯示網格end繪制偏振光波軌跡的三維圖形。程序如下:c=3e+8,lamd=5e-7,T=lamd/c;%設置光波參數t=linspace(0,T,1000);%設置t取值范圍從0到1000,取值數量為T個z=linspace(0,5,1000);%設置z取值范圍從0到1000,取值數量為5個q=linspace(0,5,1000)%設置q取值范圍從0到1000,取值數量為5個w=2*pi/T%角頻率k=2*pi/lamd;%波數Eox=10;Eoy=5;%兩波的單位矢量Fx=0;%設置平行于X軸光波的位相i=1;%設置i參數forFy=0:pi/4:7*pi/4%進行for循環(huán),設置平行于Y軸光波的位相Ex=Eox*cos(w*t+k*z);%平行于X軸的波的光振動表達式Ey=Eoy*cos(w*t+k*z+Fy);%平行于Y軸的波的光振動表達式subplot(2,4,i);%將2行4列的圖繪制到一個圖里i=i+1;%i在for循環(huán)中的疊加plot3(Ex,Ey,q);%以Ex為x坐標,Ey為y坐標,Ez為坐標繪制圖像n=i-2;%設置參數nxlabel('x');%命名x坐標名稱ylabel('y');%命名y坐標名稱zlabel('z');%命名z坐標名稱title(['Fy-Fx=',num2str(n),'*pi/4']);%命名圖像名稱gridon%顯示網格end傅里葉變換相關原理將滿足一定條件的某個函數表示成三角函數(正弦和/或余弦函數)或者它們的積分的線性組合可分析信號的成分,也可用這些成分合成信號。許多波形可作為信號的成分,比如正弦波、方波、鋸齒波等,傅立葉變換用正弦波作為信號的成分。實訓任務繪制圓孔輸入物。程序如下:clear;%清除變量N=1024;%定義NI64=zeros(N,N);%預定義平面I64的灰度值為0[m,n]=meshgrid(linspace(-N/2,N/2-1,N));%確定坐標系及坐標原點的位置r=input('請輸入圓的半徑r=');%輸入圓的半徑大小控制變量ra=input('請輸入圓心位置的控制變量a=');%輸入圓心位置控制變量ab=input('請輸入遠新位置的控制變量b=');%輸入圓心位置控制變量bD=((m+a).^2+(n+b).^2).^(1/2);%圓函數關系式i=find(D<=r);%f返回滿足條件D<=r的像素點的單下標值I64(i)=1;%像素點賦值imshow(I64);%顯示圖像三角孔和矩形孔的傅里葉頻譜觀察。程序如下:clearimga=imread('fft4.jpg');%讀取圖片gridonfigure(1);%建立第一幅圖imshow(imga,[]);%將范圍的灰度值變換到0-255區(qū)間顯示imgray0=rgb2gray(imga);%將圖像轉換為灰度圖imgray1=double(imgray0);%提高圖像的精度值afft=fft2(imgray1);%將圖像做二維變換afftI=fftshift(afft);%將afft零頻率的分量移到頻譜的中心RR=real(afftI);%取afftl的實數部分II=imag(afftI);%取afftl的虛數部分A=sqrt(RR.^2+II.^2);%取實部與虛部的算術平方根A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255;%歸一化figure(2);%建立第二幅圖imshow(A);%繪A的圖形[m,n]=size(A);%獲取矩陣A的大小[x,y]=meshgrid(1:n,1:m);%獲取三維圖像figure(4)%建立第三幅圖mesh(x,y,A)%繪制三維網格圖卷積定理的仿真。程序如下:clear;A=zeros(200,200);%生成一個200*200的零矩陣Afori=1:10%開始循環(huán)A(:,20*i-9:20*i)=1;%將1填充到矩陣A的20*i-9到20*i列end%循環(huán)結束B=zeros(200,200);%生成一個200*200的零矩陣Bfori=1:10%開始循環(huán)B(20*i-9:20*i,:)=1;%將1填充到矩陣B的20*i-9到20*i行end%循環(huán)結束C=A.*B;%矩陣C等于矩陣A*Bc=abs(fftshift(fft2(C)));%二次傅里葉變換cc1=abs(fftshift(fft2(C)));%二次傅里葉變換aa=abs(fftshift(fft2(A)));%二次傅里葉變換bb=abs(fftshift(fft2(B)));%二次傅里葉變換cc=conv2(aa,bb);%求卷積figure(1);%建立圖形subplot(1,2,1);imshow(B);%選中1*2區(qū)中的1號區(qū)并顯示圖像subplot(1,2,2);imshow(bb);%選中1*2區(qū)中的2號區(qū)并顯示圖像figure(2);%建立圖形subplot(1,2,1);imshow(A);%選中1*2區(qū)中的1號區(qū)并顯示圖像subplot(1,2,2);imshow(aa);%選中1*2區(qū)中的2號區(qū)并顯示圖像figure(3);%建立圖形imshow(c);%顯示圖像figure(4);%建

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論