尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

基于SOA的XGM波长变换器OptiSystem仿真实战

基于SOA的XGM波长变换器OptiSystem仿真实战 做光通信仿真的朋友对OptiSystem这个软件应该不陌生。它几乎是光传输系统仿真里的标配工具不管是做科研还是工程项目预研都能用它在真正花钱买器件之前先把方案在“虚拟机架”上跑一遍。今天我想聊一个挺经典但也挺容易被忽略的应用场景就是基于SOA半导体光放大器的XGM波长变换器。为什么要聊这个因为在实际工程里波长变换是波分复用WDM网络里绕不开的一环。比如某个节点需要把一路信号从一个波长搬移到另一个波长用于路由调度或者避免波长阻塞。虽然现在相干传输技术已经大量使用电层调度但全光波长变换在很多场景下依然是低时延、高透明度的首选方案。而在各种实现方式里SOA的XGM交叉增益调制结构简单、成本低、响应速度也够快是入门全光波长变换最合适的一条路径。这篇内容我打算直接用我做仿真时的实际思路来写把整个链路怎么搭、参数怎么填、容易踩的坑在哪里一步步说清楚。不管你是刚开始用OptiSystem做光通信仿真还是已经在做SOA相关研究想看看XGM方案到底怎么落地这篇文章应该都能给你一些参考。1. 为什么用SOA做XGM波长变换核心原理与方案选型1.1 从“波长变换”需求说起先简单梳理一下波长变换这件事本身。一个标准的强度调制光信号波形上携带了比特信息波长是固定的比如1550.12nm。现在我们需要把它变成另一个波长比如1553.33nm但信息内容不能丢。最容易想到的办法是先把光信号变成电信号然后在电域里重新调制一个激光器输出新的波长。这叫“光-电-光”变换OEO优点是技术成熟、再生效果好缺点也很明显——设备贵、功耗大、时延高而且对调制格式不透明。全光波长变换就是要省掉中间的电域处理直接在光域里完成波长的搬移。SOA的XGM机制就是其中一种实现方式它的基本思路是让携带数据的信号光泵浦光和需要被“印上”数据的连续光探测光同时进入SOA利用SOA增益饱和效应把泵浦光的强度变化“复制”到探测光上。听起来很绕其实原理落在一个很朴素的物理过程上。1.2 XGM的物理机制载流子消耗与增益饱和要理解XGM必须先理解SOA是怎么工作的。SOA本质上是一个没有反馈腔的半导体激光器结构有源区里的载流子电子和空穴通过注入电流来补充。当光信号通过有源区时会发生受激辐射光子数量增加也就是光被放大了。这里的关键在于增益饱和。SOA的增益不是无限的它取决于有源区里的载流子浓度。当入射光功率变大时受激辐射消耗的载流子就变多载流子浓度下降增益随之下降。这就像一家餐厅每桌客人都需要服务员服务如果同时来的客人太多服务员就不够用了服务质量增益自然会下滑。那么在XGM实验里泵浦光是强度调制信号它的“1”码对应高功率“0”码对应低功率。探测光是连续光没有信息功率一般调得比泵浦光低一些。两束光同时进SOA后当泵浦光是“1”时SOA内部载流子被大量消耗增益很低探测光通过时只能得到很少的放大输出功率低当泵浦光是“0”时SOA增益恢复得比较高探测光通过时获得较大放大输出功率高。结果就是探测光的输出功率变化恰好和泵浦光的信号相反。也就是说XGM是一个反相变换输出信号的逻辑是输入信号取反后的结果。如果在系统里不关心信号的绝对极性比如后面接的是差分接收或者协议层做了编码这个反相问题不大但如果接收端只看幅度就需要在链路里加一个反相器或者从设计上考虑用双端输出来补偿。我在做仿真时一般在心里把XGM当成“一个用光功率控制放大器增益的阀门”泵浦光是控制信号探测光是受控对象。这样理解后面看波形时就不容易懵。1.3 为什么不是XPM、FWM方案对比SOA里面能实现波长变换的机制不止XGM还有交叉相位调制XPM和四波混频FWM。那为什么XGM这么常见我直接把三种方案的特点列个表对比一下就很清楚了。技术方案基本原理优点缺点典型应用XGM增益饱和导致的幅度交叉调制结构简单、只用一个SOA、对偏振不敏感、实现成本低输出信号反相、消光比受限、频率响应受载流子恢复时间限制低速 wavelength conversion、入门研究XPM载流子变化导致折射率变化通过干涉仪转换为幅度调制输出为正相、消光比好、支持较高速度需要MZI结构如SOA-MZI、对相位稳定性要求高高速全光波长变换、2R/3R再生FWM非线性效应产生新波长分量调制格式透明、支持多波长同时变换转换效率低、依赖波长匹配、对偏振敏感超高速信号处理、全光采样这个表格并不是说XGM最好而是在特定场景下XGM最务实。一个SOA模块就能搞定不需要复杂的干涉仪结构对偏振态的依赖也弱。对于初学者来说用XGM理解“全光波长变换”的核心逻辑是最合适的因为它把非线性效应这件事剥到了最简单的层面。1.4 OptiSystem里的建模思路在OptiSystem里搭XGM波长变换链路本质上是把上面这三个核心模块用图形化方式连起来泵浦光发射机生成强度调制的原始信号探测光光源输出连续光波长为目标波长SOA模块两束光合路后进入SOA完成交叉增益调制光滤波器滤出目标波长滤掉泵浦光的残留接收端光电探测、滤波、眼图分析。整个链路看起来不复杂但每一步都有细节。比如两路光的功率设置SOA本身参数怎么填滤波器带宽选多少会直接决定你最后得到的波形好不好看。我在实际仿真的过程中踩过的坑真不算少后面我会把这些经验单独拿出来讲。2. 仿真模型核心参数与设置细节容易翻车的几个点2.1 先从关键指标说起仿真不是把图连上就行你得知道自己关心的指标是什么。对于XGM波长变换器我最关注这几个变换后信号的消光比Extinction RatioER也就是输出“1”码功率和“0”码功率的比值。ER越高接收端判决越容易BER越低。XGM方案的ER通常在8~12dB之间这比原始调制信号往往要差一些。信号反相程度看输出波形是不是和输入逻辑相反避免在后续分析时误判。转换后的信噪比OSNR/SNR因为SOA掺入的ASE噪声会影响信号质量尤其是信号功率比较低的时候噪声占比会明显升高。支持的最高速率SOA载流子恢复时间是核心瓶颈通常上百ps量级所以XGM比较适合10Gbps以下的系统再高的话眼图会明显恶化。我建议大家在仿真之前先把这几个指标写在一张草稿纸上每调一轮参数就看一眼这样心里有数不会调着调着就忘了自己在干什么。2.2 SOA参数怎么填才靠谱OptiSystem的SOA模型参数很多打开元件属性对话框密密麻麻一排。实际上真正影响XGM仿真结果的并没有那么多我把重点参数整理成下面这张表给出了我常用的推荐值参数名称推荐值/范围说明Length0.5~1 mm器件长度越长增益积累越多但载流子恢复时间也会变长。Optical confinement factor0.3~0.5限制因子越高光场与有源区重叠越多增益效率越高。Active area cross-section通常默认即可影响饱和功率可配合饱和输出功率一起调。Injection current0.15~0.3 A电流越大增益越高但ASE噪声也更大。Carrier lifetime100~300 ps这是XGM能跑多快的决定性参数越小恢复越快。Linewidth enhancement factor3~8XGM方案对线宽增强因子不敏感保持默认即可。Initial carrier density和透明载流子密度相关不要设太低否则初始增益不足。Differential gain2~5e-20 m^2影响增益对载流子浓度变化的敏感度。我在设置时有一个习惯先按厂商商用SOA的数据手册来找不到具体参数就直接用软件默认值然后把Injection current和Carrier lifetime作为主要调参对象。这个思路很朴素因为XGM的工作点主要由“增益恢复速度”和“增益饱和深度”两者共同决定前者和载流子寿命强相关后者和注入电流、信号功率强相关。如果你用的SOA模块是全参数模型注意不要开“Enable gain saturation”这类参数时忽略了饱和输出功率。XGM必须让SOA进入饱和状态才能形成明显的增益调制。饱和深度不够输出的信号包络就不明显看起来就像没变换一样。2.3 泵浦光与探测光功率配比这一节直接决定XGM能不能“工作起来”。我在第一次做仿真的时候就是因为泵浦光和探测光的功率配比没调好怎么看输出波形都不对后来才意识到是探测光太强把SOA“撑”在饱和区深度不够了。给出一个实际能用的经验值泵浦光平均功率设在-5~0 dBm探测光功率设在-15~-10 dBm。两路光功率差一般控制在10 dB左右这样泵浦光能够明显控制SOA增益而探测光本身不会过分消耗载流子。如果泵浦光功率太弱它引起的载流子消耗变化太小XGM效应不明显输出信号包络几乎看不到。如果泵浦光太强一方面SOA进入深饱和输出波形可能会被压缩另一方面ASE噪声也跟着变大信号质量反而下降。探测光的逻辑刚好相反太强会自己把增益压低导致“1”码和“0”码的增益差别变小太弱则输出信号绝对功率太低后面接收端分析眼图时不太方便。总的原则是探测光保持比泵浦光平均功率低10 dB左右然后再根据眼图微调。2.4 滤波器和接收端的选择SOA输出端的光滤波器是用来滤出目标波长的也就是探测光的波长。因为SOA内部放大的不只是探测光泵浦光的透射和ASE噪声也会掺在输出里如果没有带通滤波器接收端光电探测器会把所有波长都检测到信息就会混在一起。滤波器带宽的选择要平衡两点太窄会滤掉信号频谱边带导致波形变钝太宽又放进来太多噪声和泵浦光残留。对于10Gbps以下的NRZ信号0.4~0.8 nm的带宽比较合适。我一般先用高斯型滤波器3 dB带宽设0.5 nm左右然后再根据眼图微调。接收端就比较常规了PIN光电探测器、低通滤波器带宽设为信号速率0.75倍左右和BER分析仪。这里要注意的是检测到的信号是反相的眼图和输入信号看起来是互补的所以BER分析仪里的“Decision threshold”可能需要手动调整。后面我会专门讲这个问题。3. OptiSystem实操搭建从空工程到跑出结果3.1 搭建发射端信号源部分打开OptiSystem新建一个工程设置全局参数为全局时间窗Sequence length、采样率和比特率。我用的典型配置是Bit rate 10 Gbps Sequence length 128 bits Samples per bit 64 Number of samples 8192这个配置下每个比特周期有64个采样点观察眼图时足够平滑。如果你的机器性能一般建议Sequence length降到64或者Samples per bit降到32否则仿真时间会明显拉长。发射端分为泵浦光和探测光两部分。泵浦光发射机我从光发射机库Transmitters Library里拖一个“CW Laser”再接一个“Mach-Zehnder Modulator”用“Pseudo-Random Bit Sequence Generator”PRBS接“NRZ Pulse Generator”来驱动调制器。CW Laser的参数Frequency 193.1 THz约1552.52 nm这里作为原始波长 Power 0 dBm Linewidth 10 MHzPRBS设置Rate为10 Gb/s级数Order选2^7-1。NRZ Pulse Generator的“Rise time”设为0.05 bit这样边沿不会太陡导致仿真里出现高频分量问题。这里有一个细节Mach-Zehnder Modulator的“Extinction ratio”参数默认值通常在30 dB以上这个不用动保持高消光比可以让原始信号质量足够好后面分析XGM性能时不会把信号源的问题和新引入的问题混在一起。3.2 探测光与合路设计探测光直接用另一个CW Laser频率设置为目标波长。在这里我选的探测光频率为193.4 THz约1550.12 nm和泵浦光波长间隔大约2.4 nm。这个间隔不算大但足以让光滤波器区分开。为什么选2.4 nm的间隔从工程角度看波长间隔太小的话滤波器很难干净地滤出探测光间隔太大的话SOA的增益谱平坦度可能带来影响——虽然SOA增益谱比较宽但极端条件下不同波长增益差别会变大。在OptiSystem里探测器前的滤波器带宽只有0.5 nm2.4 nm间隔是足够分开的。合路部分用“Optical Combiner”2x1耦合器。这里注意如果直接用Y分支耦合器两路光会有一半能量损失到另外一个端口所以合路后的光功率会比输入各减3dB左右。这个损耗是物理上不可避免的后面分析功率时要心里有数。在合路器后面我习惯加一个光功率计确认两路光合路之后的实际功率是否在预期范围内。这个小动作看似多余实际上能在出现问题的时候帮你快速定位是前端的问题还是SOA后端的问题。3.3 SOA连接与测试仪器布局把“Semiconductor Optical Amplifier”模块拖到画布上默认参数先跑一下然后把Injection current改为0.2 ACarrier lifetime调到200 ps左右。合路器输出接入SOA的输入端口。SOA输出端接“Optical Spectrum Analyzer”OSA和“Optical Filter”。OSA放这里是用来观察SOA输出光谱的XGM变换是否成功看光谱最直观如果你能看到探测光波长处有明显的信号边带同时泵浦光波长的功率被压缩就说明调制复制到了探测光上。光滤波器选“Gaussian Optical Filter”中心频率设193.4 THz、带宽0.5 nm。滤波器输出接PIN光电探测器后面再接低通滤波器比如“Low Pass Bessel Filter”带宽7.5 GHz和“BER Analyzer”。之所以用Bessel滤波是它在通带内群时延更平坦对波形失真小。3.4 运行与结果判读一切连好之后双击运行按钮。仿真结束后我一般按照这个顺序看结果打开OSA看光谱确认探测光波长处有信号边带打开SOA输出端的时间波形确认反相信号包络存在打开BER Analyzer看眼图确认眼图张开度、消光比和Q值。这里有一个重要提醒因为XGM输出信号是反相的你在光示波器里看到的波形和发射端的NRZ波形是互补的。如果你发现波形和输入信号一模一样那大概率是看错了端口或者是滤波器的波长设置反了滤出来的还是泵浦光。下面是我常用的一组完整参数参考表直接用这套参数起手大概率不会跑偏参数项推荐取值比特率10 Gb/s序列长度128 bits采样率64 samples/bit泵浦光波长/频率1552.52 nm / 193.1 THz泵浦光平均功率-1 dBm探测光波长/频率1550.12 nm / 193.4 THz探测光功率-12 dBmSOA注入电流0.2 ASOA载流子寿命200 psSOA长度0.5 mm光滤波器中心频率193.4 THz光滤波器带宽0.5 nmPIN响应度1 A/W电低通滤波器带宽7.5 GHz4. 实测常见问题与排查技巧每次仿真都会有的坑4.1 输出波形看不出包络变化这是我在第一次做XGM仿真时遇到的最大问题。合路光进SOA出端接示波器结果发现输出波形基本上就是一条直线或者波形很弱隐约能看到一点起伏但完全不具备“变换器”该有的样子。排查思路从三方面走第一看泵浦光功率是不是太低了导致SOA增益未被明显调制。我用光功率计在SOA输入端测合路功率发现泵浦光经过调制器、合路器后实际只剩-8 dBm左右比预期低了不少。第二看SOA是否工作在深度饱和区。第三看滤波器中心波长是否对准了探测光。解决方法是把CW Laser发射功率从0 dBm提高到5 dBm同时降低探测光功率到-15 dBm让泵浦光和探测光的功率差更大。这一改波形立刻就有了明显的包络变化。所以我的经验是如果XGM变换不明显优先调整的就是两路光的功率配比而不是SOA参数。4.2 输出信号极性反了这个严格来说不算“问题”而是XGM的固有特性。但如果你接下来要把变换后的信号送到BER分析仪或者级联到后级系统极性反了就会导致判决结果完全不同。在OptiSystem里处理反相有两个办法。一个是在接收端使用“Electrical Gain”模块增益设为-1把信号再反相一次。另一个是在BER Analyzer里手动调整“Decision threshold”把它从默认值附近改到更低的区域。因为反相信号里“1”码对应低功率“0”码对应高功率阈值必须低于信号的中间电平才能正确恢复逻辑。我自己倾向于在仿真链路里加一个反相器这样整个链路看起来更接近真实系统里用差分放大器来恢复信号的场景后面再接BER分析仪就不用担心极性问题了。4.3 眼图质量差消光比上不去XGM方案本身消光比就不算高如果眼图张不开、交叉点太高通常有这几个原因泵浦光消光比不够导致对SOA增益的调制深度不足。先看发射端NRZ信号消光比是否正常。SOA饱和深度不够。可以适当提高注入电流或者增大泵浦光功率以加深饱和。滤波器带宽太大ASE噪声和泵浦光残留混了进来。我做过对比0.5 nm和0.8 nm带宽下的眼图噪声差距挺明显。载流子寿命太长脉冲响应的“拖尾”导致码间干扰。把Carrier lifetime从300 ps调到150 ps眼图张开度会明显改善。一个需要现场微调的技巧是关注眼图的“1”电平位置。XGM输出的“1”码对应探测光在泵浦光“0”时刻的增益这个电平应该平直稳定如果出现上扬或者下倾多半是载流子恢复过程中的过冲效应说明泵浦光间隔太近SOA还没来得及完全恢复就进入了下一个脉冲。这种情况降低比特率或者缩短载流子寿命能缓解。4.4 BER分析仪结果异常有时波形、光谱都正常但BER Analyzer显示很多误码。我的经验是先检查接收端低通滤波器带宽如果设置得太宽高频噪声全进来了眼图上的噪声毛刺很严重如果太窄信号边沿被削掉眼图张开度反而变小。对于10 Gb/s的NRZ7.5 GHz常作为起点然后再微调。另一个更隐蔽的问题是采样相位的设置。BER Analyzer里“Decision instant”和“Decision threshold”需要和信号对齐。由于整个链路里合路器、滤波器、光电探测器和电滤波器都会引入时延如果直接用默认的采样点可能正好采在比特周期的边界上误码多到根本没法看。我的做法是先打开眼图观察“眼睛”张开的最大水平位置再把Decision instant设到那个位置。还有一次我遇到BER异常查了半天发现是PIN光电探测器的“Responsivity”不小心设成了0.0001输出电功率和噪声功率的比例完全不对。这类低级错误最容易被忽略因为元件参数默认有时候会被上次实验残留的配置覆盖所以每次新开工程时养成“恢复默认参数再修改”的习惯很重要。5. 几个值得一试的进阶思路让XGM仿真更贴近实战如果上面的基础链路已经跑通了你可以继续往下扩展。我觉得有几件事对整个系统的理解帮助特别大。一个是观察不同波长间隔下的变换效果。把探测光频率从193.4 THz改成193.0 THz、192.8 THz再看SOA输出光谱中探测光边带的强度和消光比。这个过程会让你直观理解SOA增益谱的波长相关性对实际器件的选型很有参考价值。另一个是把单路信号变成两路信号合路进入SOA观察XGM的串扰。这是WDM系统里真实会发生的情况一路信号会在SOA里压缩其他波长的增益如果多路信号同时通过相互之间的串扰会让眼图明显变差。仿真里用两个不同波长的泵浦光加一个探测光就能把这个现象复现出来。还有一个方向是加一个环回结构或者把输出信号再次注入另一个SOA做级联模拟多节点波长变换的场景。级联之后你会发现每经过一级变换消光比和信噪比都在下降这和文献里说的“噪声累积”完全对应。真正理解了这个过程你就会知道为什么全光网络里波长变换器不能无限级联使用。我个人在实际操作中还有一个体会做SOA仿真不要一开始就直接上BER分析仪先看光谱、再看波形、最后看眼图和误码顺序不要乱了。很多时候输出波形已经告诉了你问题在哪你却还在BER Analyzer的参数里打转那是最浪费时间的事情。先把每一步的物理图像建立起来再谈优化。最后分享一个小习惯每次修改任何参数之前我都会先在SOA输出端放一个OSA把光谱截图存下来。这样当后边结果变差时我可以翻出之前的光谱对比快速定位是哪一步改动引起了变化。看起来很简单但真的能帮你省下大量排查时间。
返回列表