張 林,余成波,譚 擁,米有玉
(重慶理工大學電氣與電子工程學院,重慶 401320)
血氧飽和度(SpO2)是一項表征人體心肺功能及循環(huán)系統(tǒng)健康程度的重要生理參數(shù)[1]。近年來推出的可穿戴的脈搏血氧監(jiān)測設備,可以通過采集PPG信號實時的監(jiān)測用戶的血氧飽和度,有效地避免一些突發(fā)的心血管疾病。但可穿戴設備在為用戶帶來便捷體驗的同時,也引入了更大的運動干擾,而常見的血氧監(jiān)測算法的魯棒性較差,并不能對抗較強的運動噪聲,使測量結果往往存在較大誤差。因此,研究一種魯棒性更強的血氧監(jiān)測算法有很大的意義和價值。
目前去除PPG信號中的運動偽影的方法主要有自適應濾波和經驗模態(tài)分解及其改進算法等。有陳真誠等人[2-4]利用EMD處理PPG信號時,由于其理論存在缺陷,分解過程易出現(xiàn)模態(tài)混疊、端點效應等問題[5],去噪效果并不理想。因此,有Kang等人[6-7]采用VMD處理PPG信號,克服了模態(tài)混疊和邊界效應的影響,但重構時僅使用加速度信號作為參考選擇IMF,使得處理后的PPG信號仍有噪聲殘留。此外,自適應濾波方法也常用于PPG信號處理。Han等人[8]將同步測量的加速度信號作為自適應濾波器的參考信號來濾除運動偽影,對比EMD降低了時間復雜度,但其去噪效果過于依賴參考信號的質量,因此常與其它方法結合使用[9-11],但結合算法仍使用加速度信號作為噪聲參考,不僅增加了硬件成本,且構造的運動噪聲參考信號較為片面,去噪效果雖有提高,但并不是十分理想。
為了有效地去除PPG信號中的運動偽影,本文提出了一種基于變分模態(tài)分解和歸一化變步長的自適應濾波算法來消除運動干擾。首先通過VMD算法將預處理后的PPG信號分解為若干個本征模態(tài)分量,然后通過計算每個模態(tài)的多尺度排列熵值,選擇合適的模態(tài)重構噪聲參考信號,最后使用歸一化的最小均方誤差自適應算法濾除PPG信號中的運動偽影。
變分模態(tài)分解[12]是Konstantin等人在2014年提出的一種自適應的信號處理方法,通過迭代搜尋變分模態(tài)的最優(yōu)解,不斷更新各模態(tài)函數(shù)及中心頻率,得到若干具有一定帶寬的模態(tài)函數(shù)。變分模態(tài)分解是EMD算法的改進,其優(yōu)點是更好的避免了模態(tài)混疊和端點效應等問題。
VMD方法將信號分解成預先定義的K個本證模態(tài)分量IMF,這里的IMF即 被重新定義為一個AM-FM信號
uk(t)=Ak(t)cos(φk(t))
(1)
其中Ak(t)為瞬時幅值,Ak(t)≥0;φk(t)為相位;φk(t)對t求一階微分,得到uk(t)的瞬時頻率ωk(t)=φk(t)′。
假設每個IMF在信號中心頻率附近具有有限的帶寬,由此構造了如下的約束變分問題
(2)
為了求解式(2),引入二次懲罰項α和Lagrange乘數(shù)λ(t),把問題轉換為了無約束的變分問題
L({uk},{ωk},λ)
(3)
利用交替方向乘子(Alternating Direction Method of Multipliers,ADMM)對式(3)求解得到的K個IMF的頻域結果進行反傅里葉變換,得到其時域信號。
歸一化最小均方誤差(NLMS)算法采用變步長的方法來縮短自適應收斂過程,解決了最小均方誤差(Least Mean Square,LMS)算法在收斂速度和穩(wěn)態(tài)誤差對步長要求相互矛盾的問題[13],是一種改進的LMS算法。NLMS算法具體原理如下
(4)
e(n)=d(n)-y(n)=d(n)-wT(n)x(n)
(5)
(6)
x(n)輸入信號,d(n)為參考信號,w(n)為濾波器抽頭系數(shù),e(n)為誤差信號。μ為步長因子,為了保證自適應濾波器的性能,取值范圍應滿足0≤μ≤2;γ是為了避免xT(n)x(n)過小導致步長太大而預先設置的矯正值,一般取0≤γ≤1。
本文提出的改進算法主要分為兩個部分:基于VMD的運動噪聲參考信號重構和基于NLMS的PPG信號的運動偽影消除。
用VMD算法對預處理后的PPG信號進行分解,得到K個中心頻率由低到高的模態(tài)分量,而利用VMD方法進行參考噪聲重構的算法思想就是從K個本征模態(tài)分量中選出包含運動偽影的模態(tài),然后進行重構。因此,重構的首要問題就是建立相關的準則判斷并選取出運動偽影對應的模態(tài)分量。本文通過計算IMF的多尺度排列熵MPE來選擇重構信號的IMF。
多尺度排列熵是一種衡量時間序列復雜度的非線性動力學特征指標[14-15],是在排列熵基礎上的改進和優(yōu)化,通過對時間序列的粗粒化,得到不同時間尺度的熵值信息,文獻[16]中描述了其原理及計算方法。而對IMF分量來說,計算得到的MPE值越小,說明該尺度下的時間序列越規(guī)則,越接近PPG信號的原始成分,因為無噪的PPG信號為一個周期信號;MPE值越大,時間序列越隨機,越接近噪聲成分。計算得到各IMF分量的MPE值后,選擇合適的尺度因子得到判斷IMF是否為噪聲分量的閾值,然后根據(jù)設定的閾值選取合適的IMF分量進行重構即可得到噪聲參考信號。
將重構的噪聲參考信號和原PPG信號共同作為NLMS自適應濾波器的輸入,得到去除運動偽影后的PPG信號。整個算法流程圖如圖1所示。
圖1 VMD-NLMS算法流程圖
本文利用SFH7050傳感器、MPU6050六軸加速度傳感器、AFE4404模擬前端、主控芯片STM32F103及藍牙傳輸模塊等模塊搭建了PPG信號的采集設備如圖2所示。其中SFH7050傳感器搭載了血氧檢測所需的波長為940 nm的紅外光LED和波長為660 nm的紅光LED[17],而模擬前端AFE4404高度集成了LED驅動電路、放大電路、濾波電路、采樣電路等血氧前端采集必需的功能模塊。
圖2 PPG信號采集設備
為了探究不同運動狀態(tài)下的PPG信號,本文用設計的PPG信號采集裝置采集了常見的三種運動狀態(tài):步行、跑步和騎行時腕部所產生的PPG信號,且在采集過程中,盡量保證手腕自然擺動,采樣的頻率設置為256 Hz。如圖3為采集的行走狀態(tài)下的雙路PPG信號。
圖3 步行狀態(tài)下的雙路PPG信號
由圖3可知,采集到的未經處理的PPG信號中噪聲較多。因此,若使用未處理的PPG信號進行血氧飽和度值的計算,結果與真實值會出現(xiàn)很大的誤差,甚至出現(xiàn)錯誤的結果。
由于人體每分鐘的心率正常為40~200 次/分鐘,對應的頻率范圍大約為0.7~3.5 Hz。而運動偽影也在這個頻率范圍附近。為了充分保留有用的信息并去掉其它一些不感興趣的噪聲如基線漂移和高頻噪聲等,首先對PPG信號進行預處理,采用長度為8 秒,步長為2 秒的滑動時間窗口截取PPG信號;然后使用截止頻率為0.7~3.5 Hz的帶通濾波器對信號進行處理。由于巴特沃斯帶通濾波器在其通頻帶內有平穩(wěn)的幅頻特性,濾波器本文選擇了巴特沃斯帶通濾波器,設置通帶頻率為0.7 Hz~3.5 Hz,阻帶截止頻率為0.5 Hz~5.0 Hz,通帶最大衰減系數(shù)為3 dB,阻帶最小衰減系數(shù)為18 dB,PPG信號的預處理結果如圖4所示。
圖4 預處理前后的PPG信號
由圖4可以看到,預處理前的PPG信號的上面有呼吸諧波等因素造成的表現(xiàn)為基線漂移的低頻噪聲的干擾,有工頻干擾等其它一些因素造成的表現(xiàn)為“毛刺”狀的高頻噪聲的干擾,還有由于采集時的運動干擾帶來的表現(xiàn)為幅值的大幅增大或減小的運動噪聲的干擾。而經過預處理后的PPG信號,從時域特征來看,高頻噪聲帶來的信號的“毛刺”得到了很好的抑制,基線的漂移也有了一定程度的抑制,但運動噪聲并未得到有效地抑制。因此,預處理后的PPG信號需要進一步的去除信號中的噪聲,才能進行血氧飽和度的計算。
為了進一步的去除PPG信號中的運動噪聲,本文對預處理后的PPG信號進行VMD分解,而VMD算法的分解效果的好壞,主要取決于模態(tài)個數(shù)K和懲罰因子α的取值。K取值過大,會造成信號的過分解;而K取值過小,則會造成模態(tài)混疊,即不同中心頻率的信號成分經過VMD分解后處在了同一個本征模態(tài)分量中,產生“虛假”分量。而α的取值主要影響VMD分解后的得到各模態(tài)的帶寬大小模態(tài)混疊程度。如果懲罰因子α的值太小,則每個頻率的帶寬太大,并且將相似頻率誤認為同一中心頻率的大帶寬部分,從而將其分解為同一分量,出現(xiàn)模態(tài)混疊的問題。當該值太大時,部分頻帶寬度減小,可能會導致信號過分解,出現(xiàn)虛假分量。K的取值可由待處理信號的頻譜中峰值的個數(shù)來確定,因此根據(jù)預處理后信號的頻譜中峰的個數(shù),本文中K設置為7。預處理后的信號經過變分模態(tài)分解后得到了IMF1-IMF7共7個本證模態(tài)分量如圖5所示,各個本征模態(tài)分量的中心頻率與處理前信號的峰值所對應的頻率分別如表1所示,對比分解前后各模態(tài)的中心頻率(cf),與分解前信號的主要頻率(mf),發(fā)現(xiàn)頻率值基本對應,可見VMD的結果可以較好反應原信號的頻率特征。
表1 PPG信號的主要頻率與IMF的中心頻率
圖5 PPG信號VMD分解得到的IMF分量
懲罰因子α的取值可通過信號分解后各模態(tài)在頻域的混疊程度來判斷。如圖6所示為K取7,α取3300時,PPG信號經分解后各個IMF的頻率-幅值圖,由圖可得,模態(tài)直接并沒有發(fā)生混疊,所以,α可按經驗取值為3300。
圖6 各個IMF分量的頻率-幅值圖
PPG信號經過VMD分解后得到7個IMF。本文通過計算各IMF分量的MPE來確定各IMF分量所代表的頻率成分。計算MPE時,嵌入維數(shù)m、時間延遲τ、尺度因子s這些參數(shù)的選擇會對熵值大小造成影響。
時間延遲τ的選擇對熵值的計算影響較小,本文計算了τ為1~5時,單個模態(tài)的排列熵值如圖7所示。可以看到,τ的變化對熵值的大小的影響較小,因此本文中,時間延遲τ設置為1。嵌入維數(shù)m的取值一般為3~7[18]。m過大時,信號在相空間中重構時會花費更多的時間,計算時間會因此而大大增加;m過小又會使信號在相空間重構時信息太少而丟失信號的細節(jié)特征。本文統(tǒng)計了當時間延遲τ取1,m取3~7時計算單個排列熵所用的時間如表2??紤]到計算效率和特征損失的平衡,本文的嵌入維數(shù)設置為6。尺度因子s的值對熵值的計算有較大的影響。若s取值過小,則不能最大限度的提取信號的特征信息;若s取值過大,可能抹除信號之間的復雜度差異,還會導致熵值計算不穩(wěn)定。本文計算了s從1到20時,7個IMF的熵值如圖8所示,當s大于7后各個IMF的排列熵值開始重合,無法反映出IMF的表征特征;當s為4~6時,各IMF分量的排列熵值區(qū)別較為明顯,其熵值如表3所示。但為了在保證熵值穩(wěn)定性的同時,最大限度的提取信號的特征信息,將本文的尺度因子s設置為6。
表2 不同嵌入維數(shù)下排列熵的計算時間
表3 IMF在尺度因子不同時的多尺度排列熵
圖7 單個IMF在不同時間延遲下的排列熵
圖8 各IMF不同尺度下的排列熵值
本文通過驗證最終的去噪效果,來確定MPE的最佳閾值。經50次試驗后,用來構造噪聲參考信號的IMF排列熵閾值范圍分布在(0,0.2320)∪(0.3450,+∞)的次數(shù)為43次,因此將閾值設置為σmin≤0.2320和σmax≥0.3450,即當MPE≤0.2320 時,為低頻噪聲成分,當MPE≥0.3450 時,為高頻噪聲成分,此時重構的噪聲參考信號最好。將重構的參考信號和預處理后的PPG信號共同輸入NLMS自適應濾波器中去噪得到的干凈的PPG信號。
此外,本文選擇了用加速度信號作為參考選擇IMF進行PPG信號重構的EMD算法(A-EMD)和VMD算法(A-VMD)對PPG信號進行處理,結果如圖9所示。并計算了三種算法去噪前后的SNR和MSE如表4。
表4 三種方法處理PPG信號的SNR和MSE
圖9 三種不同方法處理PPG信號的結果
由圖9知,使用A-EMD方法處理PPG信號后,一些較強的運動偽影得到了濾除,但由于發(fā)生了模態(tài)混疊,導致在信號重構時丟失了部分有用的信息,在4 s~8 s出現(xiàn)較大的波形失真;使用A-VMD處理PPG信號后,運動偽影得到了較好的抑制,但信號丟失了一些峰值特征,且運動偽影較強時,抑制效果不夠明顯;使用本文方法處理PPG信號后,不僅有效的抑制了運動偽影,而且還保留了信號在一些細節(jié)處的特征。由表4可知,本文方法對比另外兩種算法SNR提高了1 dB~2 dB,MSE也更小,因此去噪效果更好。圖10為不同運動狀態(tài)下通過本文方法對PPG信號的處理結果。
圖10 VMD-NLMS處理前后的PPG信號和生成的參考信號
圖10中,紅線為紅外光PPG信號,黑色線為紅光PPG信號,可以看出,經過本文算法處理后,三種運動狀態(tài)的PPG信號在保持脈搏信號時域特征的同時,較好的抑制了運動偽影。
本文通過提取去噪后雙路PPG信號的直流分量和交流分量計算血氧飽和度值。實驗對象為5名身體健康的人,分別采集1分鐘內的步行、跑步、騎行三種狀態(tài)下左手腕部的PPG信號,然后使用三種算法處理PPG信號并計算血氧飽和度值,同時選取標準的脈搏血氧儀同步檢測(同步采集時右手盡可能保持靜止)的血氧飽和度值作為標準值,結果如表5-7所示。由此可計算各方法測量血氧值的平均絕對誤差值(Mean Absolute Deviation,MAE)和平均絕對誤差百分比(Mean Absolute Error Percentage, MAEP)如表8所示。
表5 步行狀態(tài)下的血氧飽和度計算值
表6 跑步狀態(tài)下的血氧飽和度計算值
表7 騎行狀態(tài)下的血氧飽和度計算值
表8 血氧飽和度值測量結果的誤差….(%)
由表8可知相比與A-EMD和A-VMD兩種方法,本文提出的算法平均絕對誤差和平均絕對誤差百分比減小了2.0%~3.0%,說明使用本文算法得到的血氧值更接近于真實值。
本文提出了一種VMD-NLMS的方法來去除PPG信號中的運動偽影。通過VMD方法構造了噪聲參考信號,作為自適應濾波器的輸入來去除PPG信號中的運動偽影。該方法的優(yōu)點在于自適應濾波器的參考信號是利用VMD分解從PPG信號內部產生的而不是使用三軸加速度信號作為噪聲參考,不僅節(jié)省了硬件成本,而且重構的噪聲參考信號比用單一加速度作為參考信號更有運動噪聲代表性。通過對常見的3種運動狀態(tài)下PPG信號的分析和處理,計算相應的血氧飽和度,證明了本算法更強的魯棒性和準確性;通過與基于加速度的EMD算法和基于加速度的VMD算法去噪結果的對比,證明了本算法的優(yōu)越性。因此,本文提出的算法可以很好的應用于脈搏血氧值的計算。