本节摘要:光谱学是把电磁辐射与物质相互作用翻译成分子结构信息的工具箱。光子能量与波长的关系 E = hc/λ 是万物的标尺:微波测转动、红外测振动、可见-紫外测电子、射频测自旋,一束辐射照上去,不同能级间距的体系会在不同波段吸收。朗伯-比尔定律把吸光度和浓度联系起来,使光谱不仅能"定性"还能"定量"。本节从这一张"波谱地图"讲起,为后续各节的分光技术搭好框架。
阅读完本节,你应当能够:
当一束光穿过物质,它可能被吸收、被散射、被透射。物质对光的吸收不是随机的——只有当光子能量恰好等于某两个能级的间距时,吸收才强烈发生。这就像敲钟:用力敲只能让钟发出固有频率的声音,其余能量都被浪费了。
分子里同时存在好几种性质差异巨大的能级:转动能级间距最小(对应微波)、振动能级居中(对应红外)、电子能级最大(对应可见与紫外),而原子核自旋的能级差极小(对应射频)。正因为能级间距横跨十好几个数量级,光谱学才分成了微波谱、红外谱、紫外-可见谱、核磁共振等相互独立的分支。
所有光谱分析的共同起点是关系式 E = hc/λ。频率 ν 与波长 λ 由 c = νλ 联系,光子能量 E = hν = hc/λ。我们写一个小函数,把能量、频率、波长在常见单位之间换算,立刻看出不同波段对应的能量尺度。
h = 6.626e-34 # 普朗克常数 (J·s) c = 3.00e8 # 光速 (m/s) eV = 1.602e-19 # 1 eV 对应的焦耳数 NA = 6.022e23 # 阿伏伽德罗常数 def wl_to_energy_lambda(lamb_nm): """输入波长(nm),返回单个光子能量(eV)与摩尔能量(kJ/mol)""" lamb_m = lamb_nm * 1e-9 E = h * c / lamb_m # 焦耳 return E / eV, E * NA / 1e3 # (eV, kJ/mol) for name, nm in [("微波 (转动)", 1.0e7), ("红外 (振动)", 2.5e3), ("可见 (电子)", 500), ("射频 1H-NMR", 2.1e8)]: e, kj = wl_to_energy_lambda(nm) print(f"{name:14s} 波长~{nm:>12g} nm → 光子 {e:9.3e} eV, {kj:8.3f} kJ/mol")
从输出的能量跨度能直观看到:转动能级差异只有零点几 kJ/mol,电子跃迁则高达两百多 kJ/mol——差了几个数量级。正因如此,同一台仪器不可能覆盖所有波段,各分支需要不同的光源、分光元件和探测器。
定量分析靠的是朗伯-比尔定律:A = ε·c·l,其中 A 为吸光度(无单位),ε 为摩尔吸光系数,c 为浓度(mol/L),l 为光程(cm)。要注意这个定律只在线性响应范围内成立,高浓度、非均相、光束不纯时都会偏离。
工业上测定水中六价铬含量,最经典的方法就是分光光度法:二苯碳酰二肼与 Cr(VI) 反应生成紫红色络合物,在约 540 nm 处有强吸收。先配标准系列测 A,画标准曲线;再测未知样的吸光度,反查浓度。一整套下来不需要昂贵的质谱,UV-可见分光光度计就能满足环境监测需求。
# 标准曲线法线性回归: A = ε l c, l=1.0 cm import numpy as np c_std = np.array([0.02, 0.05, 0.10, 0.20, 0.40]) # mg/L Cr(VI) A_std = np.array([0.028, 0.075, 0.146, 0.301, 0.598]) slope, intercept = np.polyfit(c_std, A_std, 1) A_unknown = 0.263 c_unk = (A_unknown - intercept) / slope print(f"标准曲线斜率 εl = {slope:.4f} L/mg, 截距 = {intercept:.4f}") print(f"未知样 Cr(VI) 浓度 ≈ {c_unk:.3f} mg/L")
标准曲线的线性程度本身就是数据质量的直接反映——拟合优度不好,往往是浓度超出线性范围或存在干扰,这正是实验方法学要控制的环节。
4.2、4.3、4.4 分别是转动/振动、电子、磁共振在这个框架下的具体展开。而"哪些跃迁允许"由第3章群论的选律决定,能级结构来自第3章量子化学。光谱学因此在物理化学里处于"实验验证理论"的枢纽位置。