毕业设计论文基于matlab的心率检测系统管理资料.docx
- 文档编号:23128702
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:40
- 大小:227.81KB
毕业设计论文基于matlab的心率检测系统管理资料.docx
《毕业设计论文基于matlab的心率检测系统管理资料.docx》由会员分享,可在线阅读,更多相关《毕业设计论文基于matlab的心率检测系统管理资料.docx(40页珍藏版)》请在冰豆网上搜索。
毕业设计论文基于matlab的心率检测系统管理资料
毕业设计(论文)
题目:
基于matlab的心率检测系统
学院:
信息工程学院
专业名称:
电子信息工程
班级学号:
学生姓名:
指导教师:
二O16年06月
基于matlab的心率检测
摘要:
1984年,美国MathWorks公司正式推出了商业数学软件matlab。
这是一款用于算法的研发、数据的可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
在国际学术中,matlab已经公认为方便、准确、可靠的科学计算标准软件。
在研发部门,matlab更被认作高效研究、开发的首要软件。
如今,matlab更是已经渗透到我们生活的各行各业。
这次对心率的检测也用到了强大的matlab。
由于matlab包含了众多的函数,我们可以利用这些函数来处理心电信号的显示、滤波及RQS波的检测等。
本次设计中运用到了GUI,这样可以很方便直观的显示我们需要的波形及更快捷的对波形进行一系列的操作。
对心电数据的显示可以用matlab中的textread函数。
在滤波中更是可以用到众多的滤波函数如buttord函数、butter函数及blackman函数等。
在这次毕设中,对心电信号的滤波采用的是带通滤波器加上hamming窗滤波器,这样可以有效的减少噪声的干扰。
对RQS波的检测采用的是动态阈值法。
这种方法在实际运用中成功率很高,并且算法思路清晰简明。
对于心率的检测,在用动态阈值法找到R波后,就可以同过编程来计算心率。
关键词:
matlab、心率检测、RQS波检测、滤波
指导老师签名:
Heartratedetectionbasedonmatlab
Studentname:
ZhongWeiQiaoClass:
12041440
Supervisor:
YangSuHua
Abstract:
In1984,theUnitedStatesMathWorkscompanyofficiallylaunchedthecommercialmathematicalsoftwareisahightechnologycomputinglanguageandinteractiveenvironmentforthedevelopmentofalgorithms,datavisualization,dataanalysisandnumericaltheinternationalhasbeenrecognizedasaconvenient,accurateandreliablescientificcomputingstandardR&Disrecognizedasaneffectiveresearchanddevelopmentofthefirst,matlabisalreadypenetratedintoallwalksoflifeinourlives.
Thedetectionofheartratealsousedapowerfulmatlabinthismatlabcontainsalargenumberoffunctions,wecanusethesefunctionstodealwiththeECGsignaldisplay,filterandRQSwavedesignisappliedtotheGUI,thiscanbeveryconvenientandintuitivedisplayweneedthewaveformandmoreefficienttocarryoutaseriesofoperationofthedisplayofECGdatacanbeusedintextreadmatlabthefilteristousealargenumberoffilterfunctionssuchasbuttordfunction,Blackmanfunctionandbutterfunctionandsothiscompleteset,theECGsignalfilteringusingaband-passfilterandHammingwindowfilter,whichcaneffectivelyreducethenoisedynamicthresholdmethodisusedtodetecttheRQSmethodinpracticalapplicationsuccessrateisveryhigh,andthealgorithmisclearandheartratedetection,afterusingthedynamicthresholdmethodtofindtheRwave,youcanusetheprogramtocalculatetheheartrate.
Keyword:
matlab,heartratedetection,RQSwavedetection,filter
SignatureofSupervisor:
1前言
课题的背景及意义3
国内外研究概况及发展趋势3
研究的内容及实验方案4
2心电信号及其特征
心电信号的产生8
心电信号的特点9
心电信号频域特点9
心电信号时域特点10
3心电信号的预处理
心电信号预处理的意义11
滤波方案的设计与分析13
低通配合窗函数滤波14
带通配合窗函数滤波14
最终方案的选择16
4心电信号RQS波的复检
RQS波的检测方案与分析19
方案选择与处理21
5心电信号的心率检测
心率计算23
6系统软件设计
GUI结构设计24
模块实现26
7总结27
参考文献28
致谢29
附录30
第一章前言
当前,我国的心脑血管疾病仍呈逐年上升趋势。
它的发病率和死亡率均居各种疾病之首,是人类死亡的主要原因之一。
因此,认识、预防及早期发现这些疾病是十分必要的,而人体内部各个生理系统之间是相互耦合的。
它能间接的反映出人们当前的身体状况,因此人们可以通过对心率波的分析来提前预防疾病。
在以前,几乎全世界上所有民族都用过“摸脉”作为诊断疾病的手段。
心率波所表现出的形态(波形)、强度(波幅)、及节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中很多生理病理的特征,所以对心率波的处理具有很高的医学价值和应用前景。
目前心率信息已经应用于以下几个方面的研究:
(1)中医脉象信息的检测与识别系统;
(2)血压的临床检测实验;(3)心率稳定性的一种简便估计方法;(4)血管功能的一种早期、无创检测方法。
MATLAB(MatrixLaboratory,矩阵实验室)是由美国MathWorks公司开发的一种功能强、效率高、简单易学的可视化软件,其覆盖面包括控制、金融、图像处理、生物学等几乎所有的行业及科学领域。
除了一些经典的算法外,MATLAB还提供了丰富的数据分析及处理功能模块,例如神经网络、小波分析、信号处理、图像处理、模糊控制、系统仿真等,因此MATLAB是一种高效的编程软件。
本文就介绍利用MATLAB软件作为技术平台,从而实现对心率波准确实时的显示,并且实现的方法简单而有效,并且具有一定的实用性。
随着科学技术的发展,心率测量技术也越来越先进,对心率的测量精度也越来越高,国内外先后研制了不同类型的心率测量仪。
目前心率测量仪在多个领域被广泛应用,除了应用于医学领域,如无创心血管功能检测,妊高症检测、中医脉象,脉率检测等等,商业应用也不断拓展,如运动,健身器材中心的心率测试都用到。
心跳(脉搏)测试仪是用来测量一个人心率跳动次数的电子仪器,也是心电图的主要组成部分,因此,在现代医学上具有重要的作用。
当前检测脉搏的仪器种类虽然很多,但是能实现精确测量、精确显示且计时功能准确等多种功能的便携式全数字脉搏测量装置却是很少。
随着人们生活环境及经济条件的改善,以及文化素质的提高,人们的生活方式,保健需求以及疾病控制,治疗措施等发生了明显的变化。
在国外到06年低,就已经开始研究可佩戴的心率计及植入人体式心率计。
而国内的心率计产品起步相对较晚,但随着市场的需求一些公司也逐步开始研究心率计。
到现今,也取得了不小的成果如手环运动表等产品都有了心率计的功能。
但这种单一的心率计并不能有效的预防疾病,因此,在未来的心率自动监测中它的功能及内容会更加详细,自动分析诊断的功能也会更强大。
并且计算心率的算法也会更优化受干扰能力会更强。
所以我坚信在未来心率测量仪的集成度会更高,更便于携带,更会大众化。
数字信号处理的运用将会使干扰更小,测量更加准确,功能更加突出。
1.设计要求
设计一个简单的心电信号分析系统。
对输入的原始心电信号,进行一定的数字信号处理,进行频谱分析。
采用Matlab语言设计。
实现心电信号的基本处理功能。
该系统包括
1、心电信号的读取、显示、保存;
2、心电信号的滤波;
3、心电信号QRS复波检测;
4、心率检测;
(1)为了心电数据的读取简单方便,我采用其txt格式的数据文件作为我们的原心电信号数据。
再利用Matlab提供的文件textread或textscan函数,读取txt数据文件中的信号,并且还原实际波形。
(2)为了对信号做出更准确的分析,在分析处理之前我们要做一些必要的预处理。
由于信号中存在噪声的特点,基线漂移和呼吸等低频干扰在1Hz 以下,而脉搏信号主要在低频范围,所以可以设计让信号先通过一个巴特沃斯带通滤波器,借以滤除基线漂移、呼吸引起的干扰(考虑到不丢失太多的其他信息,通带截止频率设置为Wp=[,50],阻带截止频率设置为Ws=[,140],通带波纹系数Rp=3,阻带波纹系数Rs=10。
再通过一个窗函数滤波。
:
滤波流程图
(4)QRS复波是代表两个心室之间兴奋传播过程的电位变化。
是由窦房结发生的兴奋波经过传导系统首先到达室间隔的左侧面,以后按一定路线和方向,并由内层向外层依次传播。
随着心室各部位先后去极化形成多个瞬间综合心电向量,在额面的导联轴上的投影,便是心电图肢体导联的QRS复合波。
典型的QRS复合波包括三个相连的波动。
第一个向下的波为Q波,继Q波后一个狭高向上的波为R波,与R波相连接的又一个向下的波为S波。
,故合称QRS复合波。
QRS复合波所占时间代表心室肌兴奋传播所需时间,~。
我们使用的是R波检测算法(基于极值的动态自适应阈值法)
我们利用阈值进行QRS波检测时,如果固定阈值,就会造成阈值设置过高导致漏检,从而产生假阴性,如果阈值设置过低会导致多测,又会产生假阳性。
所以本文提出基于待测信号的可变阈值,从而提高检测的精确率,所采用的可变阈值包括幅度阈值和时间间隔阈值等。
基本原理:
基于R波的幅值为最大的特点,根据极值的定义,筛选出所以的极大值点,这些点即可能是R波的点,然后根据心电学原理知识,确定R波的阈值,计算待测的ECG数据最大值并与阈值进行比较,若超过或达到阈值,则初步判断已检测到一个R波,然后根据制定的规则确定R波。
R波检测流程图
Step1:
即对待测ECG的滤波处理,基于第一部分对心电信号的说明,QRS波检测中的信号预处理主要是针对0~38Hz的频率范围,采数据进行滤波处理,得到的待测信号基本不含噪声干扰;
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:
可能存在的误差:
,因此,,则两个极小点中必定存在噪声,利用复检消除此噪声。
峰间隔的166%的时间间隔内,如果没有发现QRS 波群,则应取原阈值的1/2 进行复检,以免漏检。
这里的166%是根据生理的特性选取的经验参数。
波的幅度,如果R 波不在前一个R 波幅度的40%-160%之内,则说明这个波峰是个强干扰,应该删除。
,每隔一定的时间间隔,重新利用最新检测的R 波对阈值进行实时更新,以此消除基线漂移对检测精度的影响
综上,我们采用以下规则检测误检:
,若小于400ms则消去较小值,留下较大值,直至查找全部数据,得到新的R波,刷新rvalue。
,则针对两R波间进行复检,选取其中幅值最大的点作为R波,并标记该R波为病变R波,直至查找全部数据,得到新的R波,刷新rvalue。
(5):
心率计算流程图
第二章心电信号及其特征
心电信号的产生
当心肌细胞没有受到外界刺激时(即静息状态),心肌细胞膜内外两侧的电位差被称为静息电位。
在静息状态时,有大量带有正电荷的阳离子排列在心肌细胞膜外,细胞膜内则带有相同数量带负电荷的阴离子,此时细胞膜外的电位高于膜内电位,电位差约为180mV。
这种以细胞膜为界,膜外呈正电位、膜内为负电位,并且稳定在一种静息电位状态下,我们称之为极化状态。
当心肌细胞在静息状态下受到外界刺激时,他的膜内外会发生电位变化,这样称为动作电位。
在细胞受到刺激时,细胞膜的通透性会发生改变,膜外的阳离子会进入膜内,石膜内的电位高于膜外电位,这个过称称之为除极。
当然,如果发生了去极化,细胞膜电位会恢复到以前的极化状态,这个过称称为复极。
心肌细胞在静息状态下时,膜内、外电荷是不产生交流的,因此,并不会有电流产生,细胞膜外任何两点间电位相等,没有电位差。
如果心肌细胞受外界刺激而发生除极和复极变化,则会产生电位差,而形成电流。
这时把变动的电位差记录成曲线,我们把这种曲线称为心电图。
健康人的心电图
心电信号的特点
心电信号是属于强噪声背景下的低频微弱信号,它是由复杂的生命体发出的不稳定的自然信号,由于受到人体诸多因素的影响,因而有着一般信号所没有的特点。
心电信号是十分微弱的,成人的心电信号范围也仅为5mv。
由于人体自身信号弱,加上人体又是一个复杂的整体,因此信号易受噪声的干扰。
正常心电图由一个P波、一个QRS波群和一个T波等组成。
:
P波:
是由心房的跳动所产生,代表左、右心室去极化过程。
前一半主要是由右心房所产生,后一半是由左心房所产生。
,。
QRS波群:
反映左、右心室的电激动过程,称QRS波群的宽度为QRS时限,代表全部心室肌激动过程所需要的时间,。
典型的QRS复合波包括三个相连的波动。
第一个向下的波为Q波,继Q波后一个狭高向上的波为R波,与R波相连接的又一个向下的波为S波。
,因此合称QRS复合波。
S-T段:
从QRS波群的终点到T波起点的一段。
此时心室全部处于去极化状态,
无电位差存在,所以正常人的S-T段是接近基线的,。
P-R段:
从P波后半部分起始端至QRS波群起点。
这段等待时间是为了让血液充分流至心房,同样,这一段正常人也是接近基线的。
Q-T间期:
从QRS波群开始到T波终结相隔的时间,它代表心室肌去极化和复极
化的全过程。
正常情况下,Q-T 。
心电信号频域特点
心电信号的频率比较低,。
。
RQS波形是心电信号中最容易识别的部分,他占据了很大部分的能量,他的频谱范围集中于10-20HZ之间。
,。
心电信号频谱图
由于心电信号有很多干扰,所以除了心电信号自身的频谱外还有工频噪声和各级倍频。
我们用的心电数据是在MIT-BIH数据库中获得的正常人数据,所以存在的主要干扰是基线漂移噪声。
,因此,我们在进行心电信号预处理时采用的是带通滤波。
这样可以得到比较纯净的心电信号。
心电信号时域特点
由于我们的心跳是一种周期性的运动,所以我们采集的心电图是周期性的。
,显示出来的只是一个周期的心跳。
可以看出一个正常的心率周期是包含P波、
P-R波段、RQS波群、S-T波段、T波等几部分组成。
其实心率图的每个波段都有一定的生理意义,比如,RQS波群可以看出左右心室是否正常。
如果,我们检测的心率图对比正常的心率图有畸变,那么可以看出心脏可能发生了病变。
,最具有代表性的是1mV上下。
每个周期的心电图都有突变点即极值点,我们对极值点的研究是十分有必要的。
在后面心率计算中,就是找出每个周期信号中的一个极大值点来计算心率。
这次心率检测研究的主要是RQS波群,。
第三章心电信号的预处理
心电信号预处理的意义
人体心电信号微弱,信噪比小,因此,在采集心电信号时,易受到仪器、人体活动等因素的影响,而且所采集的心电信号常伴有干扰。
采集心电数据时,由于人的说话呼吸,。
还有由电力系统和人体的分布电容引起的工频干扰,其频率包括50Hz(MIT-BIH数据库数据工频因为是美国标准,所以是60Hz)的基波及其各次谐波,其幅值成分在ECG峰一峰值的0—50%范围内变化。
因此,我们如果要对心电信号进行分析必须要进行预处理,这样才能对心电数据作出正确判断。
滤波方案的设计与分析
综合上述分析,我们可以知道要对心电信号进行分析必须经过滤波处理。
而matlab本身包含了很多滤波函数,所以,要想准确分析心电数据就要利用心电信号的特点而谨慎的选择滤波函数。
下面我从心电数据库中选了两组心电信号分析。
。
正常的心电图
。
异常的心电图
对心电信号分析时,应了解心电信号的频谱图才能正确的设计滤波器。
。
正常心电信号频谱图
低通配合窗函数滤波
因为窗函数的主要作用是改善滤波器的阻带衰减,所以我们主要研究低通滤波器的作用。
首先,我们必须了解低通滤波器的特性。
。
Butterworth低通滤波器的幅频特性
我用的低通滤波matlab代码如下:
wp=2*pi*20/400;
ws=2*pi*25/400;
rp=3;
rs=10;
[N,wc]=buttord(wp,ws,rp,rs,'s');
[Bz,Az]=butter(N,wc);
y1=filter(Bz,Az,b);
通带截止频率为2*pi*20Hz,阻带截止频率约为2*pi*25Hz。
通带最大衰减为3db,阻带最小衰减为10db。
用这种低通滤波器可以滤去幅度上的50Hz以上的波段。
但是这样会使原始的心电低频信号削弱,影响对心电信号的分析。
因为正常信号没出现基线漂移,所以用低通滤波器对正常心电信号滤波时并没有太大差别。
但异常心电信号出现了基线漂移,。
低通滤波后的异常心电图
从滤波后图形可以看出低通滤波器没有解决基线漂移问题。
带通配合窗函数滤波
带通滤波器是指能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器。
一个理想的带通滤波器应该有一个完全平坦的通带,在通带内没有放大或者衰减。
实际上,并不存在理想的带通滤波器。
滤波器并不能够将期望频率范围外的所有频率完全衰减掉,尤其是在所要的通带外还有一个被衰减但是没有被隔离的范围。
这通常称为滤波器的滚降现象,并且使用每十倍频的衰减幅度的dB数来表示。
通常,滤波器的设计尽量保证滚降范围越窄越好,这样滤波器的性能就与设计更加接近。
然而,随着滚降范围越来越小,通带就变得不再平坦,开始出现“波纹”。
这种现象在通带的边缘处尤其明显,这种效应称为吉布斯现象。
。
带通滤波器的幅频特性图
在这次的心电信号滤波中写的matlab带通代码如下:
wp=[50]/400;
ws=[100]/400;
rp=3;
rs=10;
[N,wc]=buttord(wp,ws,rp,rs,'s');
[Bz,Az]=butter(N,wc);
[H,w]=freqz(Bz,Az);
y=filter(Bz,Az,b);
,通带衰减系数是3db,阻带衰减系数是10db。
现在将异常的心电信号通过带通滤波器,
带通滤波器滤波后心电图
,可以看到带通滤波器解决了基线漂移问题。
这样才能为后面R波检测提供有利条件。
最终方案的选择
综合上述滤波分析,这次的心率检测系统我采用的是第二种方案。
先将心电信号用textread函数进行读取,然后通过编程将原心电信号显示,再通过一个带通滤波器及窗函数滤波器。
这样可以有效的去除基线漂移及毛刺的影响。
由于信号中存在噪声的特点,基线漂移和呼吸等低频干扰在1Hz 以下,而脉搏信号主要在低频范围,所以可以设计让信号先通过一个巴特沃斯带通滤波器,借以滤除基线漂移、呼吸引起的干扰,通带截止频率设置为Wp=[,50],阻带截止频率设置为Ws=[,100],通带波纹系数Rp=3,阻带波纹系数Rs=10。
:
滤波流程图
心电滤波窗函数代码如下:
N=50;
wc=;
window=blackman(N);
hn=fir1(N-1,wc,window);
y1=filter(hn,1,y);
N为定义的窗函数的长度,其中wc为对π归一化的数字频率,0≤wc≤1。
这里因为缺省window参数,那么firl函数会默认为hamming窗。
。
图原信号局部心电图
滤波后的局部心电图
对比局部图我们更容易发现滤波后毛刺明显减少,心电图更加平滑。
说明用带通滤波加上hamming窗滤波实现了对心电信号的预处理。
当然,这次设计的心电信号预处理可能并不是最好的选择,也存在一定的缺陷,但对于这次毕设完全可以达到要求。
第四章心电信号RQS波的复检
RQS波的检测方案与分析
要对RQS波进行检测就必须先了解RQS波的特点。
,心电信号中变动最强烈的就是RQS波群。
RQS波群的能量集中在0-35Hz之间,其中RQS波峰主要集中在9-15Hz之间,它的中心频率是12Hz。
其次,。
这对我们判断R波个数是十分重要的。
这就是RQS波和其他波的区别的,对RQS波检测也起到重要作用。
实际运用中常用的检测RQS波的方法有四种,分别为模板匹配法、小波变换法、
差分阈值法、动态自适应阈值法。
接下来我们分别对这四种方法进行解释分析。
模板匹配法:
我们是利用QRS波群、T波等可以近似当作单独的模板。
在各个模板中,他们在相同频率上的能量分布不同。
因此可以通过信号幅值和特定阈值的比较来检测QRS模板。
若两个信号波形形状相互匹配,就称这两个信号相关,相关系数是一个值,他确定多个信号间形状匹配的程度。
在这种QRS检测中,希望检测到的信号模板以数据的形式保存下来,要求出模板与输入信号的相关,需要使得输入信号与模板对准,有两种对准的方法:
1).利用每个信号上的基准点将模板和输入信号对准。
这些基准点是通过其他处理方式得到。
2).考虑一段输入信号和模板间的连续相关,每当一个新的信号数据点移近时,一个最老的数据点同时就从这段中移除(FIFO),然后求出这段信号与模板的相关系数。
你会发现他们的相关系数的在[-1,1]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 matlab 心率 检测 系统管理 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)