




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南昌航空大学学士学位论文 毕业设计(论文)题 目: 基于matlab的心率检测系统 学 院: 信息工程学院专业名称: 电子信息工程班级学号: 学生姓名: 指导教师: 二O16 年 06 月 基于matlab的心率检测摘要: 1984年,美国MathWorks公司正式推出了商业数学软件matlab。这是一款用于算法的研发、数据的可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。在国际学术中,matlab已经公认为方便、准确、可靠的科学计算标准软件。在研发部门,matlab更被认作高效研究、开发的首要软件。如今,matlab更是已经渗透到我们生活的各行各业。 这次对心率的检测也用到了强大的matlab。由于matlab包含了众多的函数,我们可以利用这些函数来处理心电信号的显示、滤波及RQS波的检测等。本次设计中运用到了GUI,这样可以很方便直观的显示我们需要的波形及更快捷的对波形进行一系列的操作。对心电数据的显示可以用matlab中的textread函数。在滤波中更是可以用到众多的滤波函数如buttord函数、butter函数及blackman函数等。在这次毕设中,对心电信号的滤波采用的是带通滤波器加上hamming窗滤波器,这样可以有效的减少噪声的干扰。对RQS波的检测采用的是动态阈值法。这种方法在实际运用中成功率很高,并且算法思路清晰简明。对于心率的检测,在用动态阈值法找到R波后,就可以同过编程来计算心率。 关键词:matlab、心率检测、RQS波检测、滤波 指导老师签名:Heart rate detection based on matlabStudent name : Zhong Wei Qiao Class: 12041440Supervisor: Yang Su HuaAbstract: In 1984, the United States MathWorks company officially launched the commercial mathematical software matlab.this is a high technology computing language and interactive environment for the development of algorithms,data visualization, data analysis and numerical calculation.in the international academic.matlab has been recognized as a convenient, accurate and reliable scientific computing standard software.in R & D department.matlab is recognized as an effective research and development of the first software.now,matlab is already penetrated into all walks of life in our lives. The detection of heart rate also used a powerful matlab in this time.because matlab contains a large number of functions,we can use these functions to deal with the ECG signal display, filter and RQS wave detection.the design is applied to the GUI,this can be very convenient and intuitive display we need the waveform and more efficient to carry out a series of operation of the waveform.the display of ECG data can be used in textread matlab function.in the filter is to use a large number of filter functions such as buttord function, Blackman function and butter function and so on.in this complete set, the ECG signal filtering using a band-pass filter and Hamming window filter, which can effectively reduce the noise interference.the dynamic threshold method is used to detect the RQS wave.this method in practical application success rate is very high, and the algorithm is clear and concise.for heart rate detection, after using the dynamic threshold method to find the R wave, you can use the program to calculate the heart rate. Keyword:matlab,heart rate detection ,RQS wave detection ,filter Signature of Supervisor:目 录1 前言1.1 课题的背景及意义31.2 国内外研究概况及发展趋势31.3 研究的内容及实验方案42 心电信号及其特征2.1 心电信号的产生82.2 心电信号的特点92.2.1 心电信号频域特点92.2.2 心电信号时域特点103 心电信号的预处理3.1 心电信号预处理的意义113.2 滤波方案的设计与分析133.2.1 低通配合窗函数滤波143.2.2 带通配合窗函数滤波14 3.3 最终方案的选择164 心电信号RQS波的复检4.1 RQS波的检测方案与分析194.2 方案选择与处理215 心电信号的心率检测5.1 心率计算236 系统软件设计6.1 GUI结构设计246.2 模块实现267 总结27 参考文献28致 谢29附录 30第一章 前言1.1课题的背景及意义当前,我国的心脑血管疾病仍呈逐年上升趋势。它的发病率和死亡率均居各种疾病之首,是人类死亡的主要原因之一。因此,认识、预防及早期发现这些疾病是十分必要的,而人体内部各个生理系统之间是相互耦合的。它能间接的反映出人们当前的身体状况,因此人们可以通过对心率波的分析来提前预防疾病。在以前,几乎全世界上所有民族都用过“摸脉”作为诊断疾病的手段。心率波所表现出的形态(波形)、强度(波幅)、及节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中很多生理病理的特征,所以对心率波的处理具有很高的医学价值和应用前景。目前心率信息已经应用于以下几个方面的研究:(1)中医脉象信息的检测与识别系统;(2)血压的临床检测实验;(3)心率稳定性的一种简便估计方法;(4)血管功能的一种早期、无创检测方法。MATLAB(Matrix Laboratory,矩阵实验室)是由美国MathWorks公司开发的一种功能强、效率高、简单易学的可视化软件,其覆盖面包括控制、金融、图像处理、生物学等几乎所有的行业及科学领域。除了一些经典的算法外,MATLAB还提供了丰富的数据分析及处理功能模块,例如神经网络、小波分析、信号处理、图像处理、模糊控制、系统仿真等,因此MATLAB是一种高效的编程软件。本文就介绍利用MATLAB软件作为技术平台,从而实现对心率波准确实时的显示,并且实现的方法简单而有效,并且具有一定的实用性。1.2国内外研究概况及发展趋势 随着科学技术的发展,心率测量技术也越来越先进,对心率的测量精度也越来越高,国内外先后研制了不同类型的心率测量仪。目前心率测量仪在多个领域被广泛应用,除了应用于医学领域,如无创心血管功能检测,妊高症检测、中医脉象,脉率检测等等,商业应用也不断拓展,如运动,健身器材中心的心率测试都用到。心跳(脉搏)测试仪是用来测量一个人心率跳动次数的电子仪器,也是心电图的主要组成部分,因此,在现代医学上具有重要的作用。当前检测脉搏的仪器种类虽然很多,但是能实现精确测量、精确显示且计时功能准确等多种功能的便携式全数字脉搏测量装置却是很少。随着人们生活环境及经济条件的改善,以及文化素质的提高,人们的生活方式,保健需求以及疾病控制,治疗措施等发生了明显的变化。在国外到06年低,就已经开始研究可佩戴的心率计及植入人体式心率计。而国内的心率计产品起步相对较晚,但随着市场的需求一些公司也逐步开始研究心率计。到现今,也取得了不小的成果如手环运动表等产品都有了心率计的功能。但这种单一的心率计并不能有效的预防疾病,因此,在未来的心率自动监测中它的功能及内容会更加详细,自动分析诊断的功能也会更强大。并且计算心率的算法也会更优化受干扰能力会更强。所以我坚信在未来心率测量仪的集成度会更高,更便于携带,更会大众化。数字信号处理的运用将会使干扰更小,测量更加准确,功能更加突出。1.3研究内容及实验方案1设计要求 设计一个简单的心电信号分析系统。对输入的原始心电信号,进行一定的数字信号处理,进行频谱分析。采用Matlab语言设计。实现心电信号的基本处理功能。该系统包括1、心电信号的读取、显示、保存;2、心电信号的滤波;3、心电信号QRS复波检测; 4、心率检测;2.设计方案 (1)为了心电数据的读取简单方便,我采用其txt格式的数据文件作为我们的原心电信号数据。再利用Matlab提供的文件textread或textscan函数,读取txt数据文件中的信号,并且还原实际波形。 (2)为了对信号做出更准确的分析,在分析处理之前我们要做一些必要的预处理。由于信号中存在噪声的特点,基线漂移和呼吸等低频干扰在1Hz以下,而脉搏信号主要在低频范围,所以可以设计让信号先通过一个巴特沃斯带通滤波器,借以滤除基线漂移、呼吸引起的干扰(考虑到不丢失太多的其他信息,通带截止频率设置为Wp=0.9,50,阻带截止频率设置为Ws=0.3,140,通带波纹系数Rp=3,阻带波纹系数Rs=10。再通过一个窗函数滤波。流程图如下1.1:用textread命令读取脉搏信号的TXT文件去除基线漂移通过Buttord和butter命令组成的巴特沃斯带通滤波器通过哈明窗函数滤波 滤波信号 1.1 滤波流程图 (4)QRS复波是代表两个心室之间兴奋传播过程的电位变化。是由窦房结发生的兴奋波经过传导系统首先到达室间隔的左侧面,以后按一定路线和方向,并由内层向外层依次传播。随着心室各部位先后去极化形成多个瞬间综合心电向量,在额面的导联轴上的投影,便是心电图肢体导联的QRS复合波。典型的QRS复合波包括三个相连的波动。第一个向下的波为Q波,继Q波后一个狭高向上的波为R波,与R波相连接的又一个向下的波为S波。由于这三个波紧密相连且总时间不超过0.10秒,故合称QRS复合波。QRS复合波所占时间代表心室肌兴奋传播所需时间,正常人的在0.060.10秒之间。 我们使用的是R波检测算法(基于极值的动态自适应阈值法) 我们利用阈值进行QRS波检测时,如果固定阈值,就会造成阈值设置过高导致漏检,从而产生假阴性,如果阈值设置过低会导致多测,又会产生假阳性。所以本文提出基于待测信号的可变阈值,从而提高检测的精确率,所采用的可变阈值包括幅度阈值和时间间隔阈值等。基本原理:基于R波的幅值为最大的特点,根据极值的定义,筛选出所以的极大值点,这些点即可能是R波的点,然后根据心电学原理知识,确定R波的阈值,计算待测的ECG数据最大值并与阈值进行比较,若超过或达到阈值,则初步判断已检测到一个R波,然后根据制定的规则确定R波。具体设计思路如下图1.2信号预处理:小波去噪 检测误检 R波判定 阈值处理 1.2 R波检测流程图Step1:即对待测ECG的滤波处理,基于第一部分对心电信号的说明,QRS波检测中的信号预处理主要是针对038Hz的频率范围,采数据进行滤波处理,得到的待测信号基本不含噪声干扰; Step2:根据QRS波波形,首先利用极值点判断,一次筛选得到可能存在R波的点,记为sigmax:一次筛选 y(i)y(i-1);y(i)y(i+1)成立则可以有R波,否则没有R波。结合心电信号原理,确定阈值: Step3:二次筛选:对于sigmax中数据,若出现大于阈值的数据,则在该数据处和其后50ms的范围内查找,将找到的最大值作为一个R波;接着在此R波后150ms处继续进行二次筛选,直至查找完全部数据,将二次筛选得到的R波记为rvalue。 Step4:可能存在的误差:a.两次心率的时间间隔大于400ms,因此,若两个R波的间隔小于0.4s,则两个极小点中必定存在噪声,利用复检消除此噪声。b.在平均RR峰间隔的166%的时间间隔内,如果没有发现QRS波群,则应取原阈值的1/2进行复检,以免漏检。这里的166%是根据生理的特性选取的经验参数。c.计算找出的R波的幅度,如果R波不在前一个R波幅度的40%-160%之内,则说明这个波峰是个强干扰,应该删除。d.根据采样频率,每隔一定的时间间隔,重新利用最新检测的R波对阈值进行实时更新,以此消除基线漂移对检测精度的影响 综上,我们采用以下规则检测误检:1.判断rvalue中前后两R波间隔是否小于400ms,若小于400ms则消去较小值,留下较大值,直至查找全部数据,得到新的R波,刷新rvalue。2.判断rvalue中前后两波间隔是否大于1.2s,若大于1.2s,则针对两R波间进行复检,选取其中幅值最大的点作为R波,并标记该R波为病变R波,直至查找全部数据,得到新的R波,刷新rvalue。(5)心率计数设计图如图1.3:NYNY开始取整个信号最大幅值PM设置峰值提取阈值G设置计数cnt=0是否到数据最末尾PM-X(i)y(i-1);y(i)y(i+1)成立则可以有R波,否则没有R波。结合心电信号原理,确定阈值: Step3:二次筛选:对于sigmax中数据,若出现大于阈值的数据,则在该数据处和其后50ms的范围内查找,将找到的最大值作为一个R波;接着在此R波后150ms处继续进行二次筛选,直至查找完全部数据,将二次筛选得到的R波记为rvalue。 Step4:可能存在的误差:A).两次心率的时间间隔大于400ms,因此,若两个R波的间隔小于0.4s,则两个极小点中必定存在噪声,利用复检消除此噪声。B).在平均RR峰间隔的166%的时间间隔内,如果没有发现QRS波群,则应取原阈值的1/2进行复检,以免漏检。这里的166%是根据生理的特性选取的经验参数。C).计算找出的R波的幅度,如果R波不在前一个R波幅度的40%-160%之内,则说明这个波峰是个强干扰,应该删除。D).根据采样频率,每隔一定的时间间隔,重新利用最新检测的R波对阈值进行实时更新,以此消除基线漂移对检测精度的影响 综上,我们采用以下规则检测误检:1.判断rvalue中前后两R波间隔是否小于400ms,若小于400ms则消去较小值,留下较大值,直至查找全部数据,得到新的R波,刷新rvalue。2.判断rvalue中前后两波间隔是否大于1.2s,若大于1.2s,则针对两R波间进行复检,选取其中幅值最大的点作为R波,并标记该R波为病变R波,直至查找全部数据,得到新的R波,刷新rvalue。4.2 方案选择与处理综合上述,我选择的是动态自适应阈值法。这种方法不但简便而且易于操作,只要编写相应代码完成。通过实际程序的计算机运行仿真,证明此方法对于各种ECG信号的QRS波群的检测成功率很高,并且具有检测延时小,算法简单易行,在实践中对处理器要求低等优点。下面是一组特殊心电信号的R波检测。如图4.2是未复检前的动态自适应阈值法找到的R波。 图4.2 未复检前的动态自适应阈值法找到的R波 图4.3是加上复检后的动态自适应阈值法找到的R波。 图4.3 复检后的动态自适应阈值法找到的R波可以看到在没有复检前,通过动态自适应阈值法找到的R波有误检的现象。所以很有必要了解RQS波特性,这次复检主要用了两个条件: 1.两个相邻的极大值点不能小于0.4s,否则去掉较小值 2.两个相邻的极大值点不能大于1.2s,否则重新检测这两点间可能的极值第五章 心电信号的心率检测5.1 心率计算由于我们已经对R波进行了确定。心率计数设计图如图5.1:NYNY开始取整个信号最大幅值PM设置峰值提取阈值G设置计数cnt=0是否到数据最末尾PM-X(i)G&X(i)=max(x(i-200:i+200)储存峰值点幅度和位置cnt=cnt+1结束 5.1 心率计算流程图 心率计算公式:v=60/4*1000*(lenr-1)/(rvalue(lenr)-rvalue(1)其中v为一分钟的心跳次数,由于我们的心电数据为每0.004s作为一个采样点。rvalue(lenr)-rvalue(1)为初始峰值记录点减去末尾峰值记录点,即两个峰值之间的采样点数。Lenr-1为两个峰值点之间的周期数。该公式经过简单化简,实际没化简前的公式为 V=60(rvalue(lenr)-rvalue(1)*0.004/(len-1)第6章 系统软件设计 为了比较直观的反映出心电信号图滤波前后的对比,我们用matlab中的GUI简单的做了一个界面。这章主要讲的就是GUI的设计及模块的实现。6.1 GUI结构设计由于这次的心率检测系统包含多个设计要求,所以我们用GUI模块设计。这样不但可以完成各项任务,还能使系统更清晰明了。设计模块结构如图6.1 图6.1 心率检测系统结构图这个系统模块的功能顺序为:先导入心电数据并用软件编程实现心电的显示,为了更清晰的看到原信号的毛刺,我还增加了一个局部放大模块。在数据以心电图的形式显示后,通过滤波处理把原信号的噪声滤掉,这也是这次心率检测的一个关键环节。接着就是本次设计最重要的部分对心电信号的RQS波检测,在这里,我主要就是通过动态阈值法找到所有的R波。找到R波后,对心率的检测也就很容易解决了。如图6.2为简要设计的心率检测系统界面。 图6.2 心率检系统界面图6.3为所有功能实现后的心率检测系统界面。6.2 模块实现 在GUI中添加完控件后,对所添加的控件进行属性修改后保存,matlab会自动生成一个.m文件。之后,我们只要在.m文件找到各个控件的功能函数中添加实现功能的代码。各个控件代码见附录,下面是各控件代码的思路。1. 导入心电数据本次心率检测的心电数据来源于MIT-BIH数据库,是以txt格式来保存的。为了方便研究必须要将心电信号以图像的形式显现,我们用的是textread函数读取,具体见附录代码。2.滤除噪声为了准确的分析心电信号,我们设计了带通滤波器加上hamming窗函数对数据进行滤波处理分析见第三章,详细代码见附录。3.RQS波检测与心率计算 RQS波的检测是关键部分,这里我们用的是动态阈值法找出R波。详细分析见第四章节,代码见附录。 第七章 总结在完成这个毕设的过程中,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识。我们运用了所学的知识,对心电信号进行了分析和处理。在这个分析问题、处理问题的探索过程中,培养了我们的创新意识,增强了我们的动手实践能力,有助于加强团队合作的精神,我们学到了解决实际问题的思路并掌握了MATLAB软件编程的方法。同时本项目激发了我们的学习兴趣,提高了我们的实践能力。在这次毕设的设计过程中,我也意识到了自己的缺点。由于这次毕设是基于matlab环境下才能完成,本来对于曾今选修了matlab的人来说应该比较容易上手。但是,当我准备着手做的时候却发现无从下手,最后不得不重新学了matlab,在这里浪费了很多时间。所以,我们应当认真的对待学习上的事。尽管有时候用不上,但总有在日后派上用场的时候。凡事一定要认真对待,不能只是走个过场。还有就是自己碰到问题就去找同学帮忙。其实这是一个不好的习惯,我们应该先尽自己的能力去解决问题,实在没办法才可以向他人求救,这样可以加深对这个问题的理解。 俗话说的好,人无完人。在日后的生活中我们应该勇于面对自己的缺点,并且要慢慢克服这个缺点不断完善自己。参考文献 1白家莲. 动态心电信号分析系统设计;中南大学;20092张斐. 心电信号的预处理及特征点识别算法的研究;内蒙古大学;20083刘少颖,卢继来,郝丽,等 基于数学形态学和小波分解的QRS波群检测算法清华大学学报自然科学版,20044廖云朋,何继善,张飞小波分析在心电信号处理中的应用山东生物医学工程,20035谢远国,余辉,吕扬生基于多分辨率分析的心电图QRS波检测医疗卫生装备,20036胡广书,朱泽煌心电图的计算机辅助分析上海生物医学工程,19957陈后金. 信号分析与处理实验.高等教育出版社,2006,88Cuiwei Li et al.Detection of ECG Charactetistic Points using Wavelet Transforms.IEEE Trans BME,19959郑阿奇,MATLAB实用教程M.北京:电子工业出版社,200410黄政钦.心音心电采集系统设计与信号处理D.云南大学,2014.0511 罗志昌,张松,杨益民,脉搏波的工程分析与临床应用M.北京:科学出版社,200612 王炳和,罗 建, 相敬林等. 人体脉搏功率谱分析与中医脉诊机理研究J. 西北大学学报,200113 张开滋,郭继鸿,刘海洋. 临床心电信息学M. 长沙. 湖南科技出版社,200214 黄宝晨,朱怡然. 心电图基本知识J. 中国乡村医药杂志,200415 许原. 心电图解读心电图如何解读和诊断J. 中国临床医生,2004致谢在这次毕业设计中,碰到了很多问题。但在杨素华老师的指导下,把碰到的问题一一解决了。我从指导老师杨素华老师身上学到了很多东西。杨素华老师认真负责的工作态度和丰富的理论知识使我受益良多。无论在理论上还是实践上,都给了我很大的帮助,感谢她的耐心辅导。此外,我还要感谢那些在毕业设计过程中所有支持和帮助我的人。对于一个没有什么编程经验的我来说,编写这样一个涉及到从未接触过的有关于心率处理方面的软件,是非常困难的,正是由于他们的帮助我才能顺利的完成毕业设计,我非常感谢你们的支持,在以后我会更加努力,争取做得更好。附录程序:模块连接function varargout = bishe(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, bishe_OpeningFcn, . gui_OutputFcn, bishe_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT % - Executes just before bishe is made visible.function bishe_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes bishe wait for user response (see UIRESUME)% uiwai
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吊车协议过户合同
- 公转私合同协议
- 推广协议居间合同
- 招标项目合同解除协议书
- 大学校庆赞助协议合同
- 雅居乐物业服务协议合同
- 装修合同简易协议
- 厨师雇佣合同协议
- 监控摄像头维修协议合同
- 鱼池合同转让协议
- 临时用地复垦措施施工方案
- 军队文职人员转正述职报告
- 人教版八年级下册英语作业设计案例
- 大学生劳动教育(微课版)全书教案
- Starter Unit2 单词英汉互译 2024-2025学年人教版英语七年级上册
- 公司道德和商业行为准则
- 投资资金合同协议书
- 13G322-1~4钢筋混凝土过梁(2013年合订本)
- YDT 4492-2023工业互联网 时间敏感网络技术要求
- 【年产1000吨富硒沙棘果汁工艺生产设计16000字(论文)】
- 电驱动桥技术及技术路线-2024-06-技术资料
评论
0/150
提交评论