OptiCommPy模拟光同相/正交调制器 文章目录简介实现测试简介同相/正交调制器(In-Phase/Quadrature Modulator, IQM)顾名思义核心光路由I和Q组成二者均为完整的马赫-曾德尔调制器(MZM)分别用于调制同相分量和正交分量。其工作流程为将输入光分为两束分别进入上臂I-MZM和下臂Q-MZM。在Q-MZM的输出端放置一个90° 移相器将Q路的光场相位偏移 90°(π 2 \frac{\pi}{2}2π​)。将 I 路和 Q 路的光场重新合并输出。输入光场E i E_iEi​在经过IQM后其I路输出光场为E I ( t ) E i 2 [ 1 exp ⁡ ( j π u I ( t ) V b I V π ) ] E i cos ⁡ ( π 2 u I ( t ) V b I V π ) exp ⁡ ( j ϕ c , I ) \begin{aligned} E_I(t)\frac{E_i}{2}\left[1\exp\left(j\pi\frac{u_I(t)V_{bI}}{V_\pi}\right)\right]\\ E_i\cos\left(\frac{\pi}{2}\frac{u_I(t)V_{bI}}{V_\pi}\right)\exp(j\phi_{c,I}) \end{aligned}EI​(t)​2Ei​​[1exp(jπVπ​uI​(t)VbI​​)]Ei​cos(2π​Vπ​uI​(t)VbI​​)exp(jϕc,I​)​其中ϕ c , I \phi_{c,I}ϕc,I​为共模相位通常在直接检测中可忽略在相干检测中会被本振光抵消。Q路MZM在经过90°相移器后其输出电场需要乘以相移因子e j π 2 e^{j\frac{\pi}{2}}ej2π​最终得到E Q ( t ) j E i cos ⁡ ( π 2 u Q ( t ) V b Q V π ) E_Q(t)jE_i\cos\left(\frac{\pi}{2}\frac{u_Q(t)V_{bQ}}{V_\pi}\right)EQ​(t)jEi​cos(2π​Vπ​uQ​(t)VbQ​​)总输出光场为E o ( t ) E i [ cos ⁡ ( π 2 u I ( t ) V b I V π ) exp ⁡ ( j ϕ c , I ) j cos ⁡ ( π 2 u Q ( t ) V b Q V π ) ] E_o(t) E_i\left[ \cos\left(\frac{\pi}{2}\frac{u_I(t)V_{bI}}{V_\pi}\right)\exp(j\phi_{c,I}) j\cos\left(\frac{\pi}{2}\frac{u_Q(t)V_{bQ}}{V_\pi}\right) \right]Eo​(t)Ei​[cos(2π​Vπ​uI​(t)VbI​​)exp(jϕc,I​)jcos(2π​Vπ​uQ​(t)VbQ​​)]实现OptiCommPy提供了IQM模型函数函数签名为optic.models.devices.iqm(Ei,u,paramNone)其中Ei和u分别是输入光场和电压与公式中的值一一对应。param为OptiCommPy内置的参数类其成员包括成员说明默认值单位param.Vpi半波电压2Vparam.VbII-MZM的偏置电压-2Vparam.VbQQ-MZM的偏置电压-2Vparam.Vphi移相器偏置电压1Vparam.ERII-MZM消光比60dBparam.ERQQ-MZM消光比60dB测试下面生成 QPSK 的复数基带信号经过IQM调制器之后其实部和虚部分布如下代码为fromoptic.models.devicesimportiqmimportnumpyasnpimportmatplotlib.pyplotasplt plt.rcParams[font.sans-serif]Times New RomanEi1.00j# 生成 QPSK 的复数基带信号 (4个星座点)symbolsnp.array([11j,1-1j,-11j,-1-1j])# 为了画图好看每个符号重复 100 次u_signalnp.repeat(symbols,100)Eoiqm(Ei,u_signal)fig,axplt.subplots(figsize(6,6))# 提取输出光场的实部和虚部Eo_Inp.real(Eo)Eo_Qnp.imag(Eo)# 绘制散点图ax.scatter(Eo_I,Eo_Q,s50,cred,alpha0.8,edgecolorsblack)ideal_Inp.real(symbols)ideal_Qnp.imag(symbols)max_valnp.max(np.abs(Eo))ax.scatter(ideal_I*max_val/np.sqrt(2),ideal_Q*max_val/np.sqrt(2),s200,facecolorsnone,edgecolorsblue,linewidths2,labelref position)ax.axhline(0,colorgray,linestyle--,alpha0.5)ax.axvline(0,colorgray,linestyle--,alpha0.5)ax.set_xlabel(Real($E_I$))ax.set_ylabel(Imag($E_Q$))ax.set_aspect(equal,box)ax.grid(True,alpha0.3)ax.legend()plt.tight_layout()plt.show()

相关新闻

最新新闻

数学规划建模实战:从问题抽象到Python求解的完整指南

数学规划建模实战:从问题抽象到Python求解的完整指南

1. 从“规划”到“建模”:数学规划问题的核心定位如果你参加过数学建模竞赛,或者在工作中处理过资源分配、生产调度、路径优化这类问题,那你大概率已经和“数学规划”打过交道了。它不像微分方程那样充满动态美感,也不像统计分析那…

2026/8/21 12:12:54
基于Stable-Baselines3与Gymnasium的强化学习实战:从环境配置到智能体训练

基于Stable-Baselines3与Gymnasium的强化学习实战:从环境配置到智能体训练

在强化学习领域,我们常常面临一个经典困境:为了验证一个新颖的算法思想,是否必须从零开始构建一个复杂的环境模拟器?当看到《ClawGym II:用现有框架训练智能体的新论文》这个标题时,许多研究者和技术实践者…

2026/8/21 12:12:54
Gopeed 点击磁力链接毫无反应?5分钟修复下载唤醒失败的完整自检清单

Gopeed 点击磁力链接毫无反应?5分钟修复下载唤醒失败的完整自检清单

Gopeed 点击磁力链接毫无反应?5分钟修复下载唤醒失败的完整自检清单 【免费下载链接】gopeed A fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter. 项目地址: https://gitcode.com/GitHub…

2026/8/21 12:12:54
强化学习实战:从零搭建DQN训练环境与工程化部署指南

强化学习实战:从零搭建DQN训练环境与工程化部署指南

在实际机器学习项目开发中,强化学习(Reinforcement Learning, RL)因其在决策优化、游戏AI、机器人控制等领域的卓越表现,已成为算法工程师和研究者必须掌握的核心技术之一。然而,从理论到实践,从训练到部署…

2026/8/21 12:12:54
IOL-AI挑战:突破大模型语言推理瓶颈的评测新范式

IOL-AI挑战:突破大模型语言推理瓶颈的评测新范式

如果你关注过最近大模型评测的新闻,可能会发现一个有趣的现象:几乎所有主流评测榜单,从MMLU到HellaSwag,再到GLUE,都越来越“卷”了。模型在这些榜单上的分数不断刷新,但当你真正把模型接入到需要复杂逻辑推…

2026/8/21 12:12:54
OpenAI高管离职潮对AI开发者生态的影响与应对策略

OpenAI高管离职潮对AI开发者生态的影响与应对策略

最近几个月,如果你关注AI领域的新闻,可能会被一个现象刷屏:OpenAI的高管们,正在一个接一个地离开。 从首席科学家Ilya Sutskever,到研究总监Jakub Pachocki,再到安全团队的联合负责人Jan Leike和Daniela A…

2026/8/21 12:07:53