毕业设计论文便携式心电图监测软件系统的研制.doc

上传人:sccc 文档编号:4855982 上传时间:2023-05-20 格式:DOC 页数:52 大小:959.52KB
返回 下载 相关 举报
毕业设计论文便携式心电图监测软件系统的研制.doc_第1页
第1页 / 共52页
毕业设计论文便携式心电图监测软件系统的研制.doc_第2页
第2页 / 共52页
毕业设计论文便携式心电图监测软件系统的研制.doc_第3页
第3页 / 共52页
毕业设计论文便携式心电图监测软件系统的研制.doc_第4页
第4页 / 共52页
毕业设计论文便携式心电图监测软件系统的研制.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《毕业设计论文便携式心电图监测软件系统的研制.doc》由会员分享,可在线阅读,更多相关《毕业设计论文便携式心电图监测软件系统的研制.doc(52页珍藏版)》请在三一办公上搜索。

1、毕业设计(论文)题目名称:便携式心电图监测软件系统的研制年 级: 本科 专科学生学号:学生姓名: 指导教师: 学生单位:信息工程学院 技术职称:讲师学生专业:电子信息工程 教师单位:信息工程学院便携式心电图监测软件系统的研制摘要:心电图(ECG)是一种可反映心脏功能变化的检测方法,已在临床医学上获得了普遍认可和较广泛的应用。本文对心电图监测的原理、方法和关键技术等进行了研究,并且利用可视化程序设计语言VC+开发了相应的工作于Windows环境下的软件系统。文中简要介绍了心电图监测的基础,讨论了其中软件系统的主要任务及其解决方案;对该系统的核心部分,即利用面向对象技术与工具(Visual C+

2、6.0)开发的心电图监测软件系统,从功能、构成及设计要点等方面进行了重点介绍。初步的实验结果表明,该软件系统在主要的功能和性能上已基本完成心电图监测系统的要求,为今后将该心电图监测系统投入临床实验和应用打下了较好的基础。关键字:心电图;USB2.0接口程序;VC +;MFCResearch on Software System of Portable Electrocardiogram MonitoringAbstract: Electrocardiogram (ECG) is an approach to measurement of heart functions. In order to

3、 develop a relevant system with advanced functions and high performances, The principles, methods and primary techniques of ECG based diagnosing and/or monitoring of ECG was studied. Furthermore, a relevant software system by using a visual programming tool namely VC+ has been developed, which works

4、 with Windows OS. In this dissertation, biomedical principles of ECG based diagnosing and/or monitoring of the electrocardiogram are introduced firstly. Secondly, the functions and performances that the software system comprised are discussed along with some possible approaches to them. Finally, the

5、 corresponding software system was given in detail, with emphases on its functions, its structure and key of its implementation. The preliminary experiments show that the software system developed is basically practical in terms of its main functions and performances, and that it has some merits in

6、preciseness of measuring, convenience of manipulating and reliability of operating. Thus, our efforts have completed basic system requirements,which comprises the software system and a USB-based data acquisition system, to become qualified for clinical applications.Keyword: Electrocardiogram, USB In

7、terface Procedures, VC +, MFC目 录第1章 绪论11.1 课题背景及意义11.2 国内外研究现状、生产需求状况11.3 本文主要工作及内容安排3第2章 心电图的基本原理42.1 心电图产生的基本原理42.2 心电图检测的基本原理5第3章 便携式心电图监测软件系统方案论证73.1 系统硬件设计方案73.2 系统软件设计方案73.3 系统软件开发方法介绍93.4 主机端USB接口数据接收10第4章 便携式心电图监测软件系统开发124.1 心电图监测软件系统界面程序设计124.1.1 总体界面设计124.1.2 检测方式的实现134.1.3 监测方式的实现214.2 编程

