想象你家后院有一片梯田,春天需要把水渠里的水均匀分配到每一垄地。你手里没有水泵,只有一排“分水闸”:每个闸门把上游流来的水分成两股,谁多谁少,由闸板的倾斜角度说了算。两股水在下游汇合时,如果两个水波“步调一致”,就会掀起大浪涌向你想要的方向;如果“步调相反”,则互相抵消、水流静止。马赫-曾德干涉仪(MZI)就是光子芯片上的这种“分水闸”——不过它分的不是水,而是光。光进入干涉仪后被分成两路,沿两条路径走一遭再汇合,由于路径差导致的相位差,两束光在出口处要么加强、要么抵消。通过精确控制这个相位差,我们就能决定光从哪个出口出去、以多大比例出去。把成千上万个这样的“分光闸”组成网格,光每穿过一层,就被执行一次矩阵-向量乘法——这,就是光子矩阵乘法的秘密。

岗位关联

掌握 MZI 的原理与局限,你才能理解 AI 推理为什么会从电走向光,也才能在光子芯片选型、算法部署时做出有判断力的决策。

目录
  1. 可视化演示
  2. 干涉的物理基础
  3. MZI结构与调控
  4. 级联构建酉网格
  5. 可编程相移器
  6. 矩阵分解策略
  7. 误差与校准补偿
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

通过双臂干涉结构、相位控制曲线和级联网络拓扑三个视角,展示MZI如何实现2×2酉矩阵运算并扩展至N×N光子矩阵乘法。

本节配有交互动效(进入视口后自动加载,约 3KB)。

干涉的物理基础

回到那片梯田的合流点。两条支渠的水波同时涌来:如果左渠的波峰撞上右渠的波峰,两股水流叠加,溅起的水花比任何一股都高——这是“相长干涉”;如果波峰恰好撞上波谷,水面反而被抹平——这是“相消干涉”。水波如此,光波亦然。光子芯片上的一切魔法,都始于这个朴素的叠加现象。

光是一种电磁波,它的强弱(振幅)和振动位置(相位)共同决定了波的样子。当两束频率相同、相位关系稳定的光相遇,它们的振幅会逐点相加。这里的“相位差”就好比两个舞者各自节拍器的偏移量:偏移为零,两人同时迈步;偏移半个节拍,一人出左腿时另一人正出右腿。而在光波导中,相位差的来源主要是光程差——两束光走过的几何长度与介质折射率的乘积之差。

设两臂的光程分别为 \(n_1 L_1\) 和 \(n_2 L_2\),光在真空中的波长为 \(\lambda\),则两束光到达合流点时的相位差 \(\Delta\phi = \frac{2\pi}{\lambda}(n_1 L_1 - n_2 L_2)\)。对于相干光,合成光强 \(I\) 与两束光各自的光强 \(I_1\)、\(I_2\) 的关系为:

所以,调节梯田里两条支渠的长度差,就等于在拨动 \(\Delta\phi\) 这个旋钮。MZI 的全部智慧,就是把“决定水流最终走向”的权力,交到这一个旋钮手中。理解了干涉,你就握住了整个光子矩阵乘法的钥匙——后面的分光闸、网格、误差校准,全都是围绕这个旋钮展开的故事。

