ECG分析:基于深度学习的ECG心律失常分类入门(3)

数据库的Python读取
本次读取数据,用的是一款专门读取MITAB数据的工具——WFDB-python,WFDB包下载 ,全称是 Python waveform-database ,这是一个用于读取、写入以及处理WFDB信号和注释的工具库,重点是还加了关于生理信号处理等功能。不得不说在处理ECG方面,包含的API真的是太友好啦。安装的话,直接:

pip install wfdb

下面结合读取一条记录的例子,做一个简单的示范:

  1. 关于用wfdb对119记录的相关操作
import wfdb
import matplotlib.pyplot as plt
#所有这上面贴出的地址要换成自己的地址,这里我打码了
annotation= wfdb.rdann('E:/...data/MITDB_CNN_Classification/MIT_BIH/119','atr')#有很多基于annotation的操作;
record_name=annotation.record_name     #读取记录名称
label1=annotation.symbol #心拍的标签
label2=annotation.aux_note  #节律片段的标签
label_index=annotation.sample   #标签索引
record=wfdb.rdsamp('E:/...data/MITDB_CNN_Classification/MIT_BIH/119')#读取119记录

可以看到,record 元组里面包含了一个array,里面就是ECG信号幅值,也就是我们需要的数据,前面说过,这个数据库采集的都是两个导联的数据;另外一个是字典,包含了该条记录的相关信息:
plot一段:
最后贴上一个包含数据和标签的展示图:
这里说一下,关于R峰定位算法有很多,有一个经典的就是Pan-Tompkins algorithm: Pan, J., and Tompkins, W. J., A real-time QRS detection algorithm.IEEE transactions on biomedical engineering 3:230–236, 1985.由于R峰定位等基准点检测不是本次研究的重点,所以这里直接采用给定的R峰的索引,也就是标签索引。
2. 数据预处理
(1)滤波:
这里采用文章里面提到的小波去噪的方法,原因解释得也很清楚:

(2)心拍截取:
因为我们的是基于心拍做心律失常分类的,那么我们需要做的一个工作是心拍截取,文章种提到,以R峰位基准点,取前面0.4s后面0.5s作为一个心拍,也就是:

采样率=360Hz,也就是心拍长度是 0.4360+0.5360=324.

#这里只给出这一操作步骤,这里还需要考虑边界值,哈哈哈,这是刷题习惯啦
beat=record[label_index[j]-144:label_index[j]+180]

总结
这篇笔记主要介绍了数据的读取和预处理。那么米准备好了,接下来就是要起炉灶,准备烧饭了哈哈哈。下一篇将介绍的是我们CNN模型的搭建,和数据训练和测试。

相关的代码文件后期会上传个人GitHub https://github.com/cay846545867,记得给颗小Star鼓励一下喔!!!

