4. 薄透镜变换:从矩阵到物理图像
薄透镜,是激光光路里最常用的元件。我个人习惯把它的作用想成「给波前施加一个相位突变」——说白了,就是让光束的等相位面瞬间弯一下。这个弯的幅度,由透镜的焦距决定。
4.1 薄透镜的ABCD矩阵
先给结论。一个焦距为 f 的薄透镜,它的传输矩阵长这样:
M_lens = [1, 0]
[-1/f, 1]
你可能会问:为什么是 -1/f?
嗯,这里要注意符号约定。我习惯用「正透镜聚焦、负透镜发散」的物理直觉。矩阵里的 -1/f 表示:当光线经过透镜时,它的斜率(或者说角度)会改变,改变量正比于光线离轴的高度。比例系数就是 -1/f。
举个例子。一束平行光(R→∞)垂直入射到 f=100 mm 的正透镜上。用矩阵算:
[r_out, θ_out]^T = M_lens * [r_in, 0]^T
r_out = r_in
θ_out = -r_in / f
出射光线向光轴偏折,偏折角 = r_in / f。这不就是几何光学里「平行光会聚到焦点」吗?矩阵和直觉对上了。
4.2 高斯光束通过薄透镜:q参数的变换
现在把高斯光束请进来。高斯光束的 q 参数经过薄透镜,变换规则极其简单:
q_out = q_in / (1 - q_in / f)
或者写成更常用的形式:
1/q_out = 1/q_in - 1/f
这个形式漂亮。它把透镜的作用看成「曲率相减」。q 参数的倒数,物理上就是波前曲率半径的倒数加上一个虚部(代表光斑尺寸)。透镜只改变实部——也就是波前曲率。
我曾经在搭建一台飞秒激光放大器时,遇到过一个问题:光束经过透镜后,焦点位置和理论计算差了将近 5 mm。排查了半天,发现是忽略了透镜的厚度效应。薄透镜近似在 f >> 透镜厚度时才成立。那台系统的透镜厚度 3 mm,焦距 50 mm,误差已经不可忽略了。
4.3 聚焦:高斯光束的束腰变换
高斯光束通过正透镜聚焦,是激光加工、光纤耦合里的常见场景。我们来算一个典型情况:
入射高斯光束的束腰在透镜前距离 d 处,束腰半径 ω₀,波长 λ。透镜焦距 f。聚焦后的束腰位置 d' 和半径 ω₀' 是多少?
用 q 参数三步走:
- 自由空间传输 d: q₁ = q₀ + d
- 经过透镜: 1/q₂ = 1/q₁ - 1/f
- 再自由空间传输 d': q₃ = q₂ + d'
聚焦后的束腰位置,就是让 q₃ 的实部为零的地方。解出来:
d' = f + (d - f) * f² / [(d - f)² + (πω₀²/λ)²]
这个公式看着有点复杂。但有个特例很好记:当入射束腰在透镜前焦面时(d = f),
d' = f
聚焦后的束腰就在透镜后焦面。而且此时聚焦光斑最小:
ω₀' = (λ f) / (π ω₀)
这就是经典的「焦面聚焦」关系。你想想看,它和几何光学的「物在焦点,像在无穷远」完全不同。高斯光束的衍射效应,让焦点落在了有限远处。
| 参数 | 几何光学 | 高斯光束 |
|---|---|---|
| 物在焦点 | 像在无穷远 | 像在透镜后焦面 |
| 聚焦光斑 | 点(理想) | 有限大小 ω₀' |
| 焦深 | 0 | 2πω₀'²/λ |
4.4 成像公式的q参数形式
薄透镜成像,在几何光学里是 1/u + 1/v = 1/f。在高斯光束里,这个公式要升级。
假设入射高斯光束的 q 参数为 q_in,经过透镜后,在距离透镜 v 处的 q 参数为:
1/q_out = 1/(q_in + u) - 1/f
其中 u 是透镜到入射束腰的距离。如果出射束腰在 v 处,那么 q_out 的实部为零:
Re{1/(q_in + u) - 1/f} = 0
展开后得到:
1/(u + z_R²/(u - f)) + 1/v = 1/f
其中 z_R = πω₀²/λ 是瑞利长度。这个公式比几何光学的成像公式多了一项 z_R²/(u - f)。当 z_R → 0(即波长极短或束腰极大),它就退化成 1/u + 1/v = 1/f。
我个人觉得,q 参数形式的最大好处是:它把「成像」和「聚焦」统一了。你不需要记住两套公式,只需要会算 q 参数的传输和变换。
# Python 示例:计算高斯光束通过透镜后的束腰位置和大小
import numpy as np
def gaussian_lens_focus(w0, lam, f, d):
"""
计算高斯光束通过薄透镜后的聚焦参数
w0: 入射束腰半径 (mm)
lam: 波长 (mm)
f: 透镜焦距 (mm)
d: 入射束腰到透镜距离 (mm)
"""
zR = np.pi * w0**2 / lam # 瑞利长度
# 聚焦后束腰位置(距透镜)
d_prime = f + (d - f) * f**2 / ((d - f)**2 + zR**2)
# 聚焦后束腰半径
w0_prime = w0 * f / np.sqrt((d - f)**2 + zR**2)
return d_prime, w0_prime
# 示例:He-Ne 激光,λ=632.8 nm,w0=0.5 mm,f=100 mm,d=150 mm
d_prime, w0_prime = gaussian_lens_focus(0.5, 632.8e-6, 100, 150)
print(f"聚焦后束腰位置: {d_prime:.2f} mm")
print(f"聚焦后束腰半径: {w0_prime*1000:.2f} μm")
4.5 知识结构总览
下面这张图,把薄透镜变换的核心逻辑串起来了。从矩阵出发,到 q 参数变换,再到聚焦和成像——其实就一条线。
从矩阵到 q 参数,再到聚焦和成像,每一步都有清晰的数学对应。我个人觉得,掌握了这个结构,你在设计激光光路时就能「心中有数」——知道每个透镜在干什么,也知道近似在什么地方会失效。