首页 > 应用与分享 > USB便携式ECG心电图监护自动分析仪
  • USB便携式ECG心电图监护自动分析仪

  • 2020-11-17 14:20:58 阅读量:3192 来源:应用与分享

声明:本文为第五届立创电子设计大赛参赛作品,仅对部分人气作品做分享收录,不代表赛事组委会官方意见,亦不作为任何评选依据。

本文作者:立创源硬件平台 OSHWHub @buck_boost,禁止商用,未经许可禁止转载点击查看原文章


1、简介

心血管疾病是危害中国人生命安全的第一大杀手,而目前上面上成熟的心电监护仪大多要600元以上,这样的价格让其难以普及,我们想开发一台足够便宜,足够便携,足够好用的心电监护自动分析装置。有助于保护国人的心血管健康。


该项目是一个三导联ECG心电图检测分析装置,硬件部分为USB心电信号采集卡,采集心电如若信号并处理,最后上传至计算机,在计算机中采用python开发上位机并进行进行处理,显示出心电图,频谱等,并提供心颤检测各种分析功能。该项目是我们实验室研发任务的成员自行研发的衍生产品,其旨在复杂环境下稳定快速可靠地识别房颤室颤,并且提供一个十分经济的心电监护方式,为大项目的整体工作打下基础,后续将继续进行研发。 



2、项目详情


本项目硬件部分采用GD32F130F8P6作为主控,提供采集数据上传的功能。利用运放分别搭建各种放大/滤波陷波电路,将三导联的的心电信号提取出来并且滤除常见干扰。采用USB转串口芯片解决MCU串口和上位机的通讯问题。以下是硬件结构大体框图:


  


在上位机端,我们用python/C++混合编程搭建了心电记录/显示/分析一体化的上位机,提供了心率检测、频谱分析、房颤室颤等分析,并邀请知名专业医生指导验证(实验室合作关系)。以下是上位机软件设计的大致框架:


  


我们的初始方案是采用AD8232芯片进行心电信号的提取,但是经过测试发现,无论是我们的测试电路还是买到的DEMO板,只能在无干扰状态下保持良好工作(关闭房间所有交流用电器),抗干扰性能都极差。下图是一张典型的波形,这是我们在关闭所有电器,只开一只台灯的情况下的输出波形(测试淘宝买的AD8232红色模块):


    


上图可以看到,其存在很高幅度的50Hz工频噪声,我们分析,这是由于其右腿反馈的驱动能力不足,以及内部设计原因所致。 当然如果是纯粹的50Hz干扰,我们可以通过后级滤波来实现,查阅datasheet和实践发现,由于AD8232内部的设计原因,在50Hz干扰达到一定程,则会引发振荡: 


  


考虑到我们的项目日后需要在更加复杂的环境下工作,比如应用到电除颤环境下,需要很高的抗干扰性能和灵活性保证,我们选择了采用分立运放自行搭建小信号提取电路:


  


经测试,抗干扰性能大大强于AD8232。我们测试的条件是空调,电磁炉等较大功率的设备全开,图下是示波器保存的测试报告:


  


几乎完全滤除了50Hz的工频干扰,只留下易于处理(与工作频率相差过大,因此无需处理)的100KHz开关噪声。


在心电分析方面,如何进行室颤房颤的分析成为了软件的重点问题,我们研发了“频谱反馈闭环式近似熵心颤检测算法”,用于解决房颤的识别问题,同时大大减少了导联接触不良或者强干扰状态下的误判问题。同时也开发了一些算法,用于识别心率等多项功能。以下是频谱反馈式近似熵心颤识别算法大致框架:


  



3、项目难点


在实际程序编写中,我们遇到了程序计算量过大的问题:


第一次计算,PC花费了3个小时才计算出数据。


第二次,我们根据实际需要优化了计算量,计算时间缩减到了12分钟。


第三次,我们优化了python程序的运行效率,计算时间进一步缩减到了1.2S。