8、要点与设计技巧22第5章 软件系统调试及实验结果265.1 调试情况概述265.2 实验结果及改进建议27结论28致谢29参考文献3047第1章 绪论1.1 课题背景及意义众所周知,随着科学技术的推进、人类社会的发展进步,全球医疗仪器的发展也是日新月异。21世纪的医疗行业主要呈现以下两个特点:第一、未来的医疗世界,主要的代表产品是纳米机械元件、随身佩戴式化学感测器、居家保健应用医疗器材等。第二、信息与医疗技术紧密地结合在一起。而心脏病一直是威胁人类生命的头号杀手,是发病率和死亡率最高的疾病之一。随着生活水平和健康意识的提高,人们需要随时对心脏进行健康监护并且能在比较危急的情况下进行及时的诊治。

9、所以,便携式心电图监测软件系统的研制具有非常重要的意义。心电的自律性、兴奋性和传导性,都以生物电为活动基础。心脏电活动的变化与某些心脏疾病,尤其是各种类型的心率失常的发生有着密切的联系。心电图是记录心脏电活动状态的记录,对了解心脏的节律变化和传导情况有着重要的价值1。本课题的主要目标是研制便携式心电图监测仪,利用可视化程序设计语言VC+,设计工作于Windows环境下的心电图监测软件系统它应具备数据采集、波形及参数显示、报告打印等基本功能。该软件系统与相关的USB接口心电数据采集系统相配合,便可构成高性/价比的便携式心电图监测系统。它将既可用于门诊病人诊断、住院病人监护,又可用于居家动态监护,

10、其可视化界面也将更便于操作。因此,本课题接触生物医学工程学科的发展前沿,具有重要的理论意义和研究价值。1.2 国内外研究现状、生产需求状况心脏之于人体,如同发动机之于汽车。在一个人的一生中,如果他的寿命70岁,心脏平均每分钟跳动70次,那么他的心脏就要跳动近26亿次。一旦心脏停止跳动而且通过抢救不能复跳,那就意味着,一个人的生命结束了。近年来,心脏病患者日益增多,已成为人类生命的头号杀手。心电图是心脏疾病诊断的重要方法。然而在临床中一些心脏病患者在短时间内其心电图并无异常,这就需要长期住在医院中进行监护和治疗,不仅给患者造成了不小的经济压力,也给医院带来了不小的门诊压力。因此,在信息技术、微电

11、子技术和医疗器械技术非常发达的今天,功能更强、体积小巧的便携式心电图仪成为开发者研究的热门。当前,拥有便携式心电图全球领先技术的地区主要是日本、欧美等经济发达地区以及中国台湾地区2。2002年9月,日本光电工业株式会推出一种体积小、重量轻,可以挂在脖子上的便携式心电图计“RAC-3103”。该产品的最大特点是体积仅为之前同类产品的40%左右,重量只有98克。由于便携式心电图计“RAC-3103”体积小、重量很轻,所以可以挂在脖子上后装入衣服口袋中,也可以挂在腰间。由于采取了防雾设计,因此即使放在外衣里边也不会受蒸气的影响。在功能方面,“RAC-3103”具备数据收集、波形、参数显示、报告打印、

12、生命状态识别及异常状态报警等功能,而且“RAC-3103”通过改进电极而增强了抗干扰能力。“RAC-3103”价格为95万日元(约合7917美元)。现在,便携式心电图计“RAC-3103”的销量在3000台以上。2004年12月,日本欧姆龙保健品公司与在日本心电图仪领域占第一位的日本福田电子,成功地联合开发出家用便携式心电图仪“HCG-801”。“HCG-801”有指电极和胸电极2个电极。只要将右手食指放到指电极上,同时把胸电极直接接触到左胸,就能测定出30秒钟的心电图。测定后心电图会显示在液晶面板上,同时还会显示诸如“心率过快,心电图好像有紊乱”等13种信息。显示信息只是心电图的分析结果,并

