空间光调制器的使用形式多种多样,十分灵活,不同的超快激光加工场景会用到不同的光学系统。利用物镜聚焦加工时,光场的前焦面与后焦面为傅里叶变换的关系,利用空间光调制器在物镜的前焦面加载相位调制信息,即可在后焦面生成所需的光场分布。但通常光路中空间光调制器和物镜间的距离远大于物镜的焦距,因此需要一个系统将经过空间光调制器调制后的光场投影到物镜的前焦面。最常用的系统是4f成像系统,其光路设计为空间光调制器位于第一个透镜的前焦面(相距f),第一个透镜与第二个透镜的距离为2f,像平面位于第二个透镜的后焦面,物平面与像平面正好相距4f。使用4f系统时,通常会在第一个透镜的后焦面添加光阑或者其他滤波装置去除零级衍射光的影响,并且两个透镜的焦距可以不同,这样可以对光斑进行缩放从而满足实际的光路需求。此外4f系统还可以运用于脉冲整形,由于透镜前后焦平面互为傅里叶变换的关系,可以在第一个透镜的前焦平面放置衍射光栅对入射光进行色散,使得各个频率的光分离,然后在第一个透镜的后焦面放置空间光调制器对各个频域的分量的振幅或者相位进行调制,最后在第二个透镜的后焦面放置另一个光栅使得各个频率的分量重新组合,从而实现对超快激光的脉冲整形。当不进行调制的时候,入射脉冲与出射脉冲完全相同,这种系统也被称作零色散4f脉冲整形系统。除4f系统外,在不同场景下还会设计各种不同的光路,这将在后续的应用部分根据不同的运用场景进行更加详细的介绍。
3 全息图的计算
由于物镜前后焦平面的光场复振幅满足傅里叶变换的关系,即物镜后焦面的复振幅是前焦面复振幅的傅里叶变换。在使用空间光调制器进行激光加工时,需要在物镜的后焦面得到加工所需要的光场强度分布,而光场的相位信息通常不会对加工造成影响而被忽略。为了生成所需要的光场强度分布,空间光调制器将对入射的激光光束进行相位调制,这个相位调制的分布图被称为全息图。全息图是通过空间光调制器加载到入射激光上的相位分布图,通过加载不同的全息图,可以生成多光束阵列、二维面光场强度分布、三维体光场强度分布等,满足不同的应用需要。如何生成对应的全息图,人们探索出了多种计算方法,本节将对这些全息图的计算方法进行介绍。
3.1 二维光场全息图生成算法
通过全息图技术可以在焦点处产生所需的二维光场强度分布。此类的算法有多种,其中较为经典的是GS(Gerchberg-Saxton)算法,该算法是由 Gerchberg 和 Saxton 在1972年提出的一种计算全息图的迭代算法,该算法得到的全息图随着迭代次数的增加而向局部最优解进行收敛[19]。后续的很多算法都是由GS算法演变而来。
在GS算法的基础上,新的迭代算法AA(Adaptive-Additive Algorithm)算法被提出[20],AA算法是对GS算法的一种改进,它与传统GS算法的最大区别是:在进行反向快速傅里叶变换之前它的振幅为傅里叶变换得到的振幅与目标光场的振幅按一定比例的相加,其比例系数可以根据实际情况进行调整[22,21]。GSW(Weighted Gerchberg-Saxton)算法也是基于GS算法的一种改进算法[23]。
GSW相较于GS算法的区别在于它在每个像素位置引入了一个权重系数,并且该系数随每次迭代而动态更新。具体而言,新的权重系数是根据上一轮迭代中实际光场强度与目标光场强度的比值,同上一轮的权重系数计算得到,权重系数的引入可以抑制强度高于目标强度的像素点,提升强度低于目标强度的像素点,使得能量分布更为均匀,这在激光并行加工时尤为重要。通过GSW算法得到的全息图,模拟和实验得到的强度分布均一性都能达到GS算法的1.5倍[23]。该算法也可以应用于多阶强度的目标光场全息图生成,只需要分别对每个强度等级单独引入权重系数即可。基于GSW的算法进一步发展,出现了例如DWGS(Doubly Weighted Gerchberg–Saxton)算法,其原理与GSW类似不过对权重函数进行了修改,并且可以补偿探测器的噪声和像差的影响[24]。还有GSW-DIA(Weighted Gerchberg Saxton Double Iterative Algorithm)算法,该算法利用二次迭代,实现了多全息图生成的不同点阵之间,离散的各强度等级保持一致[25]。
在GS的基础上衍生的杨顾算法也是工业中经常使用的一种算法。GS只能局限于幺正变换的系统,而杨顾算法较GS算法增加了一层循环,可以运用于非幺正变换的系统,计算非对称的基于衍射光学的相位分布。并且对初始相位的设定不敏感,有着更加广泛的应用范围[26],此外也可在原杨顾算法的基础上进行改写,如加权杨顾算法[27]。
ORA(Optimal Rotation Angle)算法也是工业上常使用的一种全息图迭代算法,由Bengtsson提出[28]。由于物镜前后焦平面互为傅里叶变换的关系,后焦面任一个位置的复场强可以看作是前焦平面每个位置对这一位置贡献的复场强之和。将前焦面的每一像素点对后焦面的某一像素点复场强的贡献写成一个向量,将这些向量首尾连接起来就可以构成一条链,这条链的模即是这个后焦面像素点光场的振幅。当计算全息图时,改变全息图某一像素点相位的值,相当于对链上某一小段的向量进行了旋转,整条链的模即发生了改变,对应后焦面的光场的振幅随之发生改变。ORA算法通过反复迭代来找到最佳的全息图使得所有链的长度之和最大,即后焦面的光场强度分布变为预设的目标光场强度分布。此外使用矢量德拜衍射理论可以计算得到全息图,实现对不同矢量方向的光场强度分布的调制[29]。另一方面,以上迭代算法往往需要消耗较长的时间,为减少计算时间非迭代的全息图算法也被开发并应用,可以在保证一定全息图质量的同时提高生成效率[31,30] 。
3.2 三维光场全息图生成算法
通过二维的全息图算法可以得到二维的目标光场,结合扫描的方法可以加工得到三维结构,但是如果能直接使用全息图生成的目标三维光场进行加工将进一步提升效率,加工出更加精细的结构,甚至一次加工成型出一些通过扫描无法加工实现的结构。因此,研究三维光场的全息图生成算法有着广泛的应用需求。计算三维光场所需全息图时可以将计算分为两个过程,一个是快速傅里叶变换,对进行了相位调制的入射光进行聚焦得到在后焦面的光场强度分布;另一个是菲涅尔衍射过程,利用菲涅尔衍射积分正向计算聚焦体积内的三维光场强度分布[32]。使用GS算法计算三维光场全息图的方法与二维类似,不同之处就是需要根据菲涅尔衍射计算聚焦体积内沿着轴向不同位置的光场,用目标光场的振幅替换计算得到的光场的振幅,然后再进行反向计算,将得到的每个面对应的复振幅相加,取辐角就可以得到三维光场的全息图[34,33] 。但三维GS算法得到的全息图质量并不是很好,且计算速度较慢,后续很多研究者对其进行了改进。例如,传统GS算法舍弃了反向傅里叶之后的振幅信息,北京大学李焱课题组设计将其保留,在迭代过程中引入振幅调制使得全息图的质量有了很大提升[12]。斯威本科技大学顾敏课题组运用德拜衍射积分以及三维傅里叶变换来得到反向傅里叶变换之后的相位,将其投影到二维平面,实现了三维多焦点阵列全息图的计算[35]。还有研究工作在保持GS算法性能的同时,利用压缩感知的原理进行优化,将利用GS算法计算三维光场的速度提升了一个数量级[36]。