本文的主要内容是详细介绍MIT-BIH心电数据集的读取,主要使用WFDB-python工具进行操作,能够读取心电信号数据到array中,读取annotations以及使用matplotlib绘制相应的心电信号波形,并对record和annotation数据结构进行简单的分析。
声明:本博客的内容来源于各大论文和互联网,其正确性有待考究。目的仅仅为了记录一下本人的学习过程,如果正好也能对你有一点帮助或者发现文中的错误所在,非常欢迎留言交流呀。
0 安装WFDB
可以直接下载zip包到本地研读一下源码,了解其数据结构。根据其提供的安装教程,直接使用pip安装就行:
pip install wfdb
耐性等待几分钟,很快就能安装成功。之后便可以进行测试:
import wfdb
# 显示所有的标注格式
wfdb.show_ann_classes()
运行以上代码后,会打印出annotation的后缀以及标注的类型,安装成功。
1 读取record
读取record是使用wfdb的rdrecord函数实现:
# 读取一条记录的心电数据前10000个数据点
record = wfdb.rdrecord('data/MIT-BIH/100', sampfrom=0, sampto=10000, physical=False, channels=[0, 1])
以上示例中,第一个参数是我本地文件的文件地址,整个函数的返回值为一个wfdb中定义的record对象,接下来看一下这个record对象的数据结构。找到刚刚下载的源码,找到record.py文件,该文件中定义的是record类,其申明和初始化如下:
class Record(BaseRecord, _header.HeaderMixin, _signal.SignalMixin):
def __init__(self, p_signal=None, d_signal=None,
e_p_signal=None, e_d_signal=None,
record_name=None, n_sig=None,
fs=None, counter_freq=None, base_counter=None,
sig_len=None, base_time=None, base_date=None,
file_name=None, fmt=None, samps_per_frame=None,
skew=None, byte_offset=None, adc_gain=None,
baseline=None, units=None, adc_res=None,
adc_zero=None, init_value=None, checksum=None,
block_size=None, sig_name=None, comments=None):
...
...
这里主要说明几个比较重要经常使用的属性如下(根据我自己的