13、不报告预测的病名等信息。机身内置的内存可记录5次心电图,SD卡可记录300次心电图。2005年1月11月起在日本关东上市,2005年夏天在日本全国上市。“HCG-801”的价格比“RAC-3103”便宜很多,但是还是蛮昂贵的,为36750日元(约合350美元)。中国台湾知名企业微星(MSI),在2007年1月8日登场的美国消费电子展(CES)上,秀出世界上第一台可直接测量心脏健康状况的心电图概念笔记本CES,是全球首款“ECG”(心电图)笔记本。通过内建的电子心电图测量仪以及外接式的感应器(Sensor),使用者可以不限时间地点的纪录自己的心脏健康状况。所记录下来的心电图,可以利用Email将

14、数据寄出,也可利用记忆卡存储记录,将心电图送交给检验所或者是医院诊断。微星心电图概念笔记本如图1-1所示。图1-1 微星全球首台心电图概念笔记本国内由于信息技术落后,精通各方面软件技术的顶尖人才少,研究还处在起步阶段。但是令人可喜的是,现在已经有很多医疗器械公司投入巨资和组织专业人才致力于便携式心电图监测软件的研制。相信不久的将来,中国将成为便携式心电图仪的主要研发生产国家3。1.3 本文主要工作及内容安排根据分析、调研结果,我们将研制高性/价比的便携式心电图监测系统。其特点是:利用嵌入式系统技术、逻辑/模拟可编程器件和表面焊接工艺等,设计功能更强、体积小巧、便于携带的数据采集盒,它可通过US

15、B接口与笔记本电脑或台式机方便地连接;编制测量精度和智能化程度高的软件,其可视化界面也将更便于操作。这样,所研制的系统将既可用于门诊病人诊断、住院病人监护,又可用于居家动态监护,因而将具有较强的竞争力。本文的主要工作是对上述系统的软件部分进行研究和实现,具体包括:1. 开发相应的检测程序界面。2. 利用VC+编程,实现具备数据采集、波形及参数显示、参数测算、报告打印等基本功能的软件系统。在后续章节中,第二章将简要介绍心电图产生的基本原理、检测方法等;第三章将讨论便携式心电图监测软件系统的设计方案及主机端USB接口数据接收;第四章将详细介绍所开发的软件系统的开发方法、处理流程及程序设计等;第五章

16、将总结全文,说明对所开发的软件系统的调试、测试方法及结果,指出存在的问题及可能的解决方法/思路。第2章 心电图的基本原理本章将主要介绍心电图产生的基本原理及检测方法,为后续的便携式心电图监测软件系统设计打下一简要的基础。2.1 心电图产生的基本原理频率范围为0.01250 Hz (标准临床应用ECG带宽为0.05100 Hz), 其体表电压为04mV左右。心脏的基本活动是心电活动及机械活动(收缩和舒张),而每一个心动周期(cardiac cycle)都是先有心电活动,后出现机械活动,所以形成了“兴奋-收缩耦联”。心脏本身的生物电变化通过心脏周围的导电组织和体液,反映到身体表面上来,使体表不同部

17、位在每一心动周期中也都发生有规律的电变化活动。心脏电的自律性、兴奋性和传导性,都以生物电为活动基础。心电活动的变化与某些心脏疾病,尤其是各种类型的心率失常的发生有着密切的联系。心电图是记录心电活动状态的记录,对了解心脏的节律变化和传导情况有着十分重要的价值。正常心脏的激动来源于窦房结发出的激动。窦房结有节律的定时发出激动,沿房间、结间传导束分别传入两侧心房及房室结。窦房结位于右心房上部,激动首先传入右心房,稍后传入左心房,相继引起右心房和左心房的除极作用而产生P波。激动自心房下传自房室结后,传导速度骤然减慢。当激动缓慢通过房室结后,便以较高的速度穿过房室束、束支以及蒲肯野纤维到达心室,几乎同时

