2.2 衍射问题的计算
对于计算机生成的全息图来说,衍射的模拟是全息图计算的关键步骤,对于具体的衍射计算问题,需要用离散的数值算法来解决。且衍射计算中特别要注意欠采样问题,下面将介绍三种衍射问题的数值计算算法,并对它们的抗欠采样能力进行分析比较,确定本文所用的衍射问题数值计算算法。
Kirchhoff和Sommerfeld分别从麦克斯韦理论出发,利用格林定理经过严谨的数学推理各自建立了一个标量衍射积分公式,但在傍轴情况下,无论是基尔霍夫还是瑞利-索末菲积分公式,菲涅尔衍射积分公式均可以表示为:

其中λ为光波的波长,k=2π/λ为波数,d是传播距离,u(x0,y0)是光场在衍射面上的复振幅分布。为解决观察面上的光波复振幅问题,需要对式(2-7)进行快速准确地积分,将菲涅尔衍射积分公式,做以下替换,其中fx为沿x方向的空间频率,fy为沿y方向的空间频率。

则菲涅尔衍射积分公式变为:

从式(2-9)中可以看出,菲涅尔衍射积分可以用衍射孔径光波复振幅分布于二次位相因子的乘积的傅立叶变换,再乘以一个复常数
来实现,如式(2-10)所示。

其中,F{⋅}代表完成快速傅立叶变换。
设有N×N个二维点阵,Δx0和Δy0分别为沿x0方向和y0方向的抽样间隔,对衍射孔径光波的复振幅分布u(x0,y0)进行离散化,根据离散傅立叶变换理论,Δx0,Δy0和Δfx,Δfy有如下关系:

由式(2-8),上式可得:

综合以上内容可得离散菲涅尔变换公式为:

其中,m、n为观察平面的离散序数,且m=0,1,…,N-1;n=0,1,…,N-1。根据公式(2-12)可以看出,衍射面的大小不但与波长有关,而且与抽样间隔和传播距离有关。在使用离散菲涅尔算法计算时,需要确定观察面的尺寸,而衍射面的大小、抽样数、传播距离和波长都是已知的。
前面已经提到,无论是基尔霍夫还是瑞利-索末菲积分公式均可以表示为式(2-7),将其简化可得到:

其中r是由衍射屏上发出的球面子波传播到观察平面上任意点的距离,表示为:

将衍射积分公式(2-14)变为卷积形式可得:

其中h(x-x0,y-y0)为脉冲响应函数,可表示为:

在傍轴近似条件下,由稳相原理可得:

可见,菲涅尔衍射下的脉冲响应也具有空不变性,于是,式(2-16)可表示为:

所以,菲涅尔衍射积分可以用光场u(x0,y0)与函数的卷积,再乘以函数
来计算。

由于在空域中完成卷积运算需要花费很长时间,所以通常都换到频域完成,因此式(2-20)共经历了三次傅立叶变换,可表示为:

其中,F-1{⋅}代表完成快速傅立叶逆变换。在进行卷积计算时,通常衍射面的大小、抽样数、传播距离和波长都是已知的,也需要确定计算中观察面的尺寸,卷积计算法与离散菲涅尔衍射法不同的是衍射面的大小与传播距离和波长无关。
正如卷积计算法中所述,角谱计算法的衍射积分公式也可简化为式(2-14),且最终可以用式(2-19)表示,推理过程如式(2-14)~式(2-19)所述,将式(2-18)代入可得:

同样,空域中完成卷积计算比较费时,所以选择到频域中完成,假设菲涅尔衍射的传递函数为H(fx,fy),则式(2-22)可分解为两步:

通过傅立叶变换性质,我们可以得到菲涅尔衍射传递函数的解析表达式为:

综合以上各式,可得:

利用角谱理论进行衍射计算时,观察平面的抽样间隔与衍射平面的抽样间隔相等,且前后孔径大小相同。所以角谱算法与卷积算法一样,衍射面的大小也与传播距离和波长无关。
另外,衍射计算中特别要注意欠采样问题,抗欠采样能力越强,说明该衍射算法的适用性越强。因此本文对以上三种算法在同等仿真实验条件下进行抗欠采样能力测试,测试结果发现,随着衍射距离的缩短,离散菲涅尔计算法及卷积计算法均出现了不同程度的欠采样,而角谱计算法依然可以得到很好的结果。如图2-5所示为将衍射距离缩短为d=10mm时,三种算法得到的衍射光强分布图,可以发现角谱计算法依然没有出现欠采样,这说明角谱计算法的抗欠采样能力最强。因此本文将选用角谱计算法进行衍射问题的数值计算。

图2-5 d=10mm时三种算法的衍射光强分布情况