新闻中心

光打到材料上会发生什么:折射率、菲涅尔与薄膜

  • 浏览次数: ...
  • 发布时间: 2026-10-24
手算空气打到石英上的反射率(4%,一行式子);用 20 行 Python 的特征矩阵法算出掩模吸收叠层在 0°/20°/40° 下的 TE/TM 反射率(实测 0.105→0.194 与 0.105→0.057,两条曲线方向相反);解释增透膜为什么恰好是四分之一波长(并算出玻璃上镀氟化镁后反射率从 4% 降到 1.4%);说清衰减相移掩模"6% 透射 + 180° 相位"的设计数值是怎么来的。
01

一、复折射率:实部管折射,虚部管吸收

吸收介质里折射率要写成复数:复折射率(complex refractive index)

公式

实部 n 就是我们熟悉的折射率,管相位速度;虚部 κ 叫消光系数(extinction coefficient),管吸收。把它代进平面波公式(e^(−iωt) 约定),复指数当场分成两半:

公式

前一半照常转相位,后一半让振幅按指数衰减——平方后就是Beer–Lambert 定律(Beer–Lambert law,吸收介质中光强随厚度指数衰减):

公式

量级感受:铬在 266 nm 下 κ≈2.4,穿透深度 1/α = λ/(4πκ) ≈ 9 nm——70 nm 的铬膜透射光强约 e^(−8) ≈ 3.6×10⁻⁴,工程上视作不透明。这就是二元掩模"黑区"的物理。

但"工程不透明"不等于"零透射加零相位"。算一道教材例题(例题 6-1):73 nm 铬膜,复折射率 0.9+2.4i,λ = 266 nm,先不管界面反射:

公式
公式

铬膜把光强压到万分之二点五,相位却推进了近 90°——"铬只是挡光"的直觉在相位层面完全错误。精密仿真必须保留 10⁻³ 量级的复透射,它正是差分检测背景信号的一部分(第 24 篇会再遇到它)。

顺带记住材料表里的两个数(λ=266 nm 量级):熔融石英 n≈1.50(透明,κ≈0);铬 n≈0.9、κ≈2.4——金属的 n 比 κ 还小,实部甚至小于 1(相速度超光速不违反相对论,它不传信息),真正起作用的是大 κ 的强吸收。跨波长仿真必须逐波长重取参数:石英在 365 nm 是 1.48、193 nm 是 1.56,差 5%,相位行为完全不同。还有一条工程纪律:材料参数务必注明来源与波长——不同手册、不同工艺批次给出的铬在 266 nm 的 κ 可差 ±0.2,直接改变"暗区"的残余透射与相位,进而改变差分检测的本底。

02

二、界面:菲涅尔四式

光以 θi 入射到两种介质的平面界面,产生反射(反射角 = 入射角)与折射(n₁sinθi = n₂sinθt,斯涅尔定律)。这两条角度关系本身就是边界条件的产物:界面上波矢的平行分量必须连续。再要求电场 E 和磁场 H 的切向分量连续,就能解出振幅分配比——菲涅尔公式(Fresnel equations,推导所需的矢量微积分见 Born & Wolf《Principles of Optics》第 1 章或 Hecht《Optics》第 4 章)。电场垂直入射面的 s 偏振(TE):

公式

磁场垂直入射面的 p 偏振(TM)形状相同,只是导纳组合换了一副:

公式

正入射时 θi = θt = 0,两套公式重合,推导五行写完。设入射 Ei、反射 Er、透射 Et。E 切向连续:Ei + Er = Et。H 切向连续时注意反射波的传播方向反了,H 也跟着反向(H ∝ k×E),所以是 Hi − Hr = Ht;用上一篇的 H = nE/Z₀ 消去 H:

公式

两式联立(把 Et = Ei + Er 代入、移项):

公式

代入空气→石英(n=1.5):r = −0.5/2.5 = −0.2,

公式

4%——这就是你手算的第一个菲涅尔结果,也是 opticsim 验证集里无膜层基准的实测值 0.04(容差 1e-12,因为代码与公式在浮点上等价)。为什么眼镜片反光?就是每个表面这 4%。

