中船重工安譜(湖北)儀器有限公司 鄭學(xué)書(shū) 鄭 舟 陳 君
在現(xiàn)代分析儀器中,一種最常見(jiàn)的系統(tǒng)工作模式就是由采集系統(tǒng)采集模擬信號(hào),然后通過(guò)AD轉(zhuǎn)換轉(zhuǎn)化成可供計(jì)算機(jī)分析使用的數(shù)字信號(hào)進(jìn)行計(jì)算分析。在離子遷移譜技術(shù)中就廣泛使用了此類技術(shù),離子電離和遷移之后形成連續(xù)的電信號(hào),以曲線圖譜的形式呈獻(xiàn)給計(jì)算機(jī)系統(tǒng)。通過(guò)分析離子遷移譜的譜峰位置反推離子遷移的時(shí)間,進(jìn)而確定物質(zhì)類別。
在離子遷移譜譜峰識(shí)別中,通常會(huì)遇到基線浮動(dòng)、噪聲干擾、峰形重疊等復(fù)雜情況,這給峰值查找和識(shí)別帶來(lái)了不小的挑戰(zhàn),閾值法通常需要設(shè)計(jì)合理的閾值,但是實(shí)際應(yīng)用中針對(duì)基線浮動(dòng)的情況很難設(shè)計(jì)動(dòng)態(tài)的閾值;基于導(dǎo)數(shù)的峰值查找算法往往容易受到峰形噪聲的干擾,特征峰甚至在求導(dǎo)之后可能被放大的噪聲掩蓋;小波變換和傅立葉變換雖然能夠在放大特診峰的同時(shí)弱化噪聲,但是計(jì)算復(fù)雜度較高,需要較高的計(jì)算成本。
在閾值法中,直接根據(jù)原始圖譜相對(duì)設(shè)定閾值的大小進(jìn)行判斷,從左往右逐個(gè)值掃描,如果某個(gè)值大于設(shè)定閾值,則判定為峰起點(diǎn),往右掃描過(guò)程中如果某個(gè)值小于設(shè)定閾值,則判定為峰終點(diǎn),然后在起點(diǎn)和終點(diǎn)之間選擇值最大的位置作為峰的最高點(diǎn)。這種方式無(wú)法獲取峰的拐點(diǎn)信息,同時(shí)峰的起點(diǎn)和終點(diǎn)直接與設(shè)定的閾值相關(guān),如果閾值設(shè)定過(guò)高,則會(huì)漏判,如果閾值設(shè)定過(guò)低,則會(huì)誤判。
一階導(dǎo)數(shù)法是一種最直觀的峰形識(shí)別算法,當(dāng)原始圖譜一階導(dǎo)數(shù)為正且增大至設(shè)定閾值時(shí),判定為峰的起點(diǎn),當(dāng)圖譜一階導(dǎo)數(shù)從正變?yōu)樨?fù),判定為峰的頂點(diǎn),當(dāng)圖譜的一階導(dǎo)數(shù)為負(fù),且逐步增大至絕對(duì)值小于設(shè)定閾值,判定為峰終點(diǎn)。
二階導(dǎo)數(shù)法相比一階導(dǎo)數(shù)法靈敏度更高,同時(shí)能夠處理基線浮動(dòng)的情況。但是二階導(dǎo)數(shù)由于經(jīng)歷了兩次求導(dǎo)過(guò)程,對(duì)曲線上的細(xì)微噪聲進(jìn)行了多次放大,導(dǎo)致二階導(dǎo)數(shù)上的噪聲和毛刺較為嚴(yán)重,這對(duì)于特征峰的識(shí)別較為不利。圖1是一個(gè)典型的導(dǎo)數(shù)法譜峰識(shí)別示意圖。
傅立葉變換揭示了時(shí)域與頻域之間內(nèi)在的聯(lián)系,反映了“整個(gè)”時(shí)間范圍內(nèi)信號(hào)的“全部”頻譜成分,是研究連續(xù)信號(hào)不可缺少的工具。由于離子遷移技術(shù)中的譜峰通常只會(huì)在某個(gè)特定的頻段內(nèi)出現(xiàn),因而可以將整個(gè)信號(hào)從高頻的噪聲信號(hào)中提取出來(lái)進(jìn)行分析,但是傅立葉變換存在一個(gè)明顯的缺點(diǎn),即無(wú)法反映非平穩(wěn)信號(hào)在局部區(qū)域的頻域特征及其對(duì)應(yīng)關(guān)系。
圖1 導(dǎo)數(shù)法譜峰識(shí)別
小波變換的興起,得益于其對(duì)信號(hào)的時(shí)域和頻域局域分析能力及其對(duì)一維有界函數(shù)的最優(yōu)逼近性能,也得益于多分辨率分析概念。小波變換的核心思想來(lái)源于拉伸和平移。相對(duì)導(dǎo)數(shù)法和閾值法,小波變換和傅立葉變換一樣具有較高的計(jì)算復(fù)雜度,在某些特定的使用場(chǎng)景中具有一定的局限性。
在設(shè)計(jì)譜峰查找算法之前,需要對(duì)離子遷移譜技術(shù)中常見(jiàn)的峰形進(jìn)行分析,以便準(zhǔn)確的把握特征峰的形態(tài)特性,針對(duì)性的進(jìn)行算法設(shè)計(jì)。通過(guò)觀察發(fā)現(xiàn),特征譜峰一般以四種峰形為主,分別是獨(dú)立峰、駝型重疊峰、左肩型重疊峰和右肩型重疊峰。對(duì)于獨(dú)立峰,在峰的整個(gè)曲線段內(nèi)不與任何其他峰重疊,由峰的形狀決定整段曲線的形狀;對(duì)于另外三種重疊峰,都是由于相鄰兩個(gè)峰的某一部分重疊造成的,重疊段的曲線是多個(gè)峰共同疊加的結(jié)果。圖2分別給出了四種常見(jiàn)峰形的示意圖。
對(duì)于獨(dú)立峰,判定峰起點(diǎn)、峰拐點(diǎn)、峰終點(diǎn)以及峰頂點(diǎn)都較為容易,而對(duì)于重疊峰,根據(jù)重疊區(qū)域的不同,往往很難確定這些具體參數(shù)。而且,根據(jù)離子遷移譜技術(shù)的理論原理,峰面積與被檢測(cè)物質(zhì)濃度之間存在對(duì)應(yīng)關(guān)系,在一些定量的檢測(cè)儀器中需要根據(jù)峰面積對(duì)物質(zhì)濃度進(jìn)行計(jì)算,這就對(duì)重疊峰的識(shí)別提出了實(shí)際的需求。綜合圖2所示的四種峰形,整理獲得如下特征點(diǎn)特性:
(1)峰起點(diǎn):一個(gè)峰的起點(diǎn)需滿足該位置往后一段區(qū)間的一階導(dǎo)數(shù)呈現(xiàn)從0上升的趨勢(shì)
(2)左拐點(diǎn):左拐點(diǎn)所在位置及鄰近位置處的一階導(dǎo)數(shù)從上升趨勢(shì)變?yōu)橄陆第厔?shì),且右側(cè)一段區(qū)間的一階導(dǎo)數(shù)值大于0;
(3)峰頂點(diǎn):峰頂點(diǎn)所在位置應(yīng)呈現(xiàn)一階導(dǎo)數(shù)從0下降的趨勢(shì);
(4)左肩峰頂點(diǎn):如果在找到峰左拐點(diǎn)之后向后查找,發(fā)現(xiàn)某位置一階導(dǎo)數(shù)從0上升,則表明此處是一個(gè)左肩峰;
(5)右拐點(diǎn):右拐點(diǎn)所在位置附近的一階導(dǎo)數(shù)從下降趨勢(shì)表位上升趨勢(shì),且右側(cè)鄰近區(qū)間的一階導(dǎo)數(shù)值小于0;
(6)峰終點(diǎn):若是駝型重疊峰之間的谷點(diǎn),峰終點(diǎn)處的原始曲線需從下降趨勢(shì)變?yōu)樯仙厔?shì)。若是非駝型重疊峰的峰終點(diǎn),要同時(shí)滿足兩個(gè)條件:臨近區(qū)間內(nèi)原始曲線不再下降;同時(shí)一階導(dǎo)數(shù)逐漸上升;
(7)右肩峰頂點(diǎn):如果在找到右拐點(diǎn)之后向后查找,發(fā)現(xiàn)某位置一階導(dǎo)數(shù)從上升趨勢(shì)變?yōu)橄陆第厔?shì),且最左側(cè)鄰近區(qū)間的一階導(dǎo)數(shù)小于0,則表明下一個(gè)相鄰的峰是右肩峰。
圖2 四種圖譜峰形
圖3 滑動(dòng)窗口示意圖
圖4 判定上升趨勢(shì)的判定過(guò)程
基于滑動(dòng)窗口的譜峰識(shí)別算法的基本原理是基于曲線段的模式匹配,當(dāng)處于滑動(dòng)窗口的曲線段滿足匹配模式,即可將當(dāng)前檢測(cè)點(diǎn)判定為峰形的某個(gè)特征點(diǎn)。從上述分析可知,匹配模式同時(shí)利用了原始圖譜和一階導(dǎo)數(shù)的曲線變化特征。圖3給出了識(shí)別獨(dú)立峰的峰起點(diǎn)、左拐點(diǎn)、峰頂點(diǎn)、右拐點(diǎn)以及峰終點(diǎn)的滑動(dòng)窗口示意圖。
綜合分析算法實(shí)現(xiàn)原理,算法核心是判斷滑動(dòng)窗口內(nèi)的曲線變化模式,具體實(shí)現(xiàn)中通過(guò)calTrend()函數(shù)判斷滑動(dòng)窗口內(nèi)的曲線段變化趨勢(shì)。為了最大化的放大曲線段變化趨勢(shì),弱化抖動(dòng)和噪聲誤差,calTrend()使用累加趨勢(shì)法進(jìn)行判斷。此處以判定上升趨勢(shì)為例進(jìn)行說(shuō)明,初始設(shè)定累加基數(shù)B=0,累加趨勢(shì)值P=0,從滑動(dòng)窗口內(nèi)的data[0]開(kāi)始,若data[i]<=data[i+1],則B=B+1,P=P+B,若data[i]>data[i+1],則置B=0;如此重復(fù)直至到達(dá)窗口結(jié)束。如果累加趨勢(shì)值P大于設(shè)定閾值,則判定為曲線具有上升趨勢(shì)。圖4是一個(gè)判定上升趨勢(shì)的判定過(guò)程示意圖。
圖4中,計(jì)算的最終上升趨勢(shì)值為P=18,在窗口長(zhǎng)度為10的情況下,一般設(shè)定判定閾值為14,因此可以判定該窗口內(nèi)的數(shù)據(jù)呈現(xiàn)上升趨勢(shì)??梢园l(fā)現(xiàn),對(duì)于連續(xù)的上升過(guò)程,累加基數(shù)不斷被放大,因此連續(xù)上升的過(guò)程越長(zhǎng)對(duì)最終的上升趨勢(shì)值P影響越大,這是連續(xù)上升趨勢(shì)被放大的體現(xiàn),相反的,對(duì)于偶爾的噪聲和抖動(dòng),例如上圖中兩個(gè)5之間的數(shù)值3,計(jì)算過(guò)程中僅將B歸0而不影響P的值,這是噪聲和抖動(dòng)被弱化的提現(xiàn)。通過(guò)這種方式,可以實(shí)現(xiàn)對(duì)滑動(dòng)窗口內(nèi)曲線段的趨勢(shì)判斷,進(jìn)而實(shí)現(xiàn)譜峰識(shí)別。
算法設(shè)置之后使用C語(yǔ)言進(jìn)行了實(shí)現(xiàn),在某離子遷移譜項(xiàng)目中進(jìn)行了調(diào)用,根據(jù)實(shí)際情況,設(shè)定窗口長(zhǎng)度為10,趨勢(shì)判斷閾值為14進(jìn)行了測(cè)試。測(cè)試結(jié)果表明,算法能夠在絕大多數(shù)情況下正確識(shí)別出圖譜的譜峰,且計(jì)算復(fù)雜度較低,對(duì)運(yùn)行環(huán)境的要求相對(duì)寬松,在實(shí)際項(xiàng)目開(kāi)發(fā)過(guò)程中能夠直接進(jìn)行調(diào)用和參數(shù)設(shè)定,具有良好的擴(kuò)展性和移植性。
與此同時(shí),測(cè)試發(fā)現(xiàn)該算法也存在一定的缺陷,例如對(duì)于三種類型的重疊峰,在重疊面積較大的情況下算法可能產(chǎn)生漏判,后續(xù)可以通過(guò)增加曲線擬合等方式對(duì)譜峰識(shí)別結(jié)果進(jìn)行二次篩選。
[1]王曉榮,程明霄.譜峰識(shí)別的計(jì)算機(jī)設(shè)計(jì)與實(shí)現(xiàn)[J].南京工業(yè)大學(xué)學(xué)報(bào)(自科版),2001,23(5).
[2]趙欣洋.離子遷移譜圖的譜峰識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連理工大學(xué),2016.
[3]汪魯才,陳超華,王桃,等.水質(zhì)檢測(cè)中色譜譜峰尋峰算法的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2017, 53(11).
[4]劉銘暉,董作人,辛國(guó)鋒,等.基于Voigt函數(shù)擬合的拉曼光譜譜峰判別方法[J].中國(guó)激光,2017(5).
[5]陳新華,姚璉,李安林,等.離子遷移譜的智能識(shí)別法及應(yīng)用于易制毒化學(xué)品稽查[J].計(jì)算機(jī)與應(yīng)用化學(xué), 2007, 24(9).
[6]蔣顏瑋,趙將,邵晟宇,等.離子遷移譜檢測(cè)儀信號(hào)處理方法研究[J].測(cè)試技術(shù)學(xué)報(bào),2013,27(6).
[7]周鵬,張文斌,王軍星,等.基于高斯擬合的光纖型SPR信號(hào)的峰值檢測(cè)算法[J].光譜學(xué)與光譜分析,2016.