工程光学matlab仿真.docx

上传人:b****6 文档编号:7594063 上传时间:2023-01-25 格式:DOCX 页数:23 大小:702.90KB
下载 相关 举报
工程光学matlab仿真.docx_第1页
第1页 / 共23页
工程光学matlab仿真.docx_第2页
第2页 / 共23页
工程光学matlab仿真.docx_第3页
第3页 / 共23页
工程光学matlab仿真.docx_第4页
第4页 / 共23页
工程光学matlab仿真.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

工程光学matlab仿真.docx

《工程光学matlab仿真.docx》由会员分享,可在线阅读,更多相关《工程光学matlab仿真.docx(23页珍藏版)》请在冰豆网上搜索。

工程光学matlab仿真.docx

工程光学matlab仿真

工程光学仿真实验报告

1、杨氏双缝干预实验

〔1〕杨氏干预模型

杨氏双缝干预实验装置如图1所示:

S发出的光波射到光屏上的两个小孔S1和S2,S1和S2相距很近,且到S等距;从S1和S2分别发散出的光波是由同一光波分出来的,所以是相干光波,它们在距离光屏为D的屏幕上叠加,形成一定的干预图样。

图1.1杨氏双缝干预

假设S是单色点光源,考察屏幕上某一点P,从S1和S2发出的光波在该点叠加产生的光强度为:

I=I1+I2+2I1I2cosδ〔1-1〕

式中,I1和I2分别是两光波在屏幕上的光强度,假设实验装置中S1和S2两个缝大小相等,则有

I1=I2=I0〔1-2〕

δ=2π〔r2-r1〕/λ〔1-3〕〔1-3〕

〔1-4〕

〔1-5〕

可得

〔1-6〕

因此光程差:

〔1-7〕

则可以得到条纹的强度变化规律-强度分布公式:

〔1-8〕

(2)仿真程序

clear;

Lambda=650;%设定波长,以Lambda表示波长

Lambda=Lambda*1e-9;

d=input('输入两个缝的间距)');%设定两缝之间的距离,以d表示两缝之间距离

d=d*0.001;

Z=0.5;%设定从缝到屏幕之间的距离,用Z表示

yMax=5*Lambda*Z/d;xs=yMax;%设定y方向和x方向的范围

Ny=101;ys=linspace(-yMax,yMax,Ny);%产生一个一维数组ys,Ny是此次采样总点数

%采样的范围从-ymax到ymax,采样的数组命名为ys

%此数组装的是屏幕上的采样点的纵坐标

fori=1:

Ny%对屏幕上的全部点进行循环计算,则要进行Ny次计算

L1=sqrt((ys(i)-d/2).^2+Z^2);

L2=sqrt((ys(i)+d/2).^2+Z^2);%屏上没一点到双缝的距离L1和L2

Phi=2*pi*(L2-L1)/Lambda;%计算相位差

B(i,:

)=4*cos(Phi/2).^2;%建立一个二维数组,用来装该点的光强的值

end%结束循环

NCLevels=255;%确定使用的灰度等级为255级

Br=(B/4.0)*NCLevels;%定标:

使最大光强(4.0)对应于最大灰度级(白色)

subplot(1,4,1),image(xs,ys,Br);%用subplot创建和控制多坐标轴

colormap(gray(NCLevels));%用灰度级颜色图设置色图和明暗

subplot(1,4,2),plot(B(:

),ys);%把当前窗口对象分成2块矩形区域

%在第2块区域创建新的坐标轴

%把这个坐标轴设定为当前坐标轴

%然后绘制以(b(:

),ys)为坐标相连的线

title('杨氏双缝干预');

〔3〕仿真图样及分析

a)双缝间距2mmb)双缝间距4mm

c)双缝间距6mmd)双缝间距8mm

由上面四幅图可以看出,随着双缝之间的距离增大,条纹边缘坐标减小,也就是条纹间距减小,和理论公式

推导一致。

如果增大双缝的缝宽,会使光强I增加,能够看到条纹变亮。

二、杨氏双孔干预实验

1、杨氏双孔干预

杨氏双孔干预实验是两个点光源干预实验的典型代表。

如图2所示。

当光穿过这两个离得很近小孔后在空间叠加后发生干预,并在像屏上呈现出清晰的明暗相间的条纹。

由于双孔发出的波是两组同频率同相位的球面波,故在双孔屏的光射空间会发生干预。

于是,在图2中两屏之间的空间里,如果一点P处于两相干的球面波同时到达波峰(或波谷)的位置,叠加后振幅到达最高,图2.1杨氏双孔干预

