文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.180064
中文引用格式: 張夢新,,廖遠(yuǎn),劉文涵,,等. 基于SOPC的多導(dǎo)聯(lián)ECG實(shí)時(shí)監(jiān)測系統(tǒng)[J].電子技術(shù)應(yīng)用,,2018,44(8):56-59.
英文引用格式: Zhang Mengxin,,Liao Yuan,,Liu Wenhan,et al. Multi-lead real-time ECG monitoring system based on SOPC[J]. Application of Electronic Technique,,2018,,44(8):56-59.
0 引言
目前,,心血管疾病的發(fā)病率迅速上升,已經(jīng)成為威脅人類身體健康的主要因素之一,。常規(guī)的心電監(jiān)護(hù)儀需要患者在有限時(shí)間內(nèi),,到固定的醫(yī)療場所進(jìn)行監(jiān)護(hù)診斷,無法滿足患者長期實(shí)時(shí)監(jiān)護(hù)的需求,,因此家用心電監(jiān)護(hù)儀在人們的生活中發(fā)揮著越來越重要的作用[1]?,F(xiàn)今,絕大多數(shù)的家用心電監(jiān)護(hù)儀或是通過采集電路,,將心電數(shù)據(jù)經(jīng)互聯(lián)網(wǎng)發(fā)送到醫(yī)院監(jiān)護(hù)中心進(jìn)行遠(yuǎn)程監(jiān)護(hù)[2-3],,或是實(shí)現(xiàn)多體征參數(shù)的監(jiān)護(hù),計(jì)算心率,,畫出波形等[4],。這些都沒有對復(fù)雜的心血管疾病進(jìn)行實(shí)時(shí)分析診斷。因此本文提出了一種針對家用的,、可對心血管疾病實(shí)時(shí)分析診斷的心電監(jiān)測系統(tǒng),。
本文使用內(nèi)嵌了ARM Cortex A9雙核處理器的FPGA,其運(yùn)算處理能力強(qiáng),,可實(shí)時(shí)分析處理心電數(shù)據(jù),。通過軟硬件協(xié)同設(shè)計(jì),在ARM上實(shí)現(xiàn)了難以硬件化的QRS檢測算法,,心率變異性分析和基于卷積神經(jīng)網(wǎng)絡(luò)的心梗檢測算法,;在FPGA中實(shí)現(xiàn)FIR濾波器和LMS自適應(yīng)陷波及數(shù)據(jù)緩存,減輕ARM處理負(fù)擔(dān),,提高數(shù)據(jù)處理效率,。
1 系統(tǒng)設(shè)計(jì)
基于SOPC的多導(dǎo)聯(lián)ECG監(jiān)測系統(tǒng)框架如圖1所示,系統(tǒng)包括心電信號(hào)采集前端和心電數(shù)據(jù)處理后端兩部分,,兩者之間通過ZigBee進(jìn)行數(shù)據(jù)傳輸與控制,。
2 系統(tǒng)各模塊原理及設(shè)計(jì)
2.1 心電信號(hào)采集前端
為了達(dá)到心電信號(hào)采集前端便攜化的目的,使用了TI公司推出的專門針對ECG信號(hào)采集的ADS1298芯片,。ADS1298內(nèi)部集成了8通道24位帶符號(hào)的模數(shù)轉(zhuǎn)換模塊,,分別用來測量I、Ⅱ?qū)?lián)及V1~V6的6個(gè)胸導(dǎo)聯(lián)信號(hào)[5],。根據(jù)這8個(gè)導(dǎo)聯(lián)的信號(hào)經(jīng)過一定的運(yùn)算處理可得到十二導(dǎo)聯(lián)心電信號(hào)[6],。其采樣頻率可在250 S/s~32 kS/s之間。
系統(tǒng)通過AgCl電極片拾取心電信號(hào),,ADS1298每完成一次采樣轉(zhuǎn)換,STM32控制ZigBee模塊將所用到的導(dǎo)聯(lián)的心電數(shù)據(jù)發(fā)送到心電數(shù)據(jù)處理后端,。其軟件控制流程如圖2所示,。
2.2 無線傳輸模塊
本系統(tǒng)使用UART接口的ZigBee模塊,。雖然ZigBee傳輸距離較短,速率慢,,但由于系統(tǒng)AD采樣速率較低,,并且針對家用,傳輸距離限于幾十米范圍,,再加上ZigBee功耗低,,因此ZigBee滿足設(shè)計(jì)要求[7]。首先系統(tǒng)上電后要檢測前端與后端是否建立連接,。圖3所示為判斷是否建立連接流程,。
2.3 心電數(shù)據(jù)處理后端
心電數(shù)據(jù)處理后端的主要任務(wù)是通過FPGA與ARM完成對心電數(shù)據(jù)的預(yù)處理與算法處理。
FPGA中設(shè)計(jì)結(jié)構(gòu)如圖4所示,。用多路并行處理的方式處理心電數(shù)據(jù),,且每一路的設(shè)計(jì)遵從流水線的設(shè)計(jì)思路,提高系統(tǒng)處理速度,,實(shí)現(xiàn)實(shí)時(shí)處理,。
2.3.1 UART模塊
為靈活接收ZigBee的數(shù)據(jù)并將數(shù)據(jù)傳送到后端處理,本系統(tǒng)在FPGA中用Verilog采用有限狀態(tài)機(jī)的方式實(shí)現(xiàn)了UART接口,。
2.3.2 數(shù)據(jù)格式轉(zhuǎn)換模塊
由于FIR濾波與LMS自適應(yīng)濾波均為浮點(diǎn)數(shù)運(yùn)算,,因此該模塊的主要功能是將心電采集前端發(fā)送的24位整型數(shù)據(jù)轉(zhuǎn)換成對應(yīng)的32位浮點(diǎn)型數(shù)據(jù)。其結(jié)構(gòu)如圖5所示,。
2.3.3 FIR濾波模塊
從心電采集前端發(fā)送的心電數(shù)據(jù)中有由呼吸引起的基線漂移,,其頻率在0.5 Hz左右[8],因此設(shè)計(jì)了截止頻率為0.5 Hz的FIR高通濾波器,。經(jīng)測試,,1 000階濾波器效果較好。
FIR濾波器本質(zhì)上是卷積運(yùn)算,,僅涉及移位,、相乘、累加運(yùn)算,。在MATLAB中設(shè)計(jì)得到的濾波器系數(shù)均為浮點(diǎn)數(shù),,因此采用Altera自帶的浮點(diǎn)乘法器與浮點(diǎn)加法器IP核??紤]到濾波器的階數(shù)為1 000階,,因此采用串行結(jié)構(gòu)且只用一個(gè)浮點(diǎn)乘法器與浮點(diǎn)加法器。經(jīng)計(jì)算,,完成移位,、1 001次乘法、1 000次加法需占用9 000個(gè)時(shí)鐘周期左右。而系統(tǒng)時(shí)鐘為50 MHz,,可得該模塊吞吐率可達(dá)160 kb/s,。心電信號(hào)的采樣率為250 Hz,所以該FIR濾波器可實(shí)時(shí)處理心電數(shù)據(jù),。圖6所示為FIR濾波器的具體結(jié)構(gòu),。該模塊對FPGA資源占用率為2%。
2.3.4 LMS自適應(yīng)濾波器
前端心電采集系統(tǒng)發(fā)送的心電數(shù)據(jù)中有較嚴(yán)重的50 Hz工頻干擾,,所以設(shè)計(jì)了基于LMS算法的自適應(yīng)陷波器[9],,抑制輸入信號(hào)中的工頻干擾。
基于LMS算法的自適應(yīng)陷波器結(jié)構(gòu)如圖7所示,。其中X(t)是含有干擾信號(hào)的輸入信號(hào),,干擾信號(hào)頻率為ω,由于干擾信號(hào)的幅值與相位未知,,因此提供兩個(gè)相互正交的單頻信號(hào)sin(ωt)與cos(ωt),,通過調(diào)整權(quán)值來合成與干擾信號(hào)相同的信號(hào),將輸入信號(hào)與合成的干擾信號(hào)作差就可得到有用信號(hào),。
LMS自適應(yīng)陷波器所涉及的運(yùn)算僅為乘法和加法,,且都為浮點(diǎn)運(yùn)算,為節(jié)省FPGA資源,,使用一個(gè)浮點(diǎn)乘法器和加法器,。經(jīng)計(jì)算,按照此種方法,,該模塊的吞吐率可達(dá)16 Mb/s,,可實(shí)時(shí)處理心電數(shù)據(jù)。該模塊對所用FPGA資源占用率為2%,。
2.3.5 基于自定義IP核的數(shù)據(jù)緩存模塊
為提高ARM的處理效率,,以自定義IP核形式設(shè)計(jì)了數(shù)據(jù)緩存模塊將心電數(shù)據(jù)存儲(chǔ)到片外的SDRAM中,之后由ARM讀取SDRAM中的數(shù)據(jù)作算法處理,。本系統(tǒng)ARM與FPGA之間通過AXI總線進(jìn)行數(shù)據(jù)交換,。
數(shù)據(jù)緩存模塊的實(shí)現(xiàn)是基于Altera的Qsys硬件平臺(tái)。在Qsys中添加SDRAM Controller,,通過FPGA和ARM分別對SDRAM Controller的控制,,來完成對片外SDRAM的讀寫。SDRAM Controller是基于Avalon總線實(shí)現(xiàn)的Avalon從端口,。因此在FPGA中實(shí)現(xiàn)對SDRAM Controller的控制是通過遵循Avalon總線傳輸協(xié)議編寫一個(gè)Avalon主端口,。然后將該Avalon主端口模塊例化為自定義IP核添加到Qsys中,便可實(shí)現(xiàn)在FPGA中對SDRAM Controller的控制,。ARM則通過AXI總線完成控制,。
2.3.6 ARM處理平臺(tái)
嵌入式ARM硬核為雙核,且主頻可達(dá)925 MHz,運(yùn)算能力強(qiáng),,可實(shí)時(shí)處理心電數(shù)據(jù),。在ARM上構(gòu)建了Linux操作系統(tǒng),編程方式采用多任務(wù)編程,,通過創(chuàng)建多個(gè)進(jìn)程分別完成心電數(shù)據(jù)的讀取,實(shí)現(xiàn)難以硬件化的心電檢測算法,,控制各模塊之間協(xié)調(diào)工作,,將心電數(shù)據(jù)以txt文件格式存儲(chǔ)到SD卡當(dāng)中,以及在LCD屏上顯示心電波形和診斷結(jié)果,。各進(jìn)程之間通過共享內(nèi)存的方式實(shí)現(xiàn)數(shù)據(jù)交互,。圖8所示為軟件設(shè)計(jì)流程。
3 驗(yàn)證和評價(jià)
3.1 占用資源情況
系統(tǒng)總導(dǎo)聯(lián)數(shù)為5導(dǎo)聯(lián),,采樣率為250 Hz,。在友晶DE1-SoC開發(fā)板上運(yùn)行,F(xiàn)PGA總資源占用情況如表1所示,,占用資源在系統(tǒng)限度內(nèi),。
3.2 ECG信號(hào)提取測試
圖9(a)是心電前端采集系統(tǒng)采集的原始心電信號(hào)波形,有明顯的基線漂移和較大的工頻干擾,。圖9(b)為從系統(tǒng)SD卡中得到的經(jīng)過FPGA濾波處理的心電圖,,可看到基線漂移被明顯濾除,且50 Hz工頻得到有效抑制,。
3.3 系統(tǒng)測試
被測者身心狀況良好,。圖10為液晶屏的顯示,可實(shí)時(shí)顯示心電波形及診斷結(jié)果,。圖中下方左邊Heart Rate顯示心率為69,,正常;下方中間status顯示正常心電信號(hào)(Norm)或是有心肌梗死前兆,,圖中顯示的為Norm即正常心電信號(hào),;SDNN和NN50顯示心率變異性結(jié)果,其中SDNN為0.133在正常范圍(0.141±0.039 s)內(nèi),,NN50顯示30 s內(nèi)相鄰心跳間期的差值超過50 ms的心跳個(gè)數(shù),,為11個(gè)。
3.4 心電算法的實(shí)現(xiàn)
本系統(tǒng)實(shí)現(xiàn)了課題組前期QRS檢測算法[10],,通過計(jì)算RR間期,,可計(jì)算心率值。在此基礎(chǔ)上本文進(jìn)行了額外的心率變異性分析,,從而輔助心血管疾病的預(yù)防,。包含兩個(gè)方面:(1)SDNN:全部心跳間期的的標(biāo)準(zhǔn)差,正常情況下該值一般在0.141±0.039 s的范圍內(nèi)[11]。(2)NN50:心電信號(hào)中所有每對相鄰心跳間期的差值超過50 ms的心跳個(gè)數(shù),,數(shù)值越大表明心率變異性也越大[12],。
本系統(tǒng)也實(shí)現(xiàn)了課題組前期的基于V2、V3,、V5,、aVL導(dǎo)聯(lián)和卷積神經(jīng)網(wǎng)絡(luò)的心梗檢測算法[13],該算法可達(dá)到總體96%的準(zhǔn)確率,。通過將在PC上離線訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)移植到SOPC平臺(tái),,實(shí)現(xiàn)對心梗疾病的診斷。
4 結(jié)論
本文提出了一種基于SOPC的多導(dǎo)聯(lián)ECG實(shí)時(shí)監(jiān)測系統(tǒng),,可以實(shí)現(xiàn)對心電信號(hào)的采集和無線傳輸,,并在SOPC平臺(tái)上進(jìn)行實(shí)時(shí)數(shù)字濾波、算法分析診斷以及診斷結(jié)果和心電波形的顯示,。實(shí)驗(yàn)表明,,本系統(tǒng)可以很好地采集人體心電信號(hào),經(jīng)處理后可得到良好的心電波形,,并借助ARM處理器對心電數(shù)據(jù)實(shí)時(shí)算法分析,,實(shí)現(xiàn)心電疾病的診斷。
參考文獻(xiàn)
[1] 丁慎平,,王應(yīng)海,,吳衛(wèi)榮,等.便攜式心電監(jiān)護(hù)儀設(shè)計(jì)進(jìn)展[J].生物醫(yī)學(xué)工程學(xué)雜志,,2014(3):708-713.
[2] 姜倩,,唐鴻儒.基于物聯(lián)網(wǎng)的家用心電監(jiān)護(hù)儀[J].自動(dòng)化與儀器儀表,2013(3):100-101.
[3] 姬金虎,,夏文文,,張?zhí)眨?互聯(lián)網(wǎng)+穿戴式心電監(jiān)護(hù)設(shè)備的研發(fā)[J].中國數(shù)字醫(yī)學(xué),,2017,,12(2):78-79.
[4] 戴明,王琪,,吳萬慶,,等.一種便攜式多體征參數(shù)監(jiān)護(hù)系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2015,,41(2):78-81.
[5] TI.ADS1298Datasheet[EB/OL].(2011-08-xx).http://focus.ti.com.cn/lit/ds/symlink/ads1298.pdf.
[6] 李陽青.基于ADS1298芯片的12導(dǎo)心電圖儀的設(shè)計(jì)[J].醫(yī)療裝備,,2016,29(18):34-35.
[7] 張晶晶,,王亮,,雷明.基于ZigBee技術(shù)的家庭遠(yuǎn)程心電監(jiān)護(hù)系統(tǒng)[J].智能建筑,,2010(2):38-39.
[8] 郭巧惠,楊永明,,韋建敏,,等.心電信號(hào)處理濾波器的設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用,2006,,25(3):60-62.
[9] 杜勇.數(shù)字濾波器的MATLAB與FPGA實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,,2015.
[10] 李在軍,王明,,鐘維,,等.基于SOPC的心電信號(hào)QRS波和ST段檢測與識(shí)別[J].武漢大學(xué)學(xué)報(bào)(理學(xué)版),2014,,60(2):122-128.
[11] 邱天爽.統(tǒng)計(jì)信號(hào)處理:醫(yī)學(xué)信號(hào)分析與處理[M].北京:科學(xué)出版社,2012.
[12] 劉曉芳,,葉志前.心率變異性的分析方法和應(yīng)用[J].國際生物醫(yī)學(xué)工程雜志,,2001,24(1):42-45.
[13] LIU W,,ZHANG M,,ZHANG Y,et al.Real-time multilead convolutional neural network for myocardial infarction detection[J].IEEE Journal of Boimedical & Health Informatics,,2017,,PP(99):1.
作者信息:
張夢新,廖 遠(yuǎn),,劉文涵,,黃啟俊
(武漢大學(xué) 物理科學(xué)與技術(shù)學(xué)院,湖北 武漢430072)