潘天文,劉帥,虞致國,錢黎明,魏敬和,顧曉峰
1. 物聯網技術應用教育部工程研究中心,江南大學 電子工程系,江蘇 無錫 214122;
2. 中國電子科技集團公司第五十八研究所,江蘇 無錫 214072
伴隨著我國經濟和社會的發展,人口老齡化進程的加快(2016年我國60歲及以上占總人口比例為15.5%[1]),我國的心臟疾病發病率不斷攀升,心臟疾病已成為威脅健康的第一殺手[2-3]。但是,醫院使用的高精度心電信號采集設備體積大、價格高、使用復雜,并不適合普通個人和家庭使用。動態心率信號的實時采集與監測對于心血管疾病的預防和診治具有重要的實用價值。周琪等[4]采用壓電式心率傳感器進行心電采集,從測量血壓時壓力傳感器測到的波動來計算脈率,但這種方法提取信號時會限制病人的活動,長時間使用會增加病人生理和心理的不適。本文設計了一種功耗低、便攜性好的小型心率監測無線發送設備,并通過改進傳統的閾值檢測算法提高了心率監測的精度,具有良好的應用價值。
設計的便攜式心率監測系統整體結構,見圖1。該系統首先從人體采集脈搏波模擬信號,然后經PSoC單片機上的模數轉換(ADC)模塊進行信號的A/D轉換,再利用心率算法進行計算,最后通過藍牙將實時數據傳送到手機等智能終端。

圖1 心率監測系統的整體結構
系統硬件主要由采集模塊、主控模塊、通信模塊三部分組成。采集模塊為傳感器和PSoC單片機上的ADC模塊;主控模塊為PSoC單片機上的超低功耗ARM Cortex-M0微處理器;通信模塊為PSoC上的藍牙模塊。
使用脈沖光電傳感器進行人體脈搏波采集,其基本原理是利用血管搏動時造成透光率的不同來測量脈搏波,即光電容積描記法[5-8]。該傳感器可通過綁帶固定在病人的手指上,不會限制病人的行動。傳感器實物照片,見圖2。該傳感器使用了綠光LED作為光源,采用APDS-9008微型光傳感器[9],靈敏度較高。當綠光LED照射到人體外周血管,動脈的充血容積變化導致光束的透光率發生改變,因而人體組織反射的光線也隨之改變。環境光傳感器接收反射的光線并能產生高增益的光電流,通過標準值的外部電阻轉換為電壓。而傳感器輸出電壓值的變化就是脈搏波形的變化,因而電壓變化周期就是心跳間隔周期,從而可計算出心率。

圖2 脈沖光電式傳感器
本設計采用賽普拉斯的PSoC單片機,該單片機集成了低功耗藍牙線射頻系統、模擬和數字外設功能、存儲器及ARM Cortex-M0超低功耗微處理器核。基于PSoC單片機上的逐次逼近型模數轉換器(SAR ADC)模塊[10]對來自于傳感器的模擬信號進行模數轉換,此處選擇10位分辨率,采用單端輸入的工作方式。采用定時器模塊用于產生中斷來獲取ADC轉換的數據進行計算。無線傳輸使用單片機內嵌藍牙模塊,微處理器核與智能終端基于BLE 4.0協議進行通信連接。
系統的軟件設計主要包括基于PSoC的嵌入式軟件和基于手機終端的監測軟件兩部分。
PSoC Creator是一個基于Windows的集成開發環境(IDE),用于對PSoC系列產品進行軟件和應用固件開發。PSoC Creator提供了豐富的函數,可提高設計效率和靈活性[11]。系統初始化后先進行A/D轉換,接著定時器進行中斷獲取ADC采樣值進行心率計算,然后通過藍牙將數據傳輸到終端。
基于傳統的閾值檢測算法對心率算法進行了改進。傳感器測量脈搏波信號時,會在每個波峰來臨后產生一個小波峰,稱為重搏波[12],這是由于脈搏波在動脈中反射造成的。在使用閾值檢測算法時,重搏波產生的波形突變會導致閾值的誤檢,從而影響心率的計算。重搏波一般出現在0.6個心跳間隔(Time Between Heartbeats,TBH)內[13],因此為了避免重搏波的干擾,每過0.6個TBH周期后在脈搏波的上升階段設置閾值進行閾值檢測,然后根據兩個相鄰脈搏波的上升段閾值的時間差來計算出TBH,進而計算出心率,即每分鐘的心跳次數(Beats Per Minute,BPM)。
改進算法的軟件流程,見圖3。假設初始心率為100 beat/min,則可算出初始心跳間隔,記為TBH(a),即TBH(a)=60 s/100=600 ms。因為TBH(a)是設定的特殊值,存在誤差,所以要對TBH(a)進行處理。首先用差分閾值算法[14]對脈搏波信號進行波峰檢測,求出脈搏波信號的差分波形,然后對每個差分后的值進行平方,得到差分平方值△P=[P(n+1)-P(n)]2。P(n+1)為此次信號幅值,P(n)為上一次信號幅值。由于脈搏波信號中主波和重搏波相對于其他波,波形突變,所以平方后只有主波和重搏波的附近可以檢測到波峰。在TBH(a)時間內檢測在TBH(a)周期內出現的波峰數:若檢測到三個波峰,則不改變TBH(a)的初值;若檢測到2個及以下波峰,則增加TBH(a)的初值,每次遞增10,直到檢測到三個波峰為止;若檢測到4個及以上波峰,則減小TBH(a)的初值,每次遞減10,直到檢測到三個波峰為止。然后,用處理過的TBH(a)進行下一周期的心率計算。這樣,通過誤差修正,讓TBH(a)處在一個較為準確的區間里,可使誤差降到最小。