表现为干预波的亮点;反之,当P处处于一个球面波的波峰以及另一个球面波的波谷时候,叠加后振幅为零,变现是暗纹。

为S1到屏上一点的距离,

〔2-1〕,

为S2到屏上这点的距离,

〔2-2〕,如图2,d为两孔之间的距离,D为孔到屏的距离。

由孔S1和孔S2发出的光的波函数可表示为

〔2-3〕

〔2-4〕

则两束光叠加后

〔2-5〕

干预后光强

〔2-6〕

2、仿真程序

clear;

Lambda=632*10^(-9);%设定波长,以Lambda表示波长

d=0.001;%设定双孔之间的距离

D=1;%设定从孔到屏幕之间的距离,用D表示

A1=;%设定双孔光的振幅都是1

A2=;

yMax=1;%设定y方向的范围

xMax=yMax/500;%设定x方向的范围

N=300;%采样点数为N

ys=linspace(-yMax,yMax,N);%Y方向上采样的范围从-ymax到ymax

xs=linspace(-xMax,xMax,N);%X方向上采样的范围从-xmax到xmax

fori=1:

N

forj=1:

N%对屏幕上的全部点进行循环计算,则要进行N*N次计算

r1(i,j)=sqrt((xs(i)-d/2)^2+ys(j)^2+D^2);

r2(i,j)=sqrt((xs(i)+d/2)^2+ys(j)^2+D^2);%屏上一点到双孔的距离r1和r2

E1(i,j)=(A1/r1(i,j))*exp(2*pi*1j*r1(i,j)/Lambda);%S1发出的光的波函数

E2(i,j)=(A2/r2(i,j))*exp(2*pi*1j*r2(i,j)/Lambda);%S2发出的光的波函数

E(i,j)=E1(i,j)+E2(i,j);%干预后的波函数

B(i,j)=conj(E(i,j)〕*E(i,j);%叠加后的光强

end

end%结束循环

NCLevels=255;%确定使用的灰度等级为255级

Br=(B/4.0)*NCLevels;%定标:

使最大光强(4.0)对应于最大灰度级(白色)

image(xs,ys,Br);%仿真出图像

colormap('hot');

title('杨氏双孔');

(3)干预图样及分析

1〕改变孔间距对干预图样的影响

d=1mmd=3mm

图2.2改变孔间距对干预的影响

如图2.2,分别是孔间距为1mm和3mm的干预图样,可以看出,随着d的增加,视野中干预条纹增加,条纹变细,条纹间距变小。

2)改变孔直径的影响

图2.3孔直径对干预的影响

如图2.3,这里改变孔直径指的是改变光强,不考虑光的衍射。

孔直径变大,光强变大,可以看出,干预条纹变亮。

 

3、平面波干预

(1)干预模型

根据图3.1可以看出,这是两个平行光在屏上相遇发生干预,两束平行光夹角为

它们在屏上干预叠加,这是平面波的干预。

两束平行波波函数为:

〔3-1〕

〔3-2〕

两束光到屏上一点的光程差为

〔3-3〕图3.1平行光干预

垂直方向建立纵坐标系,y是屏上点的坐标。

那么屏上点的光强为

〔3-4〕

式中A1和A2分别是两束光的振幅。

(2)仿真程序

clear;

Lambda=632.8;%设定波长

Lambda=Lambda*1e-9;

t=input('两束光的夹角');%设定两束光的夹角

A1=input('光一的振幅');%设定1光的振幅

A2=input('光二的振幅');%设定2光的振幅

yMax=10*Lambda;xs=yMax;%X方向和Y方向的范围

N=101;%设定采样点数为N

ys=linspace(-yMax,yMax,N);%Y方向上采样的范围从-ymax到ymax

fori=1:

N%循环计算N次

phi=ys(i)*sin(t/2);%计算光程差

B(i,:

)=A1^2+A2^2+2*sqrt(A1^2*A2^2)*cos(2*pi*phi/Lambda);

%计算光强

end%结束循环

NCLevels=255;%确定使用的灰度等级为255级

Br=B*NCLevels/6;%定标:

使最大光强(4.0)对应于最大灰度级(白色)

subplot(1,4,1),image(xs,ys,Br);%用subplot创建和控制多坐标轴

colormap(gray(NCLevels));%用灰度级颜色图设置色图和明暗

subplot(1,4,2),plot(B(:

),ys);%把这个坐标轴设定为当前坐标轴

