1. 偏振光基础回顾:麦克斯韦方程与光波、偏振态分类、Jones矢量表示法
好,咱们正式开始。偏振光学这东西,说白了就是研究光波振动方向的学问。我当年刚接触时也觉得抽象,后来在搭建激光干涉系统时被偏振态折腾得够呛——从那以后,我养成了一个习惯:凡是涉及光路设计,第一件事就是搞清楚偏振态。
1.1 从麦克斯韦方程到光波
光是一种电磁波。这个结论来自麦克斯韦方程组。在无源、各向同性介质中,电场 E 和磁场 H 满足波动方程:
∇²E - (1/c²) ∂²E/∂t² = 0
∇²H - (1/c²) ∂²H/∂t² = 0
其中 c 是光速。一个最简单的解是平面波:
E(r, t) = E₀ · cos(ωt - k·r + φ₀)
这里 E₀ 是振幅矢量,ω 是角频率,k 是波矢,φ₀ 是初始相位。
关键点:电场矢量 E 的振动方向就是光的偏振方向。磁场垂直于电场,也垂直于传播方向。所以偏振态完全由电场矢量在横截面上的行为决定。
1.2 偏振态分类
根据电场矢量端点随时间变化的轨迹,偏振态分为三类。我习惯用一个简单的表格来对比:
| 偏振类型 | 轨迹形状 | 产生条件 | 典型应用 |
|---|---|---|---|
| 线偏振 | 直线 | 两正交分量相位差 δ = 0 或 π | 液晶显示、偏振片 |
| 圆偏振 | 圆 | 两分量振幅相等,δ = ±π/2 | 3D电影、圆二色性测量 |
| 椭圆偏振 | 椭圆 | 一般情况(振幅不等或相位差非特殊值) | 椭偏仪、薄膜测量 |
为什么会这样?你想想看,电场矢量可以分解为 x 和 y 两个正交分量:
Eₓ(z,t) = E₀ₓ · cos(ωt - kz + φₓ)
Eᵧ(z,t) = E₀ᵧ · cos(ωt - kz + φᵧ)
这两个分量的振幅比 E₀ᵧ/E₀ₓ 和相位差 δ = φᵧ - φₓ 决定了最终的偏振态。
我的经验:在实际项目中,判断偏振态最直接的方法是用偏振片旋转观察。线偏振光会出现消光现象,圆偏振光强度不变,椭圆偏振光强度变化但不会完全消光。我曾经在调试一台激光测距仪时,就是靠这个简单方法快速定位了偏振元件装反的问题。
1.3 Jones矢量表示法
1941年,R. C. Jones 提出了一种简洁的数学工具——Jones 矢量。它用一个 2×1 的复数列向量表示偏振态:
J = [ Eₓ ]
[ Eᵧ ]
其中 Eₓ = E₀ₓ · exp(iφₓ)
Eᵧ = E₀ᵧ · exp(iφᵧ)
归一化后,常见偏振态的 Jones 矢量如下:
| 偏振态 | Jones 矢量(归一化) | 说明 |
|---|---|---|
| 水平线偏振 | [1, 0]ᵀ | Eₓ 分量,Eᵧ = 0 |
| 垂直线偏振 | [0, 1]ᵀ | Eᵧ 分量,Eₓ = 0 |
| 45°线偏振 | [1, 1]ᵀ / √2 | 两分量等幅同相 |
| 右旋圆偏振 | [1, -i]ᵀ / √2 | δ = -π/2 |
| 左旋圆偏振 | [1, i]ᵀ / √2 | δ = +π/2 |
注意:Jones 矢量只能描述完全偏振光。对于部分偏振光或自然光,需要用 Stokes 矢量或 Mueller 矩阵。我在做大气激光通信仿真时就踩过这个坑——直接用 Jones 矢量处理非偏振背景光,结果完全不对。
1.4 知识体系结构图
下面这张图把本章的核心逻辑串起来了。我个人习惯在学新知识前先看结构图,心里有个谱。
1.5 用Python验证一下
光说不练假把式。我习惯用 Python 快速验证理论。下面这段代码生成三种偏振态的电场矢量轨迹:
import numpy as np
import matplotlib.pyplot as plt
# 参数设置
t = np.linspace(0, 2*np.pi, 1000)
Ex = np.cos(t) # x分量
# 线偏振:δ = 0
Ey_lin = np.cos(t)
# 圆偏振:δ = π/2,等幅
Ey_circ = np.cos(t + np.pi/2)
# 椭圆偏振:δ = π/4,振幅比 2:1
Ey_ellip = 0.5 * np.cos(t + np.pi/4)
# 绘图
fig, axes = plt.subplots(1, 3, figsize=(12, 4))
titles = ['线偏振', '圆偏振', '椭圆偏振']
data = [(Ex, Ey_lin), (Ex, Ey_circ), (Ex, Ey_ellip)]
for ax, (ex, ey), title in zip(axes, data, titles):
ax.plot(ex, ey, 'b-', linewidth=1.5)
ax.set_xlim(-1.2, 1.2)
ax.set_ylim(-1.2, 1.2)
ax.set_aspect('equal')
ax.set_title(title, fontsize=14)
ax.set_xlabel('Ex')
ax.set_ylabel('Ey')
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
小技巧:运行这段代码时,注意观察圆偏振的轨迹是正圆,线偏振是直线,椭圆偏振介于两者之间。你可以修改相位差 δ 和振幅比,看看轨迹怎么变化。我在做偏振态分析工具时,就是靠这种可视化快速验证算法正确性的。