本发明涉及光谱,特别是一种光谱峰值中心的确定方法。
技术背景
在光纤传感领域,布里渊散射谱的光谱中心的移动代表着温度的变化量,应力的变化量;光斑探测领域,光斑中心的变化代表着物体表面的形变;在拉曼光谱分析领域,光谱中心的不同代表着不同的物质。但是由于这些光谱包含着复杂的噪声,造成中心估计不准确,也意味着传感量探测的不准确。在已有的方法中,如拟合法、重心法,对光谱峰值中心的探测精度有限,需要的较高的光谱信噪比,鲁棒性不强,光谱中心的探测精度不高。
技术实现要素:
本发明根据上述的不足,提出了一种光谱峰值中心的确定方法。该方法解决了现有方法鲁棒性低,光谱峰值中心精度探测不高的问题。
本发明的技术解决方案如下:
一种光谱峰值中心的确定方法,其特征在于包括如下步骤:
1)从前端探测系统获取光谱数据和设定的光谱峰值计算中心与真实中心的可容忍误差ε,取值范围为0<ε<1;
2)根据经验,选择现有的光谱峰值中心的计算方法;
3)确定数据范围的中心:对待确定峰值中心的光谱的最大值点的横坐标作为数据范围的中心为s0,令迭代次数t=1;
4)确定峰值中心计算的数据范围:以所述的数据范围中心s0为中点,向左右各取大于m个数据点作为峰值中心计算的数据范围,即m>3;
5)采用所述的计算光谱峰值中心的方法,对所述的光谱数据进行处理得到的光谱峰值中心ct;
6)判断t>1是否成立:成立则进入步骤7),否则进入步骤8);
7)判断|ct-ct-1|<ε是否成立:如果是成立,进入步骤9);否则进入步骤8);
8)令s0=ct,并令t=t+1,返回步骤4);
9)输出光谱的峰值中心ct。
所述的现有的计算光谱峰值中心的方法是基于最小二乘法的二次曲线拟合法、基于最小二乘法的洛伦兹曲线拟合法或重心法。
本发明具有如下的特点和优点:
(1)本发明通过迭代计算修正初始中心估计的误差,鲁棒性强。
(2)与现有技术相比,相同信噪比的光谱,本发明能获取的光谱峰值中心的精度更高;相同精度要求下,减少了提升光谱信噪比的数据处理时间,增加了系统的
运行速度。
(3)本发明可应用于光纤传感,散斑探测,拉曼光谱分析等领域,通用性好。
附图说明
图1是本发明光谱峰值中心的确定方法的流程图
图2是本发明实施例中的布里渊散射的示例光谱
图3是本发明实施例1,二次多项式拟合迭代的峰值中心随迭代次数的变化
图4是本发明实施例1,二次多项式拟合迭代的峰值中心标准差随迭代次数的变化
图5是本发明实施例2,洛伦兹拟合迭代峰值中心随迭代次数的变化
图6是本发明实施例2,洛伦兹拟合迭代峰值中心标准差随迭代次数的变化
图7是本发明实施例3,重心迭代峰值中心随迭代次数的变化
图8是本发明实施例3,重心迭代峰值中心标准差随迭代次数的变化
具体实施方式
下面结合附图和实施例对本发明作进一步的说明,但不限于此。根据本发明的思想,可以采用若干实施方法具体方案并不局限于此。下面结合实施例和附图对本发明进一步详细说明。指出,对于本领域的不同技术人员来说,在不脱离本申请技术方案构思的前提下,还可以做出若干的变形和改进,这些都属于本申请的保护范围。
实施例1:
一种光谱峰值中心的确定方法,包括如下步骤:
1)从前端探测系统获取光谱数据和设定光谱峰值计算中心与真实中心的可容忍误差ε,其中,ε为根据经验确定的参数,取ε=0.01;
2)根据经验选择光谱峰值中心的计算方法,如图2的洛伦兹线型的光谱,基于最小二乘法的二次拟合法是适用的。
3)确定数据范围的中心:对待确定峰值中心的光谱,用其最大值点的横坐标作为数据范围的中心,如图3的数据范围中心s0=339,令迭代次数t=1;
4)确定峰值中心计算的数据范围:以所述的数据范围中心s0为中点,向左右各取10个数据点作为峰值中心计算的数据范围:[329,349];
5)根据步骤2)基于最小二乘法的二次拟合法,选取二次曲线模型
6)判断t>1是否成立:成立,进入步骤7),否则进入步骤8);
7)判断|ct-ct-1|<0.01是否成立:如果是,进入步骤9),否则进入步骤8);如图3,在迭代次数t<6时,不满足|ct-ct-1|<0.01,进入步骤8);在迭代次数t=6时,满足|c6-c5|<0.01,进入步骤9);
8)更新所述的数据范围中心:即令s0=ct,并令t=t+1,返回步骤4);
9)输出光谱的峰值中心,如图3,输出光谱峰值中心c6=330。
实施例2
1)从前端探测系统获取光谱数据和设定光谱峰值计算中心与真实中心的可容忍误差ε,其中,ε为根据经验确定的参数,取ε=0.02;
2)根据经验选择光谱中心适合的峰值中心计算方法,如图2的洛伦兹线型的光谱,基于最小二乘法的洛伦兹拟合法是适用的。
3)确定数据范围的中心:对待确定峰值中心的光谱,用其最大值点的横坐标作为数据范围的中心,如为图5的数据范围中心s0=330,令迭代次数t=1;
4)确定峰值中心计算的数据范围:以所述的数据范围中心s0为中点,向左右各取50个数据点作为峰值中心计算的数据范围[280,380];
5)根据步骤2)的判断,取洛伦兹曲线模型
6)判断t>1是否成立:进入步骤7),否则进入步骤8);
7)判断|ct-ct-1|<0.02是否成立:如果是,进入步骤9);否则进入步骤8);如图5,在迭代次数t=2时,就已经满足|c2-c1|<0.02,进入步骤9);
8)更新所述的数据范围中心:即令s0=ct,并令t=t+1,返回步骤4);
9)输出光谱的峰值中心331.1。如图5,输出光谱峰值中心c2=331.1。
实施例3:
1)从前端探测系统获取光谱数据和设定光谱峰值计算中心与真实中心的可容忍误差ε,其中,ε为根据经验确定的参数,取ε=0.05;
2)据经验选择光谱峰值中心的计算方法,如图2洛伦兹线型光谱,重心法是适用的。3)确定数据范围的中心:对待确定峰值中心的光谱,用其最大值点的横坐标作为数据范围的中心,如为图7的数据范围中心s0=335,令迭代次数t=1;
4)确定峰值中心计算的数据范围:以所述的数据范围中心s0为中点,向左右各取30个数据点作为峰值中心计算的数据范围[305,365];
5)采用现有的基于重心法得到光谱峰值中心ct,具体如下:
xi,yi为所述的计算光谱峰值重心的数据范围内的数据点坐标,i表示数据点的序号,n表示所述的数据范围内的数据点总数。
6)判断t>1是否成立:进入步骤7),否则进入步骤8);
7)判断|ct-ct-1|<0.05是否成立:如果是,进入步骤9);否则进入步骤8);如图7,在迭代次数t<4时,不满足|ct-ct-1|<0.01,进入步骤8);在迭代次数t=4时,满足|c4-c3|<0.05,进入步骤9);
8)更新所述的数据范围中心:即令s0=ct,并令t=t+1,返回步骤4);
9)输出光谱的峰值中心331.7,如图7,光谱峰值中心c4=331.7。
再参见图4、图6、图8,分别对应实施例1、实施例2、实施例3相同实验条件下1000条光谱峰值中心的标准差随迭代系数的变化,可见随着迭代次数的增加,其标准差随着迭代次数的增加下降且收敛,即峰值中心的精度随着迭代次数的增加而提高。注意图2为示例光谱,以上3个实施例中用的光谱与图2为同一类型的光谱,但不是同一条光谱,其初始峰值中心并不相同。