手机版

虚拟仪器大作业实验报告

发布时间:2024-11-28   来源:未知    
字号:

东南大学生物科学与医学工程学院

实验报告

大作业

实验名称:基于MIT-BIH心率失常数据库的心电信号系统的设计 专 业: 生 物 医 学 工 程 姓 名: 学 号:

同组人员: 学 号:

实 验 室: 综合楼716 实验时间: 评定成绩: 审阅教师:

一.实验目的

二.实验内容

基于MIT-BIH心率失常数据库的心电信号系统的设计

1.实验要求和说明

2.程序设计流程图

3.程序各版块介绍说明

4.前面板的设计

5.调试过程

6.结果及分析

三.实验收获及小结

四.参考文献

一.实验目的

现代医学表明,心电信号(ECG)含有临床诊断心血管疾病的大量信息,ECG的检测与分析在临床诊断中具有重要价值,是了解心脏的功能与状况、辅助诊断心血管疾病、评估各种治疗方法有效性的重要手段。

本次大作业利用具有直观图形化编程和强大数字信号处理功能的虚拟仪器编程语言LabVIEW作为开发平台,设计一个基于虚拟仪器的简单心电信号分析系统,该系统具有心电信号的读取,处理分析,波形显示、心率显示及报警,波形存储和回放等功能。

二.实验内容

1.实验内容及要求

基于MIT-BIH心率失常数据库的心电信号系统的设计

