基于参数化模型的近红外干涉图相位校正方法
2019-03-28吴雪梅
吴雪梅
(西安文理学院化学工程学院,陕西 西安 710065)
近年来傅里叶变换近红外光谱仪在近红外光谱分析中得到了广泛地应用[1-3]。干涉图相位校正是傅里叶变换近红外光谱仪中的重要步骤,相位校正质量的高低直接影响到光谱的预测性能。最早提出的相位校正算法是Mertz算法[4],它认为实测干涉图相对于理想干涉图有一定的延时,从而导致光谱有线性的相位误差,通过频域进行相位校正,可消除相位误差的影响从而提高光谱的质量。随后的Forman算法[5]在干涉图领域直接对干涉图进行相位校正。Mertz算法与Forman算法校正方式不同,但在数学上已证明这两种算法是等效的[6]。目前大部分傅里叶变换光谱仪都内置了Mertz算法进行相位校正。R.Furstenberg和J.White[7-8]让干涉图通过全通滤波器的方式实现了相位校正。与Mertz算法不同,全通滤波器法认为相位误差是非线性的。不管是Mertz算法、Forman算法还是全通滤波器算法,它们所描述的相位误差都可以用参数来表示,如Mertz或Forman算法中相位误差与波长之间的关系可通过一元函数来表示,全通滤波器算法中相位误差与波长之间的关系可用非线性函数来表示。所以可以认为,Mertz或Forman算法是全通滤波器法的特例,即非线性函数关系退化为线性关系的情况。因此,可以采用参数化的模型来描述干涉图的相位误差,即认为相位误差与波长之间存在某种非线性关系(如多项式关系),通过实测干涉图来拟合这种关系并用于相位校正。采用这种方法的核心是通过实测干涉图来拟合出模型的参数。
Mertz算法、Forman算法及全通滤波器算法的另一个不足:对每条干涉图都要进行相位校正,计算量较大。实际上,一台仪器在相同条件下测试所引入的相位误差是几乎不变的,因此可以利用前期多条干涉图进行相位校正的结果对后续测量的干涉图进行相位校正,以提高处理效率。本文将研究利用参数化模型的干涉图相位校正方法,并利用模型参数对测量干涉图进行相位校正。
1 算法模型
为方便求解,此处将模型设置为多项式,即相位误差与波数之间存在函数关系。
(1)
式中,φ(v)为是相位误差,v为波数,v0为参考波数,an为多项式系数,N为多项式阶数。
该模型中,认为所有干涉图的相位误差都是上式的结果,实测的干涉图利用上式的函数关系即可实现干涉图相位校正。设第k条干涉图进行傅里叶变换后得到的光谱为xk(v),其中,v=v0,v1,…,vM,v0为需要校正的最小波数,vM为需要校正的最大波数,利用式(1)进行相位校正后,所得到的光谱sk(v)为:
(2)
其中,j为虚数单位
若干涉图被完全校正,那么sk(v)为实数,但实际测量中,存在一些误差与偶然因素,sk(v)还会有虚部。显然,sk(v)的虚部越小,干涉图校正效果越好。为了使各条干涉图都得到较好的校正,需要使下式取得最小值。
(3)
式中,函数Im(·)表示对复数取虚部,K为干涉图数目。上式的含义是使各干涉图校正后光谱的虚部平方和最小。
显然很难利用sk(v)直接求得多项式系数an或相位误差φ(v),对an的求解需采用最优化算法进行求解,计算出an后,代入式(1)即可求出相位误差,利用该相位误差便可代入式(2)计算干涉图(可以是建模用的干涉图,也可以是非建模使用的干涉图)对应的光谱。
2 算法步骤
这里采用粒子群优化算法[9]进行优化求解,粒子的第n维代表多项式系数an。
2.1 建模步骤
步骤2.1.1:设定模型阶数N及粒子群参数,如粒子群规模、粒子维数(N+1)、最大迭代次数、优化目标等。
步骤2.1.2:对K条实测干涉图进行傅里叶变换(去趾函数选blackmanharris),确定需要的波数v0~vM,获得光谱xk(v)。
步骤2.1.3:将式(3)作为代价函数,采用粒子群优化算法进行优化计算,获得最优解an。
步骤2.1.4:将计算出的an存储,供干涉图校正使用。
2.2 校正步骤
步骤2.2.1:对干涉图进行傅里叶变换(去趾函数选blackmanharris),选择需要的波数v0~vM,构成光谱x(v)。
步骤2.2.2:将an系数代入式(2),计算光谱s(v)。
步骤2.2.3:取s(v)的实部作为干涉图校正后的光谱。
以上步骤获得的是干涉图对应的光谱,在光谱分析中,往往需要被测样品的吸光度,对吸光度的计算可以采用下式:
(4)
式中,sb(v)为背景光谱,获得它的方法同样按上述步骤。
3 实验
本实验对象是乙醇溶液,先配制浓度为2%~61%的溶液60个,相邻浓度间隔1%。采用Bruker近红外傅里叶变换光谱仪VERTEX70测量各溶液的干涉图与光谱(光谱是仪器采用Mertz算法进行相位校正的)。测量过程中对干涉图进行双边采样,测量点数为15240,所得光谱的最大波数为15798.25cm-1。根据吸光度曲线,选择波数范围为7500~13000cm进行建模与分析。建模过程中,将模型阶数N设置为3,粒子群规模为20,最大迭代次数为3000,优化目标为0。
分别利用仪器所测光谱图(即Mertz算法校正相位误差的光谱)与本算法校正的光谱进行溶液浓度预测,预测算法是偏最小二乘法(PLS)。在预测与建模中,设置数据预处理方法为自动尺度(auto scale),并采用留一交叉检验法确定隐变量数。浓度为3%,6%,……,60%(间隔3%)的样本作为预测集,其余样本作为校正集进行建模与预测。实验结果如表1所示。
表1 不同方法预测结果对比
从以上结果可以看出,采用本文方法后,校正后的干涉图所得光谱比Mertz算法校正干涉图所得光谱预测能力略好,一旦利用本文方法确定了干涉图相位校正参数后,新测的干涉图便可利用校正步骤进行相位校正,无需再采用Mertz算法确定相位误差。本文方法能替代Mertz算法进行干涉图相位校正,提高干涉图处理效率。
4 结论
本文认为干涉图相位误差与波数之间存在较复杂的稳定关系,该关系可通过多项式进行描述。对干涉图进行相位校正算法共分两部分,第一部分利用部分干涉图进行多项式相位误差拟合,通过优化计算确定模型参数。第二部分利用确定的参数对干涉图进行相位校正,以获得校正后的光谱。通过实验证明,本方法进行干涉图相位校正后所得的光谱在组分预测性能上比Mertz算法好。由于在确定模型参数后,该方法不需要像Mertz算法一样对每条干涉图重新计算相位误差,从而使得相位校正效率大大提高。本方法能替代Mertz算法进行干涉图相位校正。