Matlab辅助激光光学分析与应用 
作    者:刘良清    Email:llq-hust@sohu.com 
单    位:武汉凌云光电科技有限公司 
毕业院校:华中科技大学激光技术与工程学院 
学    历:硕士研究生 
研究方向:自适应光学、非线性光学、激光光学、固体激光
器件 
 
 
 
 
 
 
 
 
2008 年 3 月   第一版 
第一章  光的波动性和衍射 
1.1 Maxwell方程组和电磁波 
十八世纪中叶,James Maxwell 将已知的各种电磁作用关系用一组方程组合起来,形
成了一个方程组: 
ρ
ε
∇ =·E
 
 0∇ =·B
E
∇× +
B
μ
∇×
0
            (源于库伦定律的高斯定律) 
0
      (源于毕奥-萨瓦尔定律的高斯定律) 
B
 
∂
∂
t
− ε
                   (法拉第定律) 
    (Maxwell 修正的安培定律) 
=
J
0
0
=
E
 
∂
∂
t
(1.1) 
(1.2) 
(1.3) 
(1.4) 
 
 
 
 
2
2
·
/C N m
12
−
式中, 和 分别代表了电场和磁场分量。电荷密度
分布;电流 描述电荷的移动( 单位电荷乘以速度) 。
ε =
0
k
者
E B
J
8.854 10
×
g m C·
2
在安培定律中引入了一个关键参数之后,Maxwell 意识到,方程组构成了一个完美的电
磁现象自洽理论。此外,方程组预言了电磁波的存在,并以光速传播。在 Maxwell 时代之
前就已经有人对光速进行了测量,因此一个显而易见的结果(当时还难以令人置信)便是,光
是一种高频振荡表现,类似并超越了支配电流和电荷的影响因素。而在此之前,光学还仍然
ρ 描述路径空间单位体积内的电荷量
0ε 表示真空介电常数,其值为
(或
0μ
。 表示真空磁导率常数,其值为
/T m A
7
−
μ = π×
0
)。 
10
4
/
·
作为一种独立于电学和磁学的主体进行讨论的。 
这里,我们不再对电磁学的基本知识进行详细的讨论,因为它们在普通物理课程中都有
讲述,并且有大量的文献和书籍对其进行了细致的分析。但我们要简要的从波动方程出发,
求解旁轴近似下的 Maxwell 方程组,得到激光传输与变换的基本方程,以方便我们后续的
讨论和应用。 
为了体现 Matlab 在可视化方面的优势,我们先以一个简单的例子作为本书的开篇,以
达到抛砖引玉的效果。在电动力学中,我们会遇到真空电磁场波动方程的旁轴近似解,众所
周知,其解为具有高斯分布的电场复振幅: 
 
