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 知识体系结构图

下面这张图把本章的核心逻辑串起来了。我个人习惯在学新知识前先看结构图,心里有个谱。

偏振光学基础:知识体系结构 偏振光学基础 麦克斯韦方程 偏振态分类 Jones矢量 波动方程 平面波解 线偏振 圆偏振 椭圆偏振 复数列向量表示 电场矢量振动方向 振幅比 + 相位差 仅适用于完全偏振光 核心逻辑 1. 麦克斯韦方程 → 光波是横波 → 电场矢量在横截面振动 2. 振动轨迹不同 → 线/圆/椭圆三种偏振态 3. Jones矢量用复数简洁描述偏振态 → 为后续矩阵运算打基础

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()

小技巧:运行这段代码时,注意观察圆偏振的轨迹是正圆,线偏振是直线,椭圆偏振介于两者之间。你可以修改相位差 δ 和振幅比,看看轨迹怎么变化。我在做偏振态分析工具时,就是靠这种可视化快速验证算法正确性的。