基于SoC FPGA的心电信号检测系统设计详解

可编程逻辑

1366人已加入

描述

0 引言

心电信号( electrocardiogram,ECG) 能够客观反映心脏各部分的生理状况,也是用来诊断心脏疾病的主要依据,由于其具有易于检测和有较好直观性等特点,在临床医学中得到较为广泛的研究与应用[1,2]。自1906 年,第一台心电图仪用于临床以来,各种形式的心电监护仪相继出现。传统的心电图检测仪器多以单片机、PC 为核心设计,系统笨重、检测手段单一,不利于系统集成度的提高和小型化实现,或造成系统的使用不便[3]。由于可穿戴设备和移动医疗的兴起,心电监护仪正向小型化、便携式、智能化方向发展[4]。

本文设计了一种基于片上系统现场可编程门阵列( SoC FPGA) 心电信号检测处理系统,通过A/D 混合设计和软硬协同设计的方法,实现了心电信号检测系统。信号采集由模拟前端电路完成,利用SoC FPGA 可重配置和软硬协同设计等优势,通过软件编程对信号进行A/D 转换、VGA 显示、数据存储和算法处理,从而实现信号采集、显示、存储和处理等多功能集于一体的心电检测处理系统。

1 心电信号检测系统设计

心电信号检测监护系统是一个模拟和数字的混合系统,主要分为体表心电信号采集电路和以SoC FPGA 为核心的心电信号数字处理系统。采集电路接入医用导联线通过贴片电极拾取心电信号,心电信号经过采集电路放大和模拟滤波处理后进入SoC FPGA,先由HPS 端ARM 嵌入式硬核上基于Linux 的应用程序控制进行A/D 转换,转换为数字信号在FPGA 端进行VGA 显示,同时将数字信号传输到HPS 端,可以对数字信号进行算法处理和存储到MicroSD 卡上。SoC FPGA 软硬协同的开发方式对硬件设计和心电信号后续算法处理的软件开发都极为方便。按功能模块划分系统整体架构如图1 所示。

soc

1.1 体表心电信号采集电路

正常心电信号幅值范围在10 μV~ 5 mV,典型值为1 mV,频率范围在0. 05~ 100 Hz,同时心电信号对噪声非常敏感。因此,心电信号采集电路需要具备高输入阻抗、高共模抑制比、低噪声和低漂移等方面性能。体表心电采集电路由前置放大电路和后级放大电路组成。

1.1.1前置放大电路

前置放大电路主要是对拾取到的心电信号进行初步放大和去噪,以利于后级放大和处理。心电信号中的噪声主要有工频干扰、肌电干扰、基线漂移和高频噪声。

1) 前置放大电路设计

前置放大电路由前级放大电路、带通滤波电路和50 Hz工频陷波电路组成,其中,前级放大电路又包括输入保护电路、右腿驱动电路和仪表运放放大电路组成,如图2 所示。

soc

由于系统要接到体表采集信号,需要考虑信号采集过程中人体保护的问题,系统中在采集电路的输入级前端选择加入耐压值很高的瞬态电压抑制( transient voltage suppressors,TVS) 二极管来保护人体和电路。右腿驱动电路是在采集心电信号中用于接参考电极,可以有效地消除采集到信号中的共模干扰[5]。仪表运算放大电路完成心电信号的初级放大,同时还要具有高输入阻抗、高共模抑制比、低噪声和低漂移的特性。综合考虑,选择ADI 公司的精密仪表运放AD8220 芯片,为了防止出现饱和失真,前级增益设置为20 倍[6]。

2) 工频干扰和基线漂移的消除

采集电路拾取的心电信号中有低频的基线漂移和高频干扰,还有在心电信号频率范围内的50 Hz 工频干扰,这些噪声对心电信号提取的影响非常大。设计了基于通用有源滤波模块UAF42 的带通滤波器和50 Hz 工频陷波器。带通滤波器电路的通频带为0. 05~ 100 Hz,滤除了基线漂移等低频干扰和高频噪声,工频陷波器能有效滤除工频噪声。通过UAF42 可以方便地设计出各种类型和频率特性的滤波器,只需要计算出合适阻值的外接电阻器,经过简单的连接就能很好地满足设计要求,免去了在有源滤波器的设计当中对电容器、电阻器的选型和匹配的工作[7]。工频陷波器电路图如图3 所示。

soc

使用两片UAF42 芯片构成4 阶陷波器增加陷波深度,设计工频陷波电路Q 值为50, 50 Hz 陷波深度为- 110 dB。相比于传统的双T 陷波器,此陷波器中心频率在设计时就可设置好,免去了陷波中心频率的调试。此外,只需要连接设计时计算好电阻值的电阻器即可,免去了电容器的选型和匹配。

1.1.2后级放大电路

后级放大电路由二级放大电路、光电隔离电路和低通滤波器电路组成。由于在前置放大电路中,仪表运放的增益值和带通滤波器的增益值都不能设得太高,避免噪声窜入后幅值放大过大和产生振荡而对有效信号干扰严重,所以,总体增益幅度为1 000~ 3 500,放大系统的增益将由多级增益电路实现。二级放大电路能够将系统的增益达到设定值,由运放接成电压负反馈的形式,控制整体电路的增益。光电隔离电路选用了一种低成本的精密电容线性光耦芯片ISO124,实现前后电路的电气隔离而避免反馈噪声的影响。低通滤波器主要是为了对由光电耦合引入的高频噪声进行消除,避免前级电路的高频噪声进入数字电路板。后级放大电路实现了模拟电路板和数字电路板的电气隔离。

