Ansys Zemax | 使用衍射光学器件模拟增强现实 (AR) 系统的出瞳扩展器 (EPE):第 4 部分

附件下载

联系工作人员获取附件

在 OpticStudio 中使用 RCWA 工具为增强现实(AR)系统设置出瞳扩展器(EPE)的示例中,首先解释了k空间中光栅的规划,并详细讨论了设置每个光栅的步骤。

介绍

本文是该四篇文章系列中的最后一篇,展示了如何检查封装图并模拟瞳扩展器系统的图像。此外,我们还讨论了 EPE 系统可能的改进方案及其他需考虑的因素。如需更多详细信息,请查阅系列中其他文章的链接。

如何在 OpticStudio 中使用衍射光学器件模拟增强现实 (AR) 系统的出瞳扩展器 (EPE):第 1 部分

如何在 OpticStudio 中使用衍射光学器件模拟增强现实 (AR) 系统的出瞳扩展器 (EPE):第 2 部分

如何在 OpticStudio 中使用衍射光学器件模拟增强现实 (AR) 系统的出瞳扩展器 (EPE):第 3 部分

获取 MTF 的方法

由于该系统采用非序列模式构建,因此计算 EPE 增强现实(AR)系统的调制传递函数(MTF)存在一定难度。为解决这一问题,我们提供了两种方法:

(1)使用 Detector Rectangle 提供的几何MTF数据直接进行计算;

(2)采用带有 Detector Rectangle 的 Huygens 点扩散函数(PSF)方法,并在外部软件(如MATLAB)中将 PSF 转换为MTF。

接下来的一节将详细介绍这两种方法。

方法 1:几何 MTF

几何MTF的计算过程相对简洁,只需按照以下步骤操作:

1. 打开本系列文章前一部分(即第3部分)中的示例文件:“step5_image_simulation.zar”。

2. 在文件中,忽略并隐藏 Slide 对象。

mceclip0.png

图 1.忽略和隐藏对象。

3. 将 Source DLL 更改为 Source Point 参数,如图 2 所示。

mceclip1.png

图 2.源点的参数值。

4.使用 X 半宽=0.005和 Y 半宽=0.005的参数来缩小最终的检测器图像。

mceclip2.png

5. 在追踪光线之后,我们可以观察到几何点扩散函数(PSF)和调制传递函数(MTF),如图3所示。需要注意的是,图3中的结果并不符合实际情况,因为聚焦点远小于艾里斑。这主要是由于该系统采用了理想的镜头模型(即近轴透镜)来模拟光引擎和人眼系统。然而,即便在用户考虑光引擎部件的实际镜头系统时,对几何 PSF/MTF 的分析仍然可能具有一定的参考价值。

mceclip3.png

图 3.几何 PSF 和 MTF。

制备衍射 PSF/MTF 的计算

在深入探讨如何计算衍射点扩散函数(PSF)/调制传递函数(MTF)之前,我们需要进行两项关键的调整,以确保在非序列模式下能够准确处理光线的相位。基于上一节关于几何 PSF/MTF 的讨论,我们将按照以下步骤进行操作。所有提及的更改均已被保存在名为“step6_calculate_PSF.zar”的文件中,该文件可以联系工作人员获取附件。

用用户定义的衍射 DLL 替换近轴透镜

两个近轴透镜对象被替换为了一个具有用户自定义衍射功能的DLL——“NSC_Paraxial_Lens.dll”所实现的衍射光栅。这个DLL的设计目的是模拟近轴透镜的工作方式,并且能够正确地处理光线的相位信息。在撰写本文时,非序列模式下的内置近轴透镜对象尚无法准确计算输出光线的相位,导致所有相干分析的结果都不准确。这款衍射 DLL 可以应用于任何需要使用近轴透镜并进行相干分析的场合。

