本节摘要:谱峰之所以能当指纹,根源是分子能级的量子化——峰位由能级差唯一决定,与仪器无关;峰高通过朗伯-比尔定律与浓度挂钩。本节把这两条物理根基讲透,它们是后续一切处理算法的立论前提。
这一节是全书的第一块地基:第 2 章整备档案时保的"峰形"、第 3 章比对时用的"峰位表",合法性都来自本节的量子化假设。地基不牢,后面每一步都是在沙地上盖楼。
把检测器输出的强度按波长排开,你得到的是一条连续曲线;但对分子而言,可吸收的光子能量是一份一份的。分子只能存在于分立的能级上,吸收光子的必要条件是光子能量恰好等于两个能级之差:
E光子 = hν = hc/λ
这个"恰好"就是指纹性的全部来源。指定分子的某个振动模式,其能级差基本固定(受化学环境影响会有小位移),于是它只在一个很窄的波长窗口里吸收。你在谱图上看到的一个个峰,就是一个个被"点名"的能级差。反过来说,峰位几乎不受浓度、不受仪器品牌影响——这就是为什么谱库比对主要看峰位,而定量才看峰高。
实际谱峰并不是无限窄的线,因为测不准原理、分子碰撞、多普勒效应都会让能级差"模糊化",于是每条谱线都有天然宽度。仪器分辨率不足还会再叠加一层展宽——记住这一点,第 6 章会诊"分辨率不足"的疑难档案时要用。
气体样品里最典型的是多普勒展宽:分子热运动方向随机,迎着光跑的分子"觉得"光子能量偏高,背着光跑的相反,两边的吸收峰位被拉开,叠加成一个高斯型的展宽轮廓。它的半高宽可以当场算出来:
# 多普勒展宽半高宽:温度与分子质量的影响 import numpy as np k, c, NA = 1.380649e-23, 2.99792458e8, 6.02214076e23 # 玻尔兹曼、光速、阿伏伽德罗 nu0 = 20000.0 # 参考峰位:约 500 纳米,对应 20000 每厘米 for T, M in [(300, 22.99), (600, 22.99), (300, 44.01)]: # (开尔文, 克每摩尔) m = M*1e-3/NA # 单个分子质量,千克 fwhm = nu0*np.sqrt(8*np.log(2)*k*T/(m*c**2)) print(f"T={T}K M={M}g/mol Doppler FWHM={fwhm:.4f} cm-1")
输出:
T=300K M=22.99g/mol Doppler FWHM=0.0517 cm-1 T=600K M=22.99g/mol Doppler FWHM=0.0732 cm-1 T=300K M=44.01g/mol Doppler FWHM=0.0374 cm-1
三个数各有讲头。温度翻倍,宽度只按根号 2 增长(0.0517 到 0.0732)——热运动是随机的,正负方向互相抵消一半;分子质量加倍,宽度按根号二分之一收窄(22.99 换 44.01 克每摩尔,0.0517 变 0.0374),重分子跑得慢,多普勒频移就小。这就是谱库比对时峰位匹配要留容差的物理依据:气相谱库的检索窗口常给到正负几个波数,不是数据不精,而是峰自己会随温度胖瘦。固体和液体里碰撞展宽接手主导,峰宽能到几十个波数——比对液体指纹区时容差还得再放宽。指纹天生就带一点"字迹抖动",鉴定规则必须为此设计。
不同行业习惯用不同横轴:紫外-可见领域爱用纳米,红外领域爱用波数(每厘米内的波数,数值上等于 1/波长(厘米)),光化学文献常用电子伏。三者可精确互换,代码里一行就能完成:
# 波长 / 波数 / 光子能量 三坐标互换 # 常数取 2018 年 CODATA 推荐值 c = 2.99792458e8 # 真空光速,米每秒 h = 6.62607015e-34 # 普朗克常数,焦耳秒 q = 1.602176634e-19 # 元电荷,库仑 for lam_nm in [200, 400, 700, 1000, 2500]: # 五个代表性波长 lam_m = lam_nm * 1e-9 # 纳米换米 wn = 1e-2 / lam_m # 波数:每厘米 E = h * c / lam_m / q # 光子能量:电子伏 print(f"lambda={lam_nm}nm wavenumber={wn:.1f}cm-1 E={E:.3f}eV")
运行输出(可直接复算):
lambda=200nm wavenumber=50000.0cm-1 E=6.199eV lambda=400nm wavenumber=25000.0cm-1 E=3.100eV lambda=700nm wavenumber=14285.7cm-1 E=1.771eV lambda=1000nm wavenumber=10000.0cm-1 E=1.240eV lambda=2500nm wavenumber=4000.0cm-1 E=0.496eV
注意一个工程细节:波数与波长是反比关系,波长轴上的等间隔在波数轴上并不等间隔。如果你的仪器导出的原始数据是波长轴,而文献里的标准峰位是波数轴,插值重采样时用线性插值会引入系统偏差——处理红外数据前先统一坐标轴,是第 3 章比对前的标准动作。
峰位告诉你"是谁",峰高告诉你"有多少"。把二者连起来的是朗伯-比尔定律:
A = ε·c·l
其中 A 是吸光度(定义为透射率倒数的常用对数),ε 是摩尔吸光系数(物质与波长的属性),c 是浓度,l 是光程。这条线性关系是单组分定量、校准曲线乃至化学计量学建模的物理起点。用一组数验证它的量级:
# 朗伯-比尔定律的数量级演练 eps = 1.2e4 # 摩尔吸光系数,升每摩尔每厘米(典型强吸收发色团) l = 1.0 # 比色皿光程,厘米 for c_mol in [2.0e-5, 5.0e-5]: # 两种浓度,摩尔每升 A = eps * c_mol * l # 吸光度 T = 10 ** (-A) # 透射率 print(f"A={A:.3f} T={T*100:.2f}%")
输出:
A=0.240 T=57.54% A=0.600 T=25.12%
吸光度 0.24 对应约 58% 的透过——检测器还能收到一半以上的光,测量从容;吸光度 0.6 时只剩四分之一的光透过,噪声开始放大。经验法则:让定量样品的吸光度落在 0.1 到 0.8 之间,稀释一下样品,比事后在软件里"优化"管用得多。这也解释了第 2 章里为什么高浓度样品的谱往往最难整备——透过光太弱,检测器的散粒噪声相对占比飙升。
比尔定律是线性近似,两处典型失效要提前知道。其一,高浓度:吸光度超过 1 后,分子间相互作用改变 ε 本身,曲线往下弯;其二,散射体系:悬浮颗粒把光散射出光路,等效于"假吸收",混浊样品的表观吸光度里掺着与浓度无关的成分——这正是近红外固体样品要做散射校正(第 2.5 节)的物理原因。档案在采集端被污染,处理端只能尽量找回公平。
下一节把镜头拉远:同一份样品,在紫外、红外、拉曼等不同"档案种类"下长什么样,选型时各自看什么。