工程光学matlab仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工程光学仿真实验报告1、杨氏双缝干涉实验
(1)杨氏干涉模型
屏
图
, 0(1-8)
2
1
(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
%此数组装的是屏幕上的采样点的纵坐标
for i=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)双缝间距2mm b)双缝间距4mm
c)双缝间距6mm d)双缝间距8mm
图1.2改变双缝间距的条纹变化
由上面四幅图可以看出,随着双缝之间的距离增大,条纹边缘坐标减小,也就是条纹
间距减小,和理论公式d D e /λ=推导一致。如果增大双缝的缝宽,会使光强I 增加,能够
看到条纹变亮。
二、杨氏双孔干涉实验
1、杨氏双孔干涉
杨氏双孔干涉实验是两个点光源干涉实
验的典型代表。如图2所示。当光穿过这两个
离得很近小孔后在空间叠加后发生干涉, 并
在像屏上呈现出清晰的明暗相间的条纹。 由
于双孔发出的波是两组同频率同相位的球面
波, 故在双孔屏的光射空间会发生干涉。 于是,
在图2中两屏之间的空间里, 如果一点P 处于
两相干的球面波同时到达 波
峰
(或波谷)的位置, 叠加后振幅达到最高, 图2.1 杨氏双孔干涉
表现为干涉波的亮点; 反之, 当P 处处于一个球面波的波峰以及另一个球面波的波谷时候,
叠加后振幅为零,变现是暗纹。
1r 为S1到屏上一点的距离, 2221)2/(D y d x r +++= (2-1),2r 为S2到屏上这点的距离,2222)2/(D y d x r ++-= (2-2),如图2,d 为两孔之间的距离,D 为孔到屏的距离。由孔S1和孔S2发出的光的波函数可表示为 )ex p(11
11ikr r A E = (2-3) )ex p(2212ikr r A E =
(2-4)
2for end
end %结束循环
NCLevels=255; %确定使用的灰度等级为255级
Br=(B/4.0)*NCLevels; %定标:使最大光强(4. 0)对应于最大灰度级(白色)
image(xs,ys,Br); %仿真出图像
colormap('hot');
title('杨氏双孔');
(3)干涉图样及分析
1)改变孔间距对干涉图样的影响
d=1mm d=3mm
图2.2 改变孔间距对干涉的影响
如图2.2,分别是孔间距为1mm和3mm的干涉图样,可以看出,随着d的增加,视野中干涉条纹增加,条纹变细,条纹间距变小。
2)改变孔直径的影响
图2.3 孔直径对干涉的影响
如图2.3,这里改变孔直径指的是改变光强,不考虑光的衍射。孔直径变大,光强变大,可以看出,干涉条纹变亮。
3
(1)
E
1
E
2
∆
I
=
(2
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
for i=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);
%计算光强