圖3 改進算法的流程
接著,對脈搏波信號進行閾值檢測。本文將閾值(簡稱Thresh)設為信號上升段的50%[15],當第一次檢測到脈搏波信號超過閾值并已經過0.6個TBH時,開始計算時間(記為△t1);當第二次檢測到脈搏波信號超過閾值并已經過0.6個TBH時,記第二次時間(記為△t2)。根據兩次檢測到閾值的時間差可計算出第二次心跳間隔,記為TBH(b),即TBH(b)=△t2-△t1。依此類推,計算出其后的TBH。最后,取TBH的平均值計算出心率。
終端顯示與控制在智能手機上實現。賽普拉斯提供了一個手機應用程序CySmart[11]用于驗證應用程序。本系統采用基于IOS操作系統的智能手機作為終端。手機界面上顯示了動態監測的心率BPM和心跳間隔周期RR-Interval等實時數據,見圖4。

圖4 手機終端驗證界面
本文采集了實驗者在靜息狀態和運動狀態下各10組心率數據,分別見表1~2。
同時用改進算法對比標準心率進行檢出率分析,其中:


表1 靜息狀態的檢出率

表2 運動狀態的檢出率
從測試數據可以計算得出,改進算法檢出率總體高于閾值檢測算法檢出率,而表2中可觀察到有兩組數據的改進算法錯檢數略高于閾值檢測。這是因為兩組數據的實驗者心率都在100 beat/min左右。而閾值檢測算法取的初始心率特殊值是100 beat/min,與實驗者實際心率較為接近,所以最后求得的心率誤差較小。閾值檢測算法在靜息狀態下和運動狀態下的平均檢出率分別為96.79%和97.91%,而本文所提出的改進算法的平均檢出率分別為98.82%和99.01%,比閾值檢測算法的檢出率平均高出1.59%;這20組數據中,閾值檢測算法的平均誤差為2.6 beat/min,而改進算法的平均誤差為1.05 beat/min,驗證了改進算法的可行性。根據中華人民共和國醫藥行業標準[16],要求誤差≤5 beat/min,因此本系統的誤差在個人家庭使用環境下是可以接受的。
系統功耗測試,見圖5。用萬用表連接電路板上的工作電流測試接口,測得平均電流為13.53 mA,鈕扣電池電壓為3 V,因此平均功耗約為40.6 mW,具有低功耗特性。

圖5 系統功耗測試
針對傳統閾值檢測算法引入的首個心跳間隔特殊值作了預處理,通過對脈搏波信號的波峰檢測,確定該特殊值的大致區間來減小誤差。通過靜息狀態和運動狀態的數據可知,本文改進的閾值檢測算法,提高了心率的檢出率,符合醫藥行業標準。該心率監測系統具有便攜性好、功耗低、檢測精度高、實時監測的特點,具備良好的實用價值。