%然后绘制以(b(:

),ys)为坐标相连的折线

 

(3)干预图样及分析

1)改变振幅比对干预图样的影响

 

a)振幅比1:

1b)振幅比1:

2

由图3.2看出,振幅比从1:

1变成1:

2后,干预条纹变得不清晰了。

干预叠加后的波峰波谷位置没有变化,条纹间距没有变化,但是叠加后的波振幅变小了,即不清晰。

2)改变平行光夹角对干预图样的影响

a)两束光夹角60度b〕两束光夹角90度

图3.3是两束平行光夹角为60度和90度的干预条纹,由于夹角不同,光程差不同,改变叠加后光波波峰波谷位置,因此干预明条纹和暗条纹的位置和间距不同。

4、

两点光源的干预

(1)干预模型

如图4.1,S1和S2是两个点光源,距离是d。

两个点光源发出的光波在空间中相遇发生干预。

在接收屏上,发生干预的两束波叠加产生干预条纹。

S2与屏距离是z,S1与屏的距离是〔d+z〕。

两个点光源的干预是典型的球面波干预,屏上一点到S1图4.1点光源干预

和S2的距离可以表示为

〔4-1〕

〔4-2〕

〔4-3〕

〔4-4〕

其中A1和A2分别是S1、S2光的振幅。

干预后的光为

〔4-5〕

因此干预后光波光强为

〔4-6〕

(2)仿真程序

clear;

Lambda=650;%设定波长

Lambda=Lambda*1e-9;

A1=2;%设定S1光的振幅

A2=2;%设定S2光的振幅

d=input('输入两点光源距离');%设定两个光源的距离

z=5;%设定S2与屏的距离

xmax=0.01%设定x方向的范围

ymax=0.01;%设定y方向的范围

N=200;%采样点数为N

x=linspace(-xmax,xmax,N);%X方向上采样的范围从-xmax到xmax,采样数组命名为x

y=linspace(-ymax,ymax,N);%Y方向上采样的范围从-ymax到ymax,采样数组命名为y

fori=1:

N

fork=1:

N%对屏幕上的全部点进行循环计算,则要进行N*N次计算

l1(i,k)=sqrt((d+z)^2+y(k)*y(k)+x(i)*x(i));%计算采样点到S1的距离

l2(i,k)=sqrt(z^2+y(k)*y(k)+x(i)*x(i));%计算采样点到S2的距离

E1(i,k)=(A1/l1(i,k))*exp((2*pi*1j.*l1(i,k))/Lambda);%S1复振幅

E2(i,k)=(A2/l2(i,k))*exp((2*pi*1j.*l2(i,k))/Lambda);%S2复振幅

E(i,k)=E1(i,k)+E2(i,k);%干预叠加后复振幅

B(i,k)=conj(E(i,k)).*E(i,k);%干预后光强

end

end

Nclevels=255;%确定使用的灰度等级为255级

Br=B*Nclevels;%定标

image(x,y,Br);%做出干预图像

colormap('hot');

title('双点光源干预');

(3)干预图样及分析

改变点光源的间距对干预图样的影响

a)d=1mb)d=2mc)d=3m

图4.2是根据图4.1仿真干预出的图样,S1和S2之间距离分别为1m、2m、3m,由图样可以看出,随着d的增加,光程差变大,视野内的干预圆环逐渐增多,圆环之间的距离变小。

5、

平面上两点光源干预

(1)干预模型

S1和S2是平面上的两个点光源,距离为d,两个光源发出的光相遇发生干预,产生干预条纹。

以S1所在处为原点建立平面直角坐标系,平面上任意一点到S1、S2的距离是

〔5-1〕图5.1平面两点光源干预

〔5-2〕

S1和S2发出的都是球面波,可表示为

〔5-3〕

〔5-4〕

式中A1和A2分别是S1、S2的振幅。

干预叠加后的波函数为

〔5-5〕

因此干预后光波光强为

〔5-6〕

〔2〕仿真程序

clear;

Lambda=650;%设定波长

Lambda=Lambda*1e-9;

A1=0.08;%设定S1光的振幅

A2=0.08;%设定S2光的振幅

%设定两个光源的距离

xmax=0.3;%设定x方向的范围

ymax=0.3;%设定y方向的范围

N=500;%采样点数为N

x=linspace(-xmax,xmax,N);%X方向上采样的范围从-xmax到xmax,采样数组命名为x

y=linspace(-ymax,ymax,N);%Y方向上采样的范围从-ymax到ymax,采样数组命名为y

