发作品签到
标准版

#第五届立创电子设计大赛#USB便携式ECG心电图监护自动分析仪

工程标签

1.8w
0
0
21

简介

简介:

开源协议

BSD

创建时间:2020-08-02 10:56:45更新时间:2022-06-22 06:45:04

描述

注:*为必填项。

【请在报名阶段填写 ↓】

1、自我/团队介绍

我们团队成员均为电子信息-生物医学工程的在读研究生,队员曾获得多项电子/计算机设计大赛省奖/国奖/冠军。热爱电子设计,喜欢钻研技术,对电子技术有很强的追求。队长曾在某研究所担任两年电子工程师,实战经验较为丰富。

2、简要介绍项目

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

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

【请在竞赛阶段填写 ↓】

1、描述项目详情

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

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

软件流程框架.jpg

2、描述项目所面临的挑战及所解决的问题

我们的初始方案是采用AD8232芯片进行心电信号的提取,但是经过测试发现,无论是我们的测试电路还是买到的DEMO板,只能在无干扰状态下保持良好工作(关闭房间所有交流用电器),抗干扰性能都极差。下图是一张典型的波形,这是我们在关闭所有电器,只开一只台灯的情况下的输出波形(测试淘宝买的AD8232红色模块):
50Hz干扰.jpg
上图可以看到,其存在很高幅度的50Hz工频噪声,我们分析,这是由于其右腿反馈的驱动能力不足,以及内部设计原因所致。
当然如果是纯粹的50Hz干扰,我们可以通过后级滤波来实现,查阅datasheet和实践发现,由于AD8232内部的设计原因,在50Hz干扰达到一定程,则会引发振荡:
震荡波形.jpg

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

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

修改.jpg

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

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

近似熵.png

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

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

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

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

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

< br>

3、描述项目硬件、软件部分涉及到的关键点

在我们需要克服各种环境下的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、项目材料清单展示

BOM表.png

5、项目图片上传

5.1、PCB上印制大赛logo图片,若无视为放弃参赛
反面.jpg
5.2、项目其它图片
PCB正面.jpg

6、演示您的项目并录制成视频上传

6.1、视频上传大赛官网

已上传。

6.2、B站视频标题和链接

项目介绍:< /span>https://www.bilibili.com/video/BV1nV411S7pG?from=search&seid=15477962878967354335< br>
< br>
< br>
团队介绍:< /span>https://www.bilibili.com/video/BV1Tk4y1y7RW?from=search&seid=15477962878967354335< br>
< br>
< br>
功能演示&性能测试:< /span>https://www.bilibili.com/video/BV1vv41117U7?from=search&seid=15477962878967354335< br>
< br>
< br>
< br>
注意事项:①:视频要求:请横屏拍摄,分辨率不低于1280×720,格式Mp4/Mov,单个视频大小限100M内;②:视频上传:请同步上传至大赛官网和B站(www.bilibili.com),B站人气TOP10项目将获得1000-5000元现金奖励,其它上传项目获得100元立创商城无门槛券;③:视频标题:第五届立创电子设计大赛:{项目名称}-{视频模块名称};如第五届立创电子设计大赛:《自动驾驶》项目-团队介绍。~~~~

7、是否首次公开发布

7.1、项目之前是否发表过或获奖,请说明

答:项目是首次发布。

7.2、若项目是在原有基础上优化,请说明优化部分

8、开源文档

见附件。

9、参考文献

暂无

点击链接了解更多详情:https://www.szlcsc.com/go/dsxq

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
硬件开源资料.zip
608
2
CCPP_算法库开源资料.zip
179
3
上位机软件开源资料.zip
562
4
下位软件开源资料.zip
231
5
MIT-BIH到本软件的格式转换脚本.zip
187
6
上位机软件_可执行文件_exe.7z.001
504
7
上位机软件_可执行文件_exe.7z.002
466
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航