吴云峰,于乃森,郑鹏程,张 晶,关寿华
(大连民族学院物理与材料工程学院,辽宁大连116605)
利用计算机解决问题,就需要选择合适的计算机语言。与许多传统语言,如 Basic、C相比MATLAB语言更适用于科学计算。MATLAB[1]具有可靠的数值计算和符号计算,强大的绘图,简单易学的语言体系以及为数众多的工具箱等功能。MATLAB的数据处理能力和操作的简易性已越来越为大家所接受。谢家兴等[2]使用MATLAB进行傅里叶变换光学仿真,用衍射积分和傅里叶变换方法实现夫琅禾费衍射计算机模拟,在大量实验的基础上建立基于MATLAB的光学实验仿真系统。光色散有关物理量的计算(如强度函数,消光系数等)是十分繁琐复杂的。由于MATLAB语法简单,操作方便,姬丰等[3]使用MATLAB进行计算,大大提高了效率。迈克尔孙实验是经典的物理实验,张汉伟等[4]从实验出发,用MATLAB做出干涉条纹图样,可对条纹的形状和光屏位置的关系进行方便的分析。张树林[5]运用MATLAB编程语言完成一维无限深势阱和线性谐振子的能级、波函数及几率密度等结果的图形绘制,可加深人们对这些物理量的理解。钱晓凡等[6]针对衍射计算困难的问题,选择合适的计算公式,并基于MATLAB编写计算程序,使计算变得简洁,大大提高了实验的效率。还有一些作者[7-11],利用 MATLAB强大的的数据处理能力进行物理实验的计算机模拟及数据的数字化处理。
在近代物理实验中,需要用精密的仪器测量大量的原始数据。同时,由于物理实验所涉及的公式往往复杂、抽象,学生难以理解,容易遗漏细节。这就给实验之后数据的处理及分析带来了很大的不便,影响了教学的效率及效果。为了解决大量数据的采集、处理和分析之间的矛盾,可利用MATLAB强大的数据处理能力,减小工作量以提高效率。
本文是根据实验原理通过做实验取得原始数据,利用MATLAB软件模拟出He-Ne激光光束光强分布的四种强度花样图和激光光束的概率分布云图。利用MATLAB模拟出的花样图和分布云图,可让学生对激光光束有一个直观、清晰的认识,对理解和掌握激光光束的概念有很大的帮助作用。
本实验采用平凹腔He-Ne激光器,利用多模式He-Ne激光器发出的光通过一个水平45°放置的凹面镜反射到竖直放置的平面镜上,光功率接收器接收竖直放置的平面镜反射来的光束。分析和研究激光光束的光强分布,进而拟合出激光光束的光强花样图和概率图。实验装置示意图如图1。
图1 实验装置示意图
通过实验分别测量了激光光束在缝宽0.6 mm和0.3 mm下的光强分布。
(1)运用MATLAB语言编写程序,绘制出He-Ne激光光束的光强分布的4种光强花样图。
(2)利用实验测量的数据,分别绘制出激光光束在不同缝宽下的概率图。
(1)He-Ne激光光束的光强分布的4种强度花样图,如图2.
假设4种强度花样的半径相同,取值为6.5 mm:
程序如下:
function her=hermite(m,x) %建立厄米多项式函数
if m==0 %m为0时
her=ones(size(x)); %建立矩阵her同矩阵x大小相同的一个幺矩阵
elseif m==1 %m 为1时
her=2*x; %her 为2x
else her=2*x.*hermite(m-1,x)-(m-1)*2*hermite(m-2,x); %m不等于0和1时为厄米多项式函数
end
x=linspace(-6.5,6.5,500); % 在 -6.5和6.5取500个值
y=x;%x值赋给y
[xx,yy]=meshgrid(x,y); %产生的网格点坐标矩阵
k=1;
for m=0:1
for n=0:1
Ie=hermite(m,sqrt(2)*xx).^2.*hermite(n,sqrt(2)*yy).^2.*exp(-2*(xx.^2+yy.^2));
subplot( 2,2,k);%画出三维曲面图
surf(xx,yy,Ie);
shading interp; %给曲面图着色
axis equal;%将纵、横坐标轴采用等长刻度
axis([-3,3,-3,3]);
grid off;
box on;
axis off;
hold on;
k=k+1;
end
end
subplot(2,2,1);title(TEM00);
subplot(2,2,2);title(TEM10);
subplot(2,2,3);title(TEM01);
subplot(2,2,4);title(TEM11);
图2 激光光束的光强分布的4种强度花样图
(2)激光光束的概率分布云图的绘制
绘制高斯光束的基模TME00在不同缝宽所得到的光强分布的概率图,如图3。
当缝宽为0.6mm时:
根据实验测得的数据,得x0最大值13mm,即2r0=13mm,r0=6.5mm
程序如下:
clear;
输入x0
输入y0 %输入x,y的的值
subplot(1,2,1);
k=0:0.01:2*pi; %在0到2pi之间取数
s=20000; %s取2万个数
plot(6.5*cos(k),6.5*sin(k)) % 绘制半径6.5的圆
hold on
r0=6.5; %半径6.5
r=r0*rand(1,s); %在半径范围内取2万个随机数
x=linspace(0,13,500); %0 到 13 之间取500个数
p=polyfit(x0,y0,10); %拟合十次函数
y=polyval(p,r); %求函数值
D=y/100; %计算在径向半径上每个点出现的概率
q=find(D>0.0001); %去掉电子出现概率极低的点
m=length(q); %求q的长度
t=2*pi*rand(1,m) %找出不同概率时各个电子所在半径
plot(r(q).*cos(t),r(q).*sin(t),'k ','gailvtu',1)% 绘制概率图
当缝宽为0.3mm时:程序如上。
图3 基模的光强分布的概率图
对于高阶激光光束模式,在不同缝宽所得到的光强分布的概率图,与基模模式同理,可作出如图4的概率图。
图4 高阶激光光束的光强分布的概率图
利用MATLAB语言编写程序可以将He-Ne激光器激光光束的四种基本强度花样图以及概率图,清晰直观地绘制出来。强度花样图让同学们简单快速地记住每种模型的特点,而概率图则使同学们很容易区分出光强分布强弱的特点,这样更让同学们加深了对He-Ne激光器激光光束模式的理解,便于同学们学习。在近代物理实验教学中,如果事先编好一个实验程序,利用测量的实验数据代入程序就使得教学效果有所提高,值得在教学中推广。
[1]刘卫国.MATLAB程序设计与应用[M].2版.北京:高等教育出版社,2006.
[2]谢家兴,王建,代秋芳,等.基于MATLAB的傅里叶变换光学仿真[J].光学学报,2009,29(s1):130-133.
[3]姬丰,郑刚,屠其军,等.基于MATLAB的光散射物理量的数值计算方法[J].光学仪器,2003,25(1):29-32.
[4]张汉伟,董天奇,何焰蓝,等.基于两点光源的迈克耳孙实验分析[J].物理与工程,2009,19(6):27-35.
[5]张树林.基于MATLAB的能级、波函数及几率密度图形的绘制[J].大学物理实验,2008,21(3):102-105.
[6]钱晓凡,胡涛,张晔.基于MATLAB的衍射场模拟计算[J].昆明理工大学学报:理工版,2004,29(3):132-134.
[7]梁齐,许晓琳,王明虎.光干涉实验的计算机模拟[J].大学物理实验,2003,16(3):61-63.
[8]郭天葵.基于MATLAB的实验数据处理[J].大学物理实验,2005,18(3):80-82.
[9]余小英,李凡生.基于MATLAB的双棱镜干涉图像处理研究[J].物理实验,2010,30(5):28-31.
[10]崔红,常洋,张建生.基于MATLAB的尾流图像数字化处理[J].光子学报,2010,39(12):2274-2278.
[11]崔祥霞.圆孔圆环夫琅禾费衍射实验的MATLAB仿真设计[J].物理与工程,2010,20(5):34-36.