怎么用MATLAB来读取MIT-BIH的心电数据

时间:2020-12-25 05:33:13

1.通过网址https://physionet.org/physiobank/database/mitdb/下载心电数据。咱们今天就下载100.hea,100.dat,100.atr。把这三个放到一个文件夹下面,我这里是把它们放在D盘的MIT-BIH原始数据 中。放哪里看你的心情,只要你能记住文件名与地址就OK了。

怎么用MATLAB来读取MIT-BIH的心电数据

2.下载完数据,咱们就要开始MATLAB编程了。把心电数据给解码出来并画图。下面是MATLAB的源码,在MATLABR2014a中,可以直接运行的。
源码:
clear all;
clc;  
close all;  
%------ 具体数据------------------------------------------------------  
PATH= 'D:\MIT-BIH原始数据'; % path, 这里就是写刚才你保存的数据地址 
HEADERFILE= '100.hea';      % 文件格式为文本格式
ATRFILE= '100.atr';         % attributes-file 文件以二进制格式
DATAFILE='100.dat';         % data-file  
SAMPLES2READ=660000;         %  读取的数据样本点数为660000
                            % in case of more than one signal:  
                            % 2*SAMPLES2READ samples are read  
%------ LOAD HEADER DATA --------------------------------------------------  
signald= fullfile(PATH, DATAFILE);            % data in format 212  
fid2=fopen(signald,'r');  
A= fread(fid2, [3, SAMPLES2READ], 'uint8')';  % matrix with 3 rows, each 8 bits long, = 2*12bit  
fclose(fid2);  
%=----------------------载入二进制数据-----------------------------------------  
M2H= bitshift(A(:,2), -4);          %字节向右移四位,即取字节的高四位  
M1H= bitand(A(:,2), 15);            %取字节的低四位  
M( : , 1)= bitshift(M1H,8)+ A(:,1); %低四位向左移八位  
M( : , 2)= bitshift(M2H,8)+ A(:,3); %高四位向左移八位  
M = M-1024;                               %这个M就是咱们解码出来的数据
plot (M(100:1200,1))         %绘制一段心电图形


3.运行上面的代码,在工作区会生成M.mat文件,右键可以选择另存为,存到你想存的地址下面。

4.附上我运行绘制的心电图。

怎么用MATLAB来读取MIT-BIH的心电数据