18、传入左右心室的心内膜,随后从内膜传至外膜。心室除极过程中产生的除极向量环在各个导联中的QRS波群。心电图反映心脏激动的综合过程,它产生的基础是一个个心肌细胞的动作电位。静息状态下,细胞膜内外的离子浓度差别很大,形成“跨膜电位”;当心肌细胞收到刺激时,在浓度剃度、电场剃度以及细胞膜上钾、钠、钙通道蛋白质的选择通透性及主动转运机制的作用下,通过控制各离子在膜内外的转移,造成细胞膜内外的为电荷分布变化,完成除极、复极的过程,形成细胞动作电位。心电细胞的除极、复极可以看作是一个等效电偶,刺激传播则可以认为是等效电偶的移动。对各个电偶的电矩进行矢量合成,可以得出瞬时综合心电向量。在各周期中,瞬时心电向量

19、作周期变化,其变化轨迹称为心电向量环。临床诊断中广泛应用体表心电图所反映的就是立体心电向量环二次投影的结果。第一次投影将立体向量环在额面极横面上,形成平面向量环。第二次投影将平面向量环按不同角度投影在移动的心电图纸上(25mm/s),便形成心电图形。简单而言,就是按照心脏激动的时间顺序,将此体表电位的变化记录下来,形成一条连续曲线,即为心电图。而且,在正常情况下,每次心动周期在心电图上均可出现相应的一组波形。以上简单介绍了心电图产生的基本原理,这也是心电图能够反映心脏特性变化的理论依据。简单的说,心电图是心房及心室除极和复极过程中电位变化的记录,心电图各导联上的波形是心电图向量环在相应体表前额

20、面上的导联轴的两次投影。但由于人体可以认为是一个容积导体,心电的变化可以在体表获得,因而临床使用的心电图并不是直接从心电向量环获得,而是采用采集记录的方法。临床应用的心电图是通过在体表特定部位设置电极并使用一定的连接方式构成心电导联,由心电图记录各导联心电信号的变化情况,供医生对病人的心脏功能进行评价4。2.2 心电图检测的基本原理心肌极化的生物电位经置于体表的电极、导联线送至心电信号采集系统。心电信号采集系统从原理上可分为输入回路(前置放大)、滤波电路、后极放大电路等。如图2-1:传感器接人体心电信号放大后的心电信号前置放大 后极放大滤波显示放大后波形图2-1心电图检测原理框图检测到的心电信

21、号幅值在0.054 mV,频率在0.0572Hz。而检测中存在的主要干扰信号有电极板与人之间的极化电压、50Hz工频干扰、仪器内部噪声和仪器周围电场磁场电磁场的干扰等。心电信号中50Hz工频干扰可以利用自适应模板法消除,则心电图机模拟部分可以采用如图2所示的硬件结构。心电信号经电极或导联线采集后,先要进行电压放大。电压放大器一般由两级组成,前级采用负反馈差动放大电路。前置放大电路有高的输入阻抗,一般都在10M以上,通常采用射极跟随的缓冲放大器。此外还应有过电压、过电流的保护电路,有右腿驱动电路或屏蔽驱动电路以减少50Hz干扰等措施。滤波电路设计中,由于72Hz以上的干扰信号较强而0.05Hz以

22、下的干扰信号相对较弱,所以在滤波电路中,采取先低通滤波取出 72Hz以下的信号,然后接高通的方式,这样就能滤除极化电压信号得到心电信号。后级放大器主要是进行电流放大,以及对信号进行滤波以获得特定的频率响应特性,这包括阻容耦合电路、闭锁电路、增益选择、截止频率和50Hz陷波等5 6。第3章 便携式心电图监测软件系统方案论证在理解和掌握心电图的有关基本概念、基本原理、参数计算及其检测方法的基础上,根据用户需求并结合调研结果,我们提出了研制高性/价比的便携式心电图监测系统的整体方案并且进行了初步论证。下面,将根据该系统的研制目标,对该系统的整体设计方案以及硬件系统的设计要点加以说明,以便读者较为全面