fori=1:

N

fork=1:

N%对屏幕上的全部点进行循环计算,则要进行N*N次计算

r1(i,k)=sqrt(y(k)*y(k)+x(i)*x(i));%计算采样点到S1的距离

r2(i,k)=sqrt(y(k)*y(k)+(x(i)-d)*(x(i)-d));%计算采样点到S2的距离

E1(i,k)=(A1/r1(i,k))*exp((2*pi*j.*r1(i,k))/Lambda);%S1复振幅

E2(i,k)=(A2/r2(i,k))*exp((2*pi*j.*r2(i,k))/Lambda);%S2复振幅

E(i,k)=E1(i,k)+E2(i,k);%干预叠加后复振幅

B(i,k)=conj(E(i,k)).*E(i,k);%干预后光强

end

end%结束循环

Nclevels=255;%确定使用的灰度等级为255级

Br=B*Nclevels/4;%定标

image(x,y,Br);

colormap('hot');

title('并排双点光源干预');

(3)干预图样及分析

1)聚散性对干预图样的影响

a)会聚b〕发散

两个点光源并排放置,在靠近点光源的观察屏上看到的干预条纹是一组放射状的条纹,并且强度从中心向四周减弱,光源的聚散性对干预图样没有影响。

2〕改变两光源间距对干预的影响

a)d=4umb)d=8um

 

从图5.3可以看出,视野中条纹逐渐多了。

随着间距变小,干预条纹宽度变小,条纹间距变小。

6、平行光与点光源干预

图6.1图6.2图6.3

〔1〕平面波和球面波干预

如图,三幅图都是点光源和平行光的干预,平面光入射的角度不同。

平行光与点光源相遇在空间中产生干预,在屏上形成干预条纹。

点光源与屏的距离为z,屏上坐标为(x,y)的一点与点光源的距离是

〔6-1〕

由点光源发出的光波表示为

〔6-2〕

平行光可以表示为

〔6-3〕

式中

表示平行光与屏的夹角。

两束光发生干预叠加后,干预光复振幅

〔6-4〕

则光强

〔6-5〕

(2)仿真程序

clear;

Lambda=650;%设定波长,以Lambda表示波长

Lambda=Lambda*1e-9;%变换单位

A1=1;%设定球面波的振幅是1

A2=1;%设定平面波的振幅是1

xmax=0.003;%设定x方向的范围

ymax=0.003;%设定y方向的范围

t=input('输入角度');%设定平行光和屏的夹角

z=1;%设定点光源和屏的距离

N=500;%N是此次采样点数

x=linspace(-xmax,xmax,N);%X方向上采样的范围从-xmax到ymax

y=linspace(-ymax,ymax,N);%Y方向上采样的范围从-ymax到ymax

fori=1:

N%对屏幕上的全部点进行循环计算,则要进行N*N次计算

fork=1:

N

l1(i,k)=sqrt(y(k)*y(k)+x(i)*x(i)+z^2);%表示屏上一点到点光源的距离

E1(i,k)=(A1/l1(i,k))*exp((2*pi*j.*l1(i,k))/Lambda);%球面波的复振幅

E2(i,k)=A2*exp((2*pi*j.*z*(1/sin(t)))/Lambda);%平面波的复振幅

E(i,k)=E1(i,k)+E2(i,k);%屏上点的振幅

B(i,k)=conj(E(i,k)).*E(i,k);%屏上每个采样点的光强

end%结束循环

end%结束循环

Nclevels=255;%确定使用的灰度等级为255级

Br=B*Nclevels/4;%定标:

使最大光强(4.0)对应于最大灰度级

image(x,y,Br);%干预图样

colormap('hot');%设置色图和明暗

(3)仿真图样及分析

平行光入射角度对干预图样的影响

a)

b)

c)

图6.4平行光入射角度对干预的影响

分别是平行光与屏夹角为90度、45度、135度的情况,斜入射与垂直入射相比,干预圆环更大。

而角度互补的两种入射方式,区别在于中心是明还是暗。

由图可以看出,斜入射135度的平行光与点光源干预,干预图样中心是暗斑。

 

7、平行光照射楔板

(1)图

L=630*10^(-9);alfa=pi/20000;H=0.005;%波长630nm,倾角1.57*e-4,厚5mm

n=1.5;

a2=axes('Position',[0.35,0.5,0.7]);%定位在绘图中的位置

[x,y]=meshgrid(linspace(01,200));%将5mm*5mm区域打散成200*200个点

