梁偉玲,吳超,林建斌,鐘志龍
1.惠州市中心人民醫(yī)院醫(yī)學工程部,廣東惠州516001;2.惠州市中心人民醫(yī)院招標辦公室,廣東惠州516001
據(jù)統(tǒng)計,心血管病死亡人數(shù)占居民疾病死亡人數(shù)40%以上,居于所有疾病首位,足見其風險性之高。根據(jù)《中國心血管病報告2017》估算結(jié)果顯示,現(xiàn)在國內(nèi)心血管病患病人數(shù)高達2.9億,今后10年心血管病患病人數(shù)仍將快速增長[1]。心電圖(Electrocardiogram,ECG)通過電極片記錄心肌細胞生物電位的變化,是醫(yī)生對患者進行心血管疾病診斷(如心肌梗塞、心率異常等)的重要依據(jù)。由于心血管疾病本身具有隱蔽性強,不易察覺的特點,因此早期的ECG監(jiān)測對于篩查、預防、早期干預心血管疾病有著十分重要的意義[2]。心電監(jiān)測因其具有無創(chuàng)、快速、直接等優(yōu)點而成為醫(yī)院檢查的首選[3]。
現(xiàn)階段的心電監(jiān)測方法可以分為兩大類:①醫(yī)院重癥科室廣泛使用的心電監(jiān)護儀,通過心電導聯(lián)線連接病人,實時采集受試者的心電信號,并實時分析,異常報警。②動態(tài)心電圖,亦稱為Holter,一般連續(xù)監(jiān)測1~7 d,監(jiān)測過程中,將采集的數(shù)據(jù)實時寫入設(shè)備的存儲芯片或存儲卡,監(jiān)測結(jié)束后,將數(shù)據(jù)導入到電腦端,再進行分析。第一類設(shè)備的優(yōu)點很明顯,能有效檢查患者的心電、血氧飽和度、血壓等多項參數(shù),并且診斷結(jié)果準確,可信度高,但是整機設(shè)備體積大、價格昂貴,顯然不適合廣泛使用,另外,導線與設(shè)備的有線連接,令受試者束縛感明顯,設(shè)備不夠便攜[4-6]。第二類設(shè)備通過長時間的監(jiān)測,一般可以記錄多達10 萬多次的心電信號,這樣可以大大提高對非持續(xù)性心律失常的檢出率,如間歇性房顫或短暫的心肌缺血發(fā)作[7],這類設(shè)備的不足:數(shù)據(jù)分析不是實時的,如果在監(jiān)測過程中遇到致命性心律失常發(fā)生,如心臟驟?;蚴翌?,不能及時給出報警[8]。
針對上述不足,本文提出一種低成本、實時數(shù)據(jù)傳輸?shù)臒o線心電信號采集系統(tǒng),方便后續(xù)深入開展研究相關(guān)無線物聯(lián)網(wǎng)技術(shù)下的在線Holter技術(shù)。
本系統(tǒng)分為上位機和下位機兩部分。上位機可以是一臺普通的電腦或者樹莓派等主機,配置相應(yīng)的軟件程序和無線通信模塊。下位機采用開源硬件平臺Arduino Nano 作為主控模塊,另外,還包括心電采集模塊和無線通信模塊,如圖1所示。
圖1 心電信號采集系統(tǒng)架構(gòu)Fig.1 Architecture of electrocardiogram(ECG)acquisition system
心電信號采集模塊采用ADI公司的低功耗、單導聯(lián)心率監(jiān)護儀模擬前端AD8232[9]。該芯片內(nèi)部集成了儀表放大器、增益放大器、右腿驅(qū)動電路、休眠電路、基準電壓緩沖,內(nèi)置高靈敏度導聯(lián)脫落檢測和自動快速恢復電路,極大地方便開發(fā)應(yīng)用(低成本、低功耗、小尺寸等優(yōu)勢被廣泛應(yīng)用在便攜式健身設(shè)備、遠程醫(yī)療監(jiān)護終端、汽車、手表、手機等多種電子設(shè)備上)[10-11]。根據(jù)數(shù)據(jù)手冊提供的參考電路,設(shè)計了心電監(jiān)測模塊電路(圖2),前端心電導聯(lián)線將電極片拾取的微弱生理信號,通過模擬前端AD8232進行調(diào)理,輸入到二階低通濾波器[12]。實驗中發(fā)現(xiàn),采用了帶屏蔽層的心電導聯(lián)線,能有效的減小干擾,降低信號的毛刺。
本設(shè)計中采用Arduino Nano 作為系統(tǒng)的主處理器模塊,Arduino Nano 是一款小巧、全面、基于ATmega328 單片機的開源硬件平臺[13]。二階低通濾波器的輸出端接入到Arduino Nano 的模數(shù)轉(zhuǎn)換端口,通過單片機內(nèi)部的模數(shù)轉(zhuǎn)換,實現(xiàn)模擬信號到數(shù)字信號的轉(zhuǎn)變。同時,Arduino Nano還負責將采集到的信號和計算結(jié)果發(fā)送到無線傳輸模塊。
由于心電信號中有用成分的頻率范圍是0.05~100 Hz,根據(jù)奈奎斯特采樣定理,采樣頻率必須大于原始信號最高頻率的2倍以上,采樣之后的數(shù)字信號才能完整地保留原始信號信息,本設(shè)計采用250 Hz采樣率[14]。
圖2 心電監(jiān)測模塊電路原理圖Fig.2 Schematic diagram of ECG monitoring module
在波形檢測算法方面,本設(shè)計采用文獻[15]提出的R 波檢測算法,該方法是基于Pan&Tompkins 的R 波檢測算法的延伸。Pan&Tompkins 算法是Pan 和Tompkins[16]提出的一種至今仍廣泛使用的R 波檢測方法,它通過對心電信號進行帶通、差分、平方來消弱P、T波成份和噪聲、突出QRS波群成份,然后設(shè)置閾 值檢測 大 于閾 值 的波峰[17]。文獻[15]中 將Pan&Tompkins 輸出平方項進行了滑動窗口求和,這樣做的好處是QRS波群的特征進一步得到凸顯。此算法的基本信號流程如圖3所示[15],采集到的信號先輸入一個帶通濾波器(包含有低通濾波、高通濾波)、再經(jīng)過微分、平方、滑窗積分,以及后續(xù)的閾值更新決策機制等過程。
圖3 心電信號經(jīng)過帶通濾波的流程圖Fig.3 Flow diagram of ECG signals after bandpass filtering
在算法驗證階段,筆者在Matlab 上先對該算法進行驗證,各個環(huán)節(jié)的波形如圖4所示。從圖4可以看出,該波形的QRS波特征得到了較好的凸顯。
ZigBee協(xié)議棧使用TI公司的Z-Stack協(xié)議棧[18]?;贑C2530的ZigBee模塊內(nèi)部已經(jīng)集成了相關(guān)的協(xié)議[19]。通過生產(chǎn)廠商提供的資料,當ZigBee采用點對點方式傳輸數(shù)據(jù)時,數(shù)據(jù)包格式如表1所示。
表1為一幀完整的數(shù)據(jù)包,共長58 字節(jié)(byte)。其中,發(fā)送端口1字節(jié),接收端口為1字節(jié),目標地址為16 位二進制,對應(yīng)2 字節(jié),數(shù)據(jù)塊為50 字節(jié),校驗和1 字節(jié),故數(shù)據(jù)長度為55 字節(jié),對應(yīng)十六進制為0x37。值得一提的是:校驗碼僅對數(shù)據(jù)塊的50 字節(jié)進行奇校驗,校驗結(jié)果保存在校驗碼的低七位,有效的避免與包頭包尾信息沖突。為了測試系統(tǒng)丟包率,筆者使用兩個ZigBee 模塊搭建了一個簡單的測試平臺。一個模塊連接Arduino的串行接口,將數(shù)據(jù)塊的數(shù)據(jù)填充為0x55,配置波特率為115 200 bps,配置定時器200 ms,定時器中斷子函數(shù)中將數(shù)據(jù)包發(fā)送一次;另一個模塊通過USB轉(zhuǎn)串口線接入電腦,打開串口調(diào)試助手進行計數(shù)。測試平臺,持續(xù)測試3個多小時,系統(tǒng)運行穩(wěn)定,無數(shù)據(jù)包丟失現(xiàn)象。
為了使上位機軟件能在不同的操作系統(tǒng)平臺應(yīng)用,筆者選擇了Python 作為上位機編程語言,結(jié)合Pyserial(串口通信)和PyQt4(Python圖形界面開發(fā)工具包)兩個模塊,實現(xiàn)數(shù)據(jù)讀取、解包和圖形界面程序心電波形的顯示[20]。上位機程序設(shè)計采用了QT內(nèi)部多線程技術(shù)[21],一個線程負責通過Pyserial 實時讀取無線模塊接收的數(shù)據(jù)(模塊接收后存入串口緩沖區(qū)),進行解包;一個線程負責將解包的數(shù)據(jù)進行處理和波形繪制。上位機界面如圖5所示。
圖4 心電信號波形圖Fig.4 ECG waveforms
表1 點對點模式串口數(shù)據(jù)包格式Tab.1 Packet format of point-to-point serial port
首先在Protel 99se 軟件上完成了下位機端的PCB設(shè)計,并將各個模塊焊接調(diào)試好。然后,將心電導聯(lián)線連接心電模擬盒,實時采集模擬器的心電信號,將結(jié)果通過ZigBee模塊發(fā)給電腦,然后在電腦端將整個趨勢描點出來。系統(tǒng)測試圖如圖6所示。
為了驗證心電算法的準確性,先將心電模擬盒設(shè)為固定的心率值,單位:次/min,然后在該心率值的對應(yīng)點上測量3 組數(shù)據(jù),每組測量5 次數(shù)據(jù),每次數(shù)據(jù)之間間隔時間2 min,取其平均值作為每組測試數(shù)據(jù)的心率平均值,相對誤差=(設(shè)定值-均值)/設(shè)定值×100%,依次完成60、80 和120 bpm 的測試,測試結(jié)果記錄在表2中。從表2測試的45 個點數(shù)據(jù)來看,誤差均小于1%,且均值與模擬盒的值相差不大于1 bpm。
圖5 上位機界面截圖Fig.5 Screenshot of upper computer interface
圖6 系統(tǒng)測試圖Fig.6 System test
表2 對比心率測試結(jié)果Tab.2 Comparison of heart rate test results
本文搭建了一套基于Arduino Nano 和AD8232的心電信號采集系統(tǒng),采用ZigBee 無線通信方式傳輸數(shù)據(jù),采用實時心電處理算法對心電信號進行預處理和分析,通過參比心電模擬器的方式驗證了系統(tǒng)的準確性。由于時間關(guān)系,未能將心電算法中的EC57 標準中規(guī)定的數(shù)據(jù)庫對整個QRS 波檢測算法進行評測。希望以后有機會能在這方面進行一些深入研究。本設(shè)計提出的無線心電信號采集系統(tǒng),為后續(xù)開展心電信號處理研究和心律失常分析等奠定了一定的研究基礎(chǔ)。