王樹恒, 于鴻彬, 侯立國
(1.天津工業(yè)大學(xué) 機械工程學(xué)院, 天津 300387; 2.北京飛機維修工程有限公司, 北京 100621)
心電信號是反應(yīng)人體生理健康狀況的重要參數(shù),其能夠反映心肌受損程度,對心律失常、心肌梗死、心肌缺血等病癥檢查具有重要的參考價值[1]。很多研究表明,一半以上的猝死患者在死前數(shù)周有過心電圖失常的癥狀,但這種癥狀很少出現(xiàn),當病人去醫(yī)院診斷時,異常病癥可能已經(jīng)消失,從而出現(xiàn)誤檢和漏檢現(xiàn)象。在心電信號中QRS波的特征提取對心率檢測和心臟疾病的檢測提供了重要依據(jù),但是人體心電信號是一種微弱的生物電信號,容易受到噪聲的干擾,例如工頻干擾、肌電干擾、基線漂移及電極接觸噪聲等,這些噪聲對心電信號的特征提取造成困難。陳嘉緒[1]、王奇武[2]等在LabView開發(fā)環(huán)境下采用小波濾波方法對心電信號進行了采集處理。盧潭城[3]等通過藍牙通信技術(shù)實現(xiàn)了手機上心電信號的顯示。
基于以上背景,本研究開發(fā)了一套便攜式且易于用戶操作的心電信號檢測系統(tǒng)。本系統(tǒng)通過WiFi通信技術(shù)完成心電信號的采集,并通過VB2012完成心電信號的實時顯示,心電數(shù)據(jù)存儲及處理。
心電檢測系統(tǒng)的總體設(shè)計框圖如圖1所示。
圖1 心電檢測系統(tǒng)的總體設(shè)計框圖
采用無紡布Ag/AgCl貼片電極采集心電信號;采用ADI公司的AD8232芯片作為心電信號的調(diào)理模塊,該模塊尺寸小、功耗低,其內(nèi)部集成了運算放大器、儀表放大器、右腿驅(qū)動放大器,而且具有導(dǎo)聯(lián)脫落電路和快速恢復(fù)功能[3-4],AD8232的外圍電路如圖2所示;將ATmega8A作為檢測系統(tǒng)的微處理器,用其自帶的10位A/D轉(zhuǎn)換器對心電信號進行采樣處理,經(jīng)過采樣處理的心電數(shù)據(jù)通過WiFi模塊實時上傳存儲至云端服務(wù)器中。測量過程中,將貼片電極分別貼于左胸、右胸和左下腹部位,采集頻率為400 Hz,數(shù)據(jù)傳輸速率為19 200 bit/s,測量的結(jié)果在平板電腦上顯示。圖3為未經(jīng)軟件濾波處理所采集到的原始心電信號。
圖2 AD8232外圍電路
圖3 原始心電信號
由圖3可以看出通過硬件采集電路采集到的原始心電信號含有外部干擾,QRS波群存在類似白噪聲的干擾,且具有明顯的基線漂移,因此ECG信號經(jīng)過硬件采集和預(yù)處理之后,還需進行進一步的軟件濾波。本系統(tǒng)采用小波濾波去除信號中基線漂移和其他外部噪聲干擾。小波分析在信號濾波、特征提取、圖像壓縮等方面具有明顯優(yōu)勢[2]。
系統(tǒng)采集到的心電信號干擾包括:由人體肌肉收縮引起的肌電干擾;由呼吸引起的心電基線漂移和幅度變化;測量電極接觸和電極晃動噪聲;工頻干擾以及電子設(shè)備引起的噪聲[5]。這些噪聲都會對心電信號的檢測造成影響。
系統(tǒng)采集的心電信號為數(shù)字量,因此要對所采集的數(shù)據(jù)進行離散小波處理,在L2(R)信號空間中的任意函數(shù) x(t)離散小波變換(DWT)為:
x
(t)經(jīng)過小波變換后的重構(gòu)變換公式為:
其中
由于小波基ψ(t)生成的小波ψa,b(t)在小波變換中對被分析的信號起觀測窗的作用,所以ψ(t)還應(yīng)滿足一般函數(shù)約束條件:
為了實現(xiàn)重構(gòu)信號在數(shù)值上是穩(wěn)定的,還需要小波ψ(t)的傅里葉變換滿足穩(wěn)定性條件:
本系統(tǒng)首先使用Matlab2013對采集的信號進行二次濾波和基線漂移的消除,然后再與VB2012進行混合編程實現(xiàn)最終想要的效果。Matlab集數(shù)學(xué)計算、可視化編程于一體,應(yīng)用領(lǐng)域廣泛;同樣在信號分析處理領(lǐng)域也具有得天獨厚的優(yōu)勢。如圖4所示為信號小波多尺度分解結(jié)構(gòu)示意圖。
心電信號中的有用信號通常比較平穩(wěn)有規(guī)律,而噪聲信號通常是隨機非平穩(wěn)的。利用小波樹對含噪心電信號分解后,含噪部分主要集中在高頻小波系數(shù)中,心電信號中的基線漂移集中在低頻小波系數(shù)中。本系統(tǒng)通過門限閾值法處理小波分解后的低頻和高頻系數(shù),即對較大的小波系數(shù)進行保留或削弱處理,對較小的小波系數(shù)進行置零處理。如圖5所示為心電信號小波去噪流程圖。
圖4 小波多尺度分解結(jié)構(gòu)示意圖
圖5 心電信號小波去噪流程圖
系統(tǒng)采用Symlets(SymN)小波系對采集的原始心電信號進行多尺度分析,Symlets小波函數(shù)是由Daubechies提出的近似對稱小波函數(shù),其是對dbN小波系的一種改進。該小波與dbN小波相比,具有更好的對稱性,一定程度上能夠減少對信號進行分析和重構(gòu)時的相位失真。通過對采集的心電信號進行7層小波分解,下頁圖6為對采集到的心電信號進行小波多尺度分解的系數(shù)圖。從圖6中可以看出基線漂移信號主要存在于低頻信號中,肌電干擾等其他干擾主要存在于高頻系數(shù)中。通過對各層系數(shù)進行閾值選取確定,最終得到如下頁圖7所示的心電信號濾波前后波形圖,從圖中可以看出,經(jīng)過濾波處理后的心電信號更加平穩(wěn),QRS波特征更加明顯。
對采集的原始心電信號完成濾波之后,進行QRS波的提取。QRS檢測的方法主要包括:閾值檢測法[6]、小波分析法[7-8]、神經(jīng)網(wǎng)絡(luò)法[9]等。系統(tǒng)在完成小波濾波后,采用閾值檢測的方法進行QRS波的檢測,這樣既利用了小波分析后的結(jié)果,又降低了單純使用閾值檢測法的誤檢率。具體實現(xiàn)方法如下:
1)確定閾值。從完成濾波后的心電信號fs(n)取3 600個采樣點來確定閾值,首先以900n(n=1,2,3,4)對信號分組,找到極大值 max[n](n=1,2,3,4),然后根據(jù)R波與T波幅值大致關(guān)系(R波幅值大約是T波幅值的6倍)設(shè)置閾值如下:
th=(max[1]+max[2]+max[3]+max[4])×3/16
2)閾值比較確定QRS波。將fs(n)0中的各點與設(shè)定的閾值進行對比,大于所設(shè)置閾值的極值點即為R波的峰值,然后在峰值附近掃描極值點確定Q波的起始點和S波的終點。
如圖8所示為采用小波濾波后進行閾值檢測得到的QRS波識別圖。從圖中可以看出,系統(tǒng)能夠比較準確地對QRS波進行識別。
圖6 心電信號小波多尺度分解系數(shù)圖
圖7 小波濾波前后心電波形
心電檢測系統(tǒng)的用戶界面使用Visual Basic 2012進行開發(fā),VB2012是微軟公司較為流行的VB.NET編程語言,是Visual Studio2012環(huán)境支持的幾種語言之一。VB.NET是基于.NET框架的完全面向?qū)ο蟮木幊陶Z言,其開發(fā)界面友好,能夠可視化地開發(fā)網(wǎng)絡(luò)應(yīng)用程序、Windows應(yīng)用程序和服務(wù)器端組件,但其矩陣運算、數(shù)學(xué)運算等方面的能力很弱。Matlab具有強大的數(shù)學(xué)運算功能,具有良好的擴展能力和可移植性,但其界面開發(fā)能力較弱[10]。相對于Labview,VB.NET開發(fā)的界面更美觀一些,能給用戶帶來良好的使用體驗。
圖8 QRS波識別圖
Matlab提供了多種程序語言接口,通過微軟的組件對象模型(Component Object Model,COM)可以完成與VB.NET編程環(huán)境的鏈接,這樣就能在VB.NET開發(fā)環(huán)境中利用Matlab程序進行心電信號的濾波處理,圖9為采用混合編程得到濾波后的心電波形圖。
圖9 采用混合編程得到的濾波后的心電波形
人體的心率值可以從心電數(shù)據(jù)中獲得,為了提高VB2012程序的運行速率,心率的計算使用.NET語言完成。下頁圖10為本系統(tǒng)的心電數(shù)據(jù)的部分采樣點,從圖10中可以看出QRS波之間的采樣點數(shù)密集,且沒有確定的表達式。本系統(tǒng)采用一種快速準確的計算方法具體步驟如下:
1)對心電數(shù)據(jù)每隔10 s進行一次截取,然后再數(shù)據(jù)的前端和后端進行適當?shù)男盘栄油亍?/p>
2)計算經(jīng)延拓后的數(shù)據(jù)的極大值ui(i=1,2,3,…,n)。
3)在所有極大值點ui點中尋找滿足以下條件的極值點uj(j=1,2,3,…,m;m<n)為
圖10 部分心電數(shù)據(jù)采樣點
其中ut=0.6 mV,此值小于R波與T波的峰值差。滿足以上條件的極值點個數(shù)jmax即為R波的峰值點。
4)得到R波峰值點的個數(shù)之后,通過公式
可計算人體的心率值。其中tj為首、末峰值點的時間間隔。
步驟(1)保證了R波峰值點不被遺漏,步驟(4)保證了所測心率值的準確性。
本系統(tǒng)通過以上方法對心率值進行計算,每隔10 s刷新一次,并存儲。系統(tǒng)與歐姆龍HEM-7132電子血壓計所測心率值進行測試對比,在測量過程中本系統(tǒng)與電子血壓計同時啟動測量。通過對比計算得到如表1所示的相對誤差,從表中數(shù)據(jù)可知,本系統(tǒng)所檢測的心率值在誤差允許范圍內(nèi),結(jié)果可靠、穩(wěn)定。
表1 心率檢測結(jié)果對比相對誤差
在進行心電檢測時,用戶界面可以顯示生動的心電波形。同時用戶也可以通過輸入自己的姓名、性別、年齡等基本信息將所測得的數(shù)據(jù)保存到遠程服務(wù)器的數(shù)據(jù)庫中,以形成用戶的歷史健康信息。本系統(tǒng)用戶使用的操作界面如圖11所示。
圖11 用戶心電檢測界面
本文所開發(fā)的便攜心電采集系統(tǒng)通過一鍵完成心電信號的檢測,能夠高效地實現(xiàn)上、下位機的通信,采集的心電信號穩(wěn)定、準確。利用Matlab進行軟件濾波,進一步解決了AD8232外圍電路濾波性能不理想的問題。此外,本系統(tǒng)可以判斷人體的心率是否正常,繪制心率趨勢圖;能夠進行QRS波的識別與心電數(shù)據(jù)遠程存儲,形成健康數(shù)據(jù)電子檔案,作為醫(yī)護人員的參考依據(jù),有助于對用戶可能存在的潛在病情進行預(yù)測。通過使用WiFi通信技術(shù),使得所開發(fā)的系統(tǒng)既適合個人在家庭WiFi網(wǎng)絡(luò)環(huán)境下直接對心電信號進行檢測,也適合WiFi網(wǎng)絡(luò)覆蓋的社區(qū)使用。
[1]陳嘉緒,周穎.基于AD8232的心電實時監(jiān)測及分析系統(tǒng)設(shè)計[J].計算機測量與控制,2017(2):26-31.
[2]王奇武.便攜式脈搏與心電監(jiān)護系統(tǒng)的設(shè)計與信號處理方法的研究[D].武漢:武漢科技大學(xué),2015.
[3]盧潭城,劉鵬,高翔,等.基于AD8232芯片的便攜式心電監(jiān)護儀設(shè)計[J].實驗技術(shù)與管理,2015(3):113-117.
[4]陳妮,黃代政,張國棟.人體生理參數(shù)測量系統(tǒng)低功耗設(shè)計與實現(xiàn)[J].傳感器與微系統(tǒng),2017(3):80-83.
[5]劉滿晉.抗運動干擾的便攜式心電監(jiān)測儀的研究[D].北京:北京理工大學(xué),2015.
[6]Pan J,Tompkins W J.A real-time QRS detection algorithm[J].Biomedical Engineering,IEEE Transactions on,1985(3):230-236.
[7]Sasikala P,Wahidabanu R SD.Robust R peak and QRSdetection in electrocardiogramusingwavelet transform[J].International Journal of Advanced Computer Science and Applications-IJACSA,2010(6):48-53.
[8]Narayana K V L,Rao A B.Wavelet based QRS detection in ECG using MATLAB[J].Innovative Systems Design and Engineering,2011(7):60-69.
[9]AbibullaevB,SeoH D.A newQRS detection method usingwavelets and artificial neural networks[J].Journal of medical systems,2011,35(4):683-691.
[10]劉紹清.基于COM技術(shù)的Matlab和VB.Net混合編程[J].軟件導(dǎo)刊,2012(5):11-12.