虚拟仪器大作业实验报告.docx
- 文档编号:4569799
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:13
- 大小:675.53KB
虚拟仪器大作业实验报告.docx
《虚拟仪器大作业实验报告.docx》由会员分享,可在线阅读,更多相关《虚拟仪器大作业实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
虚拟仪器大作业实验报告
东南大学生物科学与医学工程学院
虚拟仪器实验报告
大作业
实验名称:
基于MIT-BIH心率失常数据库的心电信号系统的设计
专业:
生物医学工程
姓名:
学号:
同组人员:
学号:
实验室:
综合楼716
实验时间:
彳013/"/28
评定成绩:
审阅教师:
1.实验目的
2.实验内容
基于MIT-BIH心率失常数据库的心电信号系统的设计
1.实验要求和说明
2.程序设计流程图
3•程序各版块介绍说明
4.前面板的设计
5.调试过程
6.结果及分析
3.实验收获及小结
4.参考文献
一.实验目的
现代医学表明,心电信号(ECG)含有临床诊断心血管疾病的大量信息,
ECG的检测与分析在临床诊断中具有重要价值,是了解心脏的功能与状况、辅助诊断心血管疾病、评估各种治疗方法有效性的重要手段。
本次大作业利用具有直观图形化编程和强大数字信号处理功能的虚拟仪器
编程语言LabVIEW作为开发平台,设计一个基于虚拟仪器的简单心电信号分析系统,该系统具有心电信号的读取,处理分析,波形显示、心率显示及报警,波形存储和回放等功能。
二.实验内容
1.实验内容及要求
基于MIT-BIH心率失常数据库的心电信号系统的设计
1.本次大作业所用原始信号是从MIT-BIH(MassachusettesInstituteof
andBethIsraelHospital,美国麻省理工学院和波士顿贝丝以色列医院)心率数据库(http:
//www.physionet.org/physiobank/database/mitdb/)中选取心电信号作为实验分析的数据。
设计的系统要求对原始心电信号进行读取、绘制出其时域波形,利用原始心电数据中的时间数据控制显示时间,并具有保存回放功能,同时具有心率过快或过缓报警提示功能。
2•心电信号是微弱低频生理电信号,通常频率在0.05Hz〜100Hz,幅值不超过
4mV,它通过安装在皮肤表面的电极来拾取。
由于实际检测工况的非理想,
在ECG信号的采集过程中往往会受到工频噪声及电极极化等各种随机噪声的影响。
噪声的存在降低了诊断的准确性。
其中影响最大的是工频干扰和基线漂移噪声。
因此,在ECG信号检测过程中,如何抑制工频干扰和基线漂移等是必须解决的问题。
要求选择并设计合适的滤波器,除去所给心电信号的工频干扰和基线漂移。
2.检测心率:
检测信号心电的R波,计算平均心率和实时心率(R-R波时间间隔
的倒数),并显示实时心率和平均心率。
3.对任一路心电信号滤波前后的信号进行时域分析和频谱分析,分别显示出结果。
提高部分:
1.由于原始信号数据并不是等间隔采样而得到的,而Labview中用数字滤波器处
理的数据要求等间隔的,由此需要对原始数据做一次线性插值处理,使其成为均匀数字信号,以便后面的信号进行频域谱分析。
提示:
根据原文件心电
信号的特点,时间间隔设置成0.001s,采用一次线性插值。
2.对所给的心电信号进行特征点的提取。
各波时距的测量,P-R间期Q-T间期的
测量。
能显示心电信号特征参数。
3.使用ReportGenerationToolkitforMicrosoftOffice设计一个报表生成程序,要求报表中显示标题栏,测试数据、和心电波形图,包含监测开始时间、结束时间、监测总时间长度、监测期间平均心率、心率最大值、心率最小值、
测期间实时心率的波形图。
4.为了保护用户信息安全,登陆系统时要求设置用户登录模块。
当用户运行程序时,程序会自动弹出需要输入用户名和密码的口令信息对话框,输入不正确则不能进入运行状态,此外,还有相应的注册用户模块,删除用户模块,修改密码模块等。
2.程序流程图
吧
判断心率是否有异常
3•程序各版块介绍说明
数据的读取和处理模块
据了。
2•关于数据的处理部分,第一道导联12位数据的低8位存在第一字节中,高4位存在
第二字节的前4位中;第二道导联12位数据的低8位,存在第三字节中,高4位存在第二
二个数据与回进行Q操作后得到低四位,然后用拼接函数亞与第三个数据进行拼接就
得到了第二道导联数据;第二个数据进行右移四位操作—后保留高四位,然后用拼接函
数与第一个数据拼接就得到了第一=导联数据。
然后对得到的数据变成十进制数丄u进行处理。
for循环的循环次数应该是数
3•在读取数据时,由于是三个数据一处理,所以建立的
据长度/3.
滤波模块
以较好的去除基线漂移。
实验要求设置其高通带截止频率和低通带截止频率分别为100和0.05,然后根据实验滤波
3•在已经滤去了基线漂移和工频干扰的情况下,为了达到更好地滤波效果在等波纹带
阻滤波器后面加入一个3阶切比雪夫滤波器,将波形滤除的更加完整。
样滤波效果更明显一点。
频谱分析模块
1.
由于要进行滤波前后的频谱分析对比,所以频谱分析模块要在滤波前后都加入。
并对其接线端子进行相应设置。
4.滤波后的频谱分析与上面一样,波形图生成之后,将两个频谱图放在一起进行
对比分析。
数据记录与回放模块
代表回放,条件为假代表不回放。
执行程序时先选择条件假,将数据写入文件;然后再执行条件真,回放数据波形。
2.将写入文件的程序框图放入条件为假的结构中,将读取文件的程序框图放入条件为真的结构中。
3.写入文件时,首先将动态数据转换成数组,然后将X和Y分别写入一个一维的电子表格文件,读取时只要用电子表格文件读取再转换成动态数据直接连接到波形图上显示就可以了。
4.需要特别注意的是,在提醒保存文件位置的对话框出来之后一定要按顺序分别存入
x1,y1,x2,y2。
读取的时候提醒读取文件位置的对话框出来之后也一定要按顺序选择,否则波形会错乱。
显示心率和判断心率异常模块
RR间
函数,然后将找到的波峰个数减一后送入索引位置,这样就可以输出最后一个波峰的
横坐标(即所有RR间期的总长度),然后除以波峰的个数就可以的算出一个RR间期的长度。
2•用RR间期的长度除以采样周期就可以的得到一个RR间期所需时间,然后求出平均
一分钟内出现了几个RR周期(即平均心率)。
3.求瞬时心率时,建立一个输入变量,选择所需时刻的心率。
然后求出这一时刻离哪
一个波峰最近,求出这一波峰的位置和上一个波峰的位置进行相减姐可以得出瞬时期的长度,然后同上面一样求出瞬时心率。
4•用输入控件选择心率上限和心率下限,然后将平均心率进行比较,如果在上下限范围之内则显示心率正常,否则显示心率异常。
登陆(用户名和密码)模块
1•首先建立一个while结构,接下来在while结构里面设置一个条件结构的嵌套。
2•外层的条件结构用来判断是否登录,内层的条件结构用来判断用户名和密码是否正确。
3•建立局部变量字符串和访问确认,为后面的用户名口令正误做准备。
4•建立两个字符串输入变量,分别用作用户名和口令的输入,在外层的条件结构中加入两个字符串常量,设置为你自己的用户名和口令,如果输入变量中的用户名和口令与字符串常量设置的用户名口令相匹配,那么内层条件为真,可以继续执行下面的程序;如果不匹配则外层条件结构中的字符串输出变量则会显示"口令错误”。
5•这里的注意事项是,每启动一次程序就必须验证一次用户名和口令,并不是只要打开程序
执行时输入用户名口令登陆就可以了,只要程序停止即使未关闭下次运行就必须再次登陆(但是用户名和口令不必再次输入,只要点登录就可以了)。
4.前面板的设计说明
1•首先因为本次实验前面板要显示的图形比较多,所以首先在前面板上建立几个选项卡。
2•第一个选项卡放登录界面、数据显示和第一通道波形显示及滤波后波形;第二选项卡放入第二通道波形及滤波后波形;第三选项卡放入第二通道波形滤波前的幅频分析显示;第四选项卡放入第二通道波形滤波后的幅频分析显示;最后一个选项卡放入回放的第一通道和第二通道波形。
3•登陆界面:
建立两个字符串输入控件,分别用来输入用户名和口令;在建立一个字符串显示控件:
当输入用户名和口令之后会显示用户名和口令是否匹配,匹配显示口令正确进入程序;不匹配则显示口令错误,自动消除错误口令,再次输入。
加入一个布尔按钮
并命名为登陆,再添加一个布尔指示灯,若用户名口令正确则亮起一下(加了延时程序),
若用户名口令错误则不亮。
4•数据显示界面,添加一个布尔指示灯,设置属性使心率正常时绿灯亮,心率有异时
红灯亮起。
添加是三个输入控件,分别是心率上限、心率下限和瞬时心率的时刻选择;然
后添加三个输出空间,分别是平均心率、瞬时心率和心电图总时间
5•波形回放:
波形回放界面添加一个布尔指示灯,开始运行程序时设置为红色,表示先记录数据,然后在程序执行完毕之后,将指示灯改为绿色,再次执行程序进行读取。
6•由于其他都是波形显示界面,只要添加显示的波形图即可,因此在这里不再过多说明。
5.调试过程
1•实验刚开始的数据处理部分就遇到了很大困难,由于这次的数据文件不同以往,数
据并不完整,是以特殊形式存放的,再加上对很多实用的函数不了解所以无从下手。
第一
次试着用电子表格文件来读取数据,然后用索引数组进行数据处理,但是波形显示出来不
3__I
正常。
然后便调整了读取方式,通过对索引数组,右移函数一,十进制数据转换函
数王口和整合函数刽结合使用,最后终于成功解决了数据处理部分的难题,而且也学到了
很多新函数的使用方法。
2•滤波方面刚开始一头雾水,根本不知道基线漂移和工频干扰是什么东西,但是经过
多方面的查找资料和研究信号处理函数中所有滤波器的用法,终于选出了比较合适的滤波
器来对波形进行合适处理。
3•波形回放部分算是问题出现比较大的一个,最初因为做过关于波形回放方面的实验,觉得这部分还是比较容易实现的,但是其实有很大的差距。
因为二进制文件、文本文件在做回放的时候都出现了很多问题,所以左后我们选择了电子表格文件。
但是用电子表格直接存储在回放的时候会出现波形紊乱的问题,所以我们就想到了将x,y分别存放到一维电
表格文件中然后进行x,y图的显示,最后成功了。
6.结果及分析
本次实验完成了心电图数据文件的读取和数据处理,滤波前后的波形显示,滤波前后
的频谱分析,基线漂移和工频干扰滤除,波形的记录和回放,用户名和口令的登陆界面设计。
关于瞬时心率的显示问题,我觉得我们在这一方面做得不够好。
程序需要手动输入时
刻才可以显示该时刻的瞬时心率吧,这样相对来说比较麻烦。
刚开始其实使用过延时来实现瞬时心率的动态显示,但是没有成功,目前只能做到手动输入时刻显示心率。
还有滤波方面,虽然成功去除了基线漂移和工频干扰,但是所用的几个滤波器是否会
对波形造成不良影响,导致波形失真或丢失必要数据,这个我们无法确保,归根究底还是滤波只是和能力有所欠缺。
关于提高部分的登陆界面设计,可以说是基本完成了要求。
但是预想应该是程序执行,跳出登陆界面,用户名口令正确后跳到主界面,但是界面的跳转方面的只是不成熟,无法实现预想的功能。
数据的记录和回放做的还是比较成功的,但是由于记录的时候分为了x1,y1,x2,y2的顺
序来分别记录横纵坐标,所以可能使用时顺序会颠倒,导致不能正常回放,目前还没有消除直接存储波形带来的bug,这也是我们今后要提升的部分。
前面板的设计感觉还是不错的,较好实现了界面的友好交互,希望今后可以设计出更加美观使用的界面。
三.实验收获及小结
实验首先当然是巩固了许多基础知识,结合了平时实验掌握的相关内容:
数组及各种
数组函数,波形图的生成,各种结构的使用,存储和回放数据,滤波,数据文件的读取和
数据处理等等。
如果没有平时的实验做基础,这次大作业可谓是无从下手。
其实本次大作业也让我们掌握了许多的新函数还有前面板以前没有接触过的控件,比
选项卡指示灯等等。
所以我们在巩固旧知识的同时也学会了很多新用法。
但我觉得更重要的是我们自主建立了一个大系统,这锻炼了我们的统筹和分块,纵览大局,各个击破,使我们从平时的小程序小版块上升到一个完整的系统。
经过这次实验感受颇深的一点就是,很多东西你以前见过也用过但是并不是透彻的了解了那个函数或者是控件,他和其他函数结合起来可以实现哪种功能,他还有什么别的作
用,这都是需要你在长期设计程序的基础上慢慢去掌握的东西。
所以刚开始可能觉得虚拟仪器很简单,但是越学越难,这也就是所谓的“入门容易,成为大牛却很困难”。
希望我们可以在虚拟仪器的学习过程中程序设计思想越来越成熟,能力逐步提高。
四.参考文献刘旺锁基于虚拟仪器的扫频仪的设计与实现海军工程大学武汉基于LabVIEW的心电信号采集及分析方法研究杨乐平labview高级程序设计北京清华大学出版社2003张爱甲labview入门与虚拟仪器北京:
电子工业出版社2004郭继鸿心电图学人民卫生出版社刘凤军医用电子仪器原理、构造李智,赵岗金等24H动态心电记录及分析系统北京工业大学学报余学飞医学电子仪器与设计广州:
华南理工大学出版社(附录:
背景介绍见后一页)
附录:
背景介绍
背景介绍:
一.心电图(Electrocardiography,ECG或者EKG)是一种记录心脏产生的生物电流的技术,记录的是电压随时间变化的曲线。
临床医生可以利用心电图对患者的
心脏状况进行评估,并做出进一步诊断。
ECG记录是通过对若干电极(导联)感知
到的生物电流进行采样获得的。
图1中显示了典型的单周期心电图波形。
!
QRSinterval
通常说来,记录的心电信号会被噪声和人为引入的伪影所污染,这些噪声和伪影在我们感兴趣的频段内,并且与心电信号本身有着相似的特性。
为了从带
有噪声的心电信号中提取出有用的信息,我们需要对原始的心电信号进行处
从功能上来说,心电信号的处理可以大致分为两个阶段:
预处理和特征提取。
预处理阶段消除和减少原始心电信号中的噪声,而特征提取阶段则从心电信号中提取诊断信息。
二.MIT心电数据库介绍
1.MIT-BIH心率失常数据库(MIT-BIHArrhythmiaDatabase是美国麻省理工
学院(MIT)和波士顿贝丝以色列医院(BIH)合作进行心率失常的分析和研究,总结成的数据库,是世界上受到公认并广泛使用的标准心电数据库。
数据库中的数据是通过将录制在磁带上的模拟信号进行模数转换后得到的数字信号,在存储时
为了减少文件长度节省存储空间,使用了自定义的格式,而无法通过通用的方式去读取数据。
心律失常数据库共有48个病例,每个比例数据长30分钟,总计约有116000多个心拍,包含有正常心拍和各种异常心拍,内容丰富、完整,并且有医学专家对每个心拍作出的识别和标注。
数据库中数据的采样率为
360Hz,11位采样精度,一个采样值占两个字节。
每个病例记录都记录了两个导联的数据,各个病例的导联并不相同,而是根据实际情况选择的。
其记录名
为100~124和200~234的数字,其中一些数字未使用。
记录名并不是文件名。
每个数据由三个文件组成,分别是头文件(扩展名是.hea)、数据文件(扩展名
为.dat)、注释文件(扩展名为.atr)。
头文件详细说明了与它关联的数据文件
的名字及其属性,数据文件是以自定义的"212"的格式按二进制存储的原始信号数据;注释文件是记录心电诊断专家对信号分析的结果。
数据文件,即某一时刻
的两道导联的数据,这些数据被压缩存放在三个字节中,即第一道导联12位数据的低8位存在第一字节中,高4位存在第二字节的前4位中;第二道导联12位数据的低8位,存在第三字节中,高4位存在第二字节的后4位中(高4位包含符号)。
2.MIT-BIHECG心电数据的下载
(1)下载获取MIT-BIH的数据
从下面这个官方网址可以下载到所有48组MIT-BIH心电数据:
http:
//www.physionet.org/physiobank/database/mitdb/下面这个链接是MIT-BIH数据库的详细说明和使用指南:
http:
//www.physionet.org/physiobank/database/html/mitdbdir/mitdbdir.htm
(2)MIT-BIH的数据格式
MIT为了节省文件长度和存储空间,使用了自定义的格式,所以没有通用的读
取方式。
一个心电记录由三个部分组成:
1头文件[.hea],存储方式ASCII码字符。
2数据文件[.dat],按二进制存储,每三个字节存储两个数,一个数12bit。
3注释文件[.art],按二进制存储,格式定义比较复杂。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟仪器 作业 实验 报告