PhsioBank在Matlab下的WFDB工具箱的使用

参考:http://physionet.org/tutorials/hrv/#rr-intervals


一. WFDB的安装


WFDB64位版本只支持Matalab2014以上版本。(https://physionet.org/physiotools/matlab/wfdb-app-matlab/)

32位电脑可以下载WFDB的32位版本。(http://www.physionet.org/physiotools/matlab/wfdb-swig-matlab/)


另: 对于ECG,Matlab也有 ecgkit工具箱可以使用。

二. WFDB工具箱中常用的函数

主要用到以下函数:

rdsamp,读取样本数据。

[tm,signal,Fs]=rdsamp(recordName,signaList,N,N0,rawUnits,highResolution)

输出参数:
signal:
读取到的信号数据,N*M双精度矩阵。其中N为数据的长度,M为信号的个数。
tm:
N*1向量,采样数据的间隔。可能代表采样的个数(整数),或者采样的时间。
Fs:(可选)
各个M列信号的采样频率。

必要的输入参数:
recorName:
Physionet远程服务器或者本地目录里面的文件名。

可选的输入参数:
signaList:
M*1列向量。(默认:读取所有的信号。)   
N:
读取的数据末尾。
N0:
读取的数据起始。
rawUnits:
时间和数据幅值的精度选项。
highResolution:
true or false,true,表示以高分辨率读取数据记录。

    
比如读取 Physionet远程服务器里面的Fantasia数据集里面的f2o01记录,可以使用:
[tm,signal,Fs]=rdsamp('fantasia/f2o01', [1 2],1000);
plot(tm,signal(:,2))%绘制ECG数据
plot(tm,signal(:,1),'or')%绘制呼吸信号







rdnn,读取注释文件数据。这里注释文件是指WFDB中以特定的格式存贮的特定信号的文件,比如ECG中的RR间期,QRS复波,P波等。(WFDB中一般以qrs ,ecg  ,ann,or atr 后缀命名,如上图fantasia数据集中的ecg注释文件,也可以在下载的数据文件中名为Annotator的txt中查看数据里面包含那些注释。) 如果要创建自己的兼容WFDB的数据文件,请参考置顶网址。


[ann,type,subtype,chan,num,comments]=rdann(recordName,annotator,C,N,N0,type)

输出参数:
ann:
N*1的整型向量,标定annotator在recordName中的位置。

输入参数:
annotator:
注释文件的名称。

比如读取Physionet中的challenge/2013/set-a/01数据集中的第一组前4600个数据,以及注释的fqrs(胎儿r波位置):

[tm, signal]=rdsamp('challenge/2013/set-a/a01',[1],4600);
[ann]=rdann('challenge/2013/set-a/a01','fqrs',[1],4600)
plot(tm,signal(:,1));hold on;grid on
plot(tm(ann),signal(ann,1),'ro','MarkerSize',4)

wrsmp: 把得到的数据写成WFDB支持的格式(.hea,.dat),之后可以用rdnn,ecgpuwave等函数
例如:
[tm,signal]=rdsamp('fantasia/f2o01',[2],10000); %读取fantasia/f2o01 ecg信号里面前10000个数据
[siginfo,Fs]=wfdbdesc('fantasia/f2o01'); %获取fantasia/f2o01信号的物理信息,如采用频率,增益,数据格式
wrsamp(tm,signal,'f2o01Copy',Fs(2),siginfo(2).Gain,siginfo(2).Format) %生成.hea,.dat格式文件
 [tm1, signalCopy]=rdsamp('f2o01Copy'); %读取存储的数据文件
err=sum(signalCopy ~= signal)    %统计写成.hea,.dat格式文件后的出错个数(这里测试出错,希望大神指教)

类似的还有wrann,把数据写成注释文件的格式。

wfdbexec : 把WFDB自身的命令转换为可以在Matlab中执行的命令,
比如:
 out=wfdbexec('rdsamp',{'-r','mitdb/100','-t','s5'})


波形特征提取常用函数:ecgpuwa(提取T波,P波等),sqrs,gqrs(提取QRS复波),ann2rr(提取RR间期)
具体请参阅置顶网址。


波形绘图函数:visgraph等
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值