基于树莓派的便携式心电监测系统
实验题目:基于树莓派的便携式心电监测系统
课程简要信息
课程名称:信号分析与处理综合实验
课程学时:32
项目学时:课内32(8周,每周4学时)、课外32
适用专业:电气电子类各专业
学生年级:二年级
实验内容与任务
本实验以心电信号采集模块为前端电路,以树莓派微型电脑为运算核心,以Python语言作为主要编程工具。学生在了解心电信号构成和特征的基础上,运用信号分析与处理的基本理论知识,通过设计电路和PCB制版、编程、调试,最终实现一个便携式的心电信号监测系统。具体内容包括:
- 硬件设计
(1)设计并实现心电信号采集电路,去除噪声和运动伪像。
(2)设计并实现工频陷波器测试电路,给出测试方案,测试电路的陷波性能。
(3)设计并实现电源管理电路。
(4)设计并实现模拟数字转换电路。
(5)设计并实现心电信号采集模块,利用工具软件画出原理图,设计PCB板,将购买的元器件焊接至PCB板中,并调试。
- 软件设计
(1)将心电信号采集模块的信号输出至树莓派,在树莓派上显示心电波形。
(2)在树莓派中设计巴特沃兹IIR数字低通滤波器。
(3)在树莓派中采用零极点配置方法设计一个数字陷波器。
(4)在树莓派中实现对心电波形的去趋势化处理。
(5)在树莓派中实现对心电波形的时域、频域分析。
(6)设计树莓派显示界面。
(7)检测不同人的心电信号,设计实现一种心率计算方法。
实验过程及要求
-
实验需小组化进行,小组成员各司其职,重点分别放在电路设计、仿真、PCB布线、焊接、软件调试、外壳设计安装等方面。
-
通过查阅文献,了解心电信号的波形构成和特征。
-
复习单片机和模电知识,巩固信号基础理论知识。
-
自学AD8232心电芯片原理,设计外围电路,包括其所要求的滤波器设计。
-
自学陷波器芯片的使用方法,设计基于普通运放的陷波器电路设计,仿真、实验测试、比较。
-
设计电源电路,实现市电交流信号转换为直流低压信号(5V、3.3V)。
-
自学树莓派的原理及应用,正确选择模数转换芯片,设置正确的采样频率。
-
自学Python语言,会使用NumPy、SciPy、Matplotlib等类库,实现完整的信号采集、存储与处理。设计频谱分析所需的采样长度等参数;设计零极点配置法陷波器参数以及IIR巴特沃兹低通滤波器阶数、截止频率;设计去趋势化所需高通滤波器及参数。仿真及实验验证。
相关知识及背景
这是一个运用信号分析与处理基本理论解决工程实际问题的典型案例,需要运用连续信号的傅里叶变换、序列的离散时间傅里叶变换、离散傅里叶变换、快速傅里叶变换、线性时不变系统的时域、频域和复频域分析、模拟滤波器和数字滤波器设计等相关知识与技术方法,并涉及原理图设计、电路仿真、PCB制板、焊接等工程应用方法。
实验环境条件
-
PC机1台。
-
树莓派(Raspberry Pi)套件1套。
-
HDMI接口显示器1台。
-
函数信号发生器1台。
-
双踪数字示波器1台。
-
Python 3版本软件1套。
-
AD8232芯片、F42N50芯片、PCF8591芯片、二极管、电阻电容等电子元器件。
教学目标与目的
树莓派和Python作为开源平台已经进入高中课堂,具有功能强大、易于学习掌握等特点。实验通过引入树莓派和Python语言,有助于引导学生巩固信号基本理论知识、使学生着眼于信号基本原理和相关课程理论的工程应用,而不是在开发平台学习上耗费更多的精力。在较为完整的工程项目中,引导学生在心电信号采集电路设计、仿真、PCB布线、焊接、软件调试、外壳设计安装等方面取得相应成果,同时发展学生的交流能力,个人和团队的管理能力。
教学设计与实施进程
本实验过程是一个比较完整的实践工程,需要经历学习研究、方案论证、系统设计、实现调试、测试标定、设计总结等过程。在实验教学中,在以下几个方面加强对学生的引导:
-
第一次课介绍实验的基本安排,介绍实验平台的基本情况,对涉及到的信号理论基本知识进行回顾,指导学生进一步理解和掌握。
-
学生成立小组,确定组长。学生在教师的指导下,通过查阅参考文献、集体讨论、从项目的基本内容、软件流程图设计、项目预算、实施时间表、最终成果展望等角度设计本项目的实施细节,撰写实验启动PPT,在第二次课上宣讲。
-
指导学生进行分工,包括整体协调、电路设计、仿真、PCB布线、焊接、软件调试、外壳设计安装等方面。
-
采用课内外教学同步进行的方式,学生实验主要在课外进行,在开放实验室中实施实验。
-
实验过程实施进程控制,第三周到第七周,每周和教师讨论汇报一次。小组对实验内容和进度进行总结,教师特别针对模拟滤波器和数字滤波器设计电路和参数进行指导,对心电信号时域、频域分析的实施方案和过程进行帮助,小组根据讨论结果修正实验内容与进度。
-
第八次课通过现场展示、视频等多种形式,展示实验成果,最后撰写实验报告。
-
本实验需要学生通过课外自学掌握电路仿真软件、EDA工具软件辅助完成电路的设计和实现。
实验原理及方案
- 心电信号产生机制及特点
人体的体液中含有大量不同种类的阴阳离子,细胞的细胞膜对不同离子的通透性存在一定的差异,这种差异造成了细胞膜内外正负离子分布的不均匀。人体心肌细胞的细胞膜的某一端受到一定的刺激时,心肌细胞的细胞膜对钾、钠、钙、氯等离子的通透性发生了一定的改变,促使细胞膜内外正负离子发生一定数量的流动,产生了心肌细胞的去极化和复极化的过程。在细胞处于去极化与复极化过程中与尚处于静息状态的邻近细胞形成了一对电偶,这种变化通过体表的电极可以检测出来,这就是心电信号形成的机理。
- 心电图
心电图(Electrocardiogram,ECG)是记录心脏组织电压变化的图形,各波段都具有一定的生理意义。图1所示为心电信号组成的各波段。

