ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

椭圆偏振光法测定介质薄膜厚度与折射率:Δ、Ψ反演与色散建模

椭圆偏振光法测定介质薄膜厚度与折射率:Δ、Ψ反演与色散建模 简介椭圆偏振光法测定介质薄膜厚度与折射率的PDF资料面向大学物理实验课程学习者、理工科学生及需要完成同类实验报告的人。内容围绕反射型椭偏仪系统梳理P波与S波相位差经薄膜反射后的变化关系涉及tanψr_p/r_s超越方程、45°四分之一波片将线偏振光转换为等幅椭圆偏振光、四点测量法减小系统误差以及通过逐次逼近程序求解膜厚d与折射率n等关键环节。资料还整理原始数据、理论值对比和误差来源分析并给出检偏器与起偏器零刻度定位、等幅椭圆偏振光的获得方式等思考题参考答案与实验总结。包内为1个PDF文件压缩包约28KB结构紧凑便于直接查阅原理、步骤、数据处理与误差讨论。目前已有95人学习可作为物理光学实验预习、报告撰写与误差分析思路的参考。1. 椭圆偏振光法测定介质薄膜的厚度和折射率一束偏振光如何读出纳米级膜厚镀完一层标称 80 nm 的 SiO₂用台阶仪去测探针一压膜就划伤误差动辄几纳米切片做截面电镜样品直接报废。椭圆偏振光法走的是另一条路让一束已知偏振态的光以固定角度斜入射到样品表面测反射光偏振态的变化再从这组变化里反解出膜厚和折射率。它不测光强衰减测的是 p 光和 s 光反射系数之比也就是振幅比 tanΨ 和相位差 Δ。正因为相位对光程极其敏感0.1 nm 的膜厚变化都能在 Δ 上留下可辨识的位移。做镀膜、半导体工艺、光学薄膜和材料表征的工程师基本都会把椭偏当成膜厚和光学常数的主力手段。这篇按理论、建模、反演、实操、进阶的顺序把介质薄膜的椭偏测量从头跑一遍。2. 椭圆偏振的物理内核从偏振态改变到 Δ 与 Ψ 两个可测量2.1 p 光和 s 光的反射系数之比是椭偏的唯一观测量线偏振光斜入射到有膜层的表面p 分量平行入射面和 s 分量垂直入射面经历的反射路径不同反射后两分量振幅比和相位差都变了合成光变成椭圆偏振。椭偏仪能直接记录的只有两个量振幅比角 Ψ 和相位差 Δ。它们由反射系数之比定义ρ r_p / r_s tanΨ · exp(iΔ)这里的 r_p、r_s 是包含膜层多次反射干涉的等效反射系数不是单界面的菲涅尔系数。理解这一点很关键椭偏测不到绝对反射率它只对 r_p 和 r_s 的比值负责。比值的好处是消掉了光源强度波动、探测器响应这些共模误差坏处是它天然耦合了厚度和折射率——同一组 Δ、Ψ 可能对应多组 (d, n) 解这就是后面必须做色散建模的根因。2.2 Δ 在膜厚上的放大效应为什么 0.1 nm 也看得出来膜层内部存在上下界面两次反射的干涉相位差 β 与膜厚成正比β 2π · d · n₁ · cosθ₁ / λ等效反射系数里含 exp(-2iβ) 项膜厚每变化 ΔdΔ 就整体平移约 4πn₁cosθ₁Δd/λ。取 n₁1.46、θ₁≈30°、λ632.8 nmΔd0.1 nm 对应 Δ 变化约 0.5°而现代椭偏仪的 Δ 分辨率能到 0.01° 量级所以亚纳米厚度变化完全可测。这也是为什么椭偏对超薄膜比台阶仪灵敏得多——它测的是相位不是几何台阶。要注意 Δ 的量程和跳变。Δ 通常落在 -180° 到 180°或 0° 到 360°膜厚增大到一定程度会出现相位包裹连续波长的 Δ 曲线会出现折返。拟合前必须做相位解包裹否则优化器会把跳变当成真实数据去追。2.3 用 Python 跑通单层膜正问题从 n 和 d 算出 Δ 与 Ψ正问题是反演的基础给定入射角、波长、各层折射率和厚度算出 Δ、Ψ。下面用菲涅尔系数加单层膜干涉公式实现Si 衬底上生长 SiO₂ 是最典型的介质薄膜模型。import numpy as np def fresnel(n_i, n_t, th_i): 返回界面 i-t 的 p、s 菲涅尔反射系数及折射角 th_t np.arcsin(n_i * np.sin(th_i) / n_t) # 斯涅尔定律 rp (n_t * np.cos(th_i) - n_i * np.cos(th_t)) / (n_t * np.cos(th_i) n_i * np.cos(th_t)) rs (n_i * np.cos(th_i) - n_t * np.cos(th_t)) / (n_i * np.cos(th_i) n_t * np.cos(th_t)) return rp, rs, th_t def psi_delta_single_layer(lam, n0, n1, n2, th0_deg, d): 环境/薄膜/衬底 单层膜正问题返回 delta(deg), psi(deg) th0 np.deg2rad(th0_deg) r01p, r01s, th1 fresnel(n0, n1, th0) # 环境-膜 r12p, r12s, _ fresnel(n1, n2, th1) # 膜-衬底 beta 2 * np.pi * n1 * np.cos(th1) * d / lam # 膜内单程相位 x np.exp(-2j * beta) # 双程相位因子 rp (r01p r12p * x) / (1 r01p * r12p * x) # 多次反射求和 rs (r01s r12s * x) / (1 r01s * r12s * x) rho rp / rs delta np.rad2deg(np.angle(rho)) psi np.rad2deg(np.arctan(np.abs(rho))) return delta, psi lam np.array([400, 500, 632.8, 800]) # 单位 nm n_si 3.88 0.018j # 硅衬底近似 delta, psi psi_delta_single_layer(lam, 1.0, 1.46, n_si, 70.0, 80.0) print(delta:, np.round(delta, 2)) print(psi :, np.round(psi, 2))逻辑说明fresnel按 p、s 两个偏振态分别算界面反射系数fresnel里 p 分量用 cosθ/(n·cosθ) 组合、s 分量用 n·cosθ 组合两者不可互换。psi_delta_single_layer中用x exp(-2jβ)表示光在膜内往返一次累积的相位分母1 r01·r12·x是无限次反射的几何级数求和这就是 Airy 公式。rho的辐角即 Δ模值取 arctan 即 Ψ。参数说明n0是环境折射率空气取 1.0n1是膜层折射率这里固定 1.46n2是衬底复折射率硅在可见光附近虚部不能忽略写成复数才能反映吸收th0_deg是入射角介质薄膜测量通常取 65°75°越接近布儒斯特角 Δ 对厚度的灵敏度越高。d单位为 nm波长也统一用 nm量纲必须一致混用 μm 和 nm 会让 β 差 1000 倍。3. 从 Δ、Ψ 反解厚度与折射率建模、色散与最小二乘反演3.1 三个必设的建模参数入射角、波长范围、色散模型反演不是纯数学拟合它有物理约束。入射角必须设准它是光程的几何因子角度偏 0.1°膜厚可能偏 1%2%。波长范围要覆盖材料有意义的透明区起点选在材料吸收边之外终点看探测器上限常见 4001000 nm。第三个是色散模型它把「每个波长一个未知折射率」压缩成「几个色散系数」否则未知数比方程还多。这里有个常被忽略的取舍色散模型选得越复杂拟合越容易收敛但高相关参数会互相抵消出现「MSE 很低、参数没意义」的结果。介质薄膜大多在透明区工作Cauchy 或 Sellmeier 就够用不要一上来就上 Tauc-Lorentz。3.2 Cauchy 与 Sellmeier介质薄膜折射率色散怎么选材料典型波段推荐色散模型初值建议热氧化 SiO₂2501000 nmCauchyA≈1.46B≈0.003 μm²PECVD Si₃N3001000 nmCauchy / SellmeierA≈2.0B≈0.01TiO₂3501000 nmSellmeier需给吸收边非晶硅 a-Si4001000 nmTauc-Lorentz带隙约 1.7 eV聚合物薄膜4001000 nmCauchyA≈1.5B≈0.005混合相/多晶全波段EMA 有效介质组分比 各相色散Cauchy 形式为 n(λ) A B/λ² C/λ⁴C 项通常省略参数少、收敛稳适合透明介质。Sellmeier 用共振项描述适合折射率随波长下降更陡的材料。Tauc-Lorentz 带吸收用于非晶半导体。表格里的初值只是量级参考实际值随工艺差异明显PECVD 氮化硅的 A 值在 1.92.1 之间都可能。3.3 用 scipy 最小二乘反演膜厚与色散系数反问题就是把 Δ、Ψ 实测值和模型值的残差压到最小。下面把膜厚 d 和 Cauchy 的 A、B 作为待拟合参数用least_squares求解。import numpy as np from scipy.optimize import least_squares def model(params, lam, th0_deg): d, A, B params n1 A B / lam**2 # Cauchy 色散lam 单位 nm n_si 3.88 0.018j return psi_delta_single_layer(lam, 1.0, n1, n_si, th0_deg, d) def residual(params, lam, psi_exp, delta_exp, th0_deg, w_psi1.0, w_delta1.0): delta_c, psi_c model(params, lam, th0_deg) # Δ 解包裹把阶跃拉平避免优化器追逐 360° 跳变 delta_c np.rad2deg(np.unwrap(np.deg2rad(delta_c))) delta_exp_u np.rad2deg(np.unwrap(np.deg2rad(delta_exp))) return np.concatenate([(psi_c - psi_exp) / w_psi, (delta_c - delta_exp_u) / w_delta]) # lam, psi_exp, delta_exp 为实测三列初值 d50 nm, A1.45, B0.003 p0 [50.0, 1.45, 0.003] sol least_squares(residual, p0, args(lam, psi_exp, delta_exp, 70.0), bounds([0, 1.0, 0.0], [500, 3.0, 0.05])) print(厚度 nm:, round(sol.x[0], 3), A:, round(sol.x[1], 4), B:, round(sol.x[2], 5)) print(MSE:, round(np.mean(sol.fun**2), 6))逻辑说明model先把 Cauchy 色散展开成波长相关的 n₁再调用前面写好的正问题函数。residual把 Ψ 和 Δ 的残差拼成一个向量交给优化器两个量量纲不同都是度所以可以各给一个权重。解包裹必须在模型和实测两侧同时做否则一边跳一边不跳残差会出现虚假的尖峰。参数说明p0的初值直接决定能否收敛到物理合理的解膜厚初值宁可给大一点也不要给 0否则 β≈0Δ 对 d 的梯度接近零优化器会卡住。bounds强制 A 大于 1、B 非负避免出现折射率小于 1 这种非物理结果。w_psi、w_delta用来平衡两类数据——如果 Δ 曲线噪声明显更大把w_delta调大等于降低它的权重。3.4 相位解包裹与权重让 Δ 不跳变Δ 的包裹问题是反演失败的高频原因。膜越厚、波长范围越宽Δ 的累计相位越容易越过 ±180°实测曲线出现竖直跳变。除了np.unwrap还要注意探测器在 Δ 接近 0° 或 180° 时 Ψ 的测量噪声会被放大这些波长点的权重应该下调。另一个做法是只在 Δ 单调的波段做初拟合拿到粗略膜厚后再放开全波段精修收敛稳定性会好很多。4. 一套介质薄膜椭偏数据的落地流程与排错4.1 数据导入与入射角标定两个常被跳过的前置动作拿到椭偏仪导出的数据第一件事是确认列定义。常见格式是波长、Ψ、Δ 三列有的仪器直接输出 cos(Δ) 和 tan(Ψ)有的输出 α、β 中间量。先看文件头再决定要不要转换# 查看数据文件前几行确认列顺序与单位 head -5 sample_70deg.txt # 输出示例: # WaveLength(nm) Psi(deg) Delta(deg) # 400.0 23.451 152.337 # 401.6 23.502 152.110如果列头是cos(Delta)就必须先反算 Δ arccos(value)并注意 arccos 的主值范围只有 0°180°会丢符号需要用 Ψ 的辅助信息判断象限。入射角标定更关键仪器显示 70° 不等于样品法线真的是 70°样品架倾斜、背反射都可能带来零点偏差。常用做法是先用一块已知厚度的标准 SiO₂ 片标定角度把角度作为拟合参数放进去看一眼偏移量。4.2 拟合参数怎么放从少到多逐步放开一次性把所有参数都放开是新手最容易踩的坑。稳妥的顺序是三步第一步固定色散系数为已知文献值只拟合膜厚确认 MSE 能降下来第二步放开 A、B观察膜厚是否稳定第三步如果 MSE 仍然偏高再考虑加界面层或粗糙层。步骤固定参数放开参数观察指标1A、B、入射角膜厚 dMSE 是否显著下降2入射角d、A、Bd 是否漂移超过 2%3—d、A、B、界面层厚度MSE 与参数相关系数第二步里如果 d 随 A、B 一起乱跑说明数据信息量不够应该增加入射角数量而不是继续加参数。4.3 结果判读MSE 之外还要看置信区间和相关系数拟合收敛不等于结果可信。要同时看三样东西MSE 的绝对值通常要求落在仪器噪声水平Ψ、Δ 约 0.02°0.05°每个参数的置信区间用least_squares的雅可比矩阵估算协方差膜厚相对误差超过 1% 就要警惕参数相关系数矩阵d 与 A 的相关系数如果超过 0.95说明二者在数学上几乎不可分必须靠多角度数据解耦。介质薄膜测量里 d 与 n 的强相关是结构性难题不是拟合算法能解决的。4.4 四个最常见的坑粗糙层、界面氧化、背反射、角度偏差表面粗糙层会同时压低 Ψ 并改变 Δ如果模型里没有它多出来的偏差会被强行塞给膜厚造成系统性偏薄。工程做法是加一层 EMA 有效介质层把粗糙层当作膜材料与空气的混合物厚度通常在 13 nm。界面氧化是第二个坑。硅衬底上的 SiO₂ 膜界面处天然存在 12 nm 的过渡层忽略它会让折射率拟合值偏低。背反射对透明衬底尤其致命光从衬底背面反射回来叠加到信号上会引入快速振荡的伪条纹解决办法是把衬底背面做粗磨或涂黑。角度偏差前面说过但它的影响是系统性的两个入射角数据如果角度标定差 0.5°联合拟合的残差会出现交叉趋势看残差图比看 MSE 更容易发现。5. 进阶多角度多波长联合与传输矩阵法扩展单角度单波长范围的数据本质上是解一组欠定方程d 与 n 的相关性很难破除。解决办法是做多角度联合拟合同一片样品在 65°、70°、75° 三个角度各测一遍把三组 Δ、Ψ 拼成一个残差向量。角度不同意味着光程的几何因子不同d 和 n 在三个角度下的响应模式不一样相关性自然被拉低。实践中的经验是三个角度能把 d 的相对误差压到 0.5% 以内前提是角度标定要准。第二个方向是把单层膜模型换成分层传输矩阵TMM。多层膜、超晶格、带界面层的结构Airy 公式不再适用需要用特征矩阵逐层递推。核心是把每层写成M_j [[cos(k_j d_j), i·sin(k_j d_j)/η_j], [i·η_j·sin(k_j d_j), cos(k_j d_j) ]]其中 η_j 对 p、s 偏振分别取值整叠膜的总矩阵是各层矩阵按顺序相乘再由总矩阵元素算 r_p、r_s。这样做的好处是可以任意加层粗糙层、氧化层、过渡层都能显式建模代价是参数增多必须配合多角度数据才不至于过拟合。在线监控是第三个延伸场景。镀膜设备里装固定角度、固定波长的椭偏探头实时读 Δ 随时间的变化Δ 过零点或到极值时停止镀膜厚度控制的重复性比石英晶振更好。这里有个实用技巧选工作波长时看 Δ 对厚度的导数曲线把波长设在导数最大的位置监控灵敏度最高如果导数在目标厚度附近接近零那个波长就不适合做终止判据。调试这类在线系统时先把离线拟合的色散系数固化只让膜厚浮动响应速度能压到毫秒级等工艺稳定后再考虑定期重标定色散系数。本文还有配套的精品资源点击获取
返回列表