XPS原始数据分峰拟合这件事,说难不难,说简单也远没到能随手拉个软件点两下就完事的程度。我这些年帮不同课题组处理过几百张XPS原始数据的分峰拟合,见过太多同学卡在“测试报告拿到手、图谱也导出来了、打开软件却不知道怎么下手”这个环节。还有不少人做个C 1s或者N 1s的拟合,随便拖几个峰上去,看起来挺像那么回事,但审稿人一问“峰位依据是什么”“半峰宽为什么差这么多”“残差为什么是波浪形的”,当场就答不上来。今天这篇,我就把XPS分峰拟合的完整流程、参数设置逻辑、常见坑位全部讲透,按这个思路走,绝大多数样品的数据处理都能做得干净、规范、拿得出手。
这篇文章不是只讲软件怎么点。我会把每个关键步骤背后的原理讲清楚,比如为什么要做荷电校正、背底为什么优先选Shirley、自旋轨道劈裂双峰为什么必须加面积比约束、拟合到什么程度才算“收得住”。不管你是刚拿到第一批XPS数据的新手,还是已经拟合过几张图谱但总被质疑参数不合理的进阶选手,这套方法论都能直接套用。
1. 先搞清楚为什么非做分峰拟合不可
这个环节想多用一点篇幅写,因为很多人对分峰拟合的理解停留在“把重叠的鼓包拆成几个小峰”,但真正决定拟合成败的,是你有没有理解XPS谱图的底层逻辑。
1.1 XPS谱图其实是“化学态信息的叠加态”
XPS测的是什么?是用X射线照射样品表面,激发出元素的内层光电子,通过分析光电子的动能来得到结合能。每个元素都有自己的特征光电子峰,但同一种元素在不同化学环境里,核外电子分布会有细微差异,内层电子的结合能也会跟着偏移,这个偏移就叫化学位移。比如碳元素,C-C/C-H的C 1s结合能通常在284.8 eV附近,但碳一旦连上氧形成C-O,结合能会移到286.2 eV左右,形成O-C=O的话,会在288.5 eV附近再出一个峰。
问题在于,这些化学位移往往只有1到3 eV,而XPS峰本身还有天然线宽和仪器展宽,几种化学态凑在一起时,你看到的就是一个不对称的、带肩峰的宽包络。这个包络本质上是由好几个“子峰”叠加成的,而不是某一个单一化学态的信号。
所以,想从谱图里读出“样品表面存在哪几种化学态,每种占多少比例”,就必须把叠加的包络数学化地分解成一个个独立的峰,这就是分峰拟合的物理意义。
1.2 不做拟合,连定性结论都没法下
有些人觉得,XPS测试报告里不是已经写了元素含量吗?那只是元素的定量,基于峰面积积分算出来的总量。但“这个元素以什么价态存在”这种信息,报告上是不会直接给你的。
举个例子,我处理过一个Co基催化剂的样品。测试出来的Co 2p谱图就是一坨宽峰,如果只看原始包络,根本分不出Co金属态、CoO和Co3O4各自贡献了多少。但用分峰拟合拆解之后,Co 2p3/2主峰在778.1 eV处可以归属为金属态Co,779.9 eV附近对应CoO,而Co3O4的特征峰在780.5 eV左右,还会伴随明显的卫星峰结构。没有拟合,这些信息全部埋在宽峰里,根本拿不出来。
审稿人现在对XPS数据的要求也很高。你说“样品表面存在Co2+”但拿不出一张合理的分峰拟合图,或者拟合时随意加峰不加依据,基本都会被质疑。现在主流期刊普遍要求投稿时提供拟合参数,包括每个峰的峰位、半峰宽、峰面积比例、约束关系等。所以分峰拟合已经不是“可选项”,而是“必选项”。
1.3 什么样的数据适合分峰拟合
也不是所有XPS谱图都适合做分峰拟合。如果原始数据信噪比很差,峰本身宽得离谱(比如绝缘样品严重的荷电效应没有校正干净),那再怎么拟合都是强行凑数。合格的拟合前提有几个:一是目标元素的信号强度要足够,高低能两侧的背景别太夸张;二是建议至少采集窄区高分辨谱,而不是只用全谱扫描的数据;三是峰位漂移问题必须通过荷电校正解决,否则后面的峰位归属全是空中楼阁。
我在写这篇教程时,默认你手里已经有标准的XPS高分辨窄区扫描数据,比如C 1s、O 1s、N 1s、Fe 2p这类常规区域。拿到这样的数据,才能真正进入下面的实操环节。
2. 拟合前的准备工作:软件选型与数据质量检查
分峰拟合的成败,有一半在进软件之前就决定了。原始数据拷出来后,先别急着开拟合工具,把下面几件事做扎实,后面会省很多事。
2.1 常用XPS处理软件怎么选
市面上的XPS数据处理软件主要有这几类:仪器厂商自带的处理程序,比如Thermo Scientific的Avantage、Kratos的Vision/ESCape,以及VG/Scienta系列自带的工具;还有跨品牌通用的分析软件,CasaXPS是其中最主流的,另外还有XPS Peak Fit 4.1这类免费小工具,以及万能工具Origin里的分峰插件。
我的习惯是,只要数据格式允许,优先用CasaXPS。为什么?因为它对各种仪器导出的数据兼容性最好,几乎能把市面主流XPS仪器输出的数据格式直接拖进去处理。而且CasaXPS的峰形参数控制非常细,Gaussian-Lorentzian混合比、不对称峰形、自旋轨道劈裂约束都能精确设置。对于每天要处理大量拟合数据的场景,这些功能是硬需求。
给你一个直观的软件对比,方便按自己的情况选:
| 软件 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| CasaXPS | 跨品牌数据、复杂拟合 | 参数控制全面、兼容性好、自动化程度高 | 界面老旧、上手门槛偏高、需付费购买授权 |
| Avantage | Thermo仪器用户 | 与仪器数据无缝衔接、操作界面友好 | 仅限Thermo生态,其他品牌数据导入麻烦 |
| XPS Peak Fit 4.1 | 零基础快速上手 | 免费、体积小、操作直观 | 功能较老,复杂双峰约束不方便 |
| Origin分峰插件 | 已有Origin习惯的用户 | 绘图方便,可直接出图 | 拟合逻辑偏通用,XPS专业约束支持弱 |
新手如果只是偶尔拟合一两张C 1s、O 1s,用XPS Peak Fit 4.1或Origin插件也能应付。但如果涉及过渡金属2p、自旋轨道劈裂双峰、卫星峰拟合这类复杂情况,还是建议直接学CasaXPS,少走弯路。
2.2 原始数据的导入与格式预处理
拿到测试中心的原始数据后,常见格式有 .vms(VG Scienta)、.txt 或 .dat(Kratos)、.pks(PHI)、.avg(Thermo)等。大多数情况下,测试机构会同时给你一份导出的Excel/文本格式数据,两列分别对应结合能(Binding Energy,单位eV)和计数(Counts/s 或 CPS)。
导入CasaXPS时,如果是仪器原生格式就直接拖进去;如果是纯文本格式,需要确认第一列是不是结合能。强烈建议检查一下横轴方向:XPS图谱通常以结合能为横轴,且从高结合能到低结合能排列(因为扫描方向一般从高到低)。如果导入后横轴是反的,在CasaXPS里用“Spectrum/Abscissa”相关的反转功能调整一下就好。
还有一个容易忽略的步骤,就是检查能量范围。如果窄区扫描的起点和终点与目标峰区域差距太大,拟合时背底容易跑偏。一般C 1s区域采集280-295 eV就够了,留太宽反而会让Shirley背底在两端表现不好。
2.3 荷电校正:所有分析的地基
XPS分析的是样品表面受X射线激发后逸出的光电子。绝缘体或导电性差的样品,表面会因为光电子不断逸出而积累正电荷,导致测得的结合能整体向高结合能方向偏移,这个现象叫荷电效应。如果不做校正,你测出来的峰位会比真实值高几个eV,所有化学态归属全都会错。
最常用的荷电校正方法是参考C 1s峰。因为几乎所有样品表面都会吸附少量含碳污染物,大家默认这个不定形碳的C 1s结合能为284.8 eV。具体做法是:先找到C 1s高分辨谱中最高峰的位置,假设测出来是286.3 eV,那么偏移量就是284.8 - 286.3 = -1.5 eV,说明所有谱图需要向低结合能方向平移1.5 eV。
操作上,在CasaXPS里可以用能量校正工具整体移动所有的谱图。注意,荷电校正是对全谱统一处理,不是你单独移动某一条谱线。我做数据审核时发现,很多人只校C 1s,不校其他元素谱,导致C 1s峰位准了但其他元素峰还是偏的。正确做法是一口气把所有区域谱图全部平移到位。有些样品不含碳或表面碳信号太弱,也可以参考已知价态的Ar 2p、Au 4f、或者样品基体中稳定元素的峰位来校正,但常规样品最稳妥的基准还是C 1s。
3. 分峰拟合的核心操作流程:从背底到建模再到迭代
打好底子之后,进入重头戏。分峰拟合不是把峰一个一个拖上去看“像不像”,而是有一套标准化的流程,每一步都要有理有据。
3.1 背底扣除:为什么首选Shirley
XPS谱图里的背底,主要来自光电子在样品内部发生非弹性散射后损失能量产生的连续背景。如果不扣背底,拟合出的峰面积会混入本不属于该化学态的散射电子信号,定量结果会失真。
常用的背底类型有三种:Linear(线性)、Shirley、Tougaard。线性背底就是两点连直线,适合背底比较平的简单体系,实际峰面积误差较大。Shirley背底是目前最通用的选择,它考虑了峰高能侧与低能侧的强度差,通过迭代方式让背底曲线在每个能量位置与两侧信号强度自洽。Tougaard背底更精确,基于电子能量损失函数推导,适合宽能量范围扫描、需要精确分析过渡金属价带的场景,但对常规窄区扫描来说有点过度设计。
我的默认方案是:只要峰区两端背景基本水平,直接用Shirley。如果谱图中有严重的俄歇峰干扰或者背底随能量剧烈起伏,再考虑Tougaard。一个常见错误是,有人先选了Linear背底拟合完,看到效果不好就切换到Shirley,却不重新优化峰参数。实际上背底类型一变,峰面积和峰位置都会受影响,必须重新走一遍拟合流程。
3.2 峰数目的确定:查文献、找归属、不硬凑
很多新手问我,拟合的时候到底该加几个峰?这是个好问题,也是最容易翻车的地方。
原则是:峰数目由化学态决定,不由“拟合效果更好”决定。你需要先知道样品里这个元素可能有哪些价态或化学环境,再对照文献查到每种化学态对应的结合能范围,然后在相应的能量位置建峰。
举个例子,处理N 1s谱。常见归属有:398.5 eV附近对应吡啶氮,400.1 eV附近对应吡咯氮,401.3 eV附近对应石墨氮,402-403 eV附近还可能出现氧化态氮。如果你的材料是氮掺杂碳材料,那么在N 1s区域建355-405 eV的窄区扫描,拟合时就应该优先尝试这四个峰位,而不是随便在最高点下面放一个峰。
建峰时,峰数宁少勿多。多塞一个峰,拟合残差确实能下降,但物理意义几乎为零,审稿人看到你加了五个峰还没有说明,通常会质疑。正确做法是:先按已知化学态建最小数目的峰,拟合后看残差是否合理,必要时再增加一个峰,且每一个峰都要有文献支撑。
另外要特别注意双峰结构。对p、d、f轨道,由于自旋-轨道耦合,XPS峰会劈裂成两个峰,比如2p轨道劈裂成2p3/2和2p1/2,3d轨道劈裂成3d5/2和3d3/2。这两个峰的面积比是固定的(2p为2:1,3d为3:2),劈裂能量差也是元素化学态的特征值。拟合时必须把这两个峰作为一个整体来建,而不是独立地两个峰。
3.3 峰形与约束条件的设置逻辑
峰形选择上,XPS峰通常用Gaussian与Lorentzian混合函数来描述,CasaXPS里常见的GL(30)、GL(70)就代表洛伦兹占比30%或70%。一般有机物、氧化物用GL(30)比较合适,金属样品因为费米边附近存在能量损失过程,常需要用非对称峰形,比如CasaXPS里的LF(1,1,1)、LA(1,1,1)等,这类峰尾部衰减较慢,能更好地拟合金属态峰。有个简单的判断方法:如果金属态峰用对称峰形拟合时,低结合能侧尾部总是拖不干净,说明你需要换成不对称峰形。
半峰宽(FWHM)也要设初始值。通常主峰FWHM在1.2到1.8 eV之间比较正常,个别仪器分辨率差或样品不均匀可能到2.0 eV。如果拟合出来某个峰的FWHM超过2.5 eV,或者小于0.5 eV,就要警惕是不是峰建得不对。
这种情况下,可以给同一元素的不同化学态峰一个FWHM约束,比如设置成相似的值。我实际操作时,一般先放开所有峰参数跑一轮初始拟合,观察哪个峰FWHM特别离谱,然后把它拉回正常范围并加约束,再重新优化。
自旋轨道劈裂双峰则要设置面积比、能量差和半峰宽一致这三重约束。比如Cu 2p,2p3/2和2p1/2的能量差固定在19.8 eV,面积比固定为2:1,FWHM可以相等。这样做的好处是极大减少拟合自由度,避免软件靠一堆不合理的参数硬凑出好看的效果。
3.4 迭代拟合的过程控制与收敛判据
参数设好后,开始迭代。在CasaXPS里先点拟合按钮,观察峰位、峰面积、背底的变化。第一次迭代后别急着收工,看残差线(数据点与拟合曲线的差值)是否在零基线附近均匀波动。
理论上有几个判断指标值得关注:
- 残差线:最好的状态是在全能量范围内围绕零基线无规则地小幅度波动。如果残差在某个区域呈明显的“U形”或者“S形”,说明那里有漏掉的峰或背底不合适。
- 拟合优度参数:CasaXPS的Fitting面板里会给出拟合优度(如chi-squared、RMS等)数据。数值越小越好,但不要单独迷信数值,因为峰加多了数值肯定会变好。
- 峰参数合理性:每次迭代完成后,逐一核对每个峰的峰位是否在文献范围内,FWHM是否合理,面积比例是否与你的样品实际情况相符。
整个迭代过程不是一次跑完就结束的。我常用的顺序是:先用约束条件松散的参数跑一轮,然后根据残差调整峰数目,加约束,再跑,反复两三轮。等到残差和参数都稳定了,最后一次拟合时把约束放开一点点,确认参数没有大幅漂移,才算真正收敛。
3.5 结果校验与导出
拟合完成后,还需要做一步数据质量核查,核对的要点包括:
- 所有峰的加和曲线与原始数据点的吻合度,肉眼观察不能有明显系统偏差。
- 峰面积对应的相对含量是否合理。比如你的C 1s谱里C-C占60%以上,说明样品表面碳污染不严重,这个比例与样品制备条件是否相符。
- 荷电校正是否准确,C 1s校准峰位是否最终落在284.8 eV。
导出时,建议把每个峰的峰位(Position)、FWHM、峰面积、相对占比做成表格,连同拟合谱图一起保存。很多期刊的Supporting Information里需要放这个表,早点整理好后面能省一大堆补数据的时间。
4. 常见问题与排查技巧实录
这个部分我根据自己的实操经验,把最常踩的坑、最常被问到的问题整理成一组速查和排查思路。
4.1 拟合不收敛或者参数震荡怎么办
症状:点拟合按钮后,峰位置、峰面积来回跳,无法落到一个稳定解。
这种问题通常有三种原因。一是初始参数设置太差,比如峰位离真实值差了1 eV以上,拟合算法找不到合适的收敛方向。解决方法是人为把峰位拖到残差图上显示“有峰”的位置附近,再开始拟合。
二是约束条件不足,自由度太多。比如建了4个完全独立的峰,每个峰有位置、FWHM、高度三个自由度,总共12个参数要拟合,很容易震荡。这时候应该判断是否存在双峰对,如果有就加自旋轨道劈裂约束,或者对FWHM加上下限。
三是背底区域选择不合理。背底两端必须落在无峰干扰的“干净区”,如果端点落在峰的斜坡上,背底每次迭代都会变化,导致拟合不稳。
4.2 FWHM异常和卫星峰处理
FWHM过大,尤其是超过2.5 eV的情况,通常说明在一个“峰”下面其实藏着两个化学环境相近但稍有差异的成分。比如Fe 2p谱中Fe2+和Fe3+的峰位只差不到1 eV,如果强行用一个峰去拟合,FWHM就会被撑得很大。这时候应该先核对文献,看是否需要拆成两个峰,而不是放任FWHM变大。
还有一类容易被忽略的是卫星峰(shake-up satellite)。过渡金属氧化物(比如NiO、CoO、CuO)的主峰高结合能侧几步处会出现伴峰,这些是光电子激发过程中伴随价带电子激发产生的能量损失峰,峰位、相对强度都有规律可循。Cu 2p就是一个非常典型的例子:Cu2+会在大约940-944 eV区域出现强烈的shake-up卫星峰,而Cu/Cu2O则没有。拟合时必须把这个卫星峰也纳入模型,否则会严重影响主峰的背底和面积。
建议处理含过渡金属样品时,先找一两篇该元素体系的高质量文献,把主峰、卫星峰、可能的能量损失峰位置都标出来,再开始建峰。
4.3 “拟合效果很好”但不被认可的坑
我的标准流程里,拟合完成后要测试“鲁棒性”。具体做法是:把初始峰位故意偏离0.1-0.2 eV,重新跑一遍拟合,看看最终收敛的峰位和面积是否与之前基本一致。如果变化很明显,说明这个拟合解不稳定,很可能是参数约束不足、峰数目不对,或者背底类型选得不合适。
这很关键。很多人拟合后只看“像不像”或者“chi-square够不够小”,但实际上在优化算法里,高维参数空间可能存在多个局部最优解。没有合理约束的拟合,即使收敛了也可能是“伪拟合”。我之前评审过一些稿件,有些人提交的XPS拟合里,四个峰全是独立参数,FWHM最宽和最窄差了4倍,峰面积比例也与样品预期完全不符,这种数据即使残差再小也是不能被接受的。
4.4 常见问题速查表,建议直接收藏
| 问题 | 可能原因 | 处理方法 |
|---|---|---|
| 所有峰位整体偏右 | 荷电效应未校正 | 用C 1s=284.8 eV做全谱平移 |
| 某个峰宽得异常 | 多个化学态重叠未拆分 | 查文献,在该区间增加合理峰 |
| 金属态尾部拟合不上 | 用了对称峰形 | 换成LF或LA不对称峰形 |
| 双峰面积比不对 | 未加自旋轨道劈裂约束 | 固定2p面积比2:1、3d面积比3:2 |
| 残差呈波浪形 | 背底不合适或漏峰 | 换Shirley背底,逐区检查残差 |
| 添加峰后chi-square下降但物理意义差 | 过度拟合 | 峰数目以化学态为依据,不做无约束加峰 |
| 同一批数据两个人拟合结果差距很大 | 缺少统一约束标准 | 按文献固定峰位范围与FWHM |
| 测绝缘样品时峰特别宽 | 样品荷电或表面不均匀 | 重新测试,配合中和枪(charge neutralizer) |
5. 最后分享一点做XPS拟合的个人体会
很多同学学了一遍分峰拟合流程后,会陷入一个误区:追求软件跑出来的拟合优度越来越好,却忘了回过头来问自己一句:这个峰加得有没有道理?
我的个人经验是,真正靠谱的XPS解析要做到“两条腿走路”。一条腿是数据操作能力,包括背底扣除、荷电校正、参数设置这些硬技能,这些可以通过今天这篇教程还有软件手册反复练习,属于熟练工。另一条腿是化学知识厚度,具体包括你对样品体系的价态认知、对文献中结合能归属的熟悉程度、以及对谱图现象背后物理过程的理解能力。后者没有捷径,只能靠多读文献、多看标准谱图库、多和测试中心的老师交流。
另外还有一个小技巧:拟合的时候,推荐把你建好的峰参数模板保存下来。同一台仪器、同一种元素、类似的样品体系,初始参数基本可以直接复用,只需要根据实测数据微调。积累几套常用模板后,后续数据处理速度快很多。我现在处理C 1s和N 1s的拟合,从导入数据到出图,十分钟内就能完成,靠的就是固定参数模板加标准约束流程。
希望这篇关于XPS原始数据分峰拟合教程的内容,能让你少走一些弯路。数据拟合这件事,拼的不是操作速度,而是每一步都有依据。按照需求规划好自己的拟合流程,守住约束底线,你的XPS图谱会越做越扎实。