h=tan(alfa)*x+H;%玻璃厚度

Delta=(2*h*n+L/2);%光程差

In=0.5+(cos(Delta*pi*2/L))/2;%光强分布(按比例缩小到0-1)

imshow(In)%生成灰度图

图7.1图7.2λ=630nm,θ=pi/20000

 

 

λ=430nm,θ=pi/20000λ=630nm,θ=pi/30000

可见增大波长或者减小楔角会使干预条纹间距加大。

(2)牛顿环

L=630*10^(-9);R=3;%波长630nm曲率半径3M

a2=axes('Position',[0.35,0.5,0.7]);%定位在绘图中的位置

[x,y]=meshgrid(linspace(-0.005,0.005,200));%将5mm*5mm区域打散成200*200

r2=(x.^2+y.^2);%r2为各个点距中心的距离^2矩阵

h=R-sqrt(R^2-r2)%空气薄膜厚度

Delta=2*h+L/2%光程差

In=0.5+(cos(Delta*pi*2/L))/2;%光强分布(按比例缩小到0-1)

imshow(In)%生成灰度图

 

λ=630nm,R=3M

 

λ=430nm,R=3Mλ=630nm,R=10M

 

增大波长或者增大球的曲率半径会使牛顿环半径增大。

〔3〕圆柱曲面干预

L=630*10^(-9);R=3;%波长630nm,曲率半径3M

a2=axes('Position',[0.35,0.5,0.7]);%定位在绘图中的位置

[x,y]=meshgrid(linspace(-0.005,0.005,200));%将5mm*5mm区域打散成200*200

r2=(x.^2+0*y.^2);%r2为各个点距中心的距离^2矩阵

h=R-sqrt(R^2-r2)%空气薄膜厚度

Delta=2*h+L/2%光程差

In=0.5+(cos(Delta*pi*2/L))/2;%光强分布(按比例缩小到0-1)

imshow(In)%生成灰度图

 

 

λ=630nm,R=3M

 

λ=430nm,R=3Mλ=630nm,R=10M

图7.11图7.12

可见增大波长或者增大圆柱底面的半径会使干预条纹变宽。

(4)任意曲面

L=630*10^(-9);R=3;%波长630nm曲率半径3M

a2=axes('Position',[0.35,0.5,0.7]);%定位在绘图中的位置

[x,y]=meshgrid(linspace(-0.005,0.005,200));%将5mm*5mm区域打散成200*200

r2=(x.^2+y.^2);%r2为各个点距中心的距离^2矩阵

h=sin(r2*3000)%空气薄膜厚度

Delta=2*h+L/2%光程差

In=0.5+(cos(Delta*pi*2/L))/2;%光强分布(按比例缩小到0-1)

imshow(In)

 

曲面函数:

z=sin[3000(x^2+y^2)]

 

8、等倾干预

(1)平行平板干预

 

如图,扩展光源上一点S发出的一束光经平行平板的上、下外表的反射和折射后,在透镜后焦平面P点相遇产生干预。

两支光来源于同一光线,因此其孔径角是零。

在P点的强度是:

〔8-1〕

其中光程差

〔8-2〕

光程差越大,对应的干预级次越高,因此等倾条纹在中心处具有最高干预级次。

〔8-3〕

一般不一定是整数,即中心不一定是最亮点,它可以写成

,式中

是最靠近中心的亮条纹的整数干预级,第N条亮条纹的干预级表示为

如图2,其角半径记为

〔8-4〕

上式说明平板厚度h越大,条纹角半径就越小。

条纹角间距为

〔8-5〕

说明靠近中心的条纹稀疏,离中心越远的条纹越密,呈里疏外密分布。

(2)仿真程序

xmax=1.5;ymax=1.5;%设定y方向和x方向的范围

Lamd=452e-006;%设定波长,以Lambda表示波长

h=2;%设置平行平板的厚度是2mm

n=input('输入折射率');%设置平行平板的折射率,以n表示

f=50;%透镜焦距是50mm

N=500;%N是采样点数

x=linspace(-xmax,xmax,N);%X方向采样的范围从-ymax到ymax,采样数组命名为x

y=linspace(-ymax,ymax,N);%Y方向采样的范围从-ymax到ymax,采样数组命名为y

fori=1:

N%对屏幕上的全部点进行循环计算,则要进行N*N次计算

forj=1:

N

r(i,j)=sqrt(x(i)*x(i)+y(j)*y(j));%平面上一点到中心的距离

u(i,j)=r(i,j)/f;%角半径

t(i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1