图1
P波是由左右心房的除极过程引起的,其波形小而圆钝,时宽为0.08~0.11s,波幅不超过0.25mV。根据P波的宽度、P波的形状、P波的幅度以及P波持续时间与P-R间期的比值等,可用于判断心房扩大,心肌梗塞等病症。
P-R间期的一般时间为120~200ms。指P波起点到Q波起点,也称P-Q间期。代表心房除极开始到心室除极开始所需时间。P-R间期的持续时间占整个心动周期持续时间的比例若超出正常范围,则表明可能有房室传导阻滞等病症。
QRS波群包括3个紧密相连的波。第一个向下的负波称为Q波;紧接其后的是一个快速向上的正波为R波;R波后又是一个向下的负波称为S波。QRS波是双侧心室在除极过程中产生的电位差传导至体表后在体表所形成的电位差值。其时间间期一般为0.04~0.1s。出现异常的Q波可用于诊断心房扩大、心室肥大、心肌梗塞等病症;各个导联出现的R、S波形可能各有不同,出现异常的R、S波形可判别心肌炎、过度肥胖等病症。
T波是QRS波后第一个正峰,变化较为平缓,代表了双侧心室肌激动后恢复过程(复极)产生的电位差。心脏的复极方式与除极是完全不同的,除极的程序取决于传导系统的情况或除极的起始点,而复极则为心肌的自发过程,各处的心肌复极时间只取决于除极时间开始得早晚,复极所需的时间远大于除极,故T波宽度较QRS波大得多。T波异常通常有倒置、增高、过低、增宽等症状,可用于诊断心肌梗塞、心包炎等病症。
Q-T间期是指从QRS波起始至T波终末的时间,正常时间<440s,代表自心脏除极至复极结束的全过程时间,其长度受除极时间及复极时间的影响。Q-T间期的长短反映了心率的快慢。
U波是争议最大的一个波,是T波后出现的第一个小波,有些导联不可见。目前一般认为U波的形态与心肌受损及缺血程度有一定关系,其振幅则与血钾浓度关系密切。因此,可由U波显著增高来诊断血钾过低、心室肥大等;U波倒置可用于诊断高血钾、心肌梗塞等。
- 心电信号的频域特点
心电信号频率偏低,直流分量占了绝大部分,主要频率集中在0.05~100Hz,能量集中在0.05~40Hz的频率范围。心电信号中占绝大部分能量的是QRS波,它分布于中、高频内且峰值范围为10~20Hz。
- 心电信号的实时采集
系统实时采集心电信号是指将电极放置在肌体特定的测试部位,并通过导联线引入心电信号的方式。双极肢体导联方式是指直接测量人体两点之间的电位差,它是由荷兰人Willem Einthoven于1903年提出的,包括I导联、II导联和III导联等3种不同的连接方式。Einthoven于1924年因发现心电图的机制荣获诺贝尔医学奖。I导联连接方式是将人体的左腕(Left Arm:LA)、右腕(Right Arm:RA)作为测试部位,其电极输出分别作为正、负信号接入心电信号放大模块的正、负接入端,而右踝(Right Foot:RF)电极输出作为参考电极作为放大模块的接地端,I导联连接方式如图2所示。采用不同的导联方式,得到的波形会有所不同。

