MIT-BIH心电数据的绘图方法概述
更新时间:2024-01-16 05:35:01 阅读量: 教育文库 文档下载
MIT-BIH心电数据的绘图方法概述
MIT-BIH的数据格式说明
MIT-BIH为了节省文件长度和存储空间,使用了自定义的格式。一个心电记录由三个部分组成:
(1)头文件[.hea],存储方式ASCII码字符。
(2)数据文件[.dat],按二进制存储,每三个字节存储两个数,一个数12bit。 (3)注释文件[.art],按二进制存储。 官方演示地址以及文件下载地址: 数据演示地址:
http://www.physionet.org/cgi-bin/atm/ATM 数据下载地址:
http://www.physionet.org/physiobank/database/mitdb/ 心电数据说明:
http://www.physionet.org/physiobank/database/html/mitdbdir/mitdbdir.htm
[.hea]为头文件
其由一行或多行ASCII码字符组成。以100.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
第一行从左到右分别代表文件名,导联数,采样率,数据点数;
第二行从左到右分别代表文件名,存储格式,增益,AD分辨率,ADC零值,导联1第一个值,校验数,?(不太清楚,貌似为0的话可以从任意数据块输出,即可以从中间读取任意一段),导联号 第三行代表导联2的信息,同第二行
以#开始的为注释行,一般说明患者的情况以及用药情况等
[.dat]为数据文件
MIT-BIH数据库中的数据存储格式有Format8、Format16、Format80、Format212、Format310等8种,心律失常数据库统一采用212格式进行存储。
“212”格式是针对两个信号的数据库记录,这两个信号的数据交替存储,每三个字节存储两个数据。这两个数据分别采样自信号0和信号1,信号0的采样数据取自第一字节对(16位)的最低12位,信号1的采样数据由第一字节对的剩余
4位(作为组成信号1采样数据的12位的高4位)和下一字节的8位(作为组成信号1采样数据的12位的低8位)共同组成。以100.dat为例。
按照“212”的格式,从第一字节读起,每三个字节(24 位)表示两个值,第一组为“E3 33 F3”,两个值则分别为0x3E3和0x3F3转换为十进制分别为995和1011,代表的信号幅度分别为4.975mv和5.055mv,这两个值分别是两个信号的第一采样点,后面依此类推,分别表示了两个信号的采样值。
[.art]为注释文件
记录了心电专家对相应的心电信号的诊断信息,主要有两种格式:MIT格式和AHA格式。MIT格式是一种紧凑型格式,每一注释的长度占用偶数个字节空间,多数情况下是占用两个字节,多用于在线的注释文件;而AHA格式的每一注释占用16个字节的空间,多用于交换文件的情况。这两种格式的在文件中的区分决定于前两个字节的值,若文件的第一字节不为0或第二字节等于“[”(0x5B)或“](0x5D),则该文件是以MIT格式存储的,否则是按AHA格式存储的。心律失常数据库采用的MIT格式。 MIT格式,每一注释单元的前两个字节的第一个字节为最低有效位,16位中的最高6位表示了注释类型代码(具体代码见后表),剩余的10位说明了该注释点的发生时间或辅助信息,若为发生时间,其值为该注释点到前一注释点的间隔(对于第一个注释点为从记录开始到该点的间隔),若为辅助信息则说明了附加信息的长度。以100.atr为例。
从文件中的第一字节不为0可以判断该文件是以MIT格式存储的。从第一字节开始按照MIT格式进行分析,首先读出16位值0x7012,其高6位的值为0x1C(十进制28),低10位的值为0x12,该类型代码为28,代表意义是节律变化,发生时间在0.05秒(18/360Hz);接着读出后面的16位值0xFC03,其高6为的值为0x3F(十进制63),低10位的值为0x03,该类型代码为63,代表的意义是在该16位值后附加了3个(低10位值代表的数)字节的辅助信息,若字节个数为奇数,则再附加一个字节的空值,在本例中就是“28 4E 00 00”;然后再从下一字节读16位值0x043B,其高6位的值为1,低10位的值为0x3B(十进制59),该类型码1代表正常心搏,发生时间为0.213秒((18+59)/360Hz);依次类推即可读出所有的注释,当读到的16位值为0时,就表示到了文件尾。另,当高6位为十进制59时,读取之后第3个16位的高6位,作为类型代码,读取之后第二个16位+第一个16位*2^16;高6位为十进制60,61,62时,继续读下一个16位。
MIT-BIH数据文件的读取 数据文件[.dat]的读取
数据是由两个信号组成,分别称为是S1和S2;每三个字节存储两个数据,三个字节分别称为B1、B2、B3,数据是以二进制方式存储。组成方式如下图:
算法如下:
//将读取的byte数组转化为二维数组,包含[byte.length/3]行,3列
byte[] content = out.toByteArray();// 读取的内容,从内存传至一维数组 int n = 3; // 列
int m = content.length / n; // 行 = 650000
byte[] a = content; // 读出的一维数组,每个元素为一个字节 byte[][] b = newbyte[m][3]; // 变为二维数组,m行3列 for(inti = 0; i< m; i++) {
for(int j = 0; j < 3; j++) {
b[i][j] = a[i * 3 + j]; } }
// 数据移位,解析DAT文件的212格式
ArrayList
// 第一列屏蔽高24位,
int A1i = getUnsignedByte(b[i][0]); // 第2列屏蔽高24位
int A2i = getUnsignedByte(b[i][2]); // 二维数组第二列的低四位0-3位,是第一路信号的高4位,和1111相与, //来获得m1h
int m1hi = getUnsignedByte(b[i][1]) & 15;
// 第二列的4-7位为第二路信号的高4位,右移四位获得,m2h int m2hi = getUnsignedByte(b[i][1]) >> 4;
// m1h左移八位,补到A1的8-11,相与,组成第一路信号,共十二位 int sOnei = ((m1hi << 8) | A1i); signalOne.add(sOnei); // m2h和A2组成第二路信号
int sTwoi = (m2hi << 8) | A2i; signalTwo.add(sTwoi);
}
由此得到采集器采集的数值,要想获取其电压值则为N/200 单位是mv
正在阅读:
MIT-BIH心电数据的绘图方法概述01-16
虚拟桌面技术在高校教育教学中的应用03-12
苏教版高中数学选修超几何分布同步练习04-12
变形记作文600字07-11
传统文化概述05-05
四川大学软件工程选择题06-08
201406计算机网络试题04-09
注册供应链管理师模拟试题(答案)11-04
应付债券核算问题探讨11-26
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 心电
- 绘图
- 概述
- 方法
- 数据
- MIT
- BIH
- 建筑钢筋混凝土预制楼梯施工工艺
- 心态培训
- 西南大学《土木工程材料》网上作业及参考答案
- 哈铁工桥25号 关于印发《桥隧设备检查监测和质量控制管理办法》的通知
- 江苏开放大学形考
- 浅谈对鲁迅名言的感悟-医电01 胡杨一星 2010121013
- 《热力发电厂》习题解答
- 黔阳煤矿矿井防突设计(1)
- 人教版二年级语文上册全册教学反思
- 导数在数列中的应用1
- 人教版四年级语文下册各单元知识点(方便打印版)
- 中国矫形或骨折用器具市场产销调研及发展动向预测报告(2015-2020)
- 儿童常见的心理变态 青岛心理咨询学家秦启竞
- 《创新大课堂》2015高考语文(新课标人教版)一轮总复习 课时作业1
- XX市餐饮食品安全视频监控系统建设方案 - 图文
- 沿空留巷总结
- 公司分立重组案例分析 很精悍
- 斯维尔知识 - 图文
- 内科护理学(专升本)期末考试
- 09统计学入党积极分子小组讨论