美文网首页一起折腾传感器生物医学信号处理机器使命
PhysioNet生理信号处理(五)--WFDB for Pyt

PhysioNet生理信号处理(五)--WFDB for Pyt

作者: 秋实华 | 来源:发表于2019-01-06 05:58 被阅读0次

    上一篇文章讲了WFDB for Python的知识点,因为一直没有下载成功就暂时中断了。我又回去仔细读了一下官方教程,还是没有发现问题的所在。于是换了一个DEMO,用的是官方IPython的教程:

    https://github.com/MIT-LCP/wfdb-python/blob/master/demo.ipynb

    要通过python读取官方的生理信号记录,有两种方法,一种是缓存,就是在线读取,然后给当前的一个变量,然后进行处理,这样的好处就是不占用电脑内存,按需索取,但是需要电脑时刻联网,读取速度慢。另一种就是上一次尝试的先下载下来然后再变量读取,优缺点与缓存办法相补。下面我一次执行官方的DEMO,看看结果。

    一、在线使用(缓存)

    读取信号常用的两个函数为:rdrecord()和rdsamp,前者读取一个完整的信号记录,后者读取一个记录中指定的通道(channel)或者指定的部分(section).

    还是读取mitdb库中的‘101’记录为例。该库在PhysioNet生理库中的完整路径为:

    https://physionet.org/physiobank/database/mitdb

    我们只需要指定数据库和记录名称就好了,前缀函数会自动给我们添加上,如下:

    record = wfdb.rdrecord('101',pb_dir='mitdb/');

    完整的DEMO为:

    import wfdb

    record = wfdb.rdrecord('101',pb_dir='mitdb/')

    wfdb.plot_wfdb(record=record, title='Record 101 in mitdb') #显示该记录

    print(record.__dict__)  #打印该记录的完成字典信息

    mitdb '101'记录信号plot图
    mitdb ‘101’记录的字典信息打印结果

    以上两幅图说明在线读取没问题的。‘101’记录中有两个channels,下面用rdsamp来读取其中第1个channel,200000--400000采样点之间的记录:

    import wfdb

    signals, fields = wfdb.rdsamp('101', channels=[0], sampfrom=200000, sampto=400000, pb_dir='mitdb/')  #读取‘101’记录指定的内容,注意python中的     第 一个元素都是0,所以这里第一个channel是[0]

    wfdb.plot_items(signals,title='Channel 1 of Record 101 in mitdb')

    mitdb '101'记录第一个channel中[200000,400000]之间的记录plot

    二、下载读取

    现在我要下载mitdb库中的‘102’(‘101’记录我已经手动下载好了)。

    程序和上一次一样,燃鹅依然没有成功,一直处于下载中。这速度比当年那啥下XXX片还慢,不等了。

    漫长等待的截图

    虽然没有下载成功,但是问题是可以解决的,一是手动在官网下载;二是先在线读取,然后在保存其python对象的变量。

    好了,就这样了吧。下篇估计就是处理ECG咯。

    相关文章

      网友评论

        本文标题:PhysioNet生理信号处理(五)--WFDB for Pyt

        本文链接:https://www.haomeiwen.com/subject/aepjrqtx.html