APP下载

基于最小值点极化的连续背景光谱校正算法

2016-02-27林勇

泰山学院学报 2016年3期
关键词:极小值数组变化率

林勇

(安徽广播影视职业技术学院信息工程系,安徽合肥230011)

基于最小值点极化的连续背景光谱校正算法

林勇

(安徽广播影视职业技术学院信息工程系,安徽合肥230011)

为有效去除原始光谱信号中的连续背景光谱,提出了一种基于最小值极化的连续背景光谱校正算法,并利用LabVIEW和C语言混合编程,编写了软件仿真.利用等离子体发射光谱对软件测试的结果表明:该软件能够有效的选取最小值点,并基于最小值点准确评估背景光谱强度.经校正后的光谱强度略有降低,但各谱线形状和相对强度不受影响.

最小值极化;连续背景;混合编程;光谱

激光诱导击穿光谱技术是使高能量密度的激光脉冲与样品相互作用,将物质气化形成等离子体,并采集等离子体发射光谱,用于样品的定性和定量分析.但在等离子体产生初期,由于存在黑体辐射、韧致辐射及复合辐射等,发射光谱中往往伴有连续背景光谱,通过设置采集延时和积分时间,可在很大程度上降低背景干扰,提高信噪比的目的[1],但并不能完全消除.连续背景光谱的存在,会对有用离散特征谱线造成严重干扰,影响特征谱线的识别和定量分析结果.因此,连续背景光谱的准确提取和校正,对于改善光谱质量和提高定量分析精度具有非常重要的作用[2].

为实现连续背景光谱的校正,Gornushkin等提出了一种基于多项式拟合的连续背景光谱校正方法[3],对于简单和复杂光谱,该方法均能在一定程度上扣除连续背景噪声,但对于复杂光谱,存在明显高估连续背景噪声的现象.在最近20年间,又陆续出现了很多新的连续背景光谱校正方法,如卷积、微分、人工神经网络、遗传算法和小波变换等[4-7],但这些方法都有特定的适用条件,没有获得广泛的应用.由于连续背景光谱随波长的变化较为缓慢,因此线状光谱峰值处的背景光谱强度通常可通过线状光谱两端的背景噪声强度进行估计,并基于评估结果实现背景光谱的校正,即离峰两点法.离峰两点法的背景点选择过程是:观察谱线形状和强度,并结合经验选择背景点.这种方法存在很多人为因素,且背景点不唯一.如果实验条件发生改变,还需要重新选择背景点,背景估计和校正过程繁重.

本文根据连续背景光谱的研究现状,结合已有的校正方法,提出了一种基于最小点极化的连续背景光谱校正算法,利用LabVIEW和C语言混合编程编写了相关软件,并利用光谱数据对该算法的有效性进行了实验验证.

1 极化算法的基本理论

设光谱上共有m个极小点,按波长从小到大对所有的极小点进行编号,从左到右依次为1,2,…,j,…,m,从而构成一个极小值点的集合.定义两个相邻极小值点的变化率为

其中j是极小值的编号,△Ij为相邻两个极小值间的变化率,Ij是与波长λj相对应的光谱强度.

图1 最小值点极化的流程图

基于最小值点极化的连续背景光谱校正算法流程如图1所示,运行步骤如下:

a)定义一个m行3列的二位数组A,并令aj,i=0;

b)读入光谱数据,并寻找光谱数据的最小值点,构成最小值点数组;

c)根据连续背景上相邻点之间的变化率设定相邻两极小值点变化率的阈值σ,并将第一个光强极小值点位于的光强I1和波长λ1赋值给a1,2和a1,3;

d)根据公式(1)按波长从小到大方向循环(正向循环),计算两个相邻极小值点的变化率,若△Ij<σ,即两相邻极小值点的变化率小于背景点上两相邻点的最大变化率,则将Ij+1、λj+1赋值给aj+1,2和aj+1,3;若△Ij>σ,则定义aj+1=1,并将Ij+1、λj+1赋值给aj+1,2和aj+1,3;

e)第一次正向循环结束后,若aj,1=1,则将数组中的第j行从数组中删除,数组长度m=m-1,并将Ij+1和λj+1从极小值点集合中删除,否则保留该行数据;

f)重复循环步骤(d)和(e),直至二维数组A第一列的值均为零,假设此时的数组长度为n;

