基于前項差分和動(dòng)態(tài)閾值的PPG心率測量算法
辛 毅 (Maxim Integrated公司)
本文引用地址:http://dyxdggzs.com/article/201909/404538.htm摘?要:基于Maxim的新款超低功耗微控制器MAX32660,運用前項差分和動(dòng)態(tài)閾值方法,實(shí)現了一種PPG信號的心率提取算法。該算法為參考設計MAXREFDES1207而設計,并進(jìn)行了測試,效果優(yōu)良,適合可穿戴設備的心率實(shí)時(shí)測量。
關(guān)鍵詞:手環(huán);心率;PPG;差分;閾值
引言
近年來(lái),隨著(zhù)大眾生活水平的日益提高,各種可穿戴健康設備逐漸成為了一個(gè)熱點(diǎn)領(lǐng)域。這些設備具有體積小、續航長(cháng)、使用便利等諸多優(yōu)點(diǎn),能夠實(shí)現評價(jià)人體的多種生命體征,為人們生活方式的改善提供有益建議。在生命體征的評價(jià)指標中,實(shí)時(shí)心率極其重要。本文基于Maxim的新款超低功耗微控制器MAX32660,運用前項差分和動(dòng)態(tài)閾值方法,實(shí)現了一種PPG信號的心率提取算法。該算法為參考設計MAXREFDES1207而設計,并進(jìn)行了測試,效果優(yōu)良,適合可穿戴設備的心率實(shí)時(shí)測量。
1 原理與背景
目前,國內外開(kāi)發(fā)了許多電子設備用于心率測量,其本質(zhì)是分別運用了4種不同的測量方法:電勢測量法、生物阻抗法、動(dòng)脈血壓法和光電測量法。前3種方法分別利用人體的心電、生物電阻抗和動(dòng)脈壓的周期性變化來(lái)計算心率,干擾度大、硬件要求高,因而較少被可穿戴設備采用。
比較常用的是光電測量法。光電測量法即“光電容積脈搏波描記法 ”,即通過(guò)綠光LED光源結合接收傳感器管照射人體的血管,根據血管對光的反射量的改變獲得PPG信號,從而測量心率。由于人體的皮膚、骨骼、肌肉等對光的反射是固定值,而血管容積隨著(zhù)脈搏的變化而不斷變化,所以血管對光的反射是波動(dòng)值,其波動(dòng)頻率即為心率。目前,光電測量法是市面上可穿戴器件的主流,Maxim的低功耗心率手環(huán)MAXREFDES1207也是基于這一原理進(jìn)行心率的提取。
從PPG信號獲取心率有多種成熟的算法,如閾值法、模板法,甚至有些算法還利用了機器學(xué)習的原理。其中,閾值法算量小,但是準確度較低;模板法準確度較高,但算法復雜;機器學(xué)習方法準確度最高,但是對硬件要求甚高,一般的微控制器無(wú)法勝任。由于本設計需要在MAXREFDES1207的MAX32660平臺上實(shí)現,需要做到心率的實(shí)時(shí)計算并兼顧到結果的準確性,故本文在閾值法的基礎上加以改進(jìn),結合前項差分的預處理方法實(shí)現算法,實(shí)現準確、實(shí)時(shí)的心率輸出。
2 算法實(shí)現
2.1 數據預處理
一般而言,從傳感器中讀取的原始信號含有較多噪聲。其中最為顯著(zhù)的噪聲由體表的運動(dòng)產(chǎn)生。在測量過(guò)程中,人并不能保證完全靜止,這些擾動(dòng)會(huì )使測量部位和傳感器之間的距離發(fā)生變化,導致接收到的信號發(fā)生變化。最為典型的干擾是呼吸干擾,會(huì )使得信號的基線(xiàn)發(fā)生緩慢漂移。一路典型的PPG原始信號如圖1所示??梢?jiàn),信號的基線(xiàn)受到呼吸的影響,有較為嚴重的漂移。同時(shí)可以觀(guān)察到,信號中含有較大的直流分量,這都給心率的提取造成了障礙。
鑒于此,本算法使用前項差分法進(jìn)行數據預處理,即計算原始PPG信號 r(k) 的前向差分信號x(k)=r(k)-r(k-1),可以同時(shí)達到去除基線(xiàn)漂移和直流分量的效果,如圖2所示。
由圖2可見(jiàn),進(jìn)過(guò)預處理,原始PPG信號中的基線(xiàn)漂移和直流分量都已被去除,同時(shí)原始信號的周期性特征已經(jīng)從易被干擾的波峰轉化為特征突出的負脈沖,為下一步的閾值法計算心率提供了有力支持。
2.2 閾值檢測
經(jīng)過(guò)預處理的信號的干擾已經(jīng)被抑制,可以進(jìn)行心率的計算。鑒于波形的特征和硬件的性能,本算法使用閾值法對預處理后的信號的負脈沖進(jìn)行提取,從而計算心率。需要注意的是,圖2信號中的不同負脈沖的峰值并非完全一致,因此如果使用硬閾值進(jìn)行峰值檢測,效果不會(huì )理想。為此,本算法使用動(dòng)態(tài)閾值進(jìn)行檢測。動(dòng)態(tài)閾值又稱(chēng)軟閾值,即根據信號的特性不斷地更新閾值,從而獲得較好的檢測效果。具體來(lái)說(shuō),首先,將信號的最小值的30%作為初始閾值;然后,檢測到第1個(gè)峰值后,將其40%作為新的閾值;接著(zhù),每檢測到1個(gè)新的峰值則更新閾值,新的閾值為之前檢測到的所有峰值的平均數的40%。閾值選取中的百分數系根據大量測試確定。閾值選取的效果如圖3所示。
根據圖3,閾值能夠跟隨負脈沖的峰值發(fā)生變化,使得負脈沖的漏檢率得到有效降低。
2.3 心率計算
由于設計需要,心率需做到實(shí)時(shí)顯示,故本算法采用8 s的PPG信號進(jìn)行計算,每從傳感器獲得一個(gè)新的信號進(jìn)行實(shí)時(shí)更新。接著(zhù),經(jīng)過(guò)上述的兩個(gè)步驟計算出相鄰負脈沖間隔時(shí)間的平均數 I ,從而計算出心率。心率的計算公式為:HR I =60 。整個(gè)算法的過(guò)程如圖4所示。
3 算法測試
為 驗 證 算 法,將 算 法 嵌 入 到 參 考 設 計MAXREFDES1207(如圖5所示)之中,并隨機抽選不同性別和不同年齡的6組測量對象,并和市面上比較流行的手環(huán)進(jìn)行對比,如表1所示。測試位置為左手手腕。
由測試結果可見(jiàn),與主流的產(chǎn)品的測量結果相比,本算法的準確度較高,能夠較好地配合硬件實(shí)現功能。
參考文獻
[1] MAX32660數據手冊[EB/OL].[2019-07-15].https://www.maximintegrated.com/en/products/microcontrollers/MAX32660.html
[2] 方良.基于SIMO技術(shù)的低功耗心率手環(huán)測量方案[R/OL].(2019-06-27)[2019-07-15].http://dyxdggzs.com/article/201906/401978.htm
[3] Chen I.Maxim應用筆記:Using Reflectometry fora PPG Waveform[R/OL].[2019-07-12].https://www.maximintegrated.com/en/app-notes/index.mvp/id/6547
作者簡(jiǎn)介:
辛毅,Maxim Integrated應用工程師,負責Maxim產(chǎn)品及日本客戶(hù)的技術(shù)培訓與支持。
本文來(lái)源于科技期刊《電子產(chǎn)品世界》2019年第9期第27頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。
評論