如何制作衍射光学元件(含开源代码)

[复制链接]
万胜 发表于 2023-3-22 07:31:50 | 显示全部楼层 |阅读模式
一、简介

衍射光学元件(Diffractive Optical Element,简称DOE)是一种基于光波衍射理论,利用计算机辅助设计,采用超大规模集成电路制造工艺在基片上或传统光学器件表面刻蚀出台阶或连续浮雕结构而形成的光学元件【1,2】。通过对入射光场进行调制(一般是相位调制),在远场成像面上能得到任意强度分布的光场。它们的用途非常之广,小到我们小时候顶个“帽子”激光一照就出各种图案的玩具激光笔(那个“帽子”就是个DOE),大到光刻机里面用来做光束整形的高精度DOE【3】,还有我们平时街头看见的一些激光投影的标志、夜店里的满天星灯效、等等,可以说已经漫延到我们生活的方方面面。

如何制作衍射光学元件(含开源代码)-1.jpg

衍射光学元件原理和用途

二、理论

根据衍射光学理论,对于如下分布相位面 x_0 ,其经过波长 \lambda 光照射后的场 F_0 ,在成像面 x_1 上所成像 F_1 ,可见F_0和F_1 互为傅里叶变换。

如何制作衍射光学元件(含开源代码)-2.jpg

标量衍射理论示意图

对于上图而言,一般“目标光场分布”是我们要得到的,是一个给定的分布,比如任意给个图?“光源强度分布”也是已知的,一般可以取作均匀分布,更为精密的操作可能就要考虑实际光源的具体分布,比如高斯分布。那么,我们所需要做的就说去得到“设计的相位分布”。那么如何做到呢?
三、设计

要获取上面所述“设计的相位分布”可以通过GS 算法(Gerchberg–Saxton algorithm)【4】得到,如下图所示:

如何制作衍射光学元件(含开源代码)-3.jpg

GS 算法(Gerchberg–Saxton algorithm):一种相位复现算法

1、对于目标场强输入,赋予其一个初始的随机相位;
2、经过一次逆傅里叶变换,得到“相位面”上的光场分布,包含相位 \varphi 和强度 I 两方面信息;
3、将2中所得相位信息 \varphi 与光源强度分布组合;
4、再傅里叶变换回“成像面”;
5、将4中所得相位信息 \varphi 与目标场强分布组合,迭代上述过程。
一般来说迭代数十次就能取得比较好的设计效果了,下面我们实操一下。
首先我们随便画一幅图吧:

如何制作衍射光学元件(含开源代码)-4.jpg

最终设计结果和迭代次数关系见下GIF图:

如何制作衍射光学元件(含开源代码)-5.jpg

GS算法1~101次迭代的设计效果

四、实验

那么如何制备个DOE元件呢?即如何制备如上面所讲的一个具有相位分布的的片子呢?
方法有很多,诸如近些年来比较热门的Meta-surface(resonance phase/berry phase),它能在亚波长尺度内产生足够大相位分布( 0 \sim2\pi ),因而对一些器件诸如光学透镜的轻量化意义很大。

如何制作衍射光学元件(含开源代码)-6.jpg

基于Metasurface的消色差透镜【5】

我这里采用的是比较简单成熟的一种方式,即通过一个片子上不同深浅来得到传播相位变化。正好前段时间负责验收一台有灰阶直写能力的设备,也作为验收测试来看一下效果如何。具体做法:先在个玻璃片上旋涂一层光刻胶,再利用直写设备曝光,然后显影留下不同深浅分布的胶残余。

如何制作衍射光学元件(含开源代码)-7.jpg
设备很靠谱,调节不同参数尝试数次后顺利得到了设计的效果。

如何制作衍射光学元件(含开源代码)-8.jpg
哈哈哈果然还是要相信科学呀~

如何制作衍射光学元件(含开源代码)-9.jpg
【1】何为DOE?衍射光学元件(Diffractive Optical Element)
【2】http://www.rayscience.com/product-13219.html
【3】Fabrication of Micro-Optics Elements with Arbitrary Surface Profiles Based on One-Step Maskless Grayscale Lithography
【4】Gerchberg–Saxton algorithm
【5】Broadband achromatic optical metasurface devices. Nat. Commun. 8, 187 (2017).

<hr/>2022-04-20更新,添加了开源代码见:https://github.com/KoalaTsien/GUI__DesignDOE (Github可能需要科学上网)。我将之做成了图形化设计界面,并包含示例图片设计,效果如下:

如何制作衍射光学元件(含开源代码)-10.jpg
回复

使用道具 举报

全部回复21 显示全部楼层
纵横捭阖804 发表于 2023-3-22 07:32:04 | 显示全部楼层
floor这一步是干什么的?

点评

博主您好,想问一下可以设置光源的属性吗,我想把光源换成高斯光该怎么操作呢  详情 回复 发表于 2024-9-10 15:34
回复 支持 反对

使用道具 举报

鬼子进了村部 发表于 2023-3-22 07:32:27 | 显示全部楼层
MATLAB里的取整函数
回复 支持 反对

使用道具 举报

啤酒瓶空了缓 发表于 2023-3-22 07:32:57 | 显示全部楼层
可惜中间的亮点消除不了
回复 支持 反对

使用道具 举报

成哥337 发表于 2023-3-22 07:33:35 | 显示全部楼层
可以的
回复 支持 反对

使用道具 举报

小雨粑粑2012 发表于 2023-3-22 07:33:55 | 显示全部楼层
0级光也可以消除
回复 支持 反对

使用道具 举报

123457021 发表于 2023-3-22 07:34:18 | 显示全部楼层
只存在理论上 实际中从来没见过
回复 支持 反对

使用道具 举报

六月清晨搅 发表于 2023-3-22 07:34:23 | 显示全部楼层
这个灰阶直写的精度和速度怎么样啊?
回复 支持 反对

使用道具 举报

勇敢的树袋熊1 发表于 2023-3-22 07:35:02 | 显示全部楼层
有很多种方法可以消除,比如加载一个闪耀光栅
回复 支持 反对

使用道具 举报

小雨粑粑2012 发表于 2023-3-22 07:35:56 | 显示全部楼层
0级光消除现在在工艺上还是有难度。啥时候真做的均匀性高,利用率高就真的可以为所欲为了。
回复 支持 反对

使用道具 举报

123下一页
发帖

快速回帖

您需要登录后才可以回帖 登录 | 立即注册 手机动态码快速登录

本版积分规则

关于楼主

新手上路
  • 主题

    2
  • 回答

    2
  • 积分

    2
联系客服 关注微信 访问手机版 返回顶部 返回列表