一种基于SOPC的多导联ECG实时监测系统.doc

上传人:白大夫 文档编号:3363872 上传时间:2019-08-18 格式:DOC 页数:5 大小:21KB
返回 下载 相关 举报
一种基于SOPC的多导联ECG实时监测系统.doc_第1页
第1页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《一种基于SOPC的多导联ECG实时监测系统.doc》由会员分享,可在线阅读,更多相关《一种基于SOPC的多导联ECG实时监测系统.doc(5页珍藏版)》请在三一文库上搜索。

1、一种基于SOPC的多导联ECG实时监测系统摘要:针对家用心电监护系统的需求,设计了一种基于SOPC的多导联ECG实时监测系统。系统以ADS1298为心电信号采集前端,通过ZigBee将多个导联的心电数据发送到后端处理。系统后端采用内嵌了ARM Cortex A9双核处理器的FPGA,并在ARM上搭建了Linux开发环境。在FPGA中通过并行处理、流水线设计和自定义IP核实现对心电数据的接收、格式转换、FIR滤波、LMS自适应陷波和数据缓存;在ARM上实现了QRS检测算法、心率变异性分析和心梗检测算法,并通过SD卡和LCD屏实现心电数据的长时间存储及心电波形与诊断结果的实时显示。目前,心血管疾病

2、的发病率迅速上升,已经成为威胁人类身体健康的主要因素之一。常规的心电监护仪需要患者在有限时间内,到固定的医疗场所进行监护诊断,无法满足患者长期实时监护的需求,因此家用心电监护仪在人们的生活中发挥着越来越重要的作用1。现今,绝大多数的家用心电监护仪或是通过采集电路,将心电数据经互联网发送到医院监护中心进行远程监护2-3,或是实现多体征参数的监护,计算心率,画出波形等4。这些都没有对复杂的心血管疾病进行实时分析诊断。因此本文提出了一种针对家用的、可对心血管疾病实时分析诊断的心电监测系统。本文使用内嵌了ARM Cortex A9双核处理器的FPGA,其运算处理能力强,可实时分析处理心电数据。通过软硬

3、件协同设计,在ARM上实现了难以硬件化的QRS检测算法,心率变异性分析和基于卷积神经网络的心梗检测算法;在FPGA中实现FIR滤波器和LMS自适应陷波及数据缓存,减轻ARM处理负担,提高数据处理效率。基于SOPC的多导联ECG监测系统框架如图1所示,系统包括心电信号采集前端和心电数据处理后端两部分,两者之间通过ZigBee进行数据传输与控制。2.1 心电信号采集前端为了达到心电信号采集前端便携化的目的,使用了TI公司推出的专门针对ECG信号采集的ADS1298芯片。ADS1298内部集成了8通道24位带符号的模数转换模块,分别用来测量I、导联及V1V6的6个胸导联信号5。根据这8个导联的信号经

4、过一定的运算处理可得到十二导联心电信号6。其采样频率可在250 S/s32 kS/s之间。系统通过AgCl电极片拾取心电信号,ADS1298每完成一次采样转换,STM32控制ZigBee模块将所用到的导联的心电数据发送到心电数据处理后端。其软件控制流程如图2所示。2.2 无线传输模块本系统使用UART接口的ZigBee模块。虽然ZigBee传输距离较短,速率慢,但由于系统AD采样速率较低,并且针对家用,传输距离限于几十米范围,再加上ZigBee功耗低,因此ZigBee满足设计要求7。首先系统上电后要检测前端与后端是否建立连接。图3所示为判断是否建立连接流程。2.3 心电数据处理后端心电数据处理

5、后端的主要任务是通过FPGA与ARM完成对心电数据的预处理与算法处理。FPGA中设计结构如图4所示。用多路并行处理的方式处理心电数据,且每一路的设计遵从流水线的设计思路,提高系统处理速度,实现实时处理。2.3.1 UART模块为灵活接收ZigBee的数据并将数据传送到后端处理,本系统在FPGA中用Verilog采用有限状态机的方式实现了UART接口。2.3.2 数据格式转换模块由于FIR滤波与LMS自适应滤波均为浮点数运算,因此该模块的主要功能是将心电采集前端发送的24位整型数据转换成对应的32位浮点型数据。其结构如图5所示。2.3.3 FIR滤波模块从心电采集前端发送的心电数据中有由呼吸引起

6、的基线漂移,其频率在0.5 Hz左右8,因此设计了截止频率为0.5 Hz的FIR高通滤波器。经测试,1 000阶滤波器效果较好。FIR滤波器本质上是卷积运算,仅涉及移位、相乘、累加运算。在MATLAB中设计得到的滤波器系数均为浮点数,因此采用Altera自带的浮点乘法器与浮点加法器IP核。考虑到滤波器的阶数为1 000阶,因此采用串行结构且只用一个浮点乘法器与浮点加法器。经计算,完成移位、1 001次乘法、1 000次加法需占用9 000个时钟周期左右。而系统时钟为50 MHz,可得该模块吞吐率可达160 kb/s。心电信号的采样率为250 Hz,所以该FIR滤波器可实时处理心电数据。图6所示

