摘要
本文对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的格式。
主要方法
序号 | 方法名 | 方法描述 |
---|---|---|
1 | rdann | 读取标注文件 |
2 | wrann | 写入标注文件 |
3 | show_ann_labels | 显示标注label |
4 | show_ann_classes | 显示标注class |
download
download.py没有类,只提供了几个接口,用于下载数据库,或下载单个数据文件
主要方法
序号 | 方法名 | 方法描述 |
---|---|---|
1 | get_dbs | 获取数据库列表 |
2 | get_record_list | 获取数据库中的记录列表 |
3 | dl_files | 下载数据文件 |
record
-
SignalClass
用于定义信号类别的格式。
-
BaseRecord
记录基类。
-
Record
记录类。继承于BaseRecord, _header.HeaderMixin, _signal.SignalMixin
-
MultiRecord
多段记录类。继承于BaseRecord, _header.MultiHeaderMixin
主要方法
序号 | 方法名 | 方法描述 |
---|---|---|
1 | rdsamp | 从文件读取wfdb数据 |
2 | wrsamp | 写入wfdb数据到文件 |
3 | rdrecord | 从文件读取wfdb记录 |
4 | dl_database | 下载数据文件 |
属性字段列表
wfdb.plot
主要方法
序号 | 方法名 | 方法描述 |
---|---|---|
1 | plot_wfdb | 绘制record |
2 | plot_all_records | 绘制文件夹下所有记录文件 |
3 | plot_items | 绘制某一导联的信号 |
wfdb.processing
basic
basic.py没有类,只提供了几个接口,用于数据基础处理
主要方法
序号 | 方法名 | 方法描述 |
---|---|---|
1 | resample_ann | 标注重采样 |
2 | resample_sig | 信号重采样 |
3 | resample_singlechan | 单导联重采样 |
3 | resample_multichan | 多导联重采样 |
3 | normalize_bound | 归一化 |
3 | get_filter_gain | 从滤波系数计算特定频率衰减 |
evaluate
- Comparitor 记录对比类。用于对比记录
主要方法
序号 | 方法名 | 方法描述 |
---|---|---|
1 | compare_annotations | 对比标注 |
hr
hr.py没有类,只提供了接口,用于计算心率
主要方法
序号 | 方法名 | 方法描述 |
---|---|---|
1 | compute_hr | 计算心率 |
2 | calc_rr | 计算rr间期 |
3 | calc_mean_hr | 计算平均心率 |
peaks
peaks.py没有类,只提供了接口,用于计算心率
主要方法
//todo:
序号 | 方法名 | 方法描述 |
---|---|---|
1 | find_peaks | 计算波峰位置 |
2 | find_local_peaks | 计算信号中的最大值位置 |
3 | correct_peaks | 峰值一致性调整 |
qrs
-
XQRS
xqrs算法的qrs检测类。
-
Conf
算法参数配置类。
-
Peak
峰值记录类。
-
Annotation
标注记录类。
-
GQRS
gqrs算法的qrs检测类。
主要方法
序号 | 方法名 | 方法描述 |
---|---|---|
1 | xqrs_detect | |
1 | gqrs_detect |