基线校正——多项式拟合

小耿成长记录第一天0106
拉曼光谱数据处理学习读文献记录第一天

由于荧光背景、样品及周围环境的黑体辐射等影响,导致光谱的基线产生,其表现为缓慢变化曲线,直接对后续的数据分析产生影响。因此需要在后续处理之前将谱线中的基线消除。

分三步:
① 峰值消除;
② 多项式拟合逼近基线,得到基线;
③ 减去基线,得到基线校正后的光谱数据。

其中,拟合残差计算公式如下:

在这里插入图片描述

式中O(x)为原始光谱,P(x)为拟合光谱,DEV为残差。

残差判断条件如下:
If i=1,判断条件为abs(DEV1-DEV)/DEV1<0.05;
else,判断条件为abs(DEVi-DEVi-1)/DEVi<0.05;
原文链接:https://blog.csdn.net/dongke1991/article/details/123802799
常用的基线校正算法有分段线性拟合法、局部极值中值法、多项式拟合法。

在这里插入图片描述

%读取该目录下的所有txt文件
% 读取后file_list 的属性有
% name -- file_name  
%通过字符串拼接,获取绝对路径可以直接用[],也可以用strcat()函数
clear;clc;
path1 = 'C:\Users\Gmy\Desktop\光谱\2\';
file_list1 = dir([path1,'*.txt']);
file_name1 = sort({file_list1.name});
len1 = length(file_list1);
filename1 = cell(1,len1);
text1 = cell(1,len1);
for i = 1:len1
    filename1{i} = [path1,file_name1{i}];%通过字符串拼接获得的就是绝对路径了
    text1{i} = load(filename1{i});
end
figure(1)
for i=1:1
 figure
    x = text1{i}(:,1);
    y1 = text1{i}(:,2);
    plot(x,y1);
    title('拉曼光谱图')
    xlabel('拉曼位移')
    ylabel('拉曼强度')


y = sgolayfilt(y1,5,7)
%%
% x=[];%拉曼位移
% y=[];%原始光谱
n=5;%多项式阶数
[p0,s0,mu0]=polyfit(x,y,n);%多项式拟合
y_fit0=polyval(p0,x,[],mu0);%计算拟合值
r0=y-y_fit0;
dev0=sqrt(sum((r0-mean(r0)).^2)/length(r0));%计算残差
y_remove0=y(find(y<=y_fit0));%峰值消除
x_remove0=x(find(y<=y_fit0));%峰值消除
i=1;
judge=1;
while(judge)
[p1,s1,mu1]=polyfit(x_remove0,y_remove0,n);%多项式拟合
y_fit1=polyval(p1,x_remove0,[],mu1);%计算拟合值
r1=y_remove0-y_fit1;
dev(i)=sqrt(sum((r1-mean(r1)).^2)/length(r1));%计算残差
if i==1
    judge=abs(dev(i)-dev0)/dev(i)>0.05;
else
    judge=abs((dev(i)-dev(i-1))/dev(i))>0.05;%残差判断条件
end
index=find(y_remove0<=y_fit1);
y_remove0(index)=y_fit1(index);%光谱重建,大于拟合值的数据用拟合值代替,小于拟合值的数组采用原始数据
i=i+1
end
y_baseline=polyval(p1,x,[],mu1);%基线
y_baseline_correction=y-y_baseline;%基线校正后
figure(1)
h=plot(x,y,'b',x,y_baseline,'m',x,y_baseline_correction,'r')
set(h,'Linewidth',1,'Markersize',1)%设置线宽和点的大小
title('基线校正效果','fontsize',20)%图形标题
xlabel('波数','fontsize',10)%x轴名称
ylabel('幅值','fontsize',10)%y轴名称
grid on %打开网格线
legend('原始光谱','基线','基线校正后的光谱')%添加图例
axis tight


    hold on
end
hold off

在这里插入图片描述

  • 10
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值