心电图数据读取matlab程序,心电信号的提取及matlab编程.doc

MIT-BIH ECG 信号的数据读取方法和Matlab程序 收藏 ?

?

最近在写一篇基于小波变换的ECG信号压缩算法的论文,遇到了怎样获取ECG信号测试数据的问题,在百度和专业论坛里搜索了一番,发现也有很多朋友为此发愁。现在论文写好了,投稿中,顺便也把怎样获取和处理ECG信号数据的方法写出来,供有需要的朋友参考,省却在百度和论坛里苦苦求索的麻烦,呵呵 ^_^

一、首先,如果是对ECG心电信号进行观察、分析和诊断使用的话,有两个方法:

(1)??? 从MIT-BIH数据库下载请参考我前些天发布的文章《MIT-BIH ECG 心电数据的下载和读取图解》,里面有详尽介绍。

/chenyusiyuan/archive/2008/01/06/2027887.aspx

(2)??? 用专门的Matlab心电数据读取程序我10日在浩惠电子论坛(/bbs/)的“医疗器械”版块找到了读取ECG心电数据的Matlab程序(rddata.m),如获至宝啊!这个程序是由外国人写的,能够读取MIT-BIH数据库 .atr、.dat、.hea三种文件的数据,根据这些数据计算出实际的心电信号值,并绘制出信号波形。程序不大,注释也算齐全,不过是英文的,需要这个程序的朋友请按以下链接下载。

匿名提取文件连接 /3497080791233097? ???????? 或登录Mofile,使用提取码 3497080791233097 提取文件PS: 关于rddata.m的下载,在打开/3497080791233097 后,下载链接是在“文件标签”和“文件介绍”之后的地方,夹在两块广告图片之间,共有3个链接:“推荐快车(flashget)高速下载文件 下载文件(IE浏览器) 下载文件(非IE浏览器)”,非常隐蔽,一般点击中间的那个链接“下载文件(IE浏览器)”就会弹出保存对话框了。

二、如果是要对ECG信号进行压缩、编码等信号处理操作

上面程序获得的数据就不便于使用了,因为那是转换为具有实际意义的心电数据,信号数据值一般在-2~2之间,单位是mV。那么,要找新的ECG读取程序来获取数据吗?不用!实际上,程序rddata.m中本身就是把MIT .dat 文件中存储的二值数据转换为十进制数据,然后再进一步处理转换成具有实际意义的心电信号值。我们进行信号处理时,需要用到的就是从二值数据转换来的初始十进制数据,由于 .dat文件中是三个字节存储2个数,即每个数12bits,转换后得到的十进制数范围应该是0~2048。我所理解的数据存储方式图示如下,不知是否正确,仅供参考:

?

由于rddata.m程序中的注释是英文的,且有些地方也说明不清楚,我从程序中截取出将二值数据转换为十进制数据的部分代码,将注释转换为中文,并根据自己的理解作一些补充说明,希望对大家有所帮助!

具体的程序代码如下:

%-------------------------------------------------------------------------% 程序Fun_ReadECGData 用于读取ECG信号数据,将原始的二值数据转换为十进制数% 输入参数及其示例:% PATH= 'D:\MATLAB\R2007b\work\ECG Data'; % 指定数据的储存路径% HEADERFILE= '117.hea';????? % .hea 格式,头文件,可用记事本打开% DATAFILE='117.dat';???????? % .dat 格式,ECG 数据% SAMPLES2READ=2048;????????? % 指定需要读入的样本数%???????????????????????????? % 若.dat文件中存储有两个通道的信号:%???????????????????????????? % 则读入 2*SAMPLES2READ 个数据 % 输出参数:M —— 一个SAMPLES2READ行2列的数据矩阵,每列数据代表一个通道的信号值%-------------------------------------------------------------------------??????????????????????????? function M = Fun_ReadECGData(PATH,HEADERFILE,DATAFILE,SAMPLES2READ)

%------ LOAD HEADER DATA --------------------------------------------------%------ 读入头文件数据 -------------------------------------------------

你可能感兴趣的:(心电图数据读取matlab程序)