第30卷第5期 唐山师范学院学报 2008年9月 Vol.30 No.5 Journal of Tangshan Teachers College Sep. 2008
用MATLAB模拟菲涅耳直边衍射
王 莉,杨会静,段芳芳
(唐山师范学院 物理系,河北 唐山 063000)
摘 要:用MATLAB软件仿真模拟了菲涅耳直边衍射实验,给出了相应物理规律和图形化的效果。实验结果的图样细致逼真,使整个物理过程变得直观、形象、生动。
关键词:菲涅耳直边衍射;模拟;MATLAB 中图分类号: O411.2
文献标识码:A
文章编号:1009-9115(2008)05-0131-02
The Simulation of Fresnel Straight Edge Diffraction by MATLAB
Wang Li, Yang Hui-jing, Duan Fang-fang
(Department of Physics, Tangshan Teachers College, Hebei Tangshan 06300, China)
Abstract: Fresnel straight edge diffraction is simulated with MATLAB, the corresponding laws and graphical effects are also received. The simulation is so realistic that it can be learnt easily.
Key words: Fresnel straight edge diffraction; simulation; MATLAB
MATLAB语言以其强大的图形及动画功能可以准确和科学地生成所需要的结果,使课件含义更加丰富,内容表达更为简洁。MATLAB在数值计算和绘图能力上具有极佳的可视化能力,在二维和三维绘图方面具有独特的优点,计算中有很多函数可以使用,结果的可视化简单易行。可以将其应用于各种算法的数据处理以及图像动态仿真,把教学中抽象、微观、复杂的概念用生动形象的图形或图像形式体现出来。
1 用MATLAB模拟菲涅耳直边衍射
惠更斯-菲涅耳原理内容表述如下:点光源L在空间某点P所产生的扰动,可以看作是波前S上连续分布的假想的次波源在该点所产生的相干振动的叠加。借助于惠更斯-菲涅耳原理可以解释和描述光束通过各种形状的障碍物时所产生的衍射现象。惠更斯-菲涅耳原理数学表达式:
为:在几何阴影内光强迅速下降,但并不为零,而是能进入到一定的阴影区域;在几何阴影外,明暗条纹仅限于离几何阴影边缘很近的范围内,并随离几何阴影边缘距离增大,振荡幅度减小,条纹变密,最后光强趋近某一定值;在几何阴影边缘,光强不是最大,也不是最小,而是中间某一值(大约为I04)。
根据菲涅耳衍射公式,当用沿z方向传播的单色光照射
与z轴垂直的孔径时,任一z平面上的衍射场分布为[3]
ik
x-x)2(y-y)2]eikz
2z
E(x,y,z)dxdy(2) e
ilzS
其中k是波数,l是波长.对直边衍射,公式可简化为[4]
EC
K()A(Q)i(krwt)
dS (1)
r
EE(x,y)FxF() (3)
1i
2
其中F(x)为菲涅耳方程,光强IE(x,y)。通过数值积
分可得菲涅耳直边衍射的光强分布。
在编写程序前先编写两个函数,它将应用到菲涅耳直边衍射的程序中。这两个函数的编写程序如下:
function CS=F(a)
当点光源S发出球面波,经过透镜L会聚形成平面波,经直边(半无穷不透明屏)衍射,在观察屏上形成衍射场,这种衍射现象叫做菲涅耳直边衍射。直边衍射光强分布特征
──────────
基金项目:唐山师范学院资助项目(00C070201)。 收稿日期:2007-10-24 作者简介:王莉(1972-),女,河北唐山人,博士,唐山师范学院物理系副教授。 - 131 -
第30卷第5期 唐山师范学院学报 2008年9月
CS=quad(@fun1,0,a); function fun=fun1(u)
fun=cos(0.5.*pi.*u.^2)+i.*sin(0.5*pi.*u.^2); 菲涅耳直边衍射的编写程序如下[6]: clear clc
d=0.1;lamda=600e-9; % 位置d及波长lamda k=2*pi./lamda; % 空间波失
x=-0.001:0.000003:0.001;y=x; %选择数据点 e2=sqrt(2./lamda./d); %定一个常数 x1=e2.*x; %改造一下变量
for n=1:667 %循环计算各个x处的光强
l(n)=abs(F(x1(n))+sqrt(0.5)*exp(i.*pi./4)); % 表示的
是菲涅尔积分
f(n)=F(x1(n)); %得到菲涅尔积分的列阵
E=sqrt(0.5).*exp(i*(k*d-pi/4))*(F(x1(n))+sqrt(0.5)*ex
p(i*pi/4));
I(n)=abs(E); %计算场强的模,用来表示光强 end H=max(l)
xmax=find(l(:)==H); %最大光强是第几个点 xm=xmax*0.000003-0.001 %找到光强极大点的x坐标 plot(f); %画考纽卷线 hold on figure
plot(x,l); %画光强的曲线图 xlabel('位置');ylabel('光强');
[X,Y]=meshgrid(x,y); %建立数据网格
L=repmat(I,[667,1]); %把I 改造为二维数据网格和X、Y匹配,才能画图
figure hold on
colormap(gray); %模拟出了菲涅尔直边衍射的图像 view(0,90) mesh(X,Y,L);
菲涅耳直边衍射光强分布曲线和考纽卷线如图1所示,仿真结果如图2所示。 2 小结
将MATLAB程序应用于模拟物理图像、模拟光的衍射干涉图样、动态模拟物理过程等方面,可以让研究变的相对容易些,同时可以对物理图像进行清晰的显示和分析,从而进一步提高大学物理教学现代化的水平。
- 132 -
图1 菲涅耳直边衍射光强分布曲线和考纽卷线
图2 菲涅耳直边衍射图样
[参考文献]
[1] 楼顺天,于卫,阎华粱.MATLAB 程序设计语言.西安:西安
电子科技大学出版社,1997.
[2] 彭芳麟.数学物理方程的Matlab解法与可视化[M].北京:
清华大学出版社,2004.
[3] 梁铨廷.物理光学[M].北京:机械工业出版社,1987,104:
106.
[4] 张广军.激光直边衍射CCD位移测量方法[J].实用测试技
术,1994(6),10-11.
[5] 刘卫国.MATLAB程序设计教程[M].北京:中国水利水电
出版社,2005.
[6] 王沫然..MATLAB与科学计算[M].北京:电子工业出版社,
2003.
(责任编辑、校对:孙海祥)