当前位置: 首页 > news >正文

FDTD_梯度波导学习(1)

项目6.1 阶跃折射率型和渐变折射率型光纤(FDE)

本主题将阶跃折射率和渐变折射率光纤的解析解与 FDE 求解器模拟的结果进行了比较。

模拟设置

上图展示了阶跃折射率(左)和渐变折射率(右)光纤的几何形状和折射率分布。

阶跃折射率光纤在 1.55 微米波长下进行了测试,而渐变折射率光纤在 1 微米波长下进行了测试。阶跃折射率光纤是通过两个重叠的二氧化硅(折射率 n=1.4)圆结构和折射率 n=1.44 的电介质结构创建的。渐变折射率光纤是通过一个折射率由方程 sqrt(4*(1-(x^2+y^2)/40^2)) 给出的圆结构创建的。

结果

分析解

 对于阶跃折射率光纤中的 TM 模式,其分析解可通过 MATLAB 脚本 step_index_fiber.m 计算得出;或者您也可以下载包含计算结果的文本文件 step_index_fiber.txt。在渐变折射率光纤中,TE 模式的有效折射率的分析解由以下表达式给出:

其中:

这些分析结果将在下一节用于验证 FDE 计算。

阶跃折射率光纤

脚本 step_index_fiber.lsf 计算 TM01、TM02 和 TM03 模式的有效折射率,并绘制相对于分析结果的误差,作为网格点数的函数。文件 step_index_fiber.ldf 包含先前计算并保存在 d-cards 中的这些模式,这些模式由脚本导入,并使用 bestoverlap 函数识别所需的模式。该脚本还允许您运行有效折射率的分析计算,并使用 Matlab 生成误差图。要启动 Matlab 计算(必须启用 Matlab 集成),应将标志“use_matlab”设置为 1。以下结果是使用“共形变体 1”进行网格细化选项计算得出的(在脚本中设置 conformal_mesh_on=1)。由于阶梯效应,不使用共形网格时结果的准确性会降低。

左)在波长为 1.55 微米时,阶跃折射率光纤的 TM 模式下 MODE 计算误差的大小与解析结果的对比。x 轴表示计算区域每边的网格点数。(右)仅使用内置的 MODE 函数(无 Matlab 接口)生成的相同图形。

渐变折射率光纤

脚本graded_index_fiber.lsf计算TE01和TE11模式的有效折射率,并绘制相应的误差与分析结果的函数关系图,作为网格点数量的函数。文件graded_index_fiber.ldf包含这些先前计算并在d卡中保存的模式,该脚本导入它们并用函数bestoverlap识别所需的模式。该脚本还探索了TE01模式的色散特性和相关误差。

与之前一样,您可以使用Matlab生成散布图和误差图。要将“use_matlab”标志设置为1以启动Matlab计算(必须启用Matlab集成)

在这种情况下,共形网格对结果的准确性没有显著影响,因为光纤中的索引变化平滑,而不是阶跃索引光纤中的突然变化。下面的结果是使用“共形变体1”选项计算得出的。

(左图) 模式计算的误差幅度与梯度指数光纤TE模式的解析结果比较,操作波长为1微米。x轴表示计算区域每边的网格点数。(右图)仅使用内置MODE函数生成的相同图形(无Matlab接口)。

(左)使用MODE(o)计算的渐变指数光纤中TE01模式的分散与解析解(实线)的比较。此计算中使用了每边80个网格点。(右)仅使用内置MODE函数生成的相同图(无Matlab接口)。

(左)渐变折射率光纤 TE01 模式色散的 MODE 计算误差大小,与解析结果相比。此计算每边使用了 80 个网格点。(右)仅使用内置 MODE 函数(无 Matlab 接口)生成的相同图形。

注意:详细色散设置对色散精度的影响

在频率扫描中禁用了详细色散选项,以计算渐变折射率光纤中 TE01 模式的色散。在这种情况下,频率采样足够精细,能够获得色散的准确结果。实际上,启用详细色散并采用默认的分数波长偏移(0.0001)会导致色散误差增大。其原因在于,在 1 至 1.5 微米的波长范围内,有效折射率的变化非常小,如下图所示。

因此,如果用于计算有效折射率导数的频率步长过小,有效折射率的变化可能会与有效折射率计算的精度相当,从而导致导数计算中的数值误差。

http://www.xdnf.cn/news/1417411.html

相关文章:

  • HOW - 前端团队产出评定方案参考
  • 携程旅行 web 验证码 分析
  • JavaEE 进阶第一期:开启前端入门之旅(上)
  • GitLab 18.3 正式发布,更新多项 DevOps、CI/CD 功能【二】
  • 餐饮门店的小程序怎么做?如何开发餐饮店下单小程序?
  • C++11模板优化大揭秘:让你的代码更简洁、更安全、更高效
  • CICD实战(2) - 使用Arbess+GitLab+SonarQube实现Java项目快速扫描/构建/部署
  • 简单实现Ai音乐suno-api
  • TCP粘包
  • 考研复习-计算机网络-第一章-计算机网络概述
  • keil MDK如何使用第三方软件Keil2Json.exe生成compile_commands.json文件,方便vscode+clangd环境使用
  • 深度解析条件编译:#ifdef与#ifndef的本质区别与应用实践
  • [Android] 京墨 v1.15.2 —— 古诗词文、汉语字典、黄历等查询阅读学习宝典(可离线)
  • MTK-Android13-实现拷贝预置资源到vendor分区下
  • Scikit-learn Python机器学习 - 字典特征提取-DictVectorizer
  • 电脑没加域却能获取到IP地址
  • 基于单片机宠物项圈/宠物防丢失设计
  • 关于命名参数占位符的分析(主要以PHP为例)
  • 设计支持多代WiFi协议的DCF信道访问控制Verilog模块:技术挑战与实现策略
  • Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
  • c# winform 拼图游戏
  • 预处理——嵌入式学习笔记
  • leetcode 1576 替换所有的问号
  • Linux 定时任务 crontab 完全指南 —— 让服务器自动干活,解放双手
  • Kubernetes集群升级与etcd备份恢复指南
  • 《IC验证必看|随机稳定性 / 再现性》
  • 今日分享:C++ -- vector
  • Python备份实战专栏第4/6篇:Vue.js + Flask 打造企业级备份监控面板
  • line-height属性详解
  • Kafka消息中间件安装配置