光谱处理—基线校正

光谱处理中的基线校正:原理与实现

什么是基线校正?

基线校正是光谱预处理中的关键步骤,用于消除由仪器漂移、背景散射或荧光效应等引起的低频干扰信号。未校正的基线会导致峰位偏移、定量分析误差等问题。
示例:

校正前后对比


基线漂移的来源

  • 探测器温度波动
  • 样品基质散射(如拉曼光谱中的荧光背景)
  • 光学元件老化
  • 非目标物质的干扰信号

常用基线校正方法

1. 多项式拟合法

通过拟合低阶多项式曲线作为基线估计
适用场景:平缓变化的简单基线
关键参数:多项式阶数(通常3-5阶)

2. 自适应迭代重加权惩罚最小二乘法 (airPLS)

通过迭代调整权重矩阵实现基线拟合
优势:自动适应复杂基线形态
关键参数:平滑因子λ、迭代次数

3. 小波变换法

利用小波分解提取低频基线成分
优势:保留高频有用信号
关键参数:小波基函数选择、分解层数


代码实现框架(Python示例)

以下是您可扩展的代码框架模板:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from pybaselines import Baseline
# Set the font family to SimHei (黑体)
plt.rcParams['font.family'] = 'SimHei'

# 读取CSV文件
# 假设CSV文件的列名为'wavenumber'和'absorbance'
# 如果列名不同,请相应修改names参数
data = pd.read_csv("data.csv", header=None, index_col=False)

# 获取波数和吸光度数据
x = data[0].values
y = data[1].values

# 创建基线拟合器
baseline_fitter = Baseline(x_data=x)

# 使用不同的基线校正方法
bkg_1, params_1 = baseline_fitter.modpoly(y, poly_order=3)
bkg_2, params_2 = baseline_fitter.asls(y, lam=1e7, p=0.02)
bkg_3, params_3 = baseline_fitter.mor(y, half_window=30)
bkg_4, params_4 = baseline_fitter.snip(y, max_half_window=40, decreasing=True, smooth_half_window=3)
bkg_5, params_5 = baseline_fitter.airpls(y)

# 计算校正后的光谱
corrected_1 = y - bkg_1
corrected_2 = y - bkg_2
corrected_3 = y - bkg_3
corrected_4 = y - bkg_4
corrected_5 = y - bkg_5

# 绘制结果
plt.figure(figsize=(12, 8))

# 原始数据和基线
plt.subplot(2, 1, 1)
plt.plot(x, y, label='原始光谱', lw=1.5)
plt.plot(x, bkg_1, '--', label='modpoly')
plt.plot(x, bkg_2, '--', label='asls')
plt.plot(x, bkg_3, '--', label='mor')
plt.plot(x, bkg_4, '--', label='snip')
plt.legend()
plt.title('原始光谱和基线')
plt.xlabel('波数')
plt.ylabel('吸光度')

# 校正后的光谱
plt.subplot(2, 1, 2)
# plt.plot(x, corrected_1, label='modpoly correct')
# plt.plot(x, corrected_2, label='asls correct')
# plt.plot(x, corrected_3, label='mor correct')
# plt.plot(x, corrected_4, label='snip correct')
plt.plot(x, corrected_5, label='airPLS correct')
plt.legend()
plt.title('基线校正后的光谱')
plt.xlabel('波数')
plt.ylabel('校正后吸光度')

plt.tight_layout()
plt.show()

关于matlab代码,此处分享几个github库。
链接: https://github.com/zmzhang/airPLS


实际应用注意事项

  1. 参数优化:通过观察残差信号调整算法参数
  2. 过拟合预防:避免基线估计过度贴合真实信号
  3. 效果验证
    • 校正后基线区域应接近零值
    • 特征峰形保持完整
    • 重复测量基线稳定性评估

阅读推荐

  1. Baseline correction for infrared spectra using adaptive smoothness parameter penalized least squares method
  2. Baseline correction using asymmetrically reweighted penalized least squares smoothing
  3. 光谱基线校正算法研究与应用进展,王海朋

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值