23、地了解该系统的设计原理和工作过程,从而更便于理解软件系统的研制目标、设计思路和开发方法。3.1 系统硬件设计方案根据上述研制目标,整个系统被设计为由基于USB2.0接口硬件数据采集系统和基于VC+语言编写的软件监测系统组成。其硬件系统主要由心电信号采集电路、生理信号放大电路、MCP3208型A/D采样板、USB接口电路等组成。心电等信号数据经USB接口总线驱动上传到PC主机上,在主机上,通过一定的波形分析与处理获得对心率的诊断。对于心电信号的采集电路如图3-1所示。它主要由波形检测电路和滤波电路等组成。图3-1 心电信号采集电路框图系统中的USB2.0接口电路具有总线供电(+5V)特性,可以与

24、笔记本电脑相连以构成移动监护系统, 3.2 系统软件设计方案心电图监测软件系统按功能分主要有数据采集、数据处理与显示、数据后处理三大主要模块。对于数据采集部分一般称为下位机程序,其作用是完成心电信号的实时采集,即控制有关硬件电路,完成心电信号的采集并将其数据通过USB接口上传到PC主机中,而另外两部分又称为上位机程序,其作用是以良好的人机界面,对传输上来的数据进行实时显示及后处理,包括波形显示、波形回放、波形特征点的识别与修正,心率的计算以及诊断结果打印等各项操作。它们统称为心电图监测软件系统该软件系统的界面结构图如图3-2:文件波形回放检测方式 主窗口始启动系统波形采集波形显示波形暂停波形前

25、进波形后退打印打印预览数据保存波形监测波形保存监测方式病案录入始图3-2 树形用户界面结构软件系统启动后,首先进入主窗口,主窗口探出病案录入对话框,在此对话框填写基本信息后,如果系统以前有同样的id,则询问是否覆盖,否则显示启动系统成功。进入主界面后,有检测功能和监测功能可供选择。检测功能包含以下几个基本功能:波形采集、波形显示、波形暂停、波形前进、波形后退、文件波形回放、波形保存。监测功能包括波形监测、波形保存、打印预览、打印等基本功能。在利用该软件系统进行心电图监测功能时具体实现流程图如图3-3:开始病案录入打印监测相应功能检测相应功能检测方式?NY结束启动系统图3-3 软件整体流程图3.

26、3 系统软件开发方法介绍我们选择Microsoft公司出品的面向对象的程序设计语言VisualC+6.0作为开发工具,它是目前为止Windows环境下进行大型软件开发的首选。Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE) 。它由许多组件组成,包括编辑器、编译器、调试器以及程序向导Appwizard类、类向导ClassWizard等开发工具。这些组件通过一个名为Developer Studio的组件集成和谐的开发环境。其特点如下:1. 利用Appwizard可以

27、简单快速地生成一个应用程序框架,而不需程序员加入一句程序代码;2. 利用AppStudio资源编辑器可以使用户界面的创建简单直观,所见即所得;3. 利用ClassWizard可以使消息或命令自动与消息处理函数或控制函数相联系,程序员只需考虑函数核心代码的实现;4. 利用Visual C+的Components Gallery和Controls Gallery可以加入现成的组件和控制。诸如ActiveX控制、闪烁窗口、定制状态条等组件。Visual C+贯穿了面向对象的程序思想,其核心是Microsoft基本类库(Microsoft Foundation Class, MFC)称之为“应用程序框

28、架”。它一方面用类封装了Windows API,另一方面使用称之为“消息映射”的机制把Windows消息和命令传递到窗口、文档、视图以及MFC应用程序中的其它对象。因而MFC成功地将面向对象和事件驱动编程概念联系起来,并得到很好的配合。而且使用MFC编写Windows应用程序简单方便,代码量小9 10 11。3.4 主机端USB接口数据接收本系统中的USB设备主机端实现数据采集的程序流程图如图3-4,其具体过程是首先获取USB设备句柄,其次读取配置描述符,读取设备描述符,然后就是选择USB通信接口,读取管道信息,获取有效通道,进行数据采集。获得USB设备句柄hDevice读取设备描述符读取管道