g)定义一个n行3列的二位数组B,同样将数组中的所有值均为0,将In和λn赋值给bn,2和bn,3;

h)按照波长从大到小的方向循环(反向循环),同样:若△Ij<σ,则将Ij-1、λj-1赋值给bj-1,2和bj-1,3;若△Ij<σ,则定义bj-1,1=1,并将Ij-1、λj-1赋值给bj-1,2和bj-1,3;

i)第一次反向循环结束后,若bj,1=1,则将数组中的第j行从数组中删除,数组长度n=n-1,并将Ij-1和λj-1从极小值点集合中删除,否则保留该行数据;

j)反复循环步骤(h)和(i),直至二维数组B第一列的值均为零,并结束循环.

2 算法的软件实现

相对于其它计算机语言,C语言具有简洁紧凑、灵活方便,数据类型和运算符丰富等优点[8].Lab-VIEW的特点在于其强大的图形环境,采用可视化的图形编程语言和平台,在计算机屏幕上建立图形化的软面板来替代常规的传统仪器面板[9].为建立简洁、实用、友好的软件界面,最小值点极化的连续背景光谱校正算法的计算机语言实现过程中,我们采用LabVIEW与C语言混合编程的方法,其中最小值点极化过程通过C语言实现,而软件界面通过LabVIEW编写.

2.1 寻找最小值点的动态链接库

基于C语言的动态链接库的建立过程如下[8]:

a)在“项目类型”中选择Win32,在“Visaul Studio已安装的模板”选项内选择Win32控制台应用程序,并将项目名称命名为Backgroundcutting;

b)在“应用程序设置”中将“应用程序类型”选择为DLL(D),完成;此处使用的是非MFC的DLL,即不用MFC的类库结构,而直接用C语言写的DLL,其输出的函数一般用的是标准C接口,并能被非MFC或MFC编写的应用程序所调用;

c)在Backgroundcutting.cpp内输入主函数的源文件:

主函数代码;

其中wavelength[]和intensity[]用于存储光谱数据的波长和强度,minimal_wave[]和minimal_inten[]用于存储光谱数据数据中最小值点的波长和强度;

d)生成解决方案.

2.2 LabVIEW调用DLL的过程

创建一个LabVIEW的vi,从函数>>互连接口>>库与可执行程序>>调用库函数节点[9].双击调用库函数节点,弹出并配置对话框.第一个选项卡是"函数",根据DLL所在位置选择库名或路径,并选择相应的函数名;线程和调用规范分别选择"Run in UI thread"和C(编程时使用的是C,不是windowsAPI).第二个选项卡是"参数":在返回类型中添加函数参数,并为其设定名称、类型、数据类型,并将最后一项通过设定为数值,为其余参数设定相应参数,并点击确定.

至此,利用LabVIEW完成C语言动态链接库的调用.

2.3 程序界面

利用LabVIEW和C语言编程的界面如图2所示,其中用红色虚线框标出的是调用C语言动态链接库的函数节点.可以看出,整个程序非常简练,具有很强的可读性.在评估连续背景光谱时,程序使用了插值函数,可根据不同需要选择线性、样条插值、Cubic Hermite或拉格朗日等不同的插值方式.

图2 LabVIEW的编程界面

图3 是最小值极化的连续背景光谱校正算法软件与操作者的交互界面.交互界面主要分为三个部分:第一部分是程序标题,在交互界面中用蓝色字体显示;第二部分是显示图标,用于显示连续背景光谱校正前后的光谱图,并可通过对比两光谱图,初步判断连续背景校正的效果;第三部分为参数设置部分,其中左半部分用于选择待校正光谱和校正后光谱的输出位置,右半部分用于设置插值函数的类型,并可以选择想要处理的光谱长度.

图3 软件与操作者的交互界面

3 光谱校正结果

图4给出了原始光谱与连续背景光谱的对比图,为了能够清楚的显示原始光谱与连续背景光谱的对比关系,图中仅截取并绘制了803nm至807nm间的一段光谱.在连续背景光谱评估的过程中,我们使用的是线性插值.从结果可以看出,利用最小值极化的连续背景光谱校正算法,可以根据设定的阈值,准确的从原始光谱中选择出变化率小于阈值的极小值点,并去除变化率大于阈值的最小值点.

图4 原始光谱与连续背景光谱的对比