在使用“NSC_Paraxial_Lens.dll”时,需要注意以下几点限制:

  • DLL 对 NSC_Paraxial_Lens 两侧材料的折射率有所要求,只能为1.0,或者光线在撞击物体时会终止。但在本例中,由于近轴透镜处于空气中,折射率满足要求,因此这一限制可以根据用户请求进行删除。

  • DLL 假定光线是从 -z 侧入射的。如果从 +z 侧照射到衍射面,光线将终止。为了解决这个问题,第二个衍射光栅对象被绕X轴旋转了180度,以确保光线来自衍射透镜的 -z 侧。这一限制同样可以根据用户请求进行删除。

  • DLL 仅适用于0级传输光,其他级次的光将被忽略。因此,用户应将起始级次和终止级次都设置为0,设置为其他数字将没有意义。这一限制是无法删除的,因为它符合 DLL 的工作原理。

  • DLL 仅适用于已定义的共轭物,即物体和像的距离已知时才能正常工作。这是一个无法消除的限制,因为近轴透镜是一个虚拟且不切实际的组件。因此,建议设计人员在设计成熟时,改用包含像差在内的真实光引擎系统,以评估更真实的条件。

mceclip4.png

图 4.近轴透镜被具有衍射 DLL NSC_Paraxial_Lens.dll的衍射光栅所取代。

使用 User Defined Object + Polygon_grating.dll 重新定义第二个(旋转)光栅

在撰写本文时,我们已修复了一个错误,即原先 Boolean Native/CAD 在处理光线相位方面存在不足。为解决这一问题,我们采用了用户定义的对象(User-Defined Object)来重新构建了第二个格栅,具体使用的是Polygon.dll。该用户定义的对象允许用户直接定义一个多边形板,其顶点坐标可通过对象参数(如p1x、p1y、p2x、p2y等)来指定。相较于使用 Boolean Native/CAD 来制作多边形板,这种方法提供了更高的便利性和灵活性。

mceclip5.png

图 5. 3个对象,布尔原生、凸出和衍射光栅,被用户定义的对象 DLL + Polygon_grating.dll 替换。

检查 RCWA DLL 的版本

为了准确处理光线的相位信息,必须采用在2021年4月18日之后编译的 RCWA DLL。这个 DLL 可以通过 RCWA 可视化工具来访问,该工具位于“Programming”选项卡的“User Extensions”下,具体可参考图6所示。

mceclip6.png

图 6.在 RCWA 可视化工具中检查 RCWA DLL 版本。

用于获取瞳孔函数和惠更斯 PSF 的检测器

如图 7 所示,在 Annulus 对象之后设置了一个检测器,用于检查截短的瞳孔函数以进行分析。

mceclip7.png

图 7 在眼框处层压的四个对象。

mceclip8.png

图 8.截断的瞳孔功能。左侧显示相干辐照度。右侧显示 Coherent Phase。

此外,在计算惠更斯点扩散函数(PSF)时,需将 PSF Wave# 设置为眼图系统检测器的一个非零值。这个数值代表 System Explorer 中设计人员想要评估的光波长的波数,且必须为非零。重要的是,在评估惠更斯 PSF 时,应仅追踪一个波长。同时请注意,此设置通常会导致光线追踪速度变慢,因此仅在需要评估惠更斯PSF时才使用。图10展示了模拟的惠更斯PSF。

mceclip9.png

图 9.将 PSF Wave# 设置为非零值,以便在探测器上评估惠更斯 PSF。PSF Wave# 对应于 System Explorer 中定义的波长。

mceclip10.png

图 10.左图显示了在人眼探测器上计算的惠更斯 PSF。右侧显示了截断前出瞳处的相位分布。

此时,所有用于计算MTF的数据都已准备就绪。以下部分介绍如何通过 PSF 和 pupil 函数获取 MTF。

PSF 的讨论

用户可能会好奇为什么 PSF 会有细微的变动,以及瞳孔功能为何会呈现出一个倾斜阶段,原因在于第二个光栅的周期不够精确。如图11和图12所示,这一微小误差可以通过增加第二个光栅周期的有效数字来消除,确切的数值应为0.27779397次/微米。

mceclip11.png