1.2 心电信号SoCFPGA数字处理系统设计

1.2.1 SoCFPGA的结构和特点

本文设计使用Altera 公司推出的基于28 nm 工艺的Cyclone V SoC FPGA 作为硬件设计平台,这种新型的SoCFPGA 将两个分立的不同类型的芯片结合在一起,将基于ARM 的硬核处理器系统( hard processor system,HPS) 集成在FPGA 架构中[8]。

使用Altera 公司的嵌入式系统设计套装( embedded designsuite,EDS) SoC 进行软硬件的设计开发。用集成QuartusII 中的新一代SOPC 工具Qsys 进行硬件模块的设计,它能自动生成互联逻辑,连接知识产权( IP) 功能和子系统,SoC EDS 还提供了由Qsys 硬件系统信息转换为软件开发所需的工具,使得软硬件设计衔接起来,支持Linux 应用开发,借助于DS—5 可完成从启动代码、内核移植到Linux 应用程序的软件设计[9]。

1.2.2 心电信号数字处理系统

数字系统包括A/D 转换模块、VGA 显示模块、数据存储模块和算法处理模块。SoC FPGA 中的HPS 和其它的硬件模块可以通过Qsys 进行配置,用Quartus II 进行硬件设计,Qsys 和Quartus II 编译可以产生软件设计所需的信息文件。移植嵌入式Linux 系统,下载sof 文件,用DS—5 进行基于Linux 的系统软件工程开发[10]。

系统的A/D 转换器采用的是ADI 公司的8 通道12 位高精度低功耗A/D 转换芯片AD7928,转换速率为1MSPS。美国心脏学会推荐的采样率为500 Hz,但实际中不同应用有不同的采样率,一般为125 ~ 1 000 Hz,监护时多采用200 Hz或250 Hz,辅助分析时多用400 ~ 500 Hz,而心电HOLTER 一般取125~ 200 Hz,本系统采用200 Hz。编写程序控制A/D 转换和数据缓存,产生控制VGA 需要的行同步信号与列同步信号,消隐信号、时钟信号、RGB 信号使屏幕正常工作。嵌入式Linux 文件系统支持Micro SD 卡数据的写入和读取,将数字信号通过AXI 桥传输到HPS 端,软件工程实现心电信号的算法处理和Micro SD 卡数据存储。系统数字部分结构简图如图4 所示。

soc

2 系统测试

系统设计完成后对前端采集电路和整体系统进行调试和测试。采用三导联方式安放医用贴片式Ag /AgCl 心电电极,通过医用导联线连接到心电信号采集系统进行测试。

2.1模拟前端采集电路测试

受测者佩戴心电电极,用医用导联线接入到模拟前端采集电路,后端接入示波器,待信号稳定后就可以在示波器上观测到心电信号波形,图5 即为模拟前端电路实际测试波形图。

2. 2 系统整体测试

接入整体系统,运行软件工程,系统存储一段时间的心电信号,取出Micro SD 卡,读取存储的数据还原后心电信号波形如图6 所示。

soc

3 心电信号算法处理

心电信号算法处理随着智能医疗的应用变得越来越广泛。在健康监护和疾病诊断等具体应用环境中,传统的算法处理都是基于硬件实现的,基于硬件的实现方法一般难度比较大而且耗费资源,嵌入式Linux 系统的移植大大方便了心电信号算法处理的软件实现。在软件工程中实现了心电信号的小波去噪和QRS 波检测。

3.1 基于小波分析的心电信号去噪

采用小波分析的方法进行心电信号去噪。小波分析由于能同时在时域和频域中对信号进行分析,具有多分辨分析的功能,所以,在不同的分解层上有效地区分信号的突变部分和噪声。对含有噪声的原始心电信号进行小波分解后,噪声部分主要集中在高频小波系数中,包含有用信号的小波系数幅值较大,但数目少; 而噪声对应的小波系数幅值小,数目较多。基于上述特点,选取无偏似然估计阈值对小波系数进行处理,然后对信号重构即可达到消噪的目的。图7 为心电信号小波去噪前后对比,信噪比可以达到121 dB。

soc

3.2 基于小波分析的QRS 波检测

根据小波变换的理论,信号的奇异点对应于其小波变换的一个正模极大值和一个负模极大值对,其位置对应于正、负模极大值的过零点,具体算法是寻找小波变换的模最大值,当计算的信号模大于一定阈值时,就判定为QRS 波群。同时,这个阈值也是随着计算结果自适应更新,在判定为QRS 波群后,再检测过零点则可判定具体的R 波位置。图8 即为心电信号QRS 波群检测和R 波峰定位。

soc

对心电信号进行小波分析检测出R 波波峰等特征点之后可以用提取到的特征值进行模式识别和分类,例如: 利用BP 神经网络对心电图ST 段波形进行形态分类[11]。

4 结论

本文设计的基于SoC FPGA 的心电信号检测系统能够很好地采集到心电信号,实现了对心电信号的提取、显示、存储和处理。测试表明: 系统的模拟前端电路可以采集到比较清晰地放大到合适倍数的心电信号,系统整体的测试证明了设计的可行性。SoC FPGA 软硬结合的开发方式能够实现心电信号的算法处理,使设计更为灵活,为心电信号的处理和分析提供了便利,也为智能医疗的实现提供了可能性。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分