图2
由于心电信号是由皮肤电极取自人体表面,因而信号源内阻很大,约有
。传统的心电信号采集放大器采用三运算放大器构成的仪用放大器,并辅以相关的分立元件,集成化低,结构复杂,调试困难,难以满足高输入电阻、高共模抑制比、高安全性的要求。
AD8232芯片是美国ADI公司推出的一款用于心电及其他生物电测量的集成信号调理芯片,大小仅为4mm×4mm,集成了仪表放大器、增益放大器、右腿驱动电路、休眠电路设计、基准电压以及导联脱落检测电路,因其低成本、低功耗、小尺寸等优势被广泛应用在便携式健身设备、远程医疗监护终端、汽车、手表、手机等多种电子设备上。AD8232中的仪表放大器主要用于小信号的放大,并具有共模抑制的功能。AD8232芯片还具有导联脱落检测功能,可实现高共模抑制能力。AD8232的使用介绍如图3所示。
AD8232芯片需要外围电路的支持,包括严格的模拟高通滤波器和低通滤波器参数设计,AD8232采用20引脚LFCSP封装,对焊接带来了不小的挑战。
由AD8232芯片加外围电路所得的心电波形中仍然可能混入部分干扰信号,因此需要进一步的滤波处理,其中需要设计50Hz陷波器。F42N50是一款工频噪声陷波器IC模块,其特点为:(1) 中心陷波频率免调试。(2) 能够在很宽的温度范围内有效地工作。(3) Q值可独立调整,不影响频率和增益。(4) 增益为1,不受频率、Q值的影响。(5) 外围电路简单,使用方便。
心电信号是模拟信号,将其输入树莓派显示时,需要通过模数转换。PCF8591是一个单片集成、单路供电、低功耗、8bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I^2^C总线接口。它的功能包括多路模拟输入、内置跟踪保持、8bit模数转换和8bit数模转换。PCF8591的最大转换速率由I^2^C总线的最大速率决定。

图3
XL1509是一个150kHz固定频率脉宽调制(降压型)DC/DC转换器,具有2A负载驱动能力且效率高,低纹波和极好的线性,负载调节能力好,仅需很少的外部元件。可调输出使用简单,内建频率补偿和固定频率震荡器。XL1509的输入电压范围为4.5~40V,输出可调范围为1.23~37V。
树莓派获取采样结果后,需设计数字滤波器对心电信号进一步滤波,以期达到更好的效果。可以设计数字陷波器(或梳状滤波器)和巴特沃兹数字滤波器实现滤波。
对心电信号进行时域分析和频域分析,从不同侧面了解信号的属性。
在设计UI界面时,因为所要实现的功能比较简单,可以考虑最简单的UI编写工具箱tkinter。利用tkinter编写不同按钮,将各个子程序添加到各个按钮下,然后loop。运行之后,就可以实现按下按钮,对按钮下的程序进行一次操作。
- 心率计算
由图1可以看到,标准心电图中的R波峰值很高,远远超过其他的P波、T波等波,因此只要利用R波即可算出一段时间内心跳的次数。可以考虑设定一个阈值,当心电信号中幅值大于阈值的点,就认为是R波。事实上,不同人的心电的R波峰值是不一样的,同一个人的峰值在不同时间也不一定一致,因此常常不能将阈值简单设为一个固定的常数,而必须使算法具有自适应功能。另外,有相当一部分人的R波不够突出,或者T波较为突出,在很多时候与R波平齐,这样的时候就要引入新的算法。
实验报告要求
实验报告需要反映以下工作:
-
阐明实验目的;
-
列出主要仪器设备与软件;
-
阐明实验原理;
-
实验内容和步骤、实验数据记录和处理:其中包括实现方案论证、理论推导计算、电路设计与参数选择、电路测试方法等方面。具体包括(1)AD8232外围电路设计(2)模拟带通滤波器设计、 模拟陷波器设计(3)数字低通滤波器设计、巴特沃兹IIR数字高通滤波器设计、数字陷波器设计(4)心电信号的时频域分析等。
-
实验结果总结和心得
考核要求与方法
本实验教学一共八周,每周课内4个学时,课外4个学时,由小组成员分工合作完成:
-
实施计划:实验项目设计方案的可行性和创新性、实验内容的综合性和工程应用价值、项目分工是否明确合理、实施时间表是否符合实际情况。第二周考核。
-
平时表现:每位同学在小组中所担任的角色,承担的工作及完成情况。第八周考核。
-
实验成果:学生需要递交基于Altium Designer的设计电路原理图和PCB板文件,以及基于Python的心电实验源程序文件。学生需要上交实物。教师对最终成果是否符合预期,材料与元器件选择的合理性进行评估;对焊接质量、组装工艺进行评估;对程序代码的完整性和实验结果的可验证性,实验内容的拓展性和创新性进行评估。第八周考核。
-
答辩表现:以实验项目小组为单位,考核对实验内容关键要素是否解释清楚,是否对提问能正确回答。第八周考核。
-
实验报告:写作格式是否符合要求、原理方法是否说明清楚、图形结果是否清晰、内容是否丰富等等。第八周考核。
项目特色或创新
-
实现知识贯穿:本实验将信号的时频域分析、滤波器设计等信号课程基本知识贯穿于实验的各个环节。
-
促进课程融合:本实验是面向电气类专业学习信号课程实施的实践项目,涵盖了微机原理、模拟电子技术等相关课程的知识,提升了学生综合运用主修课程知识解决实际问题的能力。
-
科研实操训练:实验采用项目化的实施思路,采用团队小组化,课内外结合进行,发展了学生的交流能力,个人和团队的管理能力。
-
科技前沿跟踪:将基础理论知识和较新的科技产品相结合,工程化的实践内容和实践方式激发学生学以致用的兴趣。