然而,这仍然无法满足我们的要求,因为程序不但需要实时性,而且得具备移植到嵌入式设备的能力,显然此路不通。 我们将算法移植到了C/C++上,留出对外接口,编译成立动态链接库,在windows上是dll,在linux/macOS上是so。 python在需要计算的时候调用动态链接库,达到加速的目的,实测计算速度提升了150倍。


   


在我们需要克服各种环境下的50Hz干扰问题,在硬件上,我们做了四阶双T有源陷波电路,同时增强了右腿驱动部分的信号,增强了设备的抗干扰能力(与网上售卖的AD8232模块对比)。在软件上,我们采用了频谱动态闭环反馈的方式,大大降低的心颤误判的概率。我们采用计算信息熵的方式来分析心电信号的有序程度,在房颤和室颤时,近似熵可高达0.6-0.9,而在正常状态下,近似熵仅仅为0.1-0.4之间,在无干扰状态下,可以很清晰的识别出心颤,在干扰严重的情况下,熵会大大增加,频谱的动态反馈则可以解决这个问题。 


项目软件分为三个部分:


1、GD32下位机固件软件,主要功能是采集调理后的心电信号,进行滤波等初步处理,并且实时上传。


2、python编写的上位机软件,负责图形界面以及时间复杂度较小的算法,python的跨平台特性使得软件可以轻易移植到各种平台,比如树莓派,香橙派,工控机,手机等。可移植性使得二次开发变得极为容易,举个例子,只需要购买一块linux最小系统板,配上小屏幕就可以将本项目轻松改成手持式心电监护仪,而成本依然远低于世面产品。


3、C/C++编写编译的动态链接库,该部分主要负责熵分析计算等耗时较大的算法,熵算法在python中计算往往要耗时数秒,采用C/C++编写可降低至毫秒级,保证的上位机程序的实时性和性能。python调用C/C++动态链接库以实现分析房颤室颤。移植到不同架构CPU时需要重新编译动态链接库。



4、项目图片


       


      


视频演示

项目介绍

团队介绍

功能演示&性能测试



5、BOM 相关器件


  


工程附件


硬件开源资料.zip

CCPP_算法库开源资料.zip

上位机软件开源资料.zip

下位软件开源资料.zip

MIT-BIH到本软件的格式转换脚本.zip

上位机软件_可执行文件_exe.7z.001

上位机软件_可执行文件_exe.7z.002



本文作者:立创源硬件平台 OSHWHub @buck_boost,禁止商用,未经许可禁止转载

热门物料
型号
价格
MAX31865ATP+T/模数转换芯片ADC 12.95
LTM4644IY#PBF/电源模块 130.7
ADUM1201BRZ-RL7/数字隔离器 4.69
MAX31855KASA+T/ADC/DAC-专用型 8
DS3231MZ+TRL/实时时钟(RTC) 11.31
AD7190BRUZ-REEL/模拟前端(AFE) 37.95
AD623ARZ-R7/仪表放大器 11.23
MAX3232EEAE+T/RS232芯片 6.41
ADUM3160BRWZ-RL/隔离式USB芯片 21.98
AD620ARZ-REEL7/仪表放大器 20.91
您的浏览器版本过低(IE8及IE8以下的浏览器或者其他浏览器的兼容模式),存在严重安全漏洞,请切换浏览器为极速模式或者将IE浏览器升级到更高版本。 【查看详情】
推荐您下载并使用 立创商城APP 或者最新版 谷歌浏览器火狐浏览器360浏览器搜狗浏览器QQ浏览器 的极(高)速模式进行访问。
© 2022 深圳市立创电子商务有限公司 版权所有

提示

您确定删除此收货地址吗?

提示

您确定删除此收货地址吗?

成功提示

content

失败提示

content

微信咨询

关注公众号咨询客服

咨询客服
  • 在线客服热线

    0755-83865666

  • 服务时间

    工作日  8:30~20:30

    节假日  8:30~18:00

  • 服务投诉

QQ咨询
优惠券
芯媒体

立创商城旗下芯媒体

微信号:icsight

建议反馈
填问卷 立创用户体验问卷调查 立即参与
活动规则
活动规则
展开客服