單 鵬, 何 年, 李志剛, 吳 綴
(東北大學秦皇島分校 控制工程學院, 河北 秦皇島 066000)
現代光譜分析技術是一種通過分析物質的光譜來實現對物質類別及化學成分鑒定的方法,是一項結合了光譜檢測、數據處理、模式識別和計算機等多種理論和方法的綜合性分析技術,被廣泛運用于生產生活中[1-3].因受到傳感器、背景噪聲、電路噪聲以及隨機誤差等因素的影響,噪聲是光譜信號探測時無法避免的現象.光滑去噪成為光譜分析中一個重要的預處理步驟,能夠提高后續光譜分析算法的準確性和可靠性.光譜去噪算法得到了人們的廣泛重視,產生了多種從不同角度實現光滑去噪的算法,從嚴格意義上可分成幾類.
基于噪聲與光譜信號的統計特性差異,可采用平滑濾波來消除或減少噪聲,例如均值濾波、中值濾波、Kalman濾波、移動多項式平滑濾波等;基于噪聲與光譜信號的頻率特征差異,可采用傅里葉變換、小波變換[4]和經驗模態分解[5](empirical mode decomposition,EMD)等;基于噪聲與信號波形之間的差異,可采用形態濾波等.采用平滑濾波的算法需要人為設定一些參數(如移動窗口的寬度,擬合階次),參數直接影響著算法的性能.具有代表性的算法有Savitzky-Golay(SG)多項式最小二乘法[6],SG對于一些較大的數據,計算量變大,不能快速計算出平滑序列;需要人為設定一些參數,且不能自動選擇;使用寬度固定的平滑窗口,當平滑窗口寬度越大,平滑效果越好,但是光譜失真會越嚴重,即會導致峰畸變或者丟失.
相較于SG算法,Whittaker Smoother(WS)算法[7]計算速度快、實現簡單、可以通過快速計算留一交叉驗證實現自動選參.WS算法采用整數階微分(2或3階)對真實信號的粗糙度進行約束,并通過調節正則化參數λ來平衡粗糙度和保真度兩個沖突的目標,最終找到一個適當的平滑序列.用整數階微分表示粗糙度簡單有效,但是這種表示是片面的,所包含的信息量極為有限,不能很好地描述問題.即整數階微分表示不依賴于歷史數據,缺少全局相關性,對于一些復雜連續過程整數階往往不能很好地對其進行準確描述.
近些年來,分數階微分研究成為熱點,被廣泛地應用于各個領域[8-12].在光譜分析領域,Toman等[13]提出用半階導數對譜峰進行分辨;盧小泉等[14]采用分數階導數處理噪聲信號;Kharintsev等[15]提出一種利用分數階導數來提取光譜參數的方法;Mocak等[16]利用分數階微分改善信號的分辨率;李遠祿等[17]提出一種基于分數階微分的重疊峰分辨的方法;Li等[18]提出用分數階導數結合Haar小波來分辨重疊的洛倫茲峰;徐繼剛等[19]利用分數階導數處理油氣紅外光譜數據用來提高多元校正模型分析精度;張東等[20]和田安紅等[21]將分數階微分應用在鹽漬土高光譜數據預處理中,表明分數階微分對干旱荒漠區土壤光譜數據進行潛在信息挖掘是有效的;本文通過分數階微分來增強對真實光譜信號的粗糙度表示,進一步提高平滑效果.本文將RL和GL分數階微分定義引入WS算法中,解決了在WS算法實際應用中存在的相關問題.實驗采用偏最小二乘法對Marzipan在多種不同儀器下的光譜進行定量分析,預測糖分和水分.實驗結果表明分數階WS算法比整數階更加靈活有效,光譜定量分析精度更高.
WS算法:對于一列長度為m,等間距的噪聲序列為y,通過WS得到平滑序列為z.對于這兩個序列,有以下要求:①對原始數據的保真度.通常用函數s=∑i(yi-zi)2表示.②序列z的粗糙度.這里用z的一階微分來表示,Δzi=zi-zi-1,對其進行平方求和,表示z的粗糙度:R=∑i(Δzi)2.然后,平衡兩個相互沖突的目標,這兩個目標的平衡組合記為Q=S+λR,λ是一個用戶選擇的數.懲罰最小二乘的思想是找出使Q最小的一個z的序列.記為
(1)
為了避免大量繁瑣的代數運算,這里引入矩陣和向量,目標函數表示為
Q=|y-z|2+λ|Ddz|2.
(2)
其中:y,z為列向量;Dd為(m-1)×m的1階微分矩陣(用戶也可以選其他整數階階次).對式(2)求導,令其等于零,可得序列z的表達式:
(3)
其中E為單位陣.

其中,Sλ滿足SλI=I,I為單位向量.

(4)
其中:yi,zi分別為序列y,z的第i個點;Sii(λ)為平滑矩陣第i行第i列對應的元素.即留一交叉驗證誤差Scv代數和矩陣形式分別表示為[22]
(5)
(6)
其中,g為平滑矩陣Sλ對角線上元素構成的對角矩陣.
目前常用的主要有三種分數階微分定義:Riemann-Liouvile,Grumwald-Letnikov,Caputo.本文選用前兩種定義,同樣為避免大量繁雜的代數運算,選擇矩陣形式表示分數階微分.
1.2.1 Riemann-Liouvile定義
Kilicman等[23]給出Riemann-Liouvile微分運算矩陣:
(7)
其中:Γ(α)為Gamma函數;
ξ1=1,ξp=pα+1-2(p-1)α+1+(p-2)α+1,
(p=2,3,…,m-i+1).
1.2.2 Grumwald-Letnikov定義
Grumwald-Letnikov分數階微分定義為