7、为FIR滤波器的具体结构。该模块对FPGA资源占用率为2%。2.3.4 LMS自适应滤波器前端心电采集系统发送的心电数据中有较严重的50 Hz工频干扰,所以设计了基于LMS算法的自适应陷波器9,抑制输入信号中的工频干扰。基于LMS算法的自适应陷波器结构如图7所示。其中X(t)是含有干扰信号的输入信号,干扰信号频率为,由于干扰信号的幅值与相位未知,因此提供两个相互正交的单频信号sin(t)与cos(t),通过调整权值来合成与干扰信号相同的信号,将输入信号与合成的干扰信号作差就可得到有用信号。LMS自适应陷波器所涉及的运算仅为乘法和加法,且都为浮点运算,为节省FPGA资源,使用一个浮点乘法器和加法

8、器。经计算,按照此种方法,该模块的吞吐率可达16 Mb/s,可实时处理心电数据。该模块对所用FPGA资源占用率为2%。2.3.5 基于自定义IP核的数据缓存模块为提高ARM的处理效率,以自定义IP核形式设计了数据缓存模块将心电数据存储到片外的SDRAM中,之后由ARM读取SDRAM中的数据作算法处理。本系统ARM与FPGA之间通过AXI总线进行数据交换。数据缓存模块的实现是基于Altera的Qsys硬件平台。在Qsys中添加SDRAM Controller,通过FPGA和ARM分别对SDRAM Controller的控制,来完成对片外SDRAM的读写。SDRAM Controller是基于Av

9、alon总线实现的Avalon从端口。因此在FPGA中实现对SDRAM Controller的控制是通过遵循Avalon总线传输协议编写一个Avalon主端口。然后将该Avalon主端口模块例化为自定义IP核添加到Qsys中,便可实现在FPGA中对SDRAM Controller的控制。ARM则通过AXI总线完成控制。2.3.6 ARM处理平台嵌入式ARM硬核为双核,且主频可达925 MHz,运算能力强,可实时处理心电数据。在ARM上构建了Linux操作系统,编程方式采用多任务编程,通过创建多个进程分别完成心电数据的读取,实现难以硬件化的心电检测算法,控制各模块之间协调工作,将心电数据以txt

10、文件格式存储到SD卡当中,以及在LCD屏上显示心电波形和诊断结果。各进程之间通过共享内存的方式实现数据交互。图8所示为软件设计流程。3.1 占用资源情况系统总导联数为5导联,采样率为250 Hz。在友晶DE1-SoC开发板上运行,FPGA总资源占用情况如表1所示,占用资源在系统限度内。3.2 ECG信号提取测试图9(a)是心电前端采集系统采集的原始心电信号波形,有明显的基线漂移和较大的工频干扰。图9(b)为从系统SD卡中得到的经过FPGA滤波处理的心电图,可看到基线漂移被明显滤除,且50 Hz工频得到有效抑制。3.3 系统测试被测者身心状况良好。图10为液晶屏的显示,可实时显示心电波形及诊断结

11、果。图中下方左边Heart Rate显示心率为69,正常;下方中间status显示正常心电信号(Norm)或是有心肌梗死前兆,图中显示的为Norm即正常心电信号;SDNN和NN50显示心率变异性结果,其中SDNN为0.133在正常范围(0.1410.039 s)内,NN50显示30 s内相邻心跳间期的差值超过50 ms的心跳个数,为11个。3.4 心电算法的实现本系统实现了课题组前期QRS检测算法10,通过计算RR间期,可计算心率值。在此基础上本文进行了额外的心率变异性分析,从而辅助心血管疾病的预防。包含两个方面:(1)SDNN:全部心跳间期的的标准差,正常情况下该值一般在0.1410.039

12、 s的范围内11。(2)NN50:心电信号中所有每对相邻心跳间期的差值超过50 ms的心跳个数,数值越大表明心率变异性也越大12。本系统也实现了课题组前期的基于V2、V3、V5、aVL导联和卷积神经网络的心梗检测算法13,该算法可达到总体96%的准确率。通过将在PC上离线训练好的卷积神经网络移植到SOPC平台,实现对心梗疾病的诊断。本文提出了一种基于SOPC的多导联ECG实时监测系统,可以实现对心电信号的采集和无线传输,并在SOPC平台上进行实时数字滤波、算法分析诊断以及诊断结果和心电波形的显示。实验表明,本系统可以很好地采集人体心电信号,经处理后可得到良好的心电波形,并借助ARM处理器对心电数据实时算法分析,实现心电疾病的诊断。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1