您的位置:首页 > 数据库

MIT-BIH心电数据库的使用

2013-04-05 14:27 169 查看
MIT-BIH简介

国际公认的权威心电数据库有三个:麻省理工的MIT-BIH,美国心脏学会的AHA数据库以及欧洲的ST-T心电数据库,其中MIT-BIH是最常用最著名的

MIT-BIH网址:http://www.physionet.org/cgi-bin/atm/ATM,Input可以选择具体的数据库,Toolbox可以选择输出方式,包括下载.mat

文件读取

MIT-BIH的文件有三个,.atr文件是注释文件,.hea是头文件,说明信号数据的特性,.dat文件就是实际的数据文件

.hea文件内容如下

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

第一行为记录行,2路360Hz采样的信号,每一路采样个数650000;

下面两行是对各路信号的数据说明,212格式,每个信号增益是200ADCunits/Mv,ADC是11位,ADC零值是1024,第一采样点的值分别是995和1011等信息。

212格式:用12位表示一个数,所以3个字节表示两个数,数据存储模型应该是:



matlab读取程序:

function M=rddata_mit;

filename=input('please enter the filename,end with .dat','s');

signald=filename;

fid2=fopen(signald,'r');

SAMPLES2READ=10000;

A= fread(fid2, [3, SAMPLES2READ], 'uint8')';      % 矩阵A共有SAMPLES2READ行、3列,每列数据都是以uint8格式读入,注意这时数据通过uint8的读入方式已经成为十进制数

fclose(fid2);

M2H= bitshift(A(:,2), -4);                              % 字节向右移四位,即取字节的高四位,属于信号2的高4位

M1H= bitand(A(:,2), 15);                              % 取字节的低四位,属于信号1的高4位

PRL=bitshift(bitand(A(:,2),8),9);                 % sign-bit   取出字节低四位中最高位,向左移九位

PRR=bitshift(bitand(A(:,2),128),5);            % sign-bit   取出字节高四位中最高位,向左移五位

M( : , 1)= bitshift(M1H,8)+ A(:,1)-PRL;       % 将M1H、M2H分别左移8位,即乘以2^8,再分别加上A(:,1),A(:,2),

M( : , 2)= bitshift(M2H,8)+ A(:,3)-PRR;       % 由于左移时把符号位也移动了,要减去符号位的值

M=M';                                                               % 为了方便后期的数据处理,将输出矩阵 M 转置为2行SAMPLES2READ列
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息