图 11.将第二个光栅的周期更改为更准确的值,以消除瞳孔函数中的倾斜相位和所得 PSF 中的偏移。

mceclip12.png

图 12.将第二个光栅的周期更改为更准确的值后的仿真结果。

方法 2:通过傅里叶变换将惠更斯 PSF 转换为 MTF

根据给定的 PSF 计算 MTF 很容易。在这里,我们通过 MATLAB 进行了一个演示。

1. 为 MATLAB 生成用于交互式扩展的样板代码。

mceclip13.png

图 13.MATLAB 的交互式扩展样板代码。

2. 返回 OpticStudio 以启用交互式扩展的访问,如图 13 所示。

mceclip14.png

图 14.交互式扩展的开放访问权限。

3. 请打开随附的MATLAB代码并运行它。请注意,此代码专为本文中的示例而设计。若应用于其他系统,用户需在代码的第25行指定用于观察PSF的探测器编号,在第60行设置瞳孔的半直径,并在第61行输入近轴透镜的焦距。

4. 结果如图 14 所示。

mceclip15.png

图 15.在 MATLAB 中计算的 MTF。

结论

本文展示了针对增强现实(AR)系统设计的出瞳扩展器。文中附带了多个示例文件,并对每个文件中的关键设计要点进行了讨论。文章阐述了系统中采用的三个光栅的作用,并讲解了如何检查光束在波导中的传播足迹,以及如何进行此类系统的图像仿真。此外,还探讨了一些优化系统的潜在方法。最后部分,文章讨论了计算点扩散函数(PSF)和调制传递函数(MTF)的多种途径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28879.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CMake学习笔记(一):工程的新建和如何将源文件生成二进制文件

cmake是我们在工作过程中比较常见的一个工具,该系列文章是自己用来学习的笔记。目前只是记录下自己学习cmake的过程中的一些重要的知识点,其是以项目需求为导向并非完整的cmake的学习路线和系统,同样也并非适合所有的人。 1.生成一个可执行文…

libcoap在Ubuntu下的编译(基于CMake)

引言 libcoap 是一个开源的轻量级 C 语言库,用于实现 CoAP(Constrained Application Protocol,受限应用协议)。CoAP 是一种专为资源受限设备设计的轻量级通信协议,适用于物联网(IoT)和嵌入式系…

Docker新手入门(持续更新中)

一、定义 快速构建、运行、管理应用的工具。 Docker可以帮助我们下载应用镜像,创建并运行镜像的容器,从而快速部署应用。 所谓镜像,就是将应用所需的函数库、依赖、配置等应用一起打包得到的。 所谓容器,为每个镜像的应用进程创建…

蓝桥杯C组真题——巧克力

题目如下 思路 代码及解析如下 谢谢观看

SLAM评估工具安装及使用EVO(Ubuntu20.04安装evo)--缺少 onnx 库还有Pandas 版本不兼容解决

介绍一下我的是ubuntu20.04.机载电脑是orinnx,通过源码烧写的系统。 首先打开终端,输入 pip install evo --upgrade --no-binary evo 安装过程中出现如下问题 缺少 onnx 库还有Pandas 版本不兼容, ONNX(Open Neural Network E…

在虚拟机上安装hadoop

在虚拟机上安装 Hadoop 是一个常见的实验环境搭建过程。以下是详细的步骤和注意事项: 前面的课程我们已经准备好了三台虚拟设备球供我们学习大数据技术,今天我们将使用其中的一台设备来运行第一个hadoop 程序。 运行第一个 hadoop程序 要运行 hadoop 程序…

Redis 常见数据类型

官方文档 RedisCommands 1)Redis 的命令有上百个,如果纯靠死记硬背比较困难,但是如果理解 Redis 的一些机制,会发现这些命令有很强的通用性。 2)Redis 不是万金油,有些数据结构和命令必须在特定场景下使用…

VBA信息获取与处理第五节:如何在单个工作表中查找某个给定值

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互…

永磁同步电机无速度算法--改进滑模观测器SMO(边界层法)

