转自:http://blog.sina.com.cn/s/blog_615e7b3f0102v9q1.html
一、创建一个PhysioBank-Compatible Record
1.wfdbdesc ecg01 可以测试一个文件是否为PhysioToolkit软件支持
2.wrsamp -F 128 -G 102.4 -i ecg01.txt -o ecg01 0
读取一个ecg01.txt,创建一个record,一个信号文件ecg01.hea和一个ecg01.dat
-f和-g制定在128hz的信号采样,在这样的采样方式下,1mv的振幅将会被放大成102.4个单位
(原文:that the signal was amplified in such a way that a step of 1 millivolt would appear as sample values that differ by 102.4 units.)最后一个参数表示column 0包含数据(数据被填充到第0列)
二、创建一个Beat Annotation文件
前提:拥有一个.dat和一个.hea文件。了解ECG中的RR间隔,精确位置(QRS发生时间),
在PhysioBank中,这些信息被编码在一个beat annotation 文件中。Annotation 文件命名以record名字和annotator名字组合形式(例如qrs,ecg,ann,atr其他名字也可以,但是不常用)
如果你的record没有beat annotation文件,可以用工具集创建:
1.使用sqrs,一个快速简单的QRS检测工具
2.使用wqrs,一个更快的QRS检测工具
3.使用gqrs,QRS检测工具,对承认ECG进行了优化,可以配置成婴儿,儿童和非人类ECG
4.使用ecgpuwave,QRS检测工具,可以检测P-和T-波的边界
需要测试这些检测工具,因为在数据量不够的时候是会出错的。
tip1:可以使用WAVE工具,能够交互的看到signals和annotations,就能做QRS错误检查,包括一些错过的beats,错误的检测和misplaced annotations(错位的Annotations)
tips2:使用pschart或者psfd,用PostScript输出,进行打印或者用GhostScript工具进行查看。
如果QRS数据检测错误,可能是annotation types错误,完整的列表引用:http://physionet.org/physiobank/annotations.shtml
(这可以使用WAVE手动修改)
还可以使用OSAS工具
ps:原文有提供一个范例ecg01.qrs:地址:http://physionet.org/tutorials/hrv/ecg01.qrs
三、Inter-Beat(RR)间隔
指连续心跳是从QRS开始到QRS截止(QQ间隔,一般叫做RR间隔)。一般使用峰值的地方作为基准点。
上述三个QRS检测工具会自行定义基准点,方法都不相同,综合下来就会准确。
通常,你只对窦跳动感兴趣,这些成为NN间隔。
四、从一个注释文件中提取RR间隔
通常之是研究心率的变异,经典的标量HRV参数(SDNN,pNN50,RMSSD),可以跳过这一步进行下一步 从注释文件中提取瞬时心率。
1.ann2rr从注释文件读入并生产一个RR间隔的列表。
ann2rr-r ecg01 -a qrs
2.可以重定向到文本中
ann2rr-r ecg01 -a qrs >ecg01.rr1.txt
如果想在每个间隔结束的地方看到类型,使用-w选项
ann2rr-r ecg01 -a qrs -w >ecg01.rr2.txt
默认的间隔就是RR间隔,就是采样间隔,如果源的采样间隔是128样本/s,那么输出的就是128,由于精度问题,会有误差,使用-i s看到毫秒级别。
ann2rr-r ecg01 -a qrs -i s >ecg01.rr3.txt
如果想学习NN间隔,使用命令
ann2rr-r ecg01 -a qrs -p N >ecg01.rr4.txt
tips:
使用-c选项来对齐时间坐标。
ann2rr -r ecg01 -a qrs -p N -c >ecg01.rr5.txt
ps:ann2rr的所有解释http://physionet.org/physiotools/wag/ann2rr-1.htm
五、可视化RR间隔
plt使用方法见
http://physionet.org/tutorials/hrv/
pss:有2个bash脚本,统计RR间隔和直方图
六、不连续的NN间隔
可以使用nguss来重建丢失的窦间隔
七、从一个注释文件中提取瞬时心率
临床实践中心率测量bpm几乎都是使用推算,例如测量一个6s的间隔,乘以10.
最简单有效的方式是计算每分钟内每次间隔的倒数,使用命令
ihr -r ecg01 -a qrs
i.e., the time series of instantaneous(瞬间的) heart rates
(可以理解为把区间转为瞬时心率)
ihr -r ecg01 -a qrs >ecg01.ihr.txt
hrplot -r mitdb/100 -a atr(图形)
八、心率变异性
注:本文仅是理解官方文档的笔记,不作为经验。如有翻译错误,谢谢指出
官方地址:http://physionet.org/tutorials/hrv/#annotating