1. 本次大作业所用原始信号是从MIT-BIH(Massachusettes Institute of

and Beth Israel Hospital,美国麻省理工学院和波士顿贝丝以色列医院)心率 数据库(http:///physiobank/database/mitdb/)中选取心电信 号作为实验分析的数据。设计的系统要求对原始心电信号进行读取、绘制出 其时域波形,利用原始心电数据中的时间数据控制显示时间,并具有保存回 放功能,同时具有心率过快或过缓报警提示功能。

2. 心电信号是微弱低频生理电信号,通常频率在0.05Hz~100Hz,幅值不超过 4mV,它通过安装在皮肤表面的电极来拾取。由于实际检测工况的非理想, 在ECG 信号的采集过程中往往会受到工频噪声及电极极化等各种随机噪声 的影响。噪声的存在降低了诊断的准确性。其中影响最大的是工频干扰和基 线漂移噪声。因此,在ECG 信号检测过程中,如何抑制工频干扰和基线漂 移等是必须解决的问题。要求选择并设计合适的滤波器,除去所给心电信号 的工频干扰和基线漂移。

3. 检测心率:检测信号心电的R波,计算平均心率和实时心率(R-R波时间间隔 的倒数),并显示实时心率和平均心率。

4. 对任一路心电信号滤波前后的信号进行时域分析和频谱分析,分别显示出结 果。

提高部分:

1. 由于原始信号数据并不是等间隔采样而得到的,而Labview中用数字滤波器处 理的数据要求等间隔的,由此需要对原始数据做一次线性插值处理,使其成 为均匀数字信号,以便后面的信号进行频域谱分析。提示:根据原文件心电 信号的特点,时间间隔设置成0.001s,采用一次线性插值。

2. 对所给的心电信号进行特征点的提取。各波时距的测量,P-R间期 Q-T间期的 测量。能显示心电信号特征参数。

3. 使用Report Generation Toolkit for Microsoft Office 设计一个报表生成程序, 要求报表中显示标题栏,测试数据、和心电波形图,包含监测开始时间、结 束时间、监测总时间长度、监测期间平均心率、心率最大值、心率最小值、 监 测期间实时心率的波形图。

4. 为了保护用户信息安全,登陆系统时要求设置用户登录模块。当用户运行程 序时,程序会自动弹出需要输入用户名和密码的口令信息对话框,输入不正 确则不能进入运行状态,此外,还有相应的注册用户模块,删除用户模块, 修改密码模块等。

2.程序流程图

3.

数据的读取和处理模块

1.首先是读取数据文件部分,先添加一个文件对话框

文件类型和文件打开提醒进行设置,然后加入一个打开文件函数

分别为

据了。 和,并对,设置其权限和操作来读取数。前期工作完成之后,就可以用二进制文件

2.关于数据的处理部分,第一道导联12位数据的低8位存在第一字节中, 高4位存在第二字节的前4位中; 第二道导联12位数据的低8位, 存在第三字节中, 高4位存在第二字节的后4位中。用索引函数

个数据与 进行将三个数据分别读取,然后对第二个数据进行处理,第二与第三个数据进行拼接就得到

与操作后得到低四位,然后用拼接函数了第二道导联数据;第二个数据进行右移四位操作后保留高四位,然后用拼接函数

第一个数据拼接就得到了第一=导联数据。然后对得到的数据变成十进制数进行处理。

3.在读取数据时,由于是三个数据一处理,所以建立的for循环的循环次数应该是数据长度/3.

滤波模块

1.因为基线漂移部分都是频率非常小的波,我们选择了Butterworth的带通滤波器,高截止频率为100HZ,低截止频率为0.5HZ,滤除了原本波形中0.05HZ~0.5HZ的部分,这样可以较好的去除基线漂移。

2.为了去除工频干扰部分,在带通滤波器后面加入一个等波纹带阻滤波器,根据实验要求设置其高通带截止频率和低通带截止频率分别为100和0.05,然后根据实验滤波部分的要求将低阻带截止频率和高阻带截止频率分别设置为59和61,这样就可以滤去工频干扰。

3.在已经滤去了基线漂移和工频干扰的情况下,为了达到更好地滤波效果在等波纹带阻滤波器后面加入一个3阶切比雪夫滤波器,将波形滤除的更加完整。

4.因为实验说明中采样频率为360.所以我们的滤波器的采样频率一率采取了360,这样滤波效果更明显一点。

频谱分析模块

1.由于要进行滤波前后的频谱分析对比,所以频谱分析模块要在滤波前后都加入。

2.

首先要把处理后的数据表现成波形形式,用波形生成函数

并对其接线端子进行相应设置。

3.在波形生成之后加入两个频谱函数幅度谱相位谱函数

,并在后面进行相应的显示波形图连接。 进行波形生成,和FFT

实部虚部函数

4.滤波后的频谱分析与上面一样,波形图生成之后,将两个频谱图放在一起进行

对比分析。

数据记录与回放模块

1.首先在整体框图外面建立一个case结构,case结构的条件判断为。条件为真代表回放,条件为假代表不回放。执行程序时先选择条件假,将数据写入文件;然后再执行条件真,回放数据波形。

2.将写入文件的程序框图放入条件为假的结构中,将读取文件的程序框图放入条件为真的结构中。

3.写入文件时,首先将动态数据转换成数组,然后将X和Y分别写入一个一维的电子表格文件,读取时只要用电子表格文件读取再转换成动态数据直接连接到波形图上显示就可以了。

4.需要特别注意的是,在提醒保存文件位置的对话框出来之后一定要按顺序分别存入x1,y1,x2,y2。读取的时候提醒读取文件位置的对话框出来之后也一定要按顺序选择,否则波形会错乱。

显示心率和判断心率异常模块

1.

首先用波峰检测函数

来找出波峰个数,然后将每个波峰的位置传给索引数组函数,然后将找到的波峰个数减一后送入索引位置,这样就可以输出最后一个波峰的横坐标(即所有RR间期的总长度),然后除以波峰的个数就可以的算出一个RR间期的长度。

2.用RR间期的长度除以采样周期就可以的得到一个RR间期所需时间,然后求出平均一分钟内出现了几个RR周期(即平均心率)。

3.求瞬时心率时,建立一个输入变量,选择所需时刻的心率。然后求出这一时刻离哪一个波峰最近,求出这一波峰的位置和上一个波峰的位置进行相减姐可以得出瞬时RR间期的长度,然后同上面一样求出瞬时心率。

4.用输入控件选择心率上限和心率下限,然后将平均心率进行比较,如果在上下限范围之内则显示心率正常,否则显示心率异常。

登陆(用户名和密码)模块

1.首先建立一个while结构,接下来在while结构里面设置一个条件结构的嵌套。

2.外层的条件结构用来判断是否登录,内层的条件结构用来判断用户名和密码是否正确。

3.建立局部变量字符串和访问确认,为后面的用户名口令正误做准备。

4.建立两个字符串输入变量,分别用作用户名和口令的输入,在外层的条件结构中加入两个字符串常量,设置为你自己的用户名和口令,如果输入变量中的用户名和口令与字符串常量设置的用户名口令相匹配,那么内层条件为真,可以继续执行下面的程序;如果不匹配则外层条件结构中的字符串输出变量则会显示“口令错误”。

5.这里的注意事项是,每启动一次程序就必须验证一次用户名和口令,并不是只要打开程序

执行时输入用户名口令登陆就可以了,只要程序停止即使未关闭下次运行就必须再次登陆(但是用户名和口令不必再次输入,只要点登录就可以了)。

4.前面板的设计说明

1.首先因为本次实验前面板要显示的图形比较多,所以首先在前面板上建立几个选项卡。

2.第一个选项卡放登录界面、数据显示和第一通道波形显示及滤波后波形;第二选项卡放入第二通道波形及滤波后波形;第三选项卡放入第二通道波形滤波前的幅频分析显示;第四选项卡放入第二通道波形滤波后的幅频分析显示;最后一个选项卡放入回放的第一通道和第二通道波形。

3.登陆界面:建立两个字符串输入控件,分别用来输入用户名和口令;在建立一个字符串显示控件:当输入用户名和口令之后会显示用户名和口令是否匹配,匹配显示口令正确进入程序;不匹配则显示口令错误,自动消除错误口令,再次输入。加入一个布尔按钮并命名

为登陆,再添加一个布尔指示灯,若用户名口令正确则亮起一下(加了延时程序),若用户名口令错误则不亮。

4.数据显示界面,添加一个布尔指示灯,设置属性使心率正常时绿灯亮,心率有异时红灯亮起。添加是三个输入控件,分别是心率上限、心率下限和瞬时心率的时刻选择;然后添加三个输出空间,分别是平均心率、瞬时心率和心电图总时间

.

5.波形回放:波形回放界面添加一个布尔指示灯,开始运行程序时设置为红色,表示先记录数据,然后在程序执行完毕之后,将指示灯改为绿色,再次执行程序进行读取。

6.由于其他都是波形显示界面,只要添加显示的波形图即可,因此在这里不再过多说明。

5.调试过程

1.实验刚开始的数据处理部分就遇到了很大困难,由于这次的数据文件不同以往,数据并不完整,是以特殊形式存放的,再加上对很多实用的函数不了解所以无从下手。第一次试着用电子表格文件来读取数据,然后用索引数组进行数据处理,但是波形显示出来不正常。然后便调整了读取方式,通过对索引数组

整合函数,右移函数,十进制数据转换函数和结合使用,最后终于成功解决了数据处理部分的难题,而且也学到了很多新函数的使用方法。

2.滤波方面刚开始一头雾水,根本不知道基线漂移和工频干扰是什么东西,但是经过多方面的查找资料和研究信号处理函数中所有滤波器的用法,终于选出了比较合适的滤波器来对波形进行合适处理。

3.波形回放部分算是问题出现比较大的一个,最初因为做过关于波形回放方面的实验,觉得这部分还是比较容易实现的,但是其实有很大的差距。因为二进制文件、文本文件在做回放的时候都出现了很多问题,所以左后我们选择了电子表格文件。但是用电子表格直接存储在回放的时候会出现波形紊乱的问题,所以我们就想到了将x,y分别存放到一维电子表格文件中然后进行x,y图的显示,最后成功了。

6.结果及分析

本次实验完成了心电图数据文件的读取和数据处理,滤波前后的波形显示,滤波前后的频谱分析,基线漂移和工频干扰滤除,波形的记录和回放,用户名和口令的登陆界面设计。 关于瞬时心率的显示问题,我觉得我们在这一方面做得不够好。程序需要手动输入时刻才可以显示该时刻的瞬时心率吧,这样相对来说比较麻烦。刚开始其实使用过延时来实现瞬时心率的动态显示,但是没有成功,目前只能做到手动输入时刻显示心率。

还有滤波方面,虽然成功去除了基线漂移和工频干扰,但是所用的几个滤波器是否会对波形造成不良影响,导致波形失真或丢失必要数据,这个我们无法确保,归根究底还是滤波只是和能力有所欠缺。

关于提高部分的登陆界面设计,可以说是基本完成了要求。但是预想应该是程序执行,跳出登陆界面,用户名口令正确后跳到主界面,但是界面的跳转方面的只是不成熟,无法实现预想的功能。

数据的记录和回放做的还是比较成功的,但是由于记录的时候分为了x1,y1,x2,y2的顺序来分别记录横纵坐标,所以可能使用时顺序会颠倒,导致不能正常回放,目前还没有消除直接存储波形带来的bug,这也是我们今后要提升的部分。

前面板的设计感觉还是不错的,较好实现了界面的友好交互,希望今后可以设计出更加美观使用的界面。

三.实验收获及小结

实验首先当然是巩固了许多基础知识,结合了平时实验掌握的相关内容:数组及各种数组函数,波形图的生成,各种结构的使用,存储和回放数据,滤波,数据文件的读取和数据处理等等。如果没有平时的实验做基础,这次大作业可谓是无从下手。

其实本次大作业也让我们掌握了许多的新函数还有前面板以前没有接触过的控件,比如说右移函数,整合函数,写入电子表格函数等等。包括前面版的布尔按钮,选项卡指示灯等等。所以我们在巩固旧知识的同时也学会了很多新用法。

但我觉得更重要的是我们自主建立了一个大系统,这锻炼了我们的统筹和分块,纵览大局,各个击破,使我们从平时的小程序小版块上升到一个完整的系统。

经过这次实验感受颇深的一点就是,很多东西你以前见过也用过但是并不是透彻的了解了那个函数或者是控件,他和其他函数结合起来可以实现哪种功能,他还有什么别的作用,

这都是需要你在长期设计程序的基础上慢慢去掌握的东西。所以刚开始可能觉得虚拟仪器很简单,但是越学越难,这也就是所谓的“入门容易,成为大牛却很困难”。

希望我们可以在虚拟仪器的学习过程中程序设计思想越来越成熟,能力逐步提高。

四.参考文献

刘旺锁 基于虚拟仪器的扫频仪的设计与实现 海军工程大学 武汉

基于LabVIEW的心电信号采集及分析方法研究

杨乐平 labview高级程序设计 北京清华大学出版社 2003

张爱甲 labview入门与虚拟仪器 北京:电子工业出版社 2004

郭继鸿 心电图学 人民卫生出版社

刘凤军 医用电子仪器原理、构造

李智,赵岗金等 24H动态心电记录及分析系统 北京工业大学学报

余学飞 医学电子仪器与设计 广州:华南理工大学出版社

(附录:背景介绍见后一页)

附录:背景介绍

背景介绍:

一. 心电图 (Electrocardiography,ECG或者EKG)是一种记录心脏产生的生物电流的技术,记录的是电压随时间变化的曲线。临床医生可以利用心电图对患者的心脏状况进行评估,并做出进一步诊断。ECG记录是通过对若干电极(导联)感知到的生物电流进行采样获得的。图1中显示了典型的单周期心电图波形。

虚拟仪器大作业实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)