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

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信号幅值,也就是我们需要的数据,前面说过,这个数据库采集的都是两个导联的数据;另外一个是字典,包含了该条记录的相关信息:
ECG分析:基于深度学习的ECG心律失常分类入门(3)_第1张图片plot一段:
ECG分析:基于深度学习的ECG心律失常分类入门(3)_第2张图片最后贴上一个包含数据和标签的展示图:
ECG分析:基于深度学习的ECG心律失常分类入门(3)_第3张图片这里说一下,关于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)滤波:
这里采用文章里面提到的小波去噪的方法,原因解释得也很清楚:
ECG分析:基于深度学习的ECG心律失常分类入门(3)_第4张图片
(2)心拍截取:
因为我们的是基于心拍做心律失常分类的,那么我们需要做的一个工作是心拍截取,文章种提到,以R峰位基准点,取前面0.4s后面0.5s作为一个心拍,也就是:
ECG分析:基于深度学习的ECG心律失常分类入门(3)_第5张图片
采样率=360Hz,也就是心拍长度是 0.4360+0.5360=324.

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

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

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

你可能感兴趣的:(笔记)