1707 字
9 分钟
心电(ECG)信号采集、处理与可视化

声明: 这篇文章启发于南方科技大学的一项实验课程,实验的设计与结果由Renjie Mei(Me), Yantong Liu, Ye Li 和 Sitian Zhong共同完成。

前言#

心电图(Electrocardiogram,ECG)是检测心脏电活动的重要医疗工具。心脏的每次跳动都伴随着有规律的电信号传导,这些电信号在人体表面产生微弱的电位变化。心电图仪通过放置在人体不同部位的电极捕捉这些细微的电位波动,并将其转化为可视图形。

心电图的波形包含丰富的信息。例如,P 波代表心房的去极化过程,反映心房的电活动;QRS 波群对应心室的去极化,其形状、时限等特征可以表明心室是否存在异常;T 波与心室的复极化有关。通过仔细分析心电图的每个波段、间期和波形形状,医生可以诊断多种心脏疾病,如心律失常、心肌缺血、心肌梗死等。在临床实践中,无论是日常健康检查还是心脏病患者的诊断、治疗效果评估和病情监测,心电图都发挥着不可替代的关键作用,为保护人类心脏健康提供了至关重要的依据。

在南方科技大学智能医学工程专业(SUSTech IME)的BMEB328课程模块二的课程中,我们采用了National Instruments公司的USB - 6009数据采集模块进行生物电信号的采集工作。借助MATLAB软件平台,对所采集的信号实施处理与分析操作,并基于MATLAB的图形用户界面(GUI)开发功能,构建了用于控制信号采集流程、实时显示测量结果的交互式操作界面。该系统具备心电图测量、心电图绘制以及心跳速度计算等功能。当检测到心跳频率超出正常范围(过快或过慢)时,软件会自动触发警报机制。测量流程结束后,系统将按照特定的数据结构格式,将测量结果导出为数据文件。此数据文件格式经专门设计,与后续开发的专家数据共享网页完全兼容,旨在为医疗专家提供便捷的数据访问途径,使其能够通过网络远程实时掌握病人的身体状况,进而为远程医疗诊断等应用场景提供有力的数据支持 。


设计#

图1

硬件与软件架构#

实验采用AD8232单导联心电模块采集信号,通过NI USB-6009数据采集卡将信号传输至计算机。硬件系统包含以下核心组件:

  • AD8232模块:高精度单导联ECG采集模块,需手动调整电极位置I、II、III导联切换。
  • NI USB-6009:16位分辨率,最高采样频率48 kHz,用于高速数字化信号传输。
  • MATLAB Data Acquisition Toolbox:实现实时信号采集与处理。

图形用户界面(GUI)设计#

基于MATLAB App Designer开发的GUI(上图)包含以下功能:

  1. 信号采集控制:可自定义采样时间(默认10秒)与采样频率(默认1000 Hz)。
  2. 时域与频域显示:原始信号经FFT转换后实时显示频谱。
  3. 信号处理
    • 直流偏移消除:通过减去信号均值实现基线校准。
    • 50Hz工频陷波:理想带阻滤波器(48-52Hz)抑制电源干扰。
    • 小波去噪:结合频谱分析优化噪声抑制效果。
  4. 心率计算与报警
    • 通过findpeaks函数检测R波,计算心率及其标准差。
    • 心率异常(<60 bpm或>120 bpm)时触发声光报警。

WebUI与数据共享系统#

为支持远程医疗诊断,基于Django框架开发了WebUI(下图),功能包括:

  • 实时数据可视化:使用Charts.js动态展示全段和单个周期内心率、R波间隔等参数(左上、左下)。
  • HeartPy集成:调用Python库进行信号分析验证,提升结果可靠性(右上)。
  • ‘假的’健康评分:基于heartpy解析参数的非专业健康评价系统(右下)。
  • 报告生成:支持导出PDF报告,并允许开发者自定义模板(中间标题下)。

图2


结果#

图3

信号质量分析#

  • HR计数算法:上图a图显示了脉搏计数、基于findpeaksheartpy方法间的相关系数,结果显示基于findpeaks的算法与heartpy由较高相关性(可能底层逻辑是相似的),但与基于脉搏的计数并无太高相关性(参数和实时调整的方案有待优化)。
  • 噪声抑制效果:50Hz工频干扰被显著抑制(上图c, f),同时保留有效信号能量。
  • 采样频率影响:1000Hz采样保留高频细节,但引入工频噪声;50Hz采样抑制噪声但导致R波与T波混叠。400Hz为平衡点,兼顾信息完整性与处理效率。

Einthoven定律验证#

图4 通过三导联信号提取QRS波群峰值对齐与归一化处理(上图),验证LeadII=LeadI+LeadIIILeadII = LeadI + LeadIII得到误差序列均值μ=-0.003,标准差σ=0.044。t检验(p=0.72>0.05)表明实测数据符合理论预期,但硬件异步采集与电路非理想特性仍需优化。

EMG干扰实验#

肌电信号(EMG)引入高频噪声(>30Hz),掩盖ECG细节(下图)。尽管HeartPy仍能解析心率,但信号质量显著下降,需结合带通滤波与小波去噪提升鲁棒性。 图5


感想#

技术收获#

  1. 信号处理实践:工频陷波、小波去噪与重采样技术的结合,显著提升了ECG信噪比。
  2. 系统集成挑战:硬件同步采集与WebUI实时传输的实现,需协调多平台(MATLAB/Python)的时钟与数据格式。
  3. 伦理考量:采样频率选择需权衡数据质量与隐私保护(如400Hz满足临床需求且符合“最小必要原则”)。

团队协作#

  • 分工优化:GUI与WebUI的并行开发缩短了项目周期,但接口调试耗费较多时间。
  • 代码开源:实验代码已开源(MajorDionysus),供社区验证与改进。
Majordionysus
/
IME_Expriment_I_Lab2.git
Waiting for api.github.com...
00K
0K
0K
Waiting...

未来展望#

  1. 硬件升级:采用多通道同步采集模块,减少导联间误差。
  2. AI集成:引入深度学习模型(如LSTM)实现心律失常自动分类。
  3. 临床转化:结合可穿戴设备与云平台,推动居家心电监测普及。

附录

  • 知情同意书:实验遵循伦理规范,受试者签署知情同意文件(详见GitHub仓库)。
  • 查看课程实验报告
心电(ECG)信号采集、处理与可视化
https://majordionysus.github.io/mrj_blog/posts/imeiilabecg/
作者
Renjie Mei
发布于
2024-10-12
许可协议
CC BY-NC-SA 4.0