Ψ
( ,
r z
)
= Ψ
0
2
π
w
0
( )
w z
= π λ
2 /
k
式中,
表示为: 
为光波传播常数。
exp
j
−
⎡
⎢
⎣
( )w z
2
−
r
2
2
kr
2 ( )
( )
R z w z
( )R z
、
}
]   (1.5) 
( )φ z 是与光束有关的传播参数。分别
[
j kz
exp
( )
z
− φ
⎤
⎥
⎦
{
、
−
 
 
( )
w z w
=
1
 
⎛
λ
z
+ ⎜ π⎝
 
w
2
0
2
⎞
⎟  
⎠
0
(1.6) 
1 
 
 
光束远场发散角为: 
 
或者 
 
( )
R z
=
z
⎡
1
⎢
⎢
⎣
( )
φ
z
=
tan
− ⎛
1
⎜
⎝
z
Z
⎛
+ ⎜
⎝
⎞
⎟
⎠
R
0 
2
π
w
 
λ
z
2
⎞
⎟
⎠
,
  
Z
R
=
⎤
⎥
⎥
⎦
π
 
2
0
w
λ
 
θ =
0
lim
→∞
z
( )
w z
z
=
λ
π
w
0
 
θ =
0
( )
w z
( )
R z
⎛
⎜
⎝
2
⎞
⎟
⎠
+
⎛
⎜ π
⎝
λ
( )
w z
⎞
⎟
⎠
2
 
(1.7) 
(1.8) 
(1.9) 
(1.10) 
我们可以用几行简单 matlab 程序就可以画出具有高斯分布的电场强度,如图 1.1 所示,图
形美观,方便对光强的分布有一个感性的视觉认识。程序代码为: 
clear; 
clc; 
w0=0.5; 
r=linspace(0,3*w0,200); 
eta=linspace(0,2*pi,200); 
[rho,theta]=meshgrid(r,eta); 
[x,y]=pol2cart(theta,rho); 
Iopt=exp(-2*rho.ˆ2/w0ˆ2); 
surf(x,y,Iopt); 
shading interp; 
xlabel(’位置 /mm’); 
ylabel(’位置 /mm’); 
zlabel(’相对强度 /a.u.’); 
title(’高斯强度分布’); 
axis([-3*w0,3*w0,-3*w0,3*w0,0,1]); 
colorbar; 
colormap(’hot’); 
box on; 
grid off; 
图 1.1  高斯光强分布 
 
另外,我们还可以画出高斯光束在自由传输过程中的强度变化,如图 1.2 所示,程序代码
如下: 
clear; 
clc; 
lambda=1.064e-3; 
w0=0.5; 
ZR=pi*w0ˆ2/lambda; 
z=linspace(-2*ZR,2*ZR,200); 
y=linspace(-4*w0,4*w0,200); 
[py,pz]=meshgrid(y,z); 
 
2 
wz=w0*sqrt(1+(lambda*pz/pi/w0ˆ2).ˆ2); 
Iopt=w0ˆ2./wz.ˆ2.*exp(-2*py.ˆ2./wz.ˆ2); 
surf(pz,py,Iopt); 
shading interp; 
xlabel(’位置 /mm’); 
ylabel(’位置 /mm’); 
zlabel(’相对强度 /a.u.’); 
title(’高斯强度分布的传输’); 
colorbar; 
colormap(’hot’); 
box on; 
grid off; 
图 1.2  高斯光束自由传输强度变化 
 
以上我们以简单的例子展示了 Matlab 在可视化方面的强大功能,但本文不再对 Matlab
的基本功能和语法常识进行介绍,我们认为本书的读者已经具备了基本的 Matlab 编程技巧。
或者说,我们所做的只是将我们的实际运用跟读者进行交流讨论,促进大家共同进步。当然,
我们会在一些比较关键的地方指出编程过程中需要注意的问题。 
1.2  波动方程 
当 Maxwell 统一了电磁理论以后,他马上意识到,波动可能是该方程组的解的形式。
事实上,他希望找到一组满足波动形式的方程组,以辅助他完成找到真正的波动方程。既然
1/ ε μ 正好给出了精确的光
已经知道了光是以波动方式传播的,基尔霍夫首先注意到了
0
0
c =
3.00 10
/
× m s
8
速
(之前就已经被测量过),并且法拉第和克尔已经观测到强磁场和强电
场会影响光在晶体中的传播。对初始接触 Maxwell 方程组的人来说,并不能一眼就看出它
的解具有波动形式。但是经过适当的数学操作,我们就可以将它变为波动方程的形式。 
我们来推到电场E的波动方程,磁场B的波动方程的推到过程是类似的。我们将方程
(1.3)进行卷积,可得: 
 
∇ × ∇ ×
(
E
)
+
∂
∂
t
(
∇ ×
B
) 0
=
 
该方程可以由矢量微分恒等式简化: 
∇× ∇×
 
∇ ×B
卷积
可由
(1.11) 
(1.12) 
(1.13) 
3 
(
= ∇ ∇
•
E
)
2
− ∇
E
 
(
E
)
(1.4)式代换,由此得到: 
∂
⎛
⎜∂
⎝
t
− ∇ +
(
∇ ∇
E
E
)
•
2
ε μ
0
0
E
 
∂
∂
t
+ μ
J
0
⎞
0⎟
=
⎠
 
 
 
再由(1.1)式代入上式,经过整理就可得到: 
 
2
∇ − ε μ
0
E
0
∂
∂
2
E
 
2
t
= ∇
⎛
⎜
⎝
ρ
ε
0
⎞
⎟
⎠
+ μ
0
∂
J
∂
t
 
(1.14) 
需要指出的是,上式中没有考虑到介质的极化。弱考虑到介质的极化和实际一般光学问题中
自由电荷为零的条件,上式修正为: 
 
2
∇ − ε μ
0
E
2
E
 
∂
2
∂
t
0
= μ
0
∂
freeJ
∂
t
+ μ
0
2
∂
P
2
∂
t
(
− ∇ ∇
1
ε
0
•
P
)  
(1.15) 
式中, P 为极化强度矢量。这样我们得到了一般的电场传播方程,该方程在非线性光学中
有很重要的地位。当光在真空中传播时,式(1.15)中的右边所有项均为零,方程简化为: 
 
2
∇ − ε μ
0
E
2
E
 
∂
2
∂
t
0
=
0
 
(1.16) 
这样我们就得到了电场传播的波动方程形式。当然在有些实际问题中,式(1.15)中右边的
项并不是都为零,至少会有一项不为零,这与介质的性质有关。 
1.3  衍射 
考虑一个振动频率为 的光场,其复振幅可以表述为
ω
E
(
)
r e− ω
j
t
,则它也必须满足波
动方程: 
 
∇
2
E
(
)
r e
 
− ω
j
t n
−
c
2
2
E
(
r
)
2
∂
 
− ω
t
j
 
e
∂
t
2
0
=  
(1.17) 
由于电场振幅的含时部分是显式给出的,则方程(1.17)可以简化为: 
 
式中
k n
 
≡ ω
∇
(1.18)式就是所谓的赫姆霍兹方程。如果我们忽略波动
是波矢量的大小。
的矢量特性,而只考虑它的振幅(这里不再详细讨论其过程),那么在标量近似下,就得到了
标量赫姆霍兹方程: 
−
k
c
r
r
/
(1.18) 
0
=  
2
E
(
)
2
E
(
)
 
2
∇
(
E r
)
−
2
(
k E r
)
0
=  
然后,我们考虑一束沿z轴传播的光束,它的电场复振幅写成 (
)
E x y z e
将它代入标量赫姆霍兹方程(1.19)式,得到: 
∂
E
∂
z
∂
E
2
∂
z
jk
 
j kz
+
+
=
2
0
e
 
 
,
,
2
2
⎞
⎟
⎠
(1.19) 
 
j kz
的形式。我们
(1.20) 
2
⎛
∂
E
⎜ ∂
2
x
⎝
∂
2 E
k
∂
z
+
∂
E
2
∂
y
∂
E
2
∂
z
2
在旁轴近似下,有
。即是说,我们假设了电场的复振幅沿 z 轴传播方向是
缓慢变化的,与平面波类似。但是我们允许振幅沿 z 轴在远大于波长量级的范围上有明显的
变化。这样就得到了旁轴波方程: 
2
2
 
 
(1.21) 
⎛
∂
⎜ ∂
⎝
x
+
2
∂
∂
y
2
+
2jk
∂
∂
z
⎞
⎟
E
⎠
≅
0
求解方程(1.21)式,得到: 
)
,
E x y z
(
 
,
≅ −
 
j
z
λ ∫∫
Σ
,
′
E x y
(
,0
′
)
e
j
k
2
z
(
⎡
⎢
⎣
−
x x
2
′
)
(
+ −
y y
′
)
2
⎤
⎥
⎦
dx dy
′
′  
(1.22) 
4 
于是电场的表达式为: 
,
,
)
E x y z E x y z e
=
(
)
(
,
,
 
j kz
 
 
                 ≅ −
j
z
λ ∫∫
Σ
,
′
E x y
(
,0
′
)
e
(
−
x x
′
)
2
′
)
2
(
+ −
y y
2
z
 
j k
⎡
⎢
⎢
⎣
⎤
⎥+
z
⎥
⎦
dx dy
′
′
 
(1.23) 
值得一提的是,基尔霍夫早在 1887 年就提出了著名的菲涅耳-基尔霍夫衍射
公式: 
 
,
E x y z
,
(
)
= −
式(1.23)和(1.24)在分母
r
 
j kr
e
(
,0
′
,
′
E x y
∫∫
2
aperture
时具有一致性,并在指数上: 
r
)
r z
1 cos( , )
+⎡
⎢
⎣
j
λ
z≅
dx dy
′
′
 
(1.24) 
⎤
⎥
⎦
 
(
−
x x
′
)
r
≅ +
z
同时,式(1.23)是(1.24)式在满足
外,如果进一步满足远场条件
(
k x
′
2
(
+
2z
)
2
+
−
y y
2
′
)
 
(1.25) 
(
−
y y
2
′
)
条件下的菲尼尔旁轴近似。另
′
 ,就得到夫琅禾费衍射近似: 
z
−
x x
)
2
z
2
(
′+
y
2
⎛
⎜
⎜
⎝
2
+
y
2
z
x
 
j k
 
,
E x y z
,
(
)
 ≅ −
j
λ
z
e
2
+
z
⎞
⎟
⎟
⎠
∫∫
Σ
,
′
E x y
(
,0
′
)
e
 
j k
xx yy
′
+
z
′
dx dy
′
′
 
(1.26) 
1.3.1 小孔衍射 
假设光场透过一个圆柱
对称的小孔,这时,孔径上的场分布可以写为: 
 
,
′
E x y
(
,0
′
)
=
E
(
,0
′
ρ
)
 
(1.27) 
这样
,二维衍射积分可以简化为一维衍射积分。将(1.27)式代入到菲尼尔衍射
积分公式中,
得到简化衍射积分式: 
 
,
ρ
E z
(
)
 ≅
−
j
λ
z
e
 
j k
2
ρ
2
z
⎛
⎜
⎜
⎝
+
z
⎞
⎟
⎟
⎠
∫
Σ
′
′
ρ ρ
d E
(
,
′
ρ
0
)
e
 
j k
对角度的积分项,我们可以借助下面的公式完成: 
2 2
ρ
2
z
π
∫
0
−
 
j k
′
ρρ
z
cos
(
′
θ−θ
)
′
θ
d e
 
(1.28) 
 
2
π
∫
0
−
 
j k
′
ρρ
z
cos
(
′
θ−θ
)
′θ
d e
2
= π
J
0
′ρρ
k
z
⎛
⎜
⎝
⎞
⎟
⎠
 
式中, 称为零阶Bessel函数。这样,(1.28)式可以简化为: 
0J
 
,
ρ
E z
(
)
 ≅ −
 
j k
2
ρ
2
z
⎛
⎜
⎜
⎝
+
z
⎞
⎟
⎟
⎠
2
π
j
λ
z
e
∫
Σ
′
′
ρ ρ
d E
(
,0
′
ρ
)
e
 
j k
2
ρ
2
z
J
0
⎛
⎜
⎝
k
′
ρρ
z
⎞
⎟
⎠
 
(1.29) 
(1.30) 
式(1.30)中的积分项也称为
,0
等于 1,积分项变为
E ′ρ
(
E
)
2
ρ
2
z
 
j k
)
′ρ
,0
ρ
 
的汉克尔变换。在夫琅禾费衍射近似下, 2j k
z
(
的汉克尔变换。于是夫琅禾费柱对称圆孔衍射方程为: 
e
e
2
项
 
(
,
ρ
z
)
 ≅
−
E
 
j k
2
⎛ ρ
⎜
⎜
2
z
⎝
+
z
⎞
⎟
⎟
⎠
2
π
j
λ
z
e
∫
R
′
′
ρ ρ
d E
(
,
′
ρ
0
)
J
0
⎛
⎜
⎝
k
′
ρρ
z
⎞
⎟
⎠
 
 
(1.
31) 
5 
虽然经过了一系列简化,然而
E ′ρ
,0
(
)
是复振幅通常都是不确定的,即使知道了强度
分布,相位分布也可能是比较难预测的。
当然,
布。
这里,我们以平面波入射为例,
讨论圆
也可以通过辅助手段测量强度分布和相位分
E ′ρ 可用常数
孔夫琅禾费衍射问题。这时 (
,0
)
代替,不妨设为 1。利用 Bessel 函数的递推关系,我们可以得到解析的圆孔夫琅禾费衍射
公式: 
()
,
ρ
z
E
 
≅ −
 
j k
2
ρ
2
z
⎛
⎜
⎜
⎝
+
z
⎞
⎟
⎟
⎠
2
π
j
λ
z
e
′
′
ρ ρ
d J
0
∫
R
′
ρρ
k
z
⎛
⎜
⎝
⎞
⎟
⎠
= −
2
π
j
λ
z
e
 
j k
2
ρ
2
z
⎛
⎜
⎜
⎝
+
z
⎞
⎟
⎟
⎠
2
R
J
1
ρ
⎛
k R
⎜
⎝
z
/
ρ
k R z
⎞
⎟
⎠
  (1.32) 
即使是解析式,我们还是不能直观地感受到衍射斑的样式。下面我们利用 Matlab 给出
夫琅禾费圆孔衍射的强度分布。程序代码如下: 
ce(0,2*1.22*lambda/2/R*z,201); 
R=0.1; 
lambda=1.064e-3; 
k=2*pi/lambda; 
z=1.0e3; 
r=linspa
eta=linspace(0,2*pi,2
[rho,theta]=mesh
[x,y]=pol2ca
rt(theta,rho); 
Bess=besselj(1,rho*R*k/z); 
Ie=4*piˆ2*Rˆ2*Bess.ˆ2./(rho
surf(x,y,Ie); 
axis([-max(r),max(r),-max(r)
shading interp;box on; grid 
figure;plot(x(1,:),Ie(1,:),’k’,x(101,:),Ie(10
*k).ˆ2/lambdaˆ2; 
grid(r,eta); 
01); 
,max(r),0,max(Ie(:))]); 
off; 
1,:),’k’); 
x 10-3
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-15
-10
-5
0
5
10
15
 
图 1.3 夫琅禾费圆孔衍射 (孔径 0.2mm,距离 1m 远) 
 
程序中使用了这样一个参数1.22 / Dλ ,因为平面波假设具有最小的衍射角,这个参数
就称为衍射极限角,所以在衍射区域里,只取二倍衍射极限范围就可以大致看出小孔的衍射
 
6 
特性
。并且,对于解析表达,Mat
Bessel 函数工具箱,可以直接调用。当然,为
了能够从图上看到跟实际观测相近的衍射环,可以将相对强度分布取四次开根号,如图 1.3
下图所示。 
lab 提供了
上面,我们使用的解析表达式绘图。接下来,我们采用数值积分方法直接求解(1.26)式
衍射分布。这需要将目标平面划分网格,然后用网格格点上的复振幅代替领域
夫琅禾费圆孔
内的
平均振幅分布求相面上的振幅分布。为了简化计算量,我们不再计算二维分布,只计算
一维分布,计算结果如图 1.4 所示。程序代码如下: 
ambda/2/R*z,201); 
meshgrid(r,eta); 
 
*pi,201); 
R=0.1; 
lambda=1.064e-3; 
k=2*pi/lambda; 
z=1.0e3;
r=linspace(0,2*1.22*l
eta=linspace(0,2
[rho,theta]=
[x,y]=pol2cart(theta,rho); 
r0=linspace(0,R,201); 
eta0=linspace(0,2*pi,201); 
[rho0,theta0]=meshgrid(r0,et
[x0,y0]=pol2cart(theta0
deta=R/200*2*pi/200; 
E2=zeros(201,1); 
for gk=1:201 
   for m=1:200 
     for n=1:201 
E2(gk)=E2(gk)-
j/l
)+y(1,gk)*y0(m,n
      end 
    end 
end 
Ie=conj(E2
plot(r,Ie
’,-r,Ie,’k’); 
).*E2; 
,’k
a0); 
,rho0); 
*x0(m,n
))/z)*deta*rho0(m,n); 
ambda/z*exp(((x(1,gk)ˆ2+y(1,gk)ˆ2)/z/2+z)*j*k)*exp(j*k*(x(1,gk)
.
u
a
.
/
 
度 
强
对
相
x 10-3
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-15
-10
-5
0
位置  /mm
5
10
15
 
图 1.4  数值积分法计算的夫琅禾费圆孔衍射 
比较图 1.3 和图 1.4,可以看出,数值积分法计算出的衍射斑与理论解析结果是一致的。
低很多,其他级次就更
上看到,一级衍射峰值比零级衍射峰值要
另外,值得注意的是,从图
低了
。那为什么我们在实验中仍然可以清晰地看到许多级次的衍射环呢?那是因为人眼对光
子的感光度比较高,而实验所用的激光都具有很高的光子数密度,因此还是可以看到很多的
衍射级次。 
对于旁轴远场条件不够满足的情况,夫琅禾费近似不成立,即使是菲涅耳近似也可能不
成立,这时必
须使用更为严格的菲涅耳-基尔霍夫标量衍射公式: 
 
7