ECG分析:基于深度学习的ECG心律失常分类入门(3)相关推荐

  1. ECG分析:基于深度学习的ECG心律失常分类入门(1)

    ECG分析:基于深度学习的ECG心律失常分类入门(1) 写作动机 由于受突发疫情的影响,开学时间推迟了(在此特向奋斗在前线的各行各业的工作者们致以崇高的敬意!).前天晚上刚好看到一篇新出的论文,跟自己 ...

  2. ECG分析:基于深度学习的ECG心律失常分类入门(4)

    ECG分析:基于深度学习的ECG心律失常分类入门(4) 在搭建模型之前,讲一下本次任务需要区分的类别,MITAB根据心拍类型划分了14个小类: 也可以用wfdb查看: wfdb.show_ann_la ...

  3. ECG分析:基于深度学习的ECG心律失常分类入门(5)

    ECG分析:基于深度学习的ECG心律失常分类入门(5) 数据和模型完成了之后,就是训练和测试了,这里顺带提一下,MITAB的数据是48条记录的,而我们在做ECG分析的时候,都是去掉了四条记录(102, ...

  4. ECG分析:基于深度学习的ECG心律失常分类入门(2)

    ECG分析:基于深度学习的ECG心律失常分类入门(2) 数据来源:MIT-BIH Arrhythmia Database 数据库介绍和获取 前面已经对ECG信号有了简单的认识,那么现在来简单看看我们的 ...

  5. Data Augmentation for Deep Learning-based Radio ModulationClassification解读(基于深度学习的无线电调制分类数据扩充)

    摘要:深度学习最近被应用于自动分类接收无线电信号的调制类别,而无需人工经验.然而,训练深度学习模型需要大量的数据.训练数据不足会导致严重的过度拟合问题,降低分类精度.为了处理小数据集,数据增强被广泛应 ...

  6. 深度医疗(1) - 基于深度学习心电图(ECG)特征识别

    深度医疗是笔者基于深度学习的医学项目应用开发实践,经过整理输出了文档和本系列课程,希望通过分享可以和大家共同讨论.相互学习,探索更好的解决方案.笔者是一名普通的大数据和人工智能领域从业者,过程中如有错 ...

  7. Python_001_旅游评论情感倾向性分析_000_分析(基于深度学习的微博评论情感倾向性分析_胡西祥)论文

    Python_001_旅游评论情感倾向性分析_000_分析论文-2020-8-21 知网链接:基于深度学习的微博评论情感倾向性分析 - 中国知网 (cnki.net) ps.只做分析概括 目录 一.论 ...

  8. ECG ×AI: 机器/深度学习的ECG应用入门(4)

    传统机器学习:特征工程+分类器 1.引言 经过前面的工作,我们已经解决了数据来源和识别对象问题.那么接下来,我们就要进行机器/深度学习算法的应用了.由于本人写这些博文的目的不在于讲解机器/深度学习理论 ...

  9. ECG ×AI: 机器/深度学习的ECG应用入门(1)

    前言 你好,我是研究ECG算法的搬砖工Winham.目前搞这个方向已经挺长时间了,总想着把自己的一些入门经验分享一下,却不知道从何下手.说实话,关于ECG算法的研究相对冷门一些,网络上系统的资料也比较 ...

最新文章

  1. android系统密码设置功能,手机锁屏密码怎么设置 三种安卓手机锁屏方式推荐
  2. 网站改版都要注重哪些因素?
  3. Windows计算器使用详解
  4. java 403怎么抛出_django主动抛出403异常的方法详解
  5. 【ArcGIS风暴】ArcGIS点云抽稀(稀疏化LAS点)详解案例教程
  6. 汇知考轻松职称计算机辅导软件,汇知考轻松
  7. MoveNet 姿态估计,树莓派上也能跑!
  8. css table设置边框_table布局的一些总结
  9. python如何安装wordcloud_基于python的wordcloud库的安装方法
  10. 吴恩达机器学习学习笔记第四章:python的配置
  11. java中String stringBuffer StringBuider
  12. TuxOnIce! 休眠到硬盘[zt]
  13. iOS开发之Xcode常见错误
  14. 整理常用的PHP函数
  15. Linux守护进程HALD
  16. 《智能控制导论》读书报告(课程作业)--常规控制的智能化
  17. php如何获得系统时间,php如何获取系统时间
  18. NLP --- 条件随机场CRF(预测算法详解)
  19. html下拉菜单插件,简单的jQuery大型下拉菜单插件
  20. Kaizen Mini-Story

热门文章

  1. 二、IDEA设置、快捷键和代码模板
  2. 变频恒压供水一拖二PLC程序
  3. 小学计算机六年级下教学计划,人教版小学六年级下册信息技术教学计划范文(通用3篇)...
  4. Active Perl的PPM的repository添加
  5. 关于c++杀线程函数TerminateThread强烈不建议使用
  6. W5500 使用总结
  7. 电脑内存占用过高 解决方法
  8. 千兆网络变压器原理图及与PHY与网络变压器接线方式
  9. 视频去水印大师怎么使用,如何去视频水印
  10. ThinkPHP 开发XXXXX后台