MIT-BIH 是由美国麻省理工学院提供的研究心律失常的数据库。是近年来应用较为广泛的一个。
MIT-BIH 的心律失常数据,主要由头文件.hea) , 数据文件(.dat), 注释文件 (.atr) 三部分构成。
头文件(.hea)的储存方式为ASCII码字符。
以
record 100 为例,头文件为:
100 2 360 650000
100.dat 212 200 11 1024 995 -22131 0 MLII
100.dat 212 200 11 1024 1011 20052 0 V5
# 69 M 1085 1629 x1
# Aldomet, Inderal
第一行:
100: 文件编号名称。可以忽略
2: 样本个数。 MIT-BIH 的心电数据是二导联数据,分别为矫正肢体导联II(modefied limb lead II, MLII) 和 矫正导联V1/V2/V5/V4. 所以样本数目是2。
360: 采样率。采样率是每秒采集的信号点个数,即360个采样点/秒。
650000: 信号长度/采样个数。 两个信号的长度均为650000。此数据的采集时间为30+分钟。
第二行/第三行:
第二行和第三行分别记录了两个信号(MIT-BIH ,V5)的信息。两个信号的信息都包含在了100.dat文件中。
212: 数据格式。MIT-BIH 的心律失常数据都是以这种方式储存的,是针对两个信号的数据库记录。
200:信号增益。200ADC(模拟数字转换器) units/mV。信号的增益是信号的放大系统,或者放大倍数。在这里就是将每1mv的交流或者直流信号,经ADC 转换成200值的数字信号。
11:ADC转换的分辨率。ADC能够分辨量化的最小信号能力,以二进制位数表示。
1024:ADC零值为1024。可以将它认为是基线值。
995/1011:两个信号第一采样点的值。在这里两个值都略低于零值。
后两个值分别为采样点的检验数和输入输出的块的尺寸信息。
最后两行:
包括了数据来源患者的基本情况以及用药信息。
将头文件导入到Matlab中:
参考网上读取ECG心电数据的Matlab程序rddata.m(下载地址 http://download.csdn.net/source/3383369)
%函数用法可见相关博文
% ---specify data------------------------------------
PATH='/Users/mac/Desktop/record_100';
HEADFILE='100.hea';
ATRFILE='100.atr';
DATAFILE='100.dat';
SAMPLES2READ=650000;
%-----LOAD HEAD DATA----------------------------------
signalh=fullfile(PATH,HEADFILE);
fid1=fopen(signalh,'r');
z=fgetl(fid1);
A=sscanf(z,'%*s %d %d %d',[1,3]); %A='2 360 650000'
nosig=A(1); %nosig=2
sfreq=A(2); %sfreq=360
clear A;
for k=1:nosig
z=fgetl(fid1);
A=sscanf(z,'%*s %d %d %d %d %d',[1,5]);
dformat(k)=A(1); %dformat=212
gain(k)=A(2); %gain(1)=gain(2)=200
bitres(k)=A(3); %bitres(1)=bitres(2)=11
zerovalue(k)=A(4); %zerovalue(1)=zerovalue(2)=1024
firstvalue(k)=A(5);%firstvalue(1)=995; firstvalue(2)=1011
end
fclose(fid1);
clear A
导入的重要数据为:
信号个数(nosig)=2
采样率(sfreq)=360
数据格式(dformat(k))=212
信号增益(gain(k))=200
ADC分辨率(bitres(k))=11
ADC零值(zerovalue(k))=1024
两个信号的第一采样点的值(firstvalue(k))=995/1011