2.5 归一化缩放与散射校正


2.5 归一化缩放与散射校正

本节摘要:同一样品两次测量,谱形一致、整体高低不同——光源波动、装样差异、颗粒散射都在制造这种"度量衡混乱"。归一化家族(最大值、面积、单位向量)与散射校正家族(SNV、MSC)是五把不同的标尺,各自能校正一类扰动。本节的对照实验给出一个反直觉结论:对"峰高比"这类任务,三种纯归一化毫无作用。

基线拆完,档案干净了,但还不"公平"。第 1 章说过:光源起伏是乘性干扰(整条谱按比例缩放),暗电流偏移是加性干扰(整条谱平移),固体样品的颗粒散射则两者兼有。它们不改峰位、不改峰形,只改"刻度"——直接拿不同标尺的谱去比对或建模,等于用英寸量身高再报成厘米。本节是整备车间的最后一道"度量衡"工序,位置卡在建模之前,第 3 章所有比对与校正的成败都先经过它。

一、五把标尺各量什么

图3 归一化与散射校正的五把标尺

图3 归一化与散射校正的五把标尺

前三把(最大值、面积、单位向量)都只是逐条谱除以一个标量,分工在分母怎么选;后两把(SNV、MSC)动的是每条谱的减法与除法,把加性偏移一并处理。这个差别看起来细微,实验里会让结果天差地别。

二、对照实验:一个反直觉的结果

模拟同一份样品测六次:每次乘性波动 10%(光源与光程)、加性偏移 0.05(暗电流),再叠 0.01 的噪声。检验指标选峰高比的变异系数——两个特征带的高度之比,是定性比对与掺假鉴别都要用的核心量,它的稳定性直接代表档案质量:

# 五把标尺的对照:峰高比变异系数 import numpy as np rng = np.random.default_rng(5) x = np.linspace(0, 100, 200) base = 0.5*np.exp(-0.5*((x-30)/6.0)**2) + 0.3*np.exp(-0.5*((x-60)/8.0)**2) n = 6 # 同一样品测 6 次 X = np.zeros((n, x.size)) for i in range(n): a = 1.0 + rng.normal(0, 0.10) # 乘性:光源与光程波动 10% b = rng.normal(0, 0.05) # 加性:暗电流偏移 X[i] = a*base + b + rng.normal(0, 0.01, x.size) def spread(M): # 峰高比的变异系数,百分比 h1 = M[:, np.argmin(np.abs(x-30))] h2 = M[:, np.argmin(np.abs(x-60))] r = h1/h2 return r.std()/r.mean()*100 print(f"raw CV={spread(X):.1f}%") print(f"max-norm CV={spread(X/X.max(axis=1, keepdims=True)):.1f}%") area = np.trapz(X, x, axis=1)[:, None] print(f"area-norm CV={spread(X/area):.1f}%") print(f"vector-norm CV={spread(X/np.linalg.norm(X, axis=1, keepdims=True)):.1f}%") X_snv = (X - X.mean(axis=1, keepdims=True)) / X.std(axis=1, keepdims=True) print(f"SNV CV={spread(X_snv):.1f}%") ref = X.mean(axis=0) # MSC 以均值为参考谱 X_msc = np.zeros_like(X) for i in range(n): a, b = np.polyfit(ref, X[i], 1) # 对参考谱回归 X_msc[i] = (X[i] - b) / a # 反解出校正谱 print(f"MSC CV={spread(X_msc):.1f}%")

输出:

raw CV=8.6% max-norm CV=8.6% area-norm CV=8.6% vector-norm CV=8.6% SNV CV=3.1% MSC CV=1.5%

三把归一化尺子交了白卷——8.6% 一动不动。原因一句话:峰高比天生对纯缩放免疫,分子分母同除一个标量,比值不变;真正搅乱比值的是加性偏移(它对不同高度的峰影响不成比例),而三把归一化尺子只治缩放不治平移。SNV 把六条谱的散布压到 3.1%,MSC 干到 1.5%——它们既减又除,把平移和缩放一起清了。

这个结论的工程价值在于选尺子之前先问扰动类型。如果仪器稳定、只有光程差(纯乘性),三把归一化任选;如果谱里明显有上下平移的批间差异(散射、暗电流),直接上 SNV 或 MSC,别在归一化上浪费时间。MSC 与 SNV 理论上高度等价(都是逐谱的线性重整),差别在 MSC 依赖参考谱:参考谱取全批均值,意味着新来的单条谱要带着旧批的参考才能校正——在线场景里这是部署负担,所以流程性快的场合 SNV 更受欢迎。

三、进阶一问:该在哪个坐标上归一化

任务 推荐标尺 理由
峰高比、指纹比对 SNV 或 MSC 加性与乘性扰动都在场
组分占比比较 面积归一化 物理意义直接对应含量
谱库检索(夹角余弦度量) 单位向量 余弦天然配合单位长度向量
多元定量建模 SNV(或配合导数) 化学计量学管线标配
含强散射的固体近红外 MSC 或 SNV 加散射专项 散射是主要矛盾

表格里藏着一个易错点:归一化要在基线校正之后做。若背景还垫在谱下,面积归一化的分母里掺着背景面积,越"归一"越失真——工序顺序不是习惯问题,是数学依赖。

还有一问值得提前想:标尺要不要"留档"。SNV 与 MSC 的均值和标准差都是从当前这批谱算出来的,换句话说,散布被压掉的同时,批间的绝对水平信息也被抹掉了。鉴定所的规矩是原始谱永远只读保存,整备谱另存新档并记录每一步的参数——第 3 章建模若发现怪异结论,回头复查的依据全在这份记录里;丢了原始谱,等于让鉴定人在没有现场的情况下重审案子。

本节要点回顾

  • 纯归一化只治乘性:峰高比对缩放免疫,实验里三把尺子对 8.6% 的散布毫无办法;
  • SNV 与 MSC 治加性加乘性:散布分别压到 3.1% 与 1.5%,散射场景的真正主力;
  • MSC 依赖参考谱,在线部署用 SNV 更轻;
  • 标尺选型跟着扰动类型与下游度量走,不是"永远归一化";
  • 顺序是数学依赖:先基线校正,后归一化。

标尺统一,档案整备只剩最后一道工序:把叠在强峰肩上的小峰顶出来。下一节的导数光谱既是指纹细节的放大镜,也是噪声的放大镜——你在 2.1 压下去的噪声,会在这里部分还账。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U