avatar GDYSHI

gdyshi 的个人博客

  • 首页
  • 子域
  • 分类
  • 标签
  • 归档
  • 关于
首页 WFDB库解析
文章

WFDB库解析

发表于 2018/03/22
作者 gdyshi
6 分钟阅读
WFDB库解析
WFDB库解析
  • 摘要
  • 引言
  • 主题
    • 代码结构
    • wfdb.io
      • _header
      • _signal
      • annotation
        • 主要方法
      • download
        • 主要方法
      • record
        • 主要方法
      • 属性字段列表
    • wfdb.plot
      • 主要方法
    • wfdb.processing
      • basic
        • 主要方法
      • evaluate
        • 主要方法
      • hr
        • 主要方法
      • peaks
        • 主要方法
      • qrs
        • 主要方法
  • 附录
    • WFDB数据结构导图
  • 参考

摘要

本文对wfdb库(python语言)内部数据结构和处理逻辑进行分析


引言

WFDB库—MIT的针对波形数据库(waveform-database)发布的一个工具。用于读、写、处理WFDB信号和注解。 在WFDB python api文档中对公开的API接口进行了说明,现在工作需要 利用WFDB数据库进行二次开发,需要对wfdb库的内部数据结构和处理逻辑进行分析。本文主要记录wfdb库的内部数据结构和处理逻辑

主题

代码结构

  • 数据io
    • 头混入_header.py
    • 信号混入_signal.py
    • 标注annotation
    • 下载数据download
    • 记录操作record
  • 绘图plot
  • 数据处理processing
    • 数据基本处理basic
    • 数据对比评估evaluate
    • 心率计算hr
    • peaks
    • QRS计算qrs

wfdb.io

_header

此文件提供了 记录文件 到 Record对象描述 的双向转换接口

  • FieldSpecification

    用于定义特殊属性的规则。如:数据类型、定界符、依赖、是否必须赋值、读默认值、写默认值。

    在记录、信号、段三个地方使用

  • BaseHeaderMixin

    文件头操作的基混入类

  • HeaderMixin

    单段文件头操作混入类,继承于BaseHeaderMixin

  • MultiHeaderMixin

    多段文件头操作混入类,继承于BaseHeaderMixin

_signal

此文件提供了 记录文件 到 Record对象信号 的双向转换接口

信号有两种单位:物理量(mV)和ADC,此文件同时提供了两种单位的相互转换方法

  • SignalMixin

    信号操作混入类。

annotation

此文件提供了 标注文件 到 Annotation对象 的双向转换接口

  • AnnotationLabel

    用于定义标注label的格式。

  • AnnotationClass

    用于定义标注class的格式。

主要方法
序号方法名方法描述
1rdann读取标注文件
2wrann写入标注文件
3show_ann_labels显示标注label
4show_ann_classes显示标注class

download

download.py没有类,只提供了几个接口,用于下载数据库,或下载单个数据文件

主要方法
序号方法名方法描述
1get_dbs获取数据库列表
2get_record_list获取数据库中的记录列表
3dl_files下载数据文件

record

  • SignalClass

    用于定义信号类别的格式。

  • BaseRecord

    记录基类。

  • Record

    记录类。继承于BaseRecord, _header.HeaderMixin, _signal.SignalMixin

  • MultiRecord

    多段记录类。继承于BaseRecord, _header.MultiHeaderMixin

主要方法
序号方法名方法描述
1rdsamp从文件读取wfdb数据
2wrsamp写入wfdb数据到文件
3rdrecord从文件读取wfdb记录
4dl_database下载数据文件

属性字段列表

wfdb.plot

主要方法

序号方法名方法描述
1plot_wfdb绘制record
2plot_all_records绘制文件夹下所有记录文件
3plot_items绘制某一导联的信号

wfdb.processing

basic

basic.py没有类,只提供了几个接口,用于数据基础处理

主要方法
序号方法名方法描述
1resample_ann标注重采样
2resample_sig信号重采样
3resample_singlechan单导联重采样
3resample_multichan多导联重采样
3normalize_bound归一化
3get_filter_gain从滤波系数计算特定频率衰减

evaluate

  • Comparitor 记录对比类。用于对比记录
主要方法
序号方法名方法描述
1compare_annotations对比标注

hr

hr.py没有类,只提供了接口,用于计算心率

主要方法
序号方法名方法描述
1compute_hr计算心率
2calc_rr计算rr间期
3calc_mean_hr计算平均心率

peaks

peaks.py没有类,只提供了接口,用于计算心率

主要方法

//todo:

序号方法名方法描述
1find_peaks计算波峰位置
2find_local_peaks计算信号中的最大值位置
3correct_peaks峰值一致性调整

qrs

  • XQRS

    xqrs算法的qrs检测类。

  • Conf

    算法参数配置类。

  • Peak

    峰值记录类。

  • Annotation

    标注记录类。

  • GQRS

    gqrs算法的qrs检测类。

主要方法
序号方法名方法描述
1xqrs_detect 
1gqrs_detect 

附录

WFDB数据结构导图

参考


  • WFDB python源码
  • WFDB python api文档
算法
WFDB MIT ECG python
本文由作者按照 CC BY 4.0 进行授权
分享

最近更新

  • paho.mqtt.embedded掉线问题记录
  • tensorflow模型部署系列————TensorFlow Serving部署
  • tensorflow模型部署系列————独立简单服务器部署
  • tensorflow模型部署系列————浏览器前端部署
  • tensorflow模型部署系列————独立简单服务器部署
外部链接
  • 996.icu
  •  此博客的 Github 仓库
  •  GDYSHI 的个人博客

文章内容

相关文章

2018/08/10

python调用第三方动态库

摘要 引言 主题 加载动态库 类型 函数 实例 附录 参考 摘要 本文讲述python混合编程之调用动态库 引言 python因为良好的编码性和扩展库正被大规模的使用,但他有两个缺点:1、代码可见;2、执行效率低,于是在实际应用中经常会把高效和核心代码用C/C++实现,业务部分用python实现。这就需要进...

2018/06/27

logging模块多进程解决方案

摘要 引言 主题 logging模块 flask 问题场景 问题原因 解决方案 总结 附录 参考 摘要 本文讲述如何在多进程中使用logging模块记录到同一文件 引言 从Python2.3起,Python的标准库加入了logging模块。 logging模块是Python内置的标准...

机器学习服务器搭建

logging模块多进程解决方案

© 2025 gdyshi. 保留部分权利。

本站采用 Jekyll 主题 Chirpy

热门标签

tensorflow keras 模型部署 神经网络 机器学习 flask python 服务器 译文 人脸识别

发现新版本的内容。