《阵列波导光栅从仿真到测试的完整闭环》

第3章 AWG数学建模:光栅方程推导、阵列波导长度差计算、聚焦条件与罗兰圆

3、AWG数学建模:光栅方程推导、阵列波导长度差计算、聚焦条件与罗兰圆

说实话,AWG 最核心的数学骨架就三样东西:光栅方程、波导长度差、还有罗兰圆聚焦条件。当年我第一次流片 AWG 时,就是因为在罗兰圆参数上偷了个懒,结果光谱串扰直接炸了…… 后来我养成了一个习惯:数学建模阶段多花两小时,测试阶段能省两周。咱们这一章就把这三块彻底吃透。

AWG 数学建模 光栅方程 nₛ·d·sinθ + nₑ·ΔL = mλ 阵列波导长度差 ΔL = m·λ₀ / nₑ 罗兰圆 & 聚焦条件 R = 2·f (凹面光栅) 三者共同决定 AWG 的通道间距、自由光谱范围(FSR)与聚焦质量 设计闭环:从方程 → 长度差 → 聚焦验证

3.1 光栅方程推导 —— 从干涉到色散

AWG 本质上是一个平面波导版的衍射光栅。光从输入星形耦合器进入阵列波导,每个波导臂引入不同的相位延迟,然后在输出星形耦合器里干涉。

我习惯把光栅方程写成下面这种形式,它直接关联了波长、衍射级次和波导间距:

光栅方程(标准形式)

nₛ · d · sinθᵢ + nₑ · ΔL = m · λ

其中:nₛ — 星形耦合器区有效折射率;d — 阵列波导间距;θᵢ — 第 i 个输出通道的衍射角;nₑ — 阵列波导有效折射率;ΔL — 相邻波导长度差;m — 衍射级次(整数);λ — 工作波长。

推导其实不复杂。你想想看,相邻波导的光程差由两部分组成:一部分来自星形耦合器里的空间光程差 (nₛ·d·sinθ),另一部分来自波导本身的长度差 (nₑ·ΔL)。当这个总光程差等于波长的整数倍时,就形成干涉主极大。这就是 AWG 的色散原理。

我在项目中遇到过,很多人把 nₛ 和 nₑ 混为一谈。实际上星形耦合器是平板波导区,折射率和阵列波导的 nₑ 可能差 0.02~0.05,尤其在厚硅或氮化硅平台。千万别图省事用一个值。

3.2 阵列波导长度差 ΔL 的计算

ΔL 是 AWG 最核心的设计参数。它直接决定了自由光谱范围 (FSR) 和通道间距。计算公式很简单:

ΔL = m · λ₀ / nₑ

其中 λ₀ 是中心波长,m 是衍射级次(通常取 20~100 之间)。我一般先根据需要的 FSR 反推 m:

  • FSR = λ₀ / m (忽略折射率色散时)
  • 如果要求 FSR = 12 nm,λ₀ = 1550 nm,那么 m ≈ 129。但 m 太大波导弯曲损耗会剧增,所以实际常用 m = 40~80。

举个例子,硅基 AWG 在 1550 nm 附近,nₑ ≈ 2.85,取 m = 60,则 ΔL = 60 × 1550 nm / 2.85 ≈ 32.63 μm。这个长度差在版图上要精确到纳米级,不然相位误差会让你怀疑人生。

我曾经因为 ΔL 计算时忘了计入热光系数随波长的变化,导致流片后中心波长偏移了 3.2 nm。后来我在仿真里加了一阶色散修正:ΔL = m·λ₀ / nₑ(λ₀) ,同时用 nₑ 的群折射率 n₉ 代替 nₑ 来算 FSR,精度才上来。

3.3 聚焦条件与罗兰圆

罗兰圆是 AWG 输出星形耦合器的几何基础。说白了,它是一个半径为 R 的圆,阵列波导的出口和输出波导的入口都落在该圆上。这样设计能保证不同波长的光自动聚焦到对应的输出波导。

聚焦条件可以用一个简洁的关系表达:

罗兰圆聚焦条件

R = 2 · f ,其中 f 是星形耦合器的焦距。

阵列波导出口沿罗兰圆等间距排列,间距为 d;输出波导入口也位于同一罗兰圆上,角度位置由光栅方程决定。

实际设计中,我通常先根据通道数 N 和通道间隔 Δλ 算出输出波导的角度跨度,再反推罗兰圆半径 R。R 越大,聚焦光斑越小,但芯片面积也越大。这是一个典型的 trade-off。

参数符号典型值 (硅基 AWG)备注
衍射级次m40 ~ 80由 FSR 和波导损耗折中
波导长度差ΔL20 ~ 50 μm精确到 0.1 nm 量级
罗兰圆半径R200 ~ 800 μm影响聚焦光斑与串扰
阵列波导间距d1.0 ~ 2.0 μm避免耦合,同时保证衍射

嗯,这里要注意:罗兰圆并不是一个“圆”那么简单。输出波导的位置必须同时满足光栅方程和罗兰圆几何,否则聚焦点会偏离波导中心,导致插损飙升。我一般用下面的小脚本做初始验证:

# Python 风格伪代码 —— 罗兰圆聚焦验证
R = 500.0       # 罗兰圆半径 (μm)
d = 1.5         # 波导间距 (μm)
m = 60
lambda0 = 1.55  # 中心波长 (μm)
n_s = 2.82      # 星形区折射率

for channel in range(16):
    theta = channel * (d / R)   # 小角度近似
    lambda_ch = (n_s * d * theta + m * lambda0) / m
    print(f"通道 {channel}: 角度 {theta:.4f} rad, 波长 {lambda_ch:.4f} μm")

当然,这只是快速估算。完整设计要用光线追迹或 BPM 仿真,但数学建模阶段把罗兰圆和 ΔL 算准了,后面仿真就是微调。

我个人习惯在版图之前,先用一个简单的几何关系检查罗兰圆与输出波导的夹角:输出波导的中心线必须指向罗兰圆的圆心。这个细节很多教程不提,但做出来聚焦效率能差 5% 以上。

3.4 三者的闭环关系

光栅方程、ΔL、罗兰圆不是孤立的。你调整 ΔL 会改变中心波长和 FSR,而罗兰圆半径又会影响输出波导的角度间隔,进而影响通道间距。我一般按这个顺序迭代:

  1. 根据系统指标(通道数、通道间隔、FSR)确定衍射级次 m 和 ΔL。
  2. 由光栅方程算出输出波导的角度分布。
  3. 选择罗兰圆半径 R,使得角度分布能物理实现(波导不重叠、弯曲半径足够)。
  4. 验证聚焦质量:如果光斑尺寸大于波导间距,就增大 R 或调整 m。

我曾经在一个 8 通道 AWG 项目里,因为太追求小尺寸,把 R 压到 180 μm,结果串扰直接 -12 dB。后来老老实实把 R 加到 400 μm,串扰降到 -25 dB。有些坑,真的只有自己踩过才记得住。