Files
blog-public/content/blog/originpro-subtract-baseline/index.md
2024-10-22 18:13:55 +08:00

93 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 使用 OriginPro 减去基线
date: 2024-09-17T14:58:25+08:00
draft: false
---
让拉曼的小峰看得见。
<!--more-->
# 为什么要减去基线?
拉曼实验测出来的峰高度差别太大。将瑞丽散射的峰去掉,其余的峰(拉曼散射造成的峰)高度也往往差了几个数量级。
这导致很难选择合适的比例尺来展示全图:即使主峰已经飞到了画面外面,小峰也还是很难识别出来。
一个思路是将结果取对数画图,但对于拉曼散射的结果,直接将数值取对数效果并不明显,因为有一个基底的光强,所有的峰都是叠加在这个基底之上的。
这个基底的光强也许来自热噪音,也许来自环境光,也许是光谱仪 CCD 本身的残留电荷什么的,我们暂时不讨论这个基底是哪里来的。但总之,这个基底是存在的。
比方说基底光强是 $100$,有个小峰光强是 $120$,主峰光强是 $1\times10^6$。
不取对数的话,小峰肯定是看不到的。
但即便取了对数之后,$\cfrac{\lg 120}{\lg{1\times10^6}} \approx 0.3465$$\cfrac{\lg 100}{\lg{1\times10^6}} \approx 0.3333$
可以看到小峰和基底的对比度仍然很小,依然很难看到。
而如果把基底值尽可能减去,比如说减去 $90$
那么 $\cfrac{\lg 30}{\lg{1\times10^6 - 90}} \approx 0.2462$$\cfrac{\lg 10}{\lg{1\times10^6 - 90}} \approx 0.1667$
这时小峰和基底就有了明显的对比。
有时减去基线还有一个动机:有的样品中缺陷太多,直接得到的拉曼的结果中基线特别高(相对于主峰),往往还会有一个大大的凸起,整个图就不是水平的。
这时候把基线减掉就能“掩盖”这个问题,让图更美观。
我们的样品没有这个问题,减不减基线肉眼看到的结果完全没有区别,减去基线只是为了让取对数后小峰更明显。
# 怎么减去基线?
不能简单地减去一个常数,一个线性函数也不行,因为基线不是平的。要人眼盯帧去一截截确定一个直线或者几次函数作为基线并手动写程序处理也是可行的。实际上去基线是一个非常普遍的操作,一些商业软件已经做了这个功能(比如 OriginPro动动手指点点鼠标就行草履虫都能学会。
我看的教程是[这个](https://www.bilibili.com/video/BV1NZ4y1B7Zz)。
写这个文章的目的就是自己整理记录一下基本的过程和自己的经验,免得下次再去找教程。
## 简单去基线的步骤
* 先把数据丢掉 OriginPro 里,然后选中数据。似乎是每次只能处理一列 Y 数据,选中多列也只给你处理第一列。
* 然后点分析,点 “Peaks and Baseline”然后 “Peak Analyzer”打开对话框就会见到一个像是流程图一样的东西。
![OrignPro 打开减去基线的对话框](1.png)
* 选择“Subtract Baseline”然后下一步。之后的基线模式选择“User Defined”之后一般使用默认的二阶导数再之后可以调整点的个数。按我的经验默认的八个点足够用。
* 再之后一路下一步最后就会得到数据。在得到的数据中X 也会被重复几遍,没什么用但是也无伤大雅。
然后就有一个啸问题,就是减去基线后的结果中会有负值,导致取对数后会出现许多“谷”(即非常接近于零的值取对数后会变成非常大的负值),甚至不取对数都会有一些小谷。
原因是 OriginPro 选取拟合基线的点时选取得与谱线过于接近,甚至一些选到了峰上,导致减出来了负值。
## 仔细调整基线
我的解决办法是,在指定点的个数之后的那一步中,点 “Modify/Del”手动调整一下各个点的位置。
对于选取到峰上的点,把它挪到别的地方或者直接删掉。对于选取得基本正确的点,也把它往下挪动一点,使得基线与谱线之间至少有一个像素的距离。
挪动的过程中用鼠标拖拉很难操作,可以用鼠标点击一下想挪动的点,再按键盘的方向键来微调。
对于一些不关注的区域(例如,我的实验测得的拉曼谱中,靠近瑞丽散射的那一端有一个凸起,我们认为这个凸起是滤光片导致的误差),
放任它保持负值就可以了。
这样的手动操作其实是不利于科学结果的复现的,但好像也暂时没有更好的办法。
我个人觉得,既然人眼能看出来基线的位置,就应该存在一个算法能更合适地把这些点找出来
(只不过这个算法可能会需要更多的参数,例如高度与半高宽的比例必须达到某个人为设定的阈值就认为是峰)。
但我暂时不知道这样的现成程序。
最后的结果也可以手动再调整一下,用类似于 `Col(E)-Min(Col(E))+10` 来赋值一个新列,将整体向上或者向下平移一点。
反应到对数的图上,就是抉择是把微小的变化放大(下移但不要产生负值),还是把乱七八糟的线条压扁使得看起来没那么乱(上移)。
总结就是大概分下面几步:
* 软件自动寻找几个用于拟合基线的点。
* 手动调整这几个点,把不合适的去掉或者换个位置。
* 软件自动拟合基线,并减去。
* 手动调整结果(可选)。
# 看个结果?
下面第一张图是拉曼光谱直接得到的实验结果,第二张是处理之后。
可以看到,在大概 $350 \mathrm{mm^{-1}}$ 附近,原本隐匿起来的一个小峰现在就特别明显。
![处理之前](2.png)
![处理之后](3.png)
实际上这个峰还是挺大的,即使不减去基线,直接取对数也能看到;更精细的峰才需要减去基线处理。
但这个图当时测得也比较粗糙,不适合去分析更精细的峰。当然这个就和这个主题无关了。
这个峰实际上对应于 4H-SiC 在 $\Gamma$ 点附近的一个振动模式。
单纯从理论上来说(用群表示论分析这个振动对应的表示),这个振动不会导致 z 方向入射的光再拉曼散射到 z 方向。
实际上它也确实比那些对称性允许的散射弱得多,但实验上测到还是有一点的。更具体的物理上的分析暂时不表。
# 局限性
这个方法画出来的图只是为了方便找小峰,方便自己和导师看。
找到的小峰必须回到原图再去仔细确认,发论文的时候也别整这种图,因为减去基线再取对数的过程中显然很可能会人为造一些峰和谷出来。
记不清是谁来着,拿个取了绝对值再取对数的图在组会上说,两条线上的两个峰之间有一定位移,这个位移有如何如何的物理意义。
但其实在取绝对值再取对数之前,数值上整体变动一点点就会导致那个峰发生巨大的位移,对一个接近零的数值取对数就是会这样,很容易放大误差。