29、信息读取配置描述符选择一个有效数据管道开始获取一个USB中的数据图3-4 数据采集流程图其中获取USB设备句柄为程序的关键部分,它主要由程序中的DeviceIoControl函数完成,如下为它的关键代码。BOOL WINAPI DeviceIoControl(/需要操作的设备句柄HANDLE hDevice,/所要进行的IO操作DWORD dwIoControlCode, / IO操作的数据输入缓冲区地址LPVOID lpInBuffer,/lpInBuffer指向的缓冲区的大小DWORD nInBufferSize,/IO操作的数据输出缓冲区地址LPVOID lpOutBuffer,/ lp

30、OutBuffer指向的缓冲区的大小 DWORD nOutBufferSize,/向lpOutBuffer中写入数据的长度大小 LPDWORD lpBytesReturned,/操作异步和同步选择参数 LPOVERLAPPED lpOverlapped );它首先需要或得所操作的设备句柄,然后就是进行相应的IO操作,将IO操作的数据输入缓冲区地址,并获得操作异步和同步选择参数。另外一个重要的函数是CreateFile函数,它主要完成文件的创建以及读写等功能,其具体实现代码如下:HANDLE WINAPI CreateFile ( LPCWSTR lpFileName, /指向文件名的指针 DW

31、ORD dwDesiredAccess, /访问模式(写/读) DWORD dwShareMode, /共享模式LPSECURITY_ATTRIBUTES lpSecurityAttributes, /指向安全属性的指针 DWORD dwCreationDisposition, /如何创建 DWORD dwFlagsAndAttributes, /文件属性 HANDLE hTemplateFile /用于复制文件句柄);第4章 便携式心电图监测软件系统开发在完成系统方案论证和软件开发方法的介绍之后,这一章主要介绍心电图监测软件系统的开发。对于心电图监测软件系统的程序设计主要分两部分,一部分是U

32、SB驱动程序的设计,另一部分是USB接口程序的设计。下面将详细介绍它们的实现过程。4.1 心电图监测软件系统界面程序设计4.1.1 总体界面设计对于我们研制的心电图监测软件系统,应该具备检测和监测两种功能。检测部分是采集一段心电波形后,再对这段波形进行参数判断,从而判断病人病情:对于监测部分,主要完成对心电图的长时间监测,如果波形出现异常,应及时产生报警。程序总界面图如图4-1系统总界面图所示。图4-1 系统总界面图在该系统界面中,上面的黑色的文本框为显示波形的区域,中间为按钮栏,用于控制波形的显示,最下一栏为现实当前的软件相关设置以及病人的相关情况。功能栏又分为了检测方式和监测方式。4.1.

33、2 检测方式的实现心电图监测软件系统的诊断部分主要完成对病人心功能基本参数的测算,为有关心脏疾病的临床诊断提供依据。因此,该部分最主要的任务是要准确标识心电图(ECG)中各个特征点的位置,从而计算其心率(HR)等心功能参数。相应地,在系统中具有病人信息设置、波形采集、波形显示、波形暂停、单步波形回放、文件波形回放、波形保存、当前波形回放、特征点识别、特征点手动修改、参数计算、波形监测及结果打印等功能。在使用VC+语言进行编程时,各功能模块的实现方法如下:1. 病历信息设置在准备检测时,首先要将病人的有关信息进行注册并存放在信息文件和病人的数据库中,产生序列号ID以便与数据库中对应的记录关联,I

34、D也是软件中数据库管理和数据分析的主索引,负责查找对应病人的各种文件。在心电图监测软件系统整体框架下,每当打开系统诊断部分的工作界面时,系统会自动弹出病人信息设置告警框,要求输入病人信息。病人信息对话框包括编号(ID)、姓名、性别、年龄、科室等内容,这些信息存放在专门管理病人档案的Microsoft Excel工作表中,如图4-2病人信息设置对话框一旦病人信息设定,在以后的检测步骤中工作界面会自动显示病人信息。图4-2 病人信息设置对话框实现时,首先建立了一个类CMSGDlg ,定义了以下变量:m_ID = _T(0001);/病人idm_Name = _T(飞飞);/病人姓名m_Old =

