第三章 互强度传播理论:从自由空间到衍射近似
互强度这东西,算出来只是第一步。真正头疼的是——它怎么传播?
我记得刚入行那会儿,导师丢给我一个光学系统,让我算焦平面上的互强度分布。我拿着公式算了三天,结果跟实验对不上。后来才发现,我用的传播模型压根不对。嗯,这章咱们就把传播这件事彻底讲透。
3.1 自由空间传播的互强度
先看最简单的情况:光在两个平行平面之间自由传播,中间没有透镜、没有光阑、没有任何东西。
假设平面1上有互强度 J₁(ξ₁, η₁; ξ₂, η₂),传播距离 z 后到达平面2。平面2上的互强度怎么表达?
公式长这样:
J₂(x₁, y₁; x₂, y₂) = ∬∬ J₁(ξ₁, η₁; ξ₂, η₂) ×
K(x₁ - ξ₁, y₁ - η₁; z) ×
K*(x₂ - ξ₂, y₂ - η₂; z) dξ₁ dη₁ dξ₂ dη₂
其中 K 是自由空间传播核函数:
K(Δx, Δy; z) = (1 / jλz) · exp[jkz + jk(Δx² + Δy²)/(2z)]
说白了,这就是一个四重积分。两个点各自传播,然后做共轭相乘。我在项目中第一次看到这个公式时,心里就一个想法:这玩意儿能算?
3.2 衍射理论中的互强度
自由空间传播是基础,但实际系统里总有衍射。衍射对互强度的影响,我习惯从两个角度理解:
- 振幅视角: 每个点光源发出的球面波被孔径截断,产生衍射图样
- 相干性视角: 衍射改变了空间不同点之间的相位关系,互强度被重新分布
用瑞利-索末菲衍射公式来表达:
J₂(x₁, y₁; x₂, y₂) = ∬∬ J₁(ξ₁, η₁; ξ₂, η₂) ×
h(x₁ - ξ₁, y₁ - η₁; z) ×
h*(x₂ - ξ₂, y₂ - η₂; z) dξ₁ dη₁ dξ₂ dη₂
这里的 h 是衍射脉冲响应:
h(Δx, Δy; z) = (z / jλ) · [exp(jkr) / r²] · (1 + 1/jkr)
其中 r = √(Δx² + Δy² + z²)。
3.3 菲涅尔近似下的互强度
瑞利-索末菲公式太复杂,工程上很少直接用。好在大部分场景满足菲涅尔近似条件:
z³ ≫ (π/4λ) · [(x-ξ)² + (y-η)²]²
近似后,脉冲响应变成:
h_F(Δx, Δy; z) = (1 / jλz) · exp[jkz + jk(Δx² + Δy²)/(2z)]
代入互强度传播公式:
J₂(x₁, y₁; x₂, y₂) = [1/(λ²z²)] · exp[jk(x₁²+y₁² - x₂²-y₂²)/(2z)] ×
∬∬ J₁(ξ₁, η₁; ξ₂, η₂) ×
exp[jk(ξ₁²+η₁² - ξ₂²-η₂²)/(2z)] ×
exp[-jk(x₁ξ₁+y₁η₁ - x₂ξ₂-y₂η₂)/z] dξ₁ dη₁ dξ₂ dη₂
你想想看,这个形式其实就是一个四维傅里叶变换。我在做激光相干性测量时,就是用这个公式反推光源的互强度分布。
| 近似类型 | 适用条件 | 计算复杂度 | 典型场景 |
|---|---|---|---|
| 瑞利-索末菲 | 任意距离 | O(N⁴),极高 | 近场、亚波长结构 |
| 菲涅尔近似 | z³ ≫ (π/4λ)·(Δ²)² | O(N⁴),可降维 | 大多数实验室光学系统 |
| 夫琅禾费近似 | z ≫ k(ξ²+η²)/2 | O(N²),快速 | 远场、傅里叶光学 |
3.4 夫琅禾费近似下的互强度
距离再远一些,满足 z ≫ k(ξ²+η²)/2 时,二次相位因子可以忽略。公式大幅简化:
J₂(x₁, y₁; x₂, y₂) = [1/(λ²z²)] · exp[jk(x₁²+y₁² - x₂²-y₂²)/(2z)] ×
∬∬ J₁(ξ₁, η₁; ξ₂, η₂) ×
exp[-jk(x₁ξ₁+y₁η₁ - x₂ξ₂-y₂η₂)/z] dξ₁ dη₁ dξ₂ dη₂
这本质上就是一个四维傅里叶变换。如果光源的互强度是空间平稳的(只依赖于坐标差),还能进一步简化成二维傅里叶变换。
我个人习惯用这个近似做快速估算。比如设计一个激光照明系统,先算远场相干度分布,判断照明均匀性够不够。如果不够,再回头用菲涅尔公式精算。
3.5 三种近似的选择策略
实际项目中怎么选?我总结了一个决策流程:
- 先算菲涅尔数
N_F = a²/(λz),其中a是特征尺寸 - N_F > 1:用瑞利-索末菲,别犹豫
- 0.1 < N_F < 1:用菲涅尔近似,精度足够
- N_F < 0.01:放心用夫琅禾费近似
我曾经在一个项目中偷懒,N_F=0.5 时用了夫琅禾费近似,结果互强度的旁瓣结构全算错了。嗯,从那以后我再也不敢跳过菲涅尔数检查。
3.6 实战:部分相干光的传播计算
最后给一个实际案例。假设一个高斯-谢尔模型光源,互强度为:
J₁(ξ₁, η₁; ξ₂, η₂) = I₀ · exp[-(ξ₁²+η₁²+ξ₂²+η₂²)/w₀²] ×
exp[-(Δξ²+Δη²)/(2σ₀²)]
其中 Δξ = ξ₁-ξ₂,Δη = η₁-η₂,w₀ 是光斑半径,σ₀ 是相干长度。
用菲涅尔近似传播距离 z 后,远场互强度解析解为:
J₂(x₁, y₁; x₂, y₂) = [I₀/(λ²z²)] · exp[-(x₁²+y₁²+x₂²+y₂²)/w²(z)] ×
exp[-(Δx²+Δy²)/(2σ²(z))]
其中:
w²(z) = w₀² · [1 + (λz/(πw₀))²]
σ²(z) = σ₀² · [1 + (λz/(πσ₀))²]
实际编程时,我建议先用解析解做快速验证,再用数值积分做精确计算。两者对得上,代码才敢往下走。