图5 是经过连续背景校正后,803nm至807nm波长范围内的光谱强度.可以看出,经连续背景校正后,光谱的最小值点均归于零点.对比图4和图5不难看出,光谱校正前后,虽然光谱强度发生了变化,但各谱线形状及光谱间的相对强度并不受影响.由此可知,基于最小值极化的连续背景光谱校正算法,可以有效的从原始光谱扣除背景噪声.

图5 连续背景校正后的光谱

4 结论

根据极化算法的基本原理和最小值极化流程,基于C语言对算法进行了实现,并创建了动态链接库.利用LavVIEW调用动态链接库,设计了连续背景光谱校正软件,并用等离子体发射光谱对软件性能进程了检验.从结果可以看出,利用给予C语言编写的最小值极化程序,能够准确的从原始光谱中选择出变化率小于阈值的极小值点,并去除变化率大于阈值的最小值点.原始光谱经连续背景光谱校正后,光谱强度得到了有效校正,但各谱线形状及光谱间的相对强度并不受影响.下一步我们将利用不同样品的光谱进一步检验软件性能,并根据对软件进行相应的改进,增强其适用性.

[1]B.Sallé,P.Mauchien,S.Maurice.Laser-Induced Breakdown Spectroscopy in Open-Path Configuration for the Analysis of Distant Objects[J].Spectrochim Acta B,2007,62(8):739-768.

[2]V.Lazic,F.Colao,R.Fantoni,et al.Underwater Sediment Analyses by Laser Induced Breakdown Spectroscopy and Calibration Procedure for Fluctuating Plasma Parameters[J].Spectrochim Acta B,2007,62(1):30-39.

[3]I.B.Gornushkin,P.E.Eagan,A.B.Novikov,et al.Automatic Correction of Continuum Background in Laser-Induced Breakdown and Raman Spectrometry[J].Appl.Spectrosc,2003,57(2):197-207.

[4]P.Taylor,P.Schutyser.Description of a Computer Program for Quantitative Spectral Analysis of ICP-AES Spectra Generated with a High Resolution Computer-Controlled Monochromator[J].Spectrochim Acta B,1986,41(1-2):81-103.

[5]J.Yang,Z.Piao,X.Zeng.Improvement of Selectivity with Numerical Derivative Techniques in Inductively Coupled Plasma Atomic E-mission Spectrometry[J].Spectrochim Acta B,1991,46(6-7):953-965.

[6]C.SCHIERLE,M.OTTO.Comparison of a Neural Network with Multiple Linear Regression for Quantitative Analysis in ICP-Atomic E-mission Spectroscopy[J].Fresenius J.Anal.Chem.,1992,344(4-5):190-194.

[7]R.P.Paradkar,R.R.Williams.Genetic Regression as a Calibration Technique for Solid-Phase Extraction of Dithizone-Metal Chelates[J].Appl.Spectrosc.,1996,50(6):753-758.

[8]Peter Van Der Linden.C专家编程[M].北京:人民邮电出版社,2008.

[9]郑树元.精通LabVIEW虚拟仪器程序设计[M].北京:清华大学出版社,2012.

Algorithm of Continuous Background Correction Based on Polarized Minimum Spectrum

LIN Yong
(Department of Information Engineering,Anhui Broadcasting Movie and Television College,Hefei,230011,China)

In order to remove continuous background from original signal,a new method based on polarized minimum spectrum is proposed.Using mixed programming of LabVIEW and C language,the software is written.The testing results of software with plasma emission spectrum indicate that,the minimum points can be selected effectively,and intensity of continuous background is evaluated accurately.The intensity of spectrum after correction is lower than that of original spectrum,but the correction process does not influence spectral shape and relative intensity.

polarized minimum spectrum;continuous background;mixed programming;spectrum

TP311.1

A

1672-2590(2016)03-0067-06

2016-03-27

林勇(1981-),男,安徽广德人,安徽广播影视职业技术学院信息工程系讲师.

猜你喜欢

极小值数组变化率
JAVA稀疏矩阵算法
基于电流变化率的交流滤波器失谐元件在线辨识方法
例谈中考题中的变化率问题
JAVA玩转数学之二维数组排序
一道抽象函数题的解法思考与改编*
构造可导解析函数常见类型例析*
极小值原理及应用
更高效用好 Excel的数组公式
基于庞特里亚金极小值原理的多运载体有限时间编队控制
相位差变化率的快速高精度测量及精度分析