(8)
式中:α為階數;h為微分步長;t與a分別為微分的上、下限;Γ(x)為Gamma函數.設一元函數f(x)定義域x∈[a,t],令h=1,n=[t-a],則由定義可推導出函數f(x)分數階微分的差值表達式:
(9)

1.3.1 算法原理
序列z的粗糙度R用分數階微分來代替,根據上文給出的分數階微分矩陣可以寫出各點的微分r=Dαz,粗糙度為各點微分的平方和.目標函數Q=|y-z|2+λ|Dαz|2,序列z的表達式為

記RL分數階微分實現為FDWS_RL,GL分數階微分實現為FDWS_GL.
1.3.2 交叉驗證

在一定的區間內,通過交叉驗證誤差(選擇相應的參數:正則化系數λ、微分階次α)可以選出一條較為理想的光滑信號,而且在一定程度上還可以進行人工調參,用戶可根據需求選擇.
實驗在Windows 10操作系統下實現;主要配置:Core I5 CPU主頻2.50 GHz,8 GB RAM;編程在Matlab,2019a版下實現.
1) NMR數據:該數據集是斯坦福大學開發的小波工具包(Wavelab toolbox)里所采用的經典數據集(見http://statweb.stanford.edu/~wavelab/),Eilers[7]曾對其進行光滑處理,驗證WS算法有效性.本文驗證對尖銳峰信號的提取是否有效.
2) Marzipan數據集:該數據集由7種光譜儀測量的32個Marzipan樣品的近紅外(NIR)或紅外(IR)光譜組成,用于水分和糖分濃度的預測(見http://www.models.life.ku.dk/Marzipan).本文選用5種光譜儀器的光譜數據進行光滑處理,驗證分數階WS算法對后續光譜分析精度的影響.

對光譜數據進行光滑處理的目的在于去除噪聲的同時能夠盡可能多地保留真實信息.整數階WS算法在處理一些含有尖窄峰的信號時(如NMR光譜),峰值信號丟失過多(見圖2放大圖).與之相反,分數階在保證同樣去噪效果下,可以通過調節階次,來實現對真實尖峰信息的保留.通過圖2觀察得到,在一定的階次范圍內,峰值信號的保留與微分矩陣的階次成正比,階次越高,保留的有用信息越多.此外,RL,GL兩種計算方式實驗結果差別不大.最后固定正則化系數(λ=10),分別計算各階次交叉驗證均方根誤差,結果如表1所示.觀察發現,均方根誤差與階次大致呈反比,實驗結果再次表明,在一定范圍內,隨著階次越高,保留的真實信息越多.

圖1核磁共振譜的RL平滑

圖2 核磁共振譜的不同階次的平滑

表1 交叉驗證均方根誤差
數據預處理主要是為了后續的光譜定量分析服務,為了進一步驗證分數階微分對后續光譜定量分析精度的影響,本文對Marzipan數據集進行實驗.根據KS[24]算法將樣本按3∶1比例劃分,24個樣本作為訓練集,8個樣本作為測試集,采用偏最小二乘回歸方法(PLS)[25]分別建立原始光譜、原始光譜+FDWS_RL(含整數階)處理、原始光譜+FDWS_GL處理后的PLS模型.PLS采用5折交叉驗證,從1~15中選出最佳潛變量個數.測試集樣本的均方根預測誤差結果(見表2,表3)表明:5種儀器的光譜在光滑預處理后預測精度都有所提高,其中Bomem,IA260儀器的光譜,經過FDWS_RL光滑預處理后對糖分的預測精度顯著提高,兩種光譜均方根預測誤差分別由1.475,3.579降到0.926,0.488;Nit儀器下光譜對水分的均方根預測誤差由0.423降到0.278.FDWS_GL實驗結果與之相似.可以發現預測均方根誤差最小值所對應的階次均為分數階,反映出分數階WS算法比整數階更具有應用價值.從理論上講,分數階WS階次連續可調,同時涵蓋了整數階,因此光滑效果永遠不會低于整數階WS算法,最差保持原有整數階WS算法的光滑效果.實際實驗結果同樣表明,用分數階微分作光滑處理時,能夠有效地提取有用信號,相較于整數階WS算法可以進一步提高后期光譜分析算法的準確性.

表2 PLS預測水分、糖分均方根誤差(RL)

表3 PLS預測水分、糖分均方根誤差(GL)
1) 本文算法采用分數階微分表示光譜的粗糙度,使算法更加靈活,表示更加豐富.
2) 分數階WS算法比整數階WS算法能保留更多的真實信息.在核磁共振譜的實驗中得到證明.
3) 分數階WS算法可以進一步提高后續光譜定量分析的精度,同時表明對原始光譜數據進行光滑處理可以增強有效信號的相對強度,提高光譜分析算法的準確性.在Marzipan紅外光譜實驗中得到證明.