I=I1+I2+2I1I2 cos⁡(Δϕ)\displaystyle I = I_1 + I_2 + 2\sqrt{I_1 I_2}\,\cos(\Delta\phi)
这个式子告诉我们:合成光的亮度不是简单相加,多出来的 \(2\sqrt{I_1 I_2}\cos(\Delta\phi)\) 一项,就是干涉的“礼物”或“惩罚”——相位差为零时礼物最大,相位差为 \(\pi\) 时惩罚最大。
  1. 计算相位差光程差 \(\Delta = n_1 L_1 - n_2 L_2\) 乘以波数 \(2\pi/\lambda\),得到两束光的相位错开量。
    Δϕ=2πλ(n1L1−n2L2)\displaystyle \Delta\phi = \frac{2\pi}{\lambda}(n_1 L_1 - n_2 L_2)
  2. 代入干涉强度公式总光强等于两束光强之和,再叠加上一个随相位差摆动的干涉项。
    I=I1+I2+2I1I2 cos⁡(Δϕ)\displaystyle I = I_1 + I_2 + 2\sqrt{I_1 I_2}\,\cos(\Delta\phi)
  3. 判断相长还是相消当 \(\Delta\phi = 2k\pi\)(\(k\) 为整数)时相长,光强最大;当 \(\Delta\phi = (2k+1)\pi\) 时相消,光强最小。
    Δϕ={2kπ,相长(2k+1)π,相消\displaystyle \Delta\phi = \begin{cases} 2k\pi, & \text{相长} \\ (2k+1)\pi, & \text{相消} \end{cases}

MZI结构与调控

一个标准的 MZI,就像田里的单扇分水闸:上游水渠(输入端)先遇到一个“总闸”(分束器),把水流一分为二,引入两条平行支渠;两条支渠在汇合前又遇到一个“合闸”(第二个分束器),把两股水重新并成一股。两股水走的支渠长度不同,波峰错位,合流后水流偏向某个出水口。整套装置,就是一个可以编程的“按比例分配”的物理旋钮。

在硅光芯片上,分束器(Beam Splitter, BS)是一个 Y 形或方向耦合器,它把输入光按 1:1 分成两路,并给两路引入固定的 90° 相位关系;两条干涉臂就是波导,“支渠长度差”由臂上的移相器(Phase Shifter)实现——它不改变几何长度,而是改变局部折射率,从而改变光程。移相器最终控制的是两臂之间总的相位差 \(\theta\)。合束时,两路光再次干涉,能量按 \(\theta\) 重新分配在两个输出端口之间。

若忽略损耗,一个对称 MZI 的 2×2 传输矩阵可以写成:

这个 2×2 矩阵就是分水闸的“操作说明书”:你想让水多往右走一点,就把闸板(\(\theta\))调大一点。单个 MZI 只能处理两路光,但把它像乐高一样拼起来,就能指挥一支庞大的“光之军队”——这正是下一节的内容。

UMZI(θ)=(cos⁡(θ/2)isin⁡(θ/2)isin⁡(θ/2)cos⁡(θ/2))\displaystyle U_{\text{MZI}}(\theta) = \begin{pmatrix} \cos(\theta/2) & i\sin(\theta/2) \\ i\sin(\theta/2) & \cos(\theta/2) \end{pmatrix}
这个矩阵就像分水闸的“操作说明书”:\(\theta=0\) 时能量全部从出口 1 走(直通),\(\theta=\pi\) 时能量全部换到出口 2(交叉),中间任意角度则按余弦平方与正弦平方的比例分光。矩阵的行列式为 1,代表这是一个无损的能量守恒变换。
  1. 写出发光的两个四分之一先用一个 50:50 分束器矩阵描述“总闸”,它把输入光分成两路并引入 90° 相位关系。
    B=12(1ii1)\displaystyle B = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & i \\ i & 1 \end{pmatrix}
  2. 加入移相器矩阵两臂之间的相位差 \(\theta\) 由移相器引入,写成对角矩阵 \(P(\theta)=\mathrm{diag}(e^{i\theta},1)\),它相当于抬高一条支渠的水位。
    P(θ)=(eiθ001)\displaystyle P(\theta) = \begin{pmatrix} e^{i\theta} & 0 \\ 0 & 1 \end{pmatrix}
  3. 组合化简得到总矩阵将分束器、移相器、分束器依次相乘并约去全局相位,就得到上述 \(U_{\text{MZI}}(\theta)\)。
    UMZI=B P(θ) B  ⇒  (cos⁡(θ/2)isin⁡(θ/2)isin⁡(θ/2)cos⁡(θ/2))\displaystyle U_{\text{MZI}} = B\, P(\theta)\, B \;\Rightarrow\; \begin{pmatrix} \cos(\theta/2) & i\sin(\theta/2) \\ i\sin(\theta/2) & \cos(\theta/2) \end{pmatrix}

级联构建酉网格

梯田不止一垄地。要把一整片山坡的灌溉都安排好,你需要很多道分水闸:第一排闸门先把总水流粗略分给左右两片区域,第二排再把每片区域细分给每一垄地。光从第一排流到最后一排,流经的闸门越多,分配方案就越精细。光子芯片上的 MZI 网格,就是这样的“多级分水网络”。

数学家很早就证明了一个漂亮的结论:任意 \(N\times N\) 酉矩阵,都可以分解为 \(N(N-1)/2\) 个 2×2 旋转(Givens 旋转)的乘积。每个 2×2 旋转恰好对应一个 MZI 的传输矩阵。这意味着:只要在芯片上把 MZI 按三角形或矩形排成网格,再把每个 \(\theta\) 调到某个特定值,整个网络对输入光的作用,就是一次任意指定的酉矩阵乘法。

Reck 等人提出了三角网格实现方案:光束依次经过多个 MZI,先消去目标矩阵第一列的非对角元,再消去第二列……逐步“反推”出每个 MZI 的参数。Clements 等人后来改进了架构(矩形网格),让光路更短、损耗更低,且更利于误差补偿。无论哪种布局,核心公式都是:

分水网络一旦按这个规则搭好,“灌溉方案”就变成了每个闸门的角度清单。电子芯片里动辄上亿次的乘加运算,在这里变成光按网格走一遍——这就是光子矩阵乘法让 AI 加速器心动的根本原因。可要让闸门听话,还得先解决“电动马达”的问题:可编程相移器。

UN=∏k=1N(N−1)/2UMZI(k)(θk,ϕk)\displaystyle U_{N} = \prod_{k=1}^{N(N-1)/2} U_{\text{MZI}}^{(k)}(\theta_k, \phi_k)
这里的连乘不是抽象的数学游戏:光每经过一个 MZI,就相当于矩阵被“左乘”了一个 2×2 旋转。乘积顺序对应光在芯片里经过 MZI 的先后顺序,最终整个网络的传输矩阵就是目标酉矩阵 \(U_N\)。
  1. U_N 是酉矩阵它满足 \(U_N^{\dagger} U_N = I\),即输入光总功率等于输出光总功率,对应一个“不漏水”的灌溉网络。
    UN†UN=I\displaystyle U_N^{\dagger} U_N = I
  2. 分解为 2×2 旋转的连乘目标矩阵被逐层“剥开”,每一层对应一个 MZI,共 \(N(N-1)/2\) 个因子。
    UN=∏k=1N(N−1)/2UMZI(k)(θk,ϕk)\displaystyle U_{N} = \prod_{k=1}^{N(N-1)/2} U_{\text{MZI}}^{(k)}(\theta_k, \phi_k)
  3. 估算 MZI 数量阶数 \(N\) 越高,需要的分水闸数量按二次方增长。例如 N=4 需要 6 个 MZI,N=8 需要 28 个。
    N(N−1)2\displaystyle \frac{N(N-1)}{2}

可编程相移器

分水闸的闸板手调太慢了,也不够精确。现代化灌溉系统里,闸门上装了电动马达,收到指令后能在几毫秒内把闸板转到指定角度。相移器就是 MZI 上的“电动马达”:它负责把数字电路下达的相位指令,变成光学上真实的相位偏移。

最常见的实现是热光效应:给一小段波导通电加热,硅的折射率会随温度变化(\(dn/dT \approx 1.8\times10^{-4}/\text{K}\)),光经过这段波导时光程随之改变,从而产生相位偏移。这就像是加热支渠里的水,水流变慢、到达合流点的时间就变了。热光调制器结构简单、工艺成熟,但响应速度在微秒到毫秒级——对慢速推理够用,对高速计算则嫌慢。

追求速度时,工程师改用或混合使用电光效应:外加电场改变晶体或波导材料的折射率。钛酸钡、铌酸锂等材料响应可达皮秒级,但要么需要新工艺,要么需要较高驱动电压,功耗与集成难度随之上升。量化热光相移器的控制量,有一个常用的设计公式:

这样一来,“闸板角度”和“马达电流”之间就有了精确的换算关系:要什么相位,就给多大加热功率。相移器安静、快速、精确地工作,网格里的每个 MZI 才能真正成为可编程的矩阵元素。不过,单个旋钮调好还不够——整个网络的旋钮怎么协同设定?这就是矩阵分解策略要回答的问题。

Δϕ=2πλ⋅dndT⋅L⋅ΔT\displaystyle \Delta\phi = \frac{2\pi}{\lambda} \cdot \frac{dn}{dT} \cdot L \cdot \Delta T
\(\lambda\) 是光波长,\(dn/dT\) 是热光系数,\(L\) 是加热区长度,\(\Delta T\) 是温升。想要 \(2\pi\) 的相位变化,要么加长加热区,要么提高温升——而这两者都受功耗和热串扰的约束。
  1. 光程变化换算成相位相位是“光走了多少个波长”的度量,光程变化 \(\Delta(nL)\) 除以波长再乘 \(2\pi\)。
    Δϕ=2πλ Δ(nL)\displaystyle \Delta\phi = \frac{2\pi}{\lambda}\,\Delta(nL)
  2. 热光效应引起折射率变化温度升高 \(\Delta T\),折射率近似线性增加,光程变化为 \(\frac{dn}{dT} L \Delta T\)。
    Δ(nL)=dndT⋅L⋅ΔT\displaystyle \Delta(nL) = \frac{dn}{dT} \cdot L \cdot \Delta T
  3. 代入得到完整公式两步合并,就得到设计加热功率与目标相位之间的换算关系。
    Δϕ=2πλ⋅dndT⋅L⋅ΔT\displaystyle \Delta\phi = \frac{2\pi}{\lambda}\cdot\frac{dn}{dT}\cdot L\cdot\Delta T

矩阵分解策略

整片梯田的灌溉目标,是每条支渠末端都流出指定比例的水。目标定了,你不能盲目拧闸门,得“倒着算”:从最后一级闸门开始,一直反推到第一级,每个闸门该开多大。矩阵分解做的事,就是这个“倒着算”:把目标矩阵一层层拆开,直到拆成单个 MZI 的 2×2 小块。

在数学上,任意矩阵 \(A\)(不一定是方阵,也不一定是酉矩阵)都可以通过奇异值分解写成 \(A = U\,\Sigma\,V^{\dagger}\)。其中 \(U\) 和 \(V\) 是酉矩阵(由 MZI 网格实现),\(\Sigma\) 是实的对角阵(衰减或放大各路能量)。于是“用光实现任意矩阵”被拆成三个可物理实现的步骤:先做一次酉变换,再逐路乘以缩放因子,最后再做一次酉变换。

对于每个酉矩阵 \(U\) 和 \(V\),再用 Clements/Reck 分解映射为 MZI 参数网格。这样,一个完整的“光子矩阵乘法器”的参数由三部分组成:\(U\) 的参数(一组 MZI 的 \(\theta/\phi\))、\(\Sigma\) 的缩放值、\(V\) 的参数。整条链路的设计流程因此变得模块化:

就这样,设计者面前那张“整片田的灌溉图纸”,被翻译成了一长串闸门角度清单。芯片工厂按照清单把每个相移器调到目标值,光一进一出之间,矩阵乘法已经悄然完成。可惜图纸和现实总有差距——闸门铸造时带的误差,会让实际出水比例偏离设计。这就是最后一个故事:误差与校准。

A=U Σ V†\displaystyle A = U\,\Sigma\,V^{\dagger}
若 \(A\) 本身是方阵且物理上必须无损耗,\(\Sigma\) 可以是单位阵;若 \(A\) 是任意复数矩阵,\(\Sigma\) 就用衰减器近似。这样做的好处是:把“任意矩阵”这个困难问题,规约成两个已解决的“酉矩阵”问题加一个简单的逐路缩放问题。
  1. 奇异值分解任意 \(m\times n\) 矩阵都能拆成两个酉矩阵夹一个对角阵,\(U\) 和 \(V\) 的列分别是左右奇异向量。
    A=U Σ V†\displaystyle A = U\,\Sigma\,V^{\dagger}
  2. 酉矩阵映射到 MZI 网格\(U\) 和 \(V\) 各自写成 MZI 传输矩阵的连乘,参数由 Reck/Clements 分解给出。
    U=∏UMZI(k),V=∏VMZI(k)\displaystyle U = \prod U_{\text{MZI}}^{(k)},\qquad V = \prod V_{\text{MZI}}^{(k)}
  3. 对角阵做缩放\(\Sigma = \mathrm{diag}(\sigma_1,\ldots,\sigma_n)\),每个 \(\sigma_i\) 对应第 \(i\) 条光路的衰减比例。
    Σ=diag(σ1,σ2,…,σn)\displaystyle \Sigma = \mathrm{diag}(\sigma_1, \sigma_2, \ldots, \sigma_n)

误差与校准补偿

浇铸的闸板,模具总会有些磨损,铸出来的闸板实际宽度和图纸差那么一丝。一扇闸门的偏差影响不大,可一片田有几千扇闸门,每一丝的误差叠加起来,最终末端的水量可能和设计图差得很远。光子芯片也一样:光刻不均匀、刻蚀深度偏差、波导宽度波动,都会让每个 MZI 的实际相位偏移与设计值不符。

工程上把这种偏差建模为参数扰动:设计值是 \(\theta\),实际值变为 \(\theta + \Delta\theta\)。由于 MZI 的传输矩阵对 \(\theta\) 是光滑依赖的,输出误差可以通过一阶泰勒展开估计:

网格中成百上千个 MZI 的误差会传播到最终输出。统计上,输出矩阵的均方误差近似正比于单器件相位误差的方差,且随 MZI 数量线性增长——器件越多,校准负担越重。

应对策略有三条:一是工艺改进,尽量缩小 \(\Delta\theta\)(更细的光刻、更均匀的薄膜);二是片上校准补偿,逐个 MZI 用加热器或额外测试光路实测传输矩阵,再用算法反推出最优参数迭代修正;三是容错设计,Clements 网格比 Reck 网格对误差更不敏感,在参数寻优时引入冗余自由度,让系统在一个“更平滑”的参数区域工作。校准的本质,就是把“铸造公差”变成“软件可修”的偏差,用测量和算法去弥补物理上的不完美。

好消息是,误差虽然无法根除,却可以被驯服。就像那句老话:“闸门不完美,但校准让水流回到正轨。”MZI 的光子矩阵乘法从实验室走向数据中心,靠的正是干涉原理的美妙,加上工程体系对误差的层层修复。理解了这条主线,你就真正读懂了这颗“光的芯片”。

Uactual≈U(θ)+∂U∂θ Δθ\displaystyle U_{\text{actual}} \approx U(\theta) + \frac{\partial U}{\partial \theta}\,\Delta\theta
  1. 实际参数偏离设计值每个 MZI 的真实相位是设计值加上一个随机偏差 \(\Delta\theta\)。
    θactual=θ+Δθ\displaystyle \theta_{\text{actual}} = \theta + \Delta\theta
  2. 一阶泰勒展开传输矩阵在实际点附近做线性近似,偏差项 \(\frac{\partial U}{\partial \theta}\Delta\theta\) 就是误差的主要来源。
    Uactual≈U(θ)+∂U∂θ Δθ\displaystyle U_{\text{actual}} \approx U(\theta) + \frac{\partial U}{\partial \theta}\,\Delta\theta
  3. 误差传播估计整个网格输出的平均偏差平方,近似与 MZI 数量 \(N(N-1)/2\) 和单器件相位误差方差成正比。
    ⟨∥Uactual−U(θ)∥F2⟩∝N(N−1) Var(Δθ)\displaystyle \langle \|U_{\text{actual}} - U(\theta)\|_F^2 \rangle \propto N(N-1)\,\mathrm{Var}(\Delta\theta)

AI 应用场景

光神经网络推理芯片

阶段:模型部署与推理加速

解决的问题:传统 GPU 做矩阵乘法时,大量乘加运算受限于电荷移动速度和散热,功耗高、延迟大。MZI 网格把矩阵乘法变成光的传播过程:输入光被编码为向量,穿过网格后输出光就是矩阵乘法的结果,数学运算由物理干涉在飞秒尺度内天然完成。

具体案例:以 Lightmatter 为代表的初创公司开发的光子处理器,用 MZI 阵列执行神经网络中的线性层。一次矩阵-向量乘积只需让激光脉冲通过芯片,实测推理能耗比同代电子芯片低一个数量级,特别适合大模型推理中的 GEMM(通用矩阵乘法)热点。

量子计算中的可编程光量子线路

阶段:量子算法编译与实现

解决的问题:光量子计算需要实现任意幺正变换,例如玻色采样任务中的随机酉矩阵。MZI 网格恰好是“通用线性光学线路”,通过编程每个相移器就能在芯片上实现目标变换,替代了笨重且不稳定的空间光路调节。

具体案例:中国科学技术大学“九章”光量子计算原型机,在硅光芯片上集成了上百个 MZI 和相移器,用于构造大规模干涉网络。每个 MZI 的参数由经典计算机预先优化求解,再转换成加热电压加载到芯片上。

数据中心全光交换

阶段:通信路由与调度

解决的问题:传统数据中心交换机采用“光-电-光”转换,每次转发都要光电转换再电光转换,延迟高、功耗大。MZI 网格可作为可编程光路由器,控制各路光的相位即可实现端口间任意置换,以光速完成路径切换。

具体案例:多家光交换初创公司展示的 N×N 光交换机,内部就是一片 MZI 网格。网络控制器下发一条“置换表”,芯片自动算出每个 MZI 的角度并加载,整个交换过程无电参与,时延降低到纳秒级。

Python 演示

python39 行
import numpy as np def mzi_matrix(theta, phi):    """可编程 MZI 的 2x2 传输矩阵。     theta 控制分束比(内部移相器),phi 控制外部相位。    """    c, s = np.cos(theta), np.sin(theta)    ep = np.exp(1j * phi)    return np.array([[ep * c, -s],                     [ep * s,  c]]) def fit_mzi_to_target(target, points=80):    """在 (theta, phi) 网格上搜索最接近 target 的 MZI 参数。"""    grid_t = np.linspace(0, np.pi, points)    grid_p = np.linspace(0, 2 * np.pi, points)    best_loss = float('inf')    best = (0.0, 0.0)    for theta in grid_t:        for phi in grid_p:            U = mzi_matrix(theta, phi)            loss = np.sum(np.abs(U - target) ** 2)            if loss < best_loss:                best_loss = loss                best = (theta, phi)    return mzi_matrix(*best), best_loss, best if __name__ == '__main__':    hadamard = np.array([[1, 1], [1, -1]]) / np.sqrt(2)    U_learned, loss, (theta, phi) = fit_mzi_to_target(hadamard)    print("目标矩阵(Hadamard):")    print(hadamard)    print("拟合得到的参数:")    print("theta = %.4f, phi = %.4f" % (theta, phi))    print("MZI 矩阵:")    print(np.round(U_learned, 4))    print("拟合误差:", round(loss, 6))    print("酉性检查 ||U†U - I|| =",          round(np.linalg.norm(U_learned.conj().T @ U_learned - np.eye(2)), 8))
目的:用网格扫描法寻找 MZI 的两个可编程相位参数,使得单个 MZI 的传输矩阵逼近目标 2×2 矩阵(这里以 Hadamard 矩阵为例),并验证结果的酉性。这正是真实芯片上“参数标定”的简化版。
  1. def mzi_matrix(theta, phi):定义一个 MZI 的传输矩阵,theta 和 phi 是两个可编程相位旋钮。
  2. ep = np.exp(1j * phi)把外部相位 phi 变成复数指数,这是光学相位的数学表示。
  3. return np.array([[ep * c, -s], [ep * s, c]])返回 2×2 酉矩阵,它决定了光在两个输出端口间的分配比例。
  4. grid_t = np.linspace(0, np.pi, points)在 theta 的取值范围内均匀采样,相当于把闸门角度分成 80 档。
  5. for theta in grid_t:遍历所有 theta 档位,寻找最优闸门角度。
  6. loss = np.sum(np.abs(U - target) ** 2)计算当前 MZI 矩阵与目标矩阵的差距,差距越小越好。
  7. target = np.array([[1, 1], [1, -1]]) / np.sqrt(2)目标矩阵,这里选的是量子计算中常用的 Hadamard 门矩阵。
  8. print("酉性检查 ||U†U - I|| =", ...)检查学到的矩阵是否满足酉性,对应物理上的能量守恒。

常见误区

误区MZI 像电子开关一样,输出要么是 1 要么是 0,光只能完全从出口 1 或完全从出口 2 出来,中间没有过渡状态。

正解MZI 是连续的模拟器件,\(\theta\) 取任意值都能对应一种分光比例,“全透”和“全堵”只是 \(\theta=0\) 和 \(\theta=\pi\) 两个特例。这就像闸门可以开到任意角度,而不是只有开和关。在光子矩阵乘法中,每个 MZI 恰恰工作在连续参数空间,才能表示矩阵元素的小数数值。

为何常见:教材常用 “switch“ 称呼 MZI,演示时也经常展示能量全转移的极端情况,初学者容易把”光开关”的类比当成全部真相。

误区既然是芯片上的器件,热光相移器应该和晶体管一样,纳秒甚至皮秒级就能完成相位切换。

正解热光效应的本质是热扩散,温度场建立和消散需要微秒到毫秒量级。加热改变的是材料折射率,而材料温度是热力学过程,不可能瞬间响应。真正的高速(皮秒级)来自电光效应,但需要特殊材料和更高的驱动电压。设计系统时,需要根据推理实时性要求选择相移器类型,而不是默认它“很快”。

为何常见:大家习惯把“芯片”和“高速”绑定,忽略了热传导过程的时间尺度。

误区用 Clements 分解算出每个 MZI 的 \(\theta\) 和 \(\phi\),把这些值直接写到芯片的相移器驱动电路里,矩阵乘法就能精确完成。

正解制造误差让实际相移偏离设计值,直接设参必然失真。真实流程是先标定再补偿:给芯片加测试光、测量每个 MZI 的实际传输矩阵,再用迭代优化算法修正参数,把误差压下去。这就像闸门实际铸大了 1%,光靠图纸不行,得先通水实测、再在刻度盘上做标记。

为何常见:数学仿真里参数是理想无误差的,做仿真的人很容易低估真实芯片的非理想性。

误区MZI 两条臂的物理长度做成一模一样,光到达合流点的时间就一样,不会产生干涉,设备只能直通。

正解决定干涉的是光学长度 \(nL\) 而不是几何长度。即使几何长度相等,只要一臂的折射率被加热改变,光程就不同,相位差照样产生。反之,几何长度不同也可以用折射率补偿。相移器的工作原理正是“等效延长光路”,而不是真的去挪动波导。

为何常见:初学时把“路径长度”直觉化为几何距离,忽略了介质折射率对光速的影响。

面试题

Q1. MZI 中分束器(BS)的主要作用是什么?

单选题 · easy

  • A.将一束光分成两路并建立相位关系← 正确答案
  • B.将光信号转换为可读的数字信号
  • C.将两路光合并后放大输出光强
  • D.将光能量转化为热量散失掉

答案:A。分束器相当于分水闸的“总闸”,把一束光分成两路,并给两路一个固定的相位关系。B 是光电探测器的工作;C 中无源分束器不放大光;D 是热光效应或波导损耗的描述,与分束器的主要功能无关。

Q2. 两束相干光发生相长干涉时,相位差满足什么条件?

单选题 · easy

  • A.是波长的整数倍对应的相位差← 正确答案
  • B.是半波长的奇数倍对应相位差
  • C.是四分之一波长的奇数倍相位差
  • D.任意相位差都会发生相长干涉

答案:A。相长干涉要求光程差为波长的整数倍,即相位差为 \(2\pi\) 的整数倍。B 是相消干涉的条件;C 对应 90° 相位差,不会产生干涉极值;D 显然错误。

Q3. 一个标准的 2×2 MZI 最少由哪些部分组成?

单选题 · mid

  • A.两个分束器和至少一个移相器← 正确答案
  • B.一个分束器和一个光放大器
  • C.两个移相器和一个信号放大器
  • D.一个光栅和一个光电探测器

答案:A。MZI 由两个分束器串接,中间在两臂上放置至少一个可调移相器构成。B 中光放大器不是 MZI 的必需件;C 中信号放大器是电学器件;D 中光栅和探测器属于光谱分析或探测用途,不是 MZI 的核心组件。

Q4. 按 Reck 分解实现 N×N 酉矩阵,需要的 MZI 数量是多少?

单选题 · mid

  • A.正好需要 N(N-1)/2 个器件← 正确答案
  • B.正好需要 N(N+1)/2 个器件
  • C.正好需要 N 的平方个器件
  • D.正好需要 N 个器件就可以了

答案:A。每个 MZI 实现一个 2×2 旋转,N 阶酉矩阵共有 N(N−1)/2 个独立的 Givens 旋转角,因此需要同样数量的 MZI。B 多算了主对角线上的项;C 和 D 都与正交变换的自由度不符。

Q5. 相比 Reck 网格,Clements 矩形网格的优势有哪些?

多选题 · mid

  • A.光传播路径更短且损耗更低← 正确答案
  • B.光路总深度比 Reck 更浅← 正确答案
  • C.对制造误差的敏感度更低← 正确答案
  • D.可以将制造误差彻底完全消除

答案:ABC。Clements 网格把 MZI 排成矩形,光经过的器件数更少,路径更短、损耗更低,同时更浅的深度减少了误差累积;此外规则排列也利于补偿算法。D 错误,误差只能缓解和校准,无法彻底消除。

Q6. 热光效应相移器的典型响应时间量级是?

单选题 · hard

  • A.皮秒量级极其迅速快捷
  • B.纳秒量级可与电学相比
  • C.微秒到毫秒量级较慢← 正确答案
  • D.秒量级几乎无法使用

答案:C。热光效应依赖热扩散建立温度场,硅光热光调制器普遍在几十微秒到毫秒量级。A 是电光效应(如铌酸锂调制器)的水平;B 需借助特殊高速结构才可能接近;D 过于夸张,但热光调制确实不适合超高速场景。

Q7. 关于 MZI 实现光子矩阵乘法的说法,正确的有哪些?

多选题 · mid

  • A.干涉把乘加运算变成光波的物理叠加← 正确答案
  • B.光功率在传播过程中绝对守恒无损耗
  • C.每个 MZI 的参数可以连续编程调节← 正确答案
  • D.网格输出精度不受任何因素影响

答案:AC。A 正确,光的干涉叠加天然完成加权求和;C 正确,相移器可将 \(\theta\) 和 \(\phi\) 连续调节。B 错误,波导存在吸收和散射损耗;D 错误,制造误差、热噪声和探测器噪声都会影响精度。

Q8. 用光子器件实现任意矩阵乘法前,通常先把矩阵做什么分解?

单选题 · mid

  • A.对矩阵进行奇异值分解得到的分解← 正确答案
  • B.对矩阵进行傅里叶变换得到的分解
  • C.对矩阵进行拉普拉斯变换得到的分解
  • D.对矩阵进行泰勒展开得到的分解

答案:A。SVD 把任意矩阵拆成 \(U\Sigma V^{\dagger}\),其中两个酉矩阵由 MZI 网格实现,中间对角阵用衰减器实现。傅里叶变换只能处理特定结构;拉普拉斯变换是连续域工具;泰勒展开用于函数逼近,都不适用于矩阵的物理化分解。

Q9. 制造误差对 MZI 网格的影响及应对策略包括哪些?

多选题 · hard

  • A.实际相位偏离设计值的偏差← 正确答案
  • B.输出矩阵出现系统性偏差← 正确答案
  • C.通过片上校准补偿修正误差← 正确答案
  • D.误差会随网格级数自动消除

答案:ABC。A 是误差的直接来源(工艺偏差 → 相位偏差);B 是误差在输出端的表现(矩阵失真);C 是工程上必须做的校准补偿。D 错误,误差不会自动消除,反而会随级联级数累积,这正是校准之所以必要的原因。

Q10. 一束光经过 MZI 两臂后相位差正好是 π,输出结果是?

单选题 · easy

  • A.相消干涉导致光强减弱变暗← 正确答案
  • B.相长干涉导致光强显著增强
  • C.光强不变只是传播路径偏移
  • D.光被材料完全吸收无法输出

答案:A。相位差为 π 时 \(\cos\Delta\phi = -1\),干涉项取负值,总光强最小,这就是相消干涉。B 对应相位差为 \(2\pi\) 整数倍的情况;C 与干涉事实不符;D 把干涉和吸收混为一谈,相消时能量仍保留在系统中。