基于matlab的衍射系统仿真 -
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可知:矩孔在一个维度上展宽一定倍数将导致衍射图样在相同维度上缩短相同倍数,同时能量会更向中心亮斑集中。
圆孔衍射:
r=1.5
r=1.2
圆孔半径增大,衍射图样中的同心圆环半径相应变小,更集中,而能量则更向中心亮斑集中。
进一步分析各种形状的衍射孔可得如下结论:
1.衍射孔在哪些方向上有几条对称轴,则衍射图样亦在哪些方向上有几条对称轴;
form=1:1:resolution
x=m-center;
forn=1:1:resolution
y=n-center;
C=ones(resolution,resolution);
fori=1:1:resolution
p=i-center;
forj=1:1:resolution
q=j-center;
beta=pi*d*(sinphi-sin(r))/lam; %相位差beta
B(i,j)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;
end
B2(i) = sum(B(i,:)); %进行求和
B1=B2./max(B2);
end
NC=255; %绘制衍射仿真图样及强度曲线
B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;
B1=B/max(B);
end
NC=255; %绘制衍射仿真图样及强度曲线
Br=(B/max(B))*NC;
subplot(1,2,1)
image(y0,x0,Br);
colormap(gray(NC) );
surf(x,y,L);
axis([-edge,edge,-edge,edge,0,255]);
caxis([0,511]);
subplot(1,2,2);
image(x,y,I);
axis([-edge,edge,-edge,edge,0,511]);
view(2);
axissquare;
圆孔衍射:
四、参考文献
[1]光学衍射实验的MATLAB仿真[A].1004-7077(2010)梁兰菊田贵才张裕仕
[2]基于MATLAB的夫琅和费衍射实验的计算机仿真.张志峰 苏玉玲 蒋逢春
[3]基于Matlab的光学衍射实验仿真.陈芳芳钱淑珍吴平辉
alpha=pi*a*sinphi/lam;
beta=pi*d*sinphi/lam; %相位差2*bata
B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;
B1=B/max(B);
end
NC=255; %绘制衍射仿真图样及强度曲线
2.衍射孔的面积越小则衍射图样上的能量分布越分散,越大则能量越集中。
3. 多缝的夫琅和费衍射,使用平行光照明,观察衍射图样随缝宽、缝距、缝数量的变化
1)原理图
S点光源发出波长lam=500纳米
经L1准直透镜产生平行光。
缝宽a
缝距d
缝数量N
2)matlab代码
clear
lam=500e-9; %定义波长lam=500纳米
二、仿真题目
1. 改变观察屏与衍射屏间距,观察观察屏上发生的衍射逐渐由菲涅耳衍射转为夫琅和费衍射
1)原理图:wenku.baidu.com
S点光源发出的波长lam=500纳米
S点发出光线经过单缝,
缝宽a;
单缝到衍射屏的距离L'
2)Matlab代码
clear;clc
l=10;%l=input('单缝到衍射屏的距离L=');
a=0.2;%a=input('单缝的宽度(mm)a=');
r=0; %入射角r
y0=xm;
n=1001;
x0=linspace(-xm,xm,n);%构建接受屏矩阵
for i= 1: n %计算接受屏上第i个点的光强
sinphi=x0(i)/f;
alpha=pi*a*(sinphi-sin(r))/lam;
beta=pi*d*(sinphi-sin(r))/lam; %相位差2*bata
d=7*a
③缝数量N
N=3
N=4
N=6
5)变化规律
根据仿真图样可以得出以下结论:
①改变缝宽a
增加缝宽a,亮纹间距减小;反之,亮纹间距增加。
②改变缝距d
增加缝距d,亮纹数量增加,亮纹间距减小;反之,亮纹数量减少,亮纹间距增加。
③缝数量N
增加缝数量N,亮纹变的越细亮;反之,亮纹宽度增加。
4.多缝的夫琅和费衍射,使用平行光照明,观察衍射图样随点光源位置(光源上下移动)的变化
(5)变化规律
由图样可知,当光源向上移动时,图样向下移动,光源向下移动时,图样向上移动。同时,可以知道,扩展光源的光强分布与点光源的有所不同,主要体现在清晰度的变化。
三、感想
这次大作业要求对课本上的衍射部分有更深层次的理解,通过仿真实验,对菲涅尔衍射和夫琅禾费衍射的特点的理解加深了,对不同衍射孔的夫琅禾费衍射图样特点有了更感性的认识,对光源与衍射图样的关系也有了更深刻的掌握,并进一步熟悉了Matlab在工程光学方面的强大的仿真功能,我们相信对我们以后的学习会有很大的助益。
colormap(gray(3))
title('单缝衍射条纹')
subplot(2,1,2)
plot(x,I)
title(光强分布)
3)初始仿真图样(d=10)
4)改变d之后的图样(d=1000)
5)变化规律
根据衍射屏以及接受屏的相对位置不同,由此产生菲涅尔衍射和夫琅禾费衍射的区别,根据我们模拟的情况得到菲涅尔衍射和夫琅禾费衍射的明显不同是
N=2; %单缝个数N
a=2e-4; %缝宽a
f=5; %衍射屏距接受屏距离z
d=5*a; %光栅常数d
xm=1*lam*f/a;%接受屏边界
y0=xm;
n=1001;
x0=linspace(-xm,xm,n);%构建接受屏矩阵
for i= 1: n %计算接受屏上第i个点的光强
sinphi=x0(i)/f;
[x,y]=meshgrid(xs) ;
fori = 1: 19
s = 2*pi*r*sqrt(x.^2 + y.^2)./(lmda1( i) ) ;
z = 4*(besselj( 1,s)./( s + eps) ).^2; %光强公式
z0 = z0 + z;
end
z1 = z0 /19;
subplot(1,2,1)
forj=1:1:resolution
ifabs(i-center)<a*10/2 & abs(j-center)<b*10/2
A(j,i)=255;
end
end
end
E=ones(resolution,resolution);
k=2*pi*10000/focallength/lambda;
imag=sqrt(-1);
Br=(B/max(B))*NC;
subplot(1,2,1)
image(y0,x0,Br);
colormap(gray(NC) );
subplot(1,2,2)
plot(B1,x0);
3)初始仿真图样
4)改变参数后的仿真图样
①改变缝宽a
a=0.0001
a=0.0003
②改变缝距d
d=4*a
d=6*a
成绩:
《工程光学》综合性练习二
题目:基于matlab的衍射系统仿真
学院精密仪器与光电子工程学院
专业测控技术与仪器
年级20**级
班级**班
姓名
20**年**月
综合练习大作业二
一、要求
3-4人组成小组,对下面给出的各题目利用Matlab等工具进行仿真。练习结束时每组提交一份报告及仿真程序。在报告中应注明各仿真结果所对应的参数,如屏与衍射屏间距、孔径形状尺寸等。
y0=xm;
n=1001;
x0=linspace(-xm,xm,n); %构建接受屏矩阵
for i= 1: n %依次计算接受屏上的第i个点光强
for j=1:n %依次计算第j个入射点
r=pi*(j-501)/5000000; %各个入射点的角度不同
sinphi=x0(i)/f;
alpha=pi*a*(sinphi-sin(r))/lam;
1)原理图
与3.相同。
(点光源S上下移动,即为准直透镜后平行光与衍射屏入射夹角 的变化)
2)matlab代码
clear
lam=500e-9; %定义波长lam=500纳米
N=2; %单缝个数N
a=2e-4; %缝宽a
f=5; %衍射屏距接受屏距离z
d=5*a; %光栅常数d
xm=1*lam*f/a;%接受屏边界
imshow( z1* 255) ; %平面图
xlabel('x')
ylabel('y')
subplot(1,2,2)
mesh( x,y,z1) %三维图
colormap(gray)
xlabel('x')
ylabel('y')
zlabel( '光强')
3)仿真图样:
矩孔衍射:
a=1,b=2
a=2,b=2
clear
lmda=500e-9; %波长
r=1.2e-3; %
f = 1; %焦距
N = 19;
K =linspace(-0.1,0.1,N) ;
lmda1 =lmda*( 1+ K) ;
xm= 2000*lmda* f;
xs=linspace(-xm,xm,2000) ;
ys=xs;
z0 =zeros(2000) ;
subplot(1,2,2)
plot(B1,x0);
3)初始仿真图样
4)改变参数后的仿真图样(即增加入射角r)
5)变化规律
根据仿真图样可以得出以下结论:移动点光源位置,衍射条纹发生平行移动。具体规律为,点光源向上移动,则条纹向下平行移动,及条纹移动方向与点光源移动方向恰好相反。
5.多缝的夫琅和费衍射,使用扩展光源照明,前后、上下移动光源,观察衍射图样的变化
夫琅禾费衍射条件下:中央有一条特别明亮的亮条纹,其宽度是其他亮条纹的两倍;其他亮条纹的宽度相等,亮度逐渐下降。
2.改变孔径形状、尺寸,观察图样变化
1)原理图
矩孔衍射:
透镜焦距:1000mm;
照射光波长:500nm;
孔高:a(mm);孔宽:b(mm);
圆孔衍射:
圆孔直径:r(mm);
照射光波长:500nm;
照射光波长:500nm;
2)matlab代码
矩孔衍射:
focallength=1000;
lambda=500;
a=2.0;b=2.0;
resolution=64;
center=(resolution)/2;
A=zeros(resolution,resolution);
fori=1:1:resolution
(1)原理图
与4类似。
(扩展光源即点光源无数个点光源移动后同时作用,产生的衍射图样的合成)
(2)matlab代码
clear
lam=500e-9; %定义波长lam=500nm
N=2; %单缝个数N
a=2e-4; %缝宽a
f=5; %后面的透镜焦距
d=5*a; %光栅常d=5;
xm=1*lam*f/a; %设定接受屏边界
Colormap(CM);
edge=(resolution-1)/20;
[X,Y]=meshgrid([-edge:0.1:edge]);
x=linspace(-edge,edge,resolution);
y=linspace(-edge,edge,resolution);
subplot(1,2,1);
Br=B1'*NC;
subplot(1,2,1)
image(y0,x0,Br);
colormap(gray(NC) );
subplot(1,2,2)
plot(B1,x0);
(3)初始仿真图样
初始的光源对L1透镜的张角为 rad。
(4)改变参数,即上下移动光源
光源向上移动少许距离后的衍射图样。
光源向下移动少许距离后的衍射图样。
C(j,i)=A(j,i)*exp(-imag*k*(x*p+y*q));
end
end
E(n,m)=sum(C(:));
end
end
E=abs(E);
I=E.^2;I=I.^(1/3);
I=I.*255/max(max(I));
L=I;I=I+256;
CM=[pink(255).^(2/3);gray(255)];
lam=500e-6;%lam=input('波长(nm)');
x=-1:0.001:1;%接收屏边界
y=x./sqrt(x.^2+l^2);
z=a.*y/lam;
I=1000*(sinc(z)).^2;%计算接受屏某点光强
subplot(2,1,1)%绘制仿真图样及强度曲线
image(2,x,I)
圆孔衍射:
r=1.5
r=1.2
圆孔半径增大,衍射图样中的同心圆环半径相应变小,更集中,而能量则更向中心亮斑集中。
进一步分析各种形状的衍射孔可得如下结论:
1.衍射孔在哪些方向上有几条对称轴,则衍射图样亦在哪些方向上有几条对称轴;
form=1:1:resolution
x=m-center;
forn=1:1:resolution
y=n-center;
C=ones(resolution,resolution);
fori=1:1:resolution
p=i-center;
forj=1:1:resolution
q=j-center;
beta=pi*d*(sinphi-sin(r))/lam; %相位差beta
B(i,j)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;
end
B2(i) = sum(B(i,:)); %进行求和
B1=B2./max(B2);
end
NC=255; %绘制衍射仿真图样及强度曲线
B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;
B1=B/max(B);
end
NC=255; %绘制衍射仿真图样及强度曲线
Br=(B/max(B))*NC;
subplot(1,2,1)
image(y0,x0,Br);
colormap(gray(NC) );
surf(x,y,L);
axis([-edge,edge,-edge,edge,0,255]);
caxis([0,511]);
subplot(1,2,2);
image(x,y,I);
axis([-edge,edge,-edge,edge,0,511]);
view(2);
axissquare;
圆孔衍射:
四、参考文献
[1]光学衍射实验的MATLAB仿真[A].1004-7077(2010)梁兰菊田贵才张裕仕
[2]基于MATLAB的夫琅和费衍射实验的计算机仿真.张志峰 苏玉玲 蒋逢春
[3]基于Matlab的光学衍射实验仿真.陈芳芳钱淑珍吴平辉
alpha=pi*a*sinphi/lam;
beta=pi*d*sinphi/lam; %相位差2*bata
B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;
B1=B/max(B);
end
NC=255; %绘制衍射仿真图样及强度曲线
2.衍射孔的面积越小则衍射图样上的能量分布越分散,越大则能量越集中。
3. 多缝的夫琅和费衍射,使用平行光照明,观察衍射图样随缝宽、缝距、缝数量的变化
1)原理图
S点光源发出波长lam=500纳米
经L1准直透镜产生平行光。
缝宽a
缝距d
缝数量N
2)matlab代码
clear
lam=500e-9; %定义波长lam=500纳米
二、仿真题目
1. 改变观察屏与衍射屏间距,观察观察屏上发生的衍射逐渐由菲涅耳衍射转为夫琅和费衍射
1)原理图:wenku.baidu.com
S点光源发出的波长lam=500纳米
S点发出光线经过单缝,
缝宽a;
单缝到衍射屏的距离L'
2)Matlab代码
clear;clc
l=10;%l=input('单缝到衍射屏的距离L=');
a=0.2;%a=input('单缝的宽度(mm)a=');
r=0; %入射角r
y0=xm;
n=1001;
x0=linspace(-xm,xm,n);%构建接受屏矩阵
for i= 1: n %计算接受屏上第i个点的光强
sinphi=x0(i)/f;
alpha=pi*a*(sinphi-sin(r))/lam;
beta=pi*d*(sinphi-sin(r))/lam; %相位差2*bata
d=7*a
③缝数量N
N=3
N=4
N=6
5)变化规律
根据仿真图样可以得出以下结论:
①改变缝宽a
增加缝宽a,亮纹间距减小;反之,亮纹间距增加。
②改变缝距d
增加缝距d,亮纹数量增加,亮纹间距减小;反之,亮纹数量减少,亮纹间距增加。
③缝数量N
增加缝数量N,亮纹变的越细亮;反之,亮纹宽度增加。
4.多缝的夫琅和费衍射,使用平行光照明,观察衍射图样随点光源位置(光源上下移动)的变化
(5)变化规律
由图样可知,当光源向上移动时,图样向下移动,光源向下移动时,图样向上移动。同时,可以知道,扩展光源的光强分布与点光源的有所不同,主要体现在清晰度的变化。
三、感想
这次大作业要求对课本上的衍射部分有更深层次的理解,通过仿真实验,对菲涅尔衍射和夫琅禾费衍射的特点的理解加深了,对不同衍射孔的夫琅禾费衍射图样特点有了更感性的认识,对光源与衍射图样的关系也有了更深刻的掌握,并进一步熟悉了Matlab在工程光学方面的强大的仿真功能,我们相信对我们以后的学习会有很大的助益。
colormap(gray(3))
title('单缝衍射条纹')
subplot(2,1,2)
plot(x,I)
title(光强分布)
3)初始仿真图样(d=10)
4)改变d之后的图样(d=1000)
5)变化规律
根据衍射屏以及接受屏的相对位置不同,由此产生菲涅尔衍射和夫琅禾费衍射的区别,根据我们模拟的情况得到菲涅尔衍射和夫琅禾费衍射的明显不同是
N=2; %单缝个数N
a=2e-4; %缝宽a
f=5; %衍射屏距接受屏距离z
d=5*a; %光栅常数d
xm=1*lam*f/a;%接受屏边界
y0=xm;
n=1001;
x0=linspace(-xm,xm,n);%构建接受屏矩阵
for i= 1: n %计算接受屏上第i个点的光强
sinphi=x0(i)/f;
[x,y]=meshgrid(xs) ;
fori = 1: 19
s = 2*pi*r*sqrt(x.^2 + y.^2)./(lmda1( i) ) ;
z = 4*(besselj( 1,s)./( s + eps) ).^2; %光强公式
z0 = z0 + z;
end
z1 = z0 /19;
subplot(1,2,1)
forj=1:1:resolution
ifabs(i-center)<a*10/2 & abs(j-center)<b*10/2
A(j,i)=255;
end
end
end
E=ones(resolution,resolution);
k=2*pi*10000/focallength/lambda;
imag=sqrt(-1);
Br=(B/max(B))*NC;
subplot(1,2,1)
image(y0,x0,Br);
colormap(gray(NC) );
subplot(1,2,2)
plot(B1,x0);
3)初始仿真图样
4)改变参数后的仿真图样
①改变缝宽a
a=0.0001
a=0.0003
②改变缝距d
d=4*a
d=6*a
成绩:
《工程光学》综合性练习二
题目:基于matlab的衍射系统仿真
学院精密仪器与光电子工程学院
专业测控技术与仪器
年级20**级
班级**班
姓名
20**年**月
综合练习大作业二
一、要求
3-4人组成小组,对下面给出的各题目利用Matlab等工具进行仿真。练习结束时每组提交一份报告及仿真程序。在报告中应注明各仿真结果所对应的参数,如屏与衍射屏间距、孔径形状尺寸等。
y0=xm;
n=1001;
x0=linspace(-xm,xm,n); %构建接受屏矩阵
for i= 1: n %依次计算接受屏上的第i个点光强
for j=1:n %依次计算第j个入射点
r=pi*(j-501)/5000000; %各个入射点的角度不同
sinphi=x0(i)/f;
alpha=pi*a*(sinphi-sin(r))/lam;
1)原理图
与3.相同。
(点光源S上下移动,即为准直透镜后平行光与衍射屏入射夹角 的变化)
2)matlab代码
clear
lam=500e-9; %定义波长lam=500纳米
N=2; %单缝个数N
a=2e-4; %缝宽a
f=5; %衍射屏距接受屏距离z
d=5*a; %光栅常数d
xm=1*lam*f/a;%接受屏边界
imshow( z1* 255) ; %平面图
xlabel('x')
ylabel('y')
subplot(1,2,2)
mesh( x,y,z1) %三维图
colormap(gray)
xlabel('x')
ylabel('y')
zlabel( '光强')
3)仿真图样:
矩孔衍射:
a=1,b=2
a=2,b=2
clear
lmda=500e-9; %波长
r=1.2e-3; %
f = 1; %焦距
N = 19;
K =linspace(-0.1,0.1,N) ;
lmda1 =lmda*( 1+ K) ;
xm= 2000*lmda* f;
xs=linspace(-xm,xm,2000) ;
ys=xs;
z0 =zeros(2000) ;
subplot(1,2,2)
plot(B1,x0);
3)初始仿真图样
4)改变参数后的仿真图样(即增加入射角r)
5)变化规律
根据仿真图样可以得出以下结论:移动点光源位置,衍射条纹发生平行移动。具体规律为,点光源向上移动,则条纹向下平行移动,及条纹移动方向与点光源移动方向恰好相反。
5.多缝的夫琅和费衍射,使用扩展光源照明,前后、上下移动光源,观察衍射图样的变化
夫琅禾费衍射条件下:中央有一条特别明亮的亮条纹,其宽度是其他亮条纹的两倍;其他亮条纹的宽度相等,亮度逐渐下降。
2.改变孔径形状、尺寸,观察图样变化
1)原理图
矩孔衍射:
透镜焦距:1000mm;
照射光波长:500nm;
孔高:a(mm);孔宽:b(mm);
圆孔衍射:
圆孔直径:r(mm);
照射光波长:500nm;
照射光波长:500nm;
2)matlab代码
矩孔衍射:
focallength=1000;
lambda=500;
a=2.0;b=2.0;
resolution=64;
center=(resolution)/2;
A=zeros(resolution,resolution);
fori=1:1:resolution
(1)原理图
与4类似。
(扩展光源即点光源无数个点光源移动后同时作用,产生的衍射图样的合成)
(2)matlab代码
clear
lam=500e-9; %定义波长lam=500nm
N=2; %单缝个数N
a=2e-4; %缝宽a
f=5; %后面的透镜焦距
d=5*a; %光栅常d=5;
xm=1*lam*f/a; %设定接受屏边界
Colormap(CM);
edge=(resolution-1)/20;
[X,Y]=meshgrid([-edge:0.1:edge]);
x=linspace(-edge,edge,resolution);
y=linspace(-edge,edge,resolution);
subplot(1,2,1);
Br=B1'*NC;
subplot(1,2,1)
image(y0,x0,Br);
colormap(gray(NC) );
subplot(1,2,2)
plot(B1,x0);
(3)初始仿真图样
初始的光源对L1透镜的张角为 rad。
(4)改变参数,即上下移动光源
光源向上移动少许距离后的衍射图样。
光源向下移动少许距离后的衍射图样。
C(j,i)=A(j,i)*exp(-imag*k*(x*p+y*q));
end
end
E(n,m)=sum(C(:));
end
end
E=abs(E);
I=E.^2;I=I.^(1/3);
I=I.*255/max(max(I));
L=I;I=I+256;
CM=[pink(255).^(2/3);gray(255)];
lam=500e-6;%lam=input('波长(nm)');
x=-1:0.001:1;%接收屏边界
y=x./sqrt(x.^2+l^2);
z=a.*y/lam;
I=1000*(sinc(z)).^2;%计算接受屏某点光强
subplot(2,1,1)%绘制仿真图样及强度曲线
image(2,x,I)