35、_T(22岁);/病人年龄m_Part = _T(内科);/病人姓名m_Doc = _T(阿飞);/医生姓名m_Gender = _T(男);/病人性别m_Date = _T();日期获取系统时间时,用了Ctime类,代码如下。CTime tm; tm = CTime:GetCurrentTime(); m_Date = tm.Format(%Y.%m.%d);通过以上调用,可以得到系统时间,方便存档以及显示。开始时初始置窗体位于最顶层,通过设置SetWindowPos()函数参数实现,获取文件主路径通过调用GetModuleFileName()实现,然后设置EXCEL文件路径为sPath +

36、 MSG.xls,然后向向EXCEL写入数据,如果之前有病人标号的,在EXCEL对应行加入,当点击设置时询问是否覆盖,当确定时,最后覆盖以前的数据。图形如图4-3所示。图4-3 是否覆盖数据最后数据完全写入成功以后显示系统启动成功2. 数据采集数据采集模块主要完成心电信号的数据“采集”(即通过USB接口接收下位机上传的数据)以及显示。当按下数据采集按钮后,系统首先调用UsbOpenDriver (&hDevice, Devic-eName)函数,打开指定的USB设备;然后调用Recivedata()启动接收数据,接收MCP3208(本系统中的A/ D 采样板)进行模数转换后的数据,同时将接收数

37、据缓存In Buffer中的数据转换到数据缓存m_D ataB uffer中;设置定时器,并调用Dra w Ecg Wave(CDC*pDC)函数绘制波形,利用定时函数OnTime()来实现数据的实时显示。在进行调试时,由于相应的硬件采集系统尚未完成研制,因此无法实时地采集和显示生理信号,而是通过循环读取数据盘文件来模拟数据采集和显示的过程。具体做法是:当选择数据采集线程后,系统首先清空每个数据采集缓存rec_data_buffer、数据缓存m_DataBuffer以及存盘数据缓存save_data_buffer;然后调用数据采集函数,读取数据盘文件并将其中的数据读取到数据采集换存rec_da

38、ta_buffer中;接着将数据采集换存rec_data_buffer中的数据转换到数据缓存m_DataBuffer中,并把rec_data_ buffer 中数据放入save_data_buffer 中;设置定时器,并调用DrawEcgWave(CDC *pDC) 函数绘制波形,利用定时函数OnTime()来实现数据的实时显示。 在系统调用Recivedata()函数接收数据时,以块传输的方式进行接收。每次往数据缓m_DataBuff-er中压入一个数据,其中低8 位与高8 位中的前4 位为数据位,高8 位中的后4 位为通道号。经过BuffertoData函数存入链表中,流程图如图4-4:U

39、SB是否连接开 始启动A/D调用USB驱动程序获取数据读取缓冲区的数据进行处理处理后的数据用于实时波形显示Y结束报错N图4-4 USB数据波形显示流程图当通过循环读取数据盘文件来模拟数据采集和显示的过程时,它实现的代码中只有Recive()函数中获取数据的机制不同而已,其他是相同的。这里获取数据的机制是利用MFC中的CFile类中的成员函数CFile:Read()读取外部文件中的心电数据,流程图如图4-5:文件是否有效开 始读取文件获取数据读取缓冲区的数据进行处理处理后的数据用于实时波形显示Y结束报错N图4-5 文件数据波形显示流程图如果USB设备未连接,则显示如图4-6,实现原理为调用Afx

40、MessageBox(USB设备未连接!)函数,当点击确定按钮后,调用函数CloseHandle (hDevice),关闭句柄。图4-6 USB未连接图具体代码如下:for(int i=0;inBytes;)if(m_DataBuffer.size()= =DATA_LENGTH) /缓存满,弹出一个数据m_DataBuffer.pop_front();m_DataBuffer.push_back(InBufferi); /每次压入一个数据a=InBufferi; /低8 位i+;m_DataBuffer.push_back(InBufferi);b=InBufferi; /高8 位i+;if