一、原理介绍 根据滑模观测器的定义,其切换函数是一个拥有高频切换特性的不连续项,为了进一步减小系统的抖振,将符号函数替换为Sigmoid函数,该函数为一种连续、光滑的切换函数,对抖振有良好的抑制效果,其数…

基于SpringBoot+mybatis+layui就业管理系统设计和实现

基于SpringBootmybatislayui就业管理系统设计和实现 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 &…

​《开源高仿Windows 12网页版:零安装体验未来操作系统界面》​​

📌 大家好,我是智界工具库,致力于分享好用实用且智能的软件以及在JAVA语言开发中遇到的问题,如果本篇文章对你有所帮助请帮我点个小赞小收藏吧,谢谢喲!😘😘😘 博主声…

docker 安装达梦数据库(离线)

docker安装达梦数据库,官网上已经下载不了docker版本的了,下面可通过百度网盘下载 通过网盘分享的文件:dm8_20240715_x86_rh6_rq_single.tar.zip 链接: https://pan.baidu.com/s/1_ejcs_bRLZpICf69mPdK2w?pwdszj9 提取码: szj9 上传到服务…

HTML第三节

一.初识CSS 1.CSS定义 A.内部样式表 B.外部样式表 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&g…

【大模型系列篇】国产开源大模型DeepSeek-V3技术报告解析

DeepSeek-V3技术报告 目录 DeepSeek-V3技术报告 1. 摘要 2. 引言 3. DeepSeek V3 架构 3.1 基础架构 3.1.1. 多头潜在注意力 3.1.2. DeepSeekMoE和无辅助损失的负载均衡 3.2 多令牌预测 4. 基础设施 4.1 计算集群 4.2 训练框架 4.2.1. DualPipe算法与计算通信协同优…

linux的文件系统及文件类型

目录 一、Linux支持的文件系统 二、linux的文件类型 2.1、普通文件 2.2、目录文件 2.3、链接文件 2.4、字符设备文件: 2.5、块设备文件 2.6、套接字文件 2.7、管道文件 三、linux的文件属性 3.1、关于权限部分 四、Linux的文件结构 五、用户主目录 5.1、工作目录…

rabbitmq-amqp事务消息+消费失败重试机制+prefetch限流

1. 安装和配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <arti…

web高可用集群项目(数据库主从同步、文件共享存储、nginx动静分离+负载均衡+高可用)

一、项目环境 二、环境准备 主机名IP地址备注openEuler-1192.168.121.11主负载调度器openEuler-2192.168.121.12副负载调度器openEuler-3192.168.121.13web-1&#xff08;静态&#xff09;openEuler-4192.168.121.14web-2&#xff08;静态&#xff09;openEuler-5192.168.121.…

企业工程项目管理系统源码:Java版源码解析

一、项目概述 鸿鹄工程项目管理系统是基于Spring Cloud、Spring Boot、Mybatis、Vue和ElementUI技术栈&#xff0c;采用前后端分离架构构建的工程管理软件。它旨在应对企业快速发展中的管理挑战&#xff0c;提升工程管理效率&#xff0c;减轻工作负担&#xff0c;加速信息处理…

深度学习五大模型:CNN、Transformer、BERT、RNN、GAN详细解析

卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09; 原理 &#xff1a;CNN主要由卷积层、池化层和全连接层组成。卷积层通过卷积核在输入数据上进行卷积运算&#xff0c;提取局部特征&#xff1b;池化层则对特征图进行下采样&#xff0c;降低特征维度&…

vtk 3D坐标标尺应用 3D 刻度尺

2d刻度尺 : vtk 2D 刻度尺 2D 比例尺-CSDN博客 简介&#xff1a; 3D 刻度尺&#xff0c;也是常用功能&#xff0c;功能强大 3D 刻度尺 CubeAxesActor vtkCubeAxes调整坐标轴的刻度、原点和显示效果&#xff0c;包括关闭小标尺、固定坐标轴原点&#xff0c;以及设置FlyMode模…