三个特殊点值得点名:

  • 布儒斯特角
    (Brewster's angle):tanθB = n₂/n₁ 时 r_p = 0,p 光全透。证明一行:此时 θi+θt = 90°,代入 r_p 分子恰好为零。摄影偏振滤镜消玻璃反光,用的就是它;
  • 全反射
    :n₁>n₂ 且入射角超过临界角 arcsin(n₂/n₁) 时,|r| = 1,透射侧只剩隐失场(下一篇角谱法里会再遇到同一数学结构);
  • 吸收介质
    :把复数 n̄ 直接代入即可,r 变成复数——金属反射伴随相位跳变,这是厚掩模效应的起点。
直觉版:把界面想成阻抗失配。光学导纳 η ∝ n(上一篇),导纳差得越远"反弹"越强——正入射 r = (η₁−η₂)/(η₁+η₂) 与传输线反射系数公式完全同形。所有薄膜光学(增透膜、抗反射层、衰减相移)本质上都是用中间层制造阻抗渐变或多束反射相消。
03

三、多层膜:特征矩阵法

真实的掩模吸收层是叠层:石英 / CrOx 抗反射层(约 20 nm)/ Cr(约 60 nm)。界面反射 + 体内吸收 + 层间多次反射,一层层追会追到怀疑人生。标准工具是特征矩阵法(characteristic matrix method,一维多层膜的严格解,也是 RCWA 的分层基础)。

思路:第 j 层内的总场是上行波加下行波,把层上、下表面两处的 (E, H) 各写一遍,消去未知系数,就得到联系两个表面的 2×2 矩阵 Mj。矩阵元素只有三个(对称结构):

公式

其中 δj = (2π/λ)·n̄j·dj·cosθj 是单程相位厚度(复折射率自动让它变成复数,吸收藏在虚部里)。物理读法:cosδ 与 −i·sinδ 就是"波在层里走一趟"的旋转,η 做电场磁场之间的单位换算。多层膜级联就是矩阵连乘 M = M₁M₂⋯M_N,再与两侧半无穷介质(导纳 η₀、ηs)联立,得到"整叠层 + 基板"等效成的单一组合导纳 Y:

公式

多层膜的全部复杂性被压缩成一个复数——|Y| 定反射强弱,argY 定相位(又一次"复数 = 模 + 辐角")。自检:层数为零时 M 是单位阵,Y = ηs,r 精确退化成正入射菲涅尔公式(空气→石英 r = −0.2,R = 0.04)。

符号约定红线:矩阵非对角元的 −i 与本书 e^(−iωt)(前向波 e^(+ikz))约定配套;采用 e^(+iωt) 约定的教科书(如 Macleod《Thin-Film Optical Filters》)印的是 +i 版本。两套不可混用——混用会在吸收膜系上给出 |r|>1 的非物理结果。opticsim 曾因此在 air/CrOx/Cr/glass 叠层上算出过 R = 9.47,改为 −i 并修正 Y 的组合式后,与独立 Airy 递归在 1e-16 一致(test_results.txt 的回归记录)。移植任何薄膜代码,先查约定。
04

四、四分之一波长:增透膜的魔法

单层膜怎么消反射?让相位厚度 δ = π/2(即光学厚度 n₁d₁ = λ/4),此时 cosδ = 0、sinδ = 1,矩阵只剩反对角元,代进 Y 的公式:

公式

于是

公式

读法:膜层导纳取两侧导纳的几何平均,两个界面的反射光恰好等幅反相、完全相消——这就是"增透膜为什么是四分之一波长"的完整答案:λ/4 的光学厚度让两束反射光相位差 π,几何平均的折射率让它们振幅相等。经典应用:玻璃(n=1.5)上镀氟化镁(MgF₂,n=1.38),λ/4 厚度,剩余反射率

公式

从裸玻璃的 4% 压到 1.4%(运行本篇代码可复核)。掩模上对应的工程物是 MoSi 衰减层:衰减相移掩模(AttPSM)故意把暗区透射率调到 6%、相位调到 180°,透射复数 t = 0.245·e^(iπ)。为什么要留 6% 还要反相?——下一篇你会看到"用干涉加深暗区":相邻亮缝的光经暗区 π 相位推转后在暗线中心对消,暗区更暗、边缘更陡,比单纯遮挡高明得多。

另一类交替相移掩模(AltPSM)在石英上刻槽,相位差 Δφ = (2π/λ)(n−1)d。要 180°,刻蚀深度

公式

(193 nm 光刻、石英 n=1.56)。相位公差 2° 换算成深度公差约 2 nm——相位掩模的制造要求天然是纳米级。

到这里,掩模三类"暗区"各有了名片:二元掩模(BIM)铬区 t ≈ 0(精密仿真取 0.6% 残余透射,且带近 90° 相位);衰减相移掩模(AttPSM)暗区 t = 0.245·e^(iπ);交替相移掩模(AltPSM)石英刻蚀区 t = e^(iΔφ)。这三个复数值就是第 16–17 篇掩模栅格化的直接输入——掩模模型不过是把这篇的物理贴到版图坐标上。

05

五、动手:20 行 Python 算掩模叠层

下面按第三节公式逐行实现(与 opticsim.engines 的 layer_matrix/stack_r 同一算法;e^(−iωt) 约定、非对角元 −i):

PYTHON
import numpy as np
def layer_matrix(n, d, theta, lam, pol='TE'):
"""单层特征矩阵(e^{-iwt} 约定)。n 可复数;theta 为入射侧角度。"""
cost = np.sqrt(1 - (np.sin(theta)/n)**2 + 0j)   # 层内 cos(theta)
eta = n*cost if pol=='TE' else n/cost           # 光学导纳
delta = 2*np.pi/lam * n * cost * d              # 相位厚度
return np.array([[np.cos(delta), -1j*np.sin(delta)/eta],
[-1j*eta*np.sin(delta), np.cos(delta)]], dtype=complex)
def stack_r(layers, theta, lam, pol='TE', n0=1.0, ns=1.5):
"""多层膜反射系数。layers: [(n, d), ...] 从入射侧到出射侧。"""
cost0 = np.cos(theta)
eta0 = n0*cost0 if pol=='TE' else n0/cost0
costs = np.sqrt(1-(n0*np.sin(theta)/ns)**2 + 0j)
etas = ns*costs if pol=='TE' else ns/costs
M = np.eye(2, dtype=complex)
for n, d in layers: M = M @ layer_matrix(n, d, theta, lam, pol)
Y = (M[1,0] + etas*M[1,1]) / (M[0,0] + etas*M[0,1])
return (eta0 - Y)/(eta0 + Y)
# 基准:无膜层应精确退化为菲涅尔公式
r0 = stack_r([], 0.0, 266e-9)
print("无膜层 R =", abs(r0)**2)                     # 期望 0.04
# 掩模吸收叠层:CrOx 20nm (2.0+1.0j) / Cr 60nm (0.9+2.4j)
layers = [(2.0+1.0j, 20e-9), (0.9+2.4j, 60e-9)]
for ang in [0, 20, 40]:
th = np.deg2rad(ang)
print(f"theta={ang:2d}  R_TE={abs(stack_r(layers, th, 266e-9, 'TE'))**2:.4f}"
f"  R_TM={abs(stack_r(layers, th, 266e-9, 'TM'))**2:.4f}")

运行结果:无膜层 R = 0.04000000000000001(与 ((1−1.5)/2.5)² 一致,容差 1e-12);叠层反射率 θ=0°: R_TE = 0.1052、R_TM = 0.1052;θ=20°: R_TE = 0.1244、R_TM = 0.0919;θ=40°: R_TE = 0.1941、R_TM = 0.0567。TE 随角度上升、TM 反而下降,两条曲线逐渐分开——这就是厚掩模偏振效应的定量萌芽:大角度照明经过厚铬图形时,两种偏振的透射行为不同,标量仿真(假设两者相同)的误差随入射角增大。第 20 篇矢量仿真会正面处理它。

两个工程细节:代码里的 +0j 不是装饰——没有它,np.sqrt 遇到负数(全反射或金属层内)直接返回 NaN,是薄膜代码最常见的"莫名崩溃";另外透射率不能由 1−R 得到(吸收层有体吸收),粗估用 Beer 定律,精确值用矩阵法通解。
本文网址: https://www.jzdyjy.com/notice/432.html

联系我们

四川金中德科学技术研究院

QQ:1409161425
联系邮箱:1409161425@qq.com
热线电话:18071870860
公司地址:四川省成都市武侯区人民南路四段53号6层603号

蜀ICP备2023034143号-1

网站建设:武汉易优博科技有限公司

扫一扫 关注我们

在线客服

在线客服

您好,我这边是在线客服

X