41、 (a0) a = 256+a;if (b0) b = 256+b;c=256*b+a; /高位数据左移8位上低位数据为当前数据m_DataBuffer_ecg.push_back(int) c);save_data_buffer_ecg.push_back(int) c); /采集数据放入存盘数据缓存当通过循环读取数据盘文件来模拟数据采集和显示的过程时,将数据采集缓存中的数据转换到数据缓存中的具体实现代码如下,其中m_DataBuffer_ecg 为心电数据的数据缓存。具体代码如下:if(flag)/心电信号转换过程int a = rec_data_bufferi; /源代码段中的高位数据i

42、nt b = rec_data_bufferi-1; /源代码段中的低位数据/第一位被当成了符号判断位,而实际数据不是,因此进行补码变化if (a0) a = 256+a;if (b0) b = 256+b;/高位数据左移8位加上低位数据为当前数据,放到数据缓存中m_DataBuffer_ecg.push_back(a*256 + b);/采集数据放入心电存盘数据缓存save_data_buffer_ecg.push_back(rec_data_bufferi);3. 数据保存数据保存模块的任务主要分为两部分,一是病人信息的保存,二是数据文件的保存。要保存的病历信息包括病历编号(ID)、病人姓

43、名、病人年龄、病人性别、医生姓名、医生科室以及诊断日期;要保存的数据文件包括心电图存盘文件。在编写存盘程序之前,需要先制作一个Microsoft Office Excel工作表,工作表中包括上述几项内容。当选择数据保存时,首先要停止数据采集,波形暂时停止。对于数据文件的保存,首先要获得主程序所在的当前路径,然后将存盘数据缓save_data_buffer中的数据写入到缓存pSaveData 中,通过SaveFile.Write(pSaveDat_a,nLength)命令将存盘数据保存在以当前病人的姓名为头文件的.ecg_file文件中;对于病人信息的保存实际将病历信息对话框中的内容追加到Exc

44、el工作列表中的每一项中,同时将系统诊断时间填写到Excel列表中,如下图4-7所示。图4-7 数据存盘文件首先要获得主程序所在的当前路径,然后将存盘数据缓存指针pSaveData中的数据写通过SaveFile.Write( pSaveData, nLength)命令将存盘数据保存在以当前病人的姓名为头文件的.ecg_file文件中;对于病人信息的保存实际是将病人信息对话框中的内容追加到Excel工作列表中的每一项中,同时将系统诊断时间填写到Excel列表中。4. 波形回放波形回放主要是对已采集的波形进行回放,以便分析每一心电周期的信号特征。在进行波形回放时,首先,系统获取主程序所在路径,利用

45、OpenFileEcg.Read(bufEcg,dLengthEcg)函数(读文件的方式)获取波形数据,同时将数据缓存bufEcg中的数据分别转换到当前数据缓pDataBufferecg中,设置波形回放定时器,并调用波形绘制函数进行波形回放。在波形回放的过程中,可以随时按下波形显示/暂停键,以便观察某一波段的信号特征。当选择波形回放按钮时,只能选择后缀名为.bin格式的文件。如图4-8所示。图4-8 打开文件波形回放其回放效果如图4-9所示:图4-9 文件波形回放5. 波形特征点识别对波形特征点的识别主要是针对回放波形中特征点的识别,所采用的算法即第二章中波形特征点识别算法中的差分算法。即首先将波形中各采样点按波形升降特性将采样点分为上升段、下降段和平段三种,计算各段导数平均值;然后对波形分周期,求每个周期中的波形特征点,对于每个心电周期中的R波一般具有最大的导数平均值,从而可以确定出心电图中的Q点、R点、S点;心电图中T波一般被认为是一个心电周

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号