毕设正文.docx
- 文档编号:24675555
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:40
- 大小:205.72KB
毕设正文.docx
《毕设正文.docx》由会员分享,可在线阅读,更多相关《毕设正文.docx(40页珍藏版)》请在冰豆网上搜索。
毕设正文
毕业设计(论文)
题目:
基于matlab的心率检测系统
学院:
信息工程学院
专业名称:
电子信息工程
班级学号:
12044040
学生姓名:
钟伟桥
指导教师:
杨素华
二O16年06月
基于matlab的心率检测
学生姓名:
钟伟桥班级:
12041440
指导老师:
杨素华
摘要:
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,theUnitedStatesMathWorkscompanyofficiallylaunchedthecommercialmathematicalsoftwarematlab.thisisahightechnologycomputinglanguageandinteractiveenvironmentforthedevelopmentofalgorithms,datavisualization,dataanalysisandnumericalcalculation.intheinternationalacademic.matlabhasbeenrecognizedasaconvenient,accurateandreliablescientificcomputingstandardsoftware.inR&Ddepartment.matlabisrecognizedasaneffectiveresearchanddevelopmentofthefirstsoftware.now,matlabisalreadypenetratedintoallwalksoflifeinourlives.
Thedetectionofheartratealsousedapowerfulmatlabinthistime.becausematlabcontainsalargenumberoffunctions,wecanusethesefunctionstodealwiththeECGsignaldisplay,filterandRQSwavedetection.thedesignisappliedtotheGUI,thiscanbeveryconvenientandintuitivedisplayweneedthewaveformandmoreefficienttocarryoutaseriesofoperationofthewaveform.thedisplayofECGdatacanbeusedintextreadmatlabfunction.inthefilteristousealargenumberoffilterfunctionssuchasbuttordfunction,Blackmanfunctionandbutterfunctionandsoon.inthiscompleteset,theECGsignalfilteringusingaband-passfilterandHammingwindowfilter,whichcaneffectivelyreducethenoiseinterference.thedynamicthresholdmethodisusedtodetecttheRQSwave.thismethodinpracticalapplicationsuccessrateisveryhigh,andthealgorithmisclearandconcise.forheartratedetection,afterusingthedynamicthresholdmethodtofindtheRwave,youcanusetheprogramtocalculatetheheartrate.
Keyword:
matlab,heartratedetection,RQSwavedetection,filter
SignatureofSupervisor:
目录
1前言
1.1课题的背景及意义3
1.2国内外研究概况及发展趋势3
1.3研究的内容及实验方案4
2心电信号及其特征
2.1心电信号的产生8
2.2心电信号的特点9
2.2.1心电信号频域特点9
2.2.2心电信号时域特点10
3心电信号的预处理
3.1心电信号预处理的意义11
3.2滤波方案的设计与分析13
3.2.1低通配合窗函数滤波14
3.2.2带通配合窗函数滤波14
3.3最终方案的选择16
4心电信号RQS波的复检
4.1RQS波的检测方案与分析19
4.2方案选择与处理21
5心电信号的心率检测
5.1心率计算23
6系统软件设计
6.1GUI结构设计24
6.2模块实现26
7总结27
参考文献28
致谢29
附录30
第一章前言
1.1课题的背景及意义
当前,我国的心脑血管疾病仍呈逐年上升趋势。
它的发病率和死亡率均居各种疾病之首,是人类死亡的主要原因之一。
因此,认识、预防及早期发现这些疾病是十分必要的,而人体内部各个生理系统之间是相互耦合的。
它能间接的反映出人们当前的身体状况,因此人们可以通过对心率波的分析来提前预防疾病。
在以前,几乎全世界上所有民族都用过“摸脉”作为诊断疾病的手段。
心率波所表现出的形态(波形)、强度(波幅)、及节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中很多生理病理的特征,所以对心率波的处理具有很高的医学价值和应用前景。
目前心率信息已经应用于以下几个方面的研究:
(1)中医脉象信息的检测与识别系统;
(2)血压的临床检测实验;(3)心率稳定性的一种简便估计方法;(4)血管功能的一种早期、无创检测方法。
MATLAB(MatrixLaboratory,矩阵实验室)是由美国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:
1.1滤波流程图
(4)QRS复波是代表两个心室之间兴奋传播过程的电位变化。
是由窦房结发生的兴奋波经过传导系统首先到达室间隔的左侧面,以后按一定路线和方向,并由内层向外层依次传播。
随着心室各部位先后去极化形成多个瞬间综合心电向量,在额面的导联轴上的投影,便是心电图肢体导联的QRS复合波。
典型的QRS复合波包括三个相连的波动。
第一个向下的波为Q波,继Q波后一个狭高向上的波为R波,与R波相连接的又一个向下的波为S波。
由于这三个波紧密相连且总时间不超过0.10秒,故合称QRS复合波。
QRS复合波所占时间代表心室肌兴奋传播所需时间,正常人的在0.06~0.10秒之间。
我们使用的是R波检测算法(基于极值的动态自适应阈值法)
我们利用阈值进行QRS波检测时,如果固定阈值,就会造成阈值设置过高导致漏检,从而产生假阴性,如果阈值设置过低会导致多测,又会产生假阳性。
所以本文提出基于待测信号的可变阈值,从而提高检测的精确率,所采用的可变阈值包括幅度阈值和时间间隔阈值等。
基本原理:
基于R波的幅值为最大的特点,根据极值的定义,筛选出所以的极大值点,这些点即可能是R波的点,然后根据心电学原理知识,确定R波的阈值,计算待测的ECG数据最大值并与阈值进行比较,若超过或达到阈值,则初步判断已检测到一个R波,然后根据制定的规则确定R波。
具体设计思路如下图1.2
1.2R波检测流程图
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:
可能存在的误差:
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:
1.3心率计算流程图
第二章心电信号及其特征
2.1心电信号的产生
当心肌细胞没有受到外界刺激时(即静息状态),心肌细胞膜内外两侧的电位差被称为静息电位。
在静息状态时,有大量带有正电荷的阳离子排列在心肌细胞膜外,细胞膜内则带有相同数量带负电荷的阴离子,此时细胞膜外的电位高于膜内电位,电位差约为180mV。
这种以细胞膜为界,膜外呈正电位、膜内为负电位,并且稳定在一种静息电位状态下,我们称之为极化状态。
当心肌细胞在静息状态下受到外界刺激时,他的膜内外会发生电位变化,这样称为动作电位。
在细胞受到刺激时,细胞膜的通透性会发生改变,膜外的阳离子会进入膜内,石膜内的电位高于膜外电位,这个过称称之为除极。
当然,如果发生了去极化,细胞膜电位会恢复到以前的极化状态,这个过称称为复极。
心肌细胞在静息状态下时,膜内、外电荷是不产生交流的,因此,并不会有电流产生,细胞膜外任何两点间电位相等,没有电位差。
如果心肌细胞受外界刺激而发生除极和复极变化,则会产生电位差,而形成电流。
这时把变动的电位差记录成曲线,我们把这种曲线称为心电图。
健康的心电图如下图2.1
图2.1健康人的心电图
2.2心电信号的特点
心电信号是属于强噪声背景下的低频微弱信号,它是由复杂的生命体发出的不稳定的自然信号,由于受到人体诸多因素的影响,因而有着一般信号所没有的特点。
心电信号是十分微弱的,成人的心电信号范围也仅为5mv。
由于人体自身信号弱,加上人体又是一个复杂的整体,因此信号易受噪声的干扰。
正常心电图由一个P波、一个QRS波群和一个T波等组成。
我们可以依照图2.1对心电信号的各个波段进行说明:
P波:
是由心房的跳动所产生,代表左、右心室去极化过程。
前一半主要是由右心房所产生,后一半是由左心房所产生。
人们正常P波的宽度一般不超过0.11s,肢体导联最高幅度不超过2.5mm。
QRS波群:
反映左、右心室的电激动过程,称QRS波群的宽度为QRS时限,代表全部心室肌激动过程所需要的时间,正常人最高不超过0.l0s。
典型的QRS复合波包括三个相连的波动。
第一个向下的波为Q波,继Q波后一个狭高向上的波为R波,与R波相连接的又一个向下的波为S波。
由于这三个波紧密相连且总时间不超过0.10s,因此合称QRS复合波。
S-T段:
从QRS波群的终点到T波起点的一段。
此时心室全部处于去极化状态,
无电位差存在,所以正常人的S-T段是接近基线的,与基线间的距离一般不超过0.05mm。
P-R段:
从P波后半部分起始端至QRS波群起点。
这段等待时间是为了让血液充分流至心房,同样,这一段正常人也是接近基线的。
Q-T间期:
从QRS波群开始到T波终结相隔的时间,它代表心室肌去极化和复极
化的全过程。
正常情况下,Q-T 间期的时间不大于0.04s。
2.2.1心电信号频域特点
心电信号的频率比较低,正常人的心电频率一般在0.5-100HZ之间。
但是心电信号的主要能量集中范围却只在0.5-45HZ之间。
RQS波形是心电信号中最容易识别的部分,他占据了很大部分的能量,他的频谱范围集中于10-20HZ之间。
其中P波和T波占的主要频率范围在0.5-10HZ之间,S-T段的频率集中在0.2-2HZ。
下面是具体的心电信号频谱图如图2.2
2.2心电信号频谱图
由于心电信号有很多干扰,所以除了心电信号自身的频谱外还有工频噪声和各级倍频。
我们用的心电数据是在MIT-BIH数据库中获得的正常人数据,所以存在的主要干扰是基线漂移噪声。
基线漂移噪声频率一般在0.05-2HZ之间,因此,我们在进行心电信号预处理时采用的是带通滤波。
这样可以得到比较纯净的心电信号。
2.2.2心电信号时域特点
由于我们的心跳是一种周期性的运动,所以我们采集的心电图是周期性的。
如图2.1的心率图,显示出来的只是一个周期的心跳。
可以看出一个正常的心率周期是包含P波、
P-R波段、RQS波群、S-T波段、T波等几部分组成。
其实心率图的每个波段都有一定的生理意义,比如,RQS波群可以看出左右心室是否正常。
如果,我们检测的心率图对比正常的心率图有畸变,那么可以看出心脏可能发生了病变。
体表的心电波形时域幅度一般在9uV-4.2mV之间,最具有代表性的是1mV上下。
每个周期的心电图都有突变点即极值点,我们对极值点的研究是十分有必要的。
在后面心率计算中,就是找出每个周期信号中的一个极大值点来计算心率。
这次心率检测研究的主要是RQS波群,RQS波群的持续时间一般在0.06-0.1s之间。
第3章心电信号的预处理
3.1心电信号预处理的意义
人体心电信号微弱,信噪比小,因此,在采集心电信号时,易受到仪器、人体活动等因素的影响,而且所采集的心电信号常伴有干扰。
采集心电数据时,由于人的说话呼吸,常常会混有约为0.1Hz到0.25Hz频段的低频干扰。
还有由电力系统和人体的分布电容引起的工频干扰,其频率包括50Hz(MIT-BIH数据库数据工频因为是美国标准,所以是60Hz)的基波及其各次谐波,其幅值成分在ECG峰一峰值的0—50%范围内变化。
因此,我们如果要对心电信号进行分析必须要进行预处理,这样才能对心电数据作出正确判断。
3.2滤波方案的设计与分析
综合上述分析,我们可以知道要对心电信号进行分析必须经过滤波处理。
而matlab本身包含了很多滤波函数,所以,要想准确分析心电数据就要利用心电信号的特点而谨慎的选择滤波函数。
下面我从心电数据库中选了两组心电信号分析。
如图3.1是正常的心电信号。
图3.1正常的心电图
如图3.2是异常的心电图。
图3.2异常的心电图
对心电信号分析时,应了解心电信号的频谱图才能正确的设计滤波器。
如图3.3是正常心电信号的频谱图。
图3.3正常心电信号频谱图
3.2.1低通配合窗函数滤波
因为窗函数的主要作用是改善滤波器的阻带衰减,所以我们主要研究低通滤波器的作用。
首先,我们必须了解低通滤波器的特性。
如图3.3是Butterworth低通滤波器的幅频特性。
图3.3Butterworth低通滤波器的幅频特性
我用的低通滤波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以上的波段。
但是这样会使原始的心电低频信号削弱,影响对心电信号的分析。
因为正常信号没出现基线漂移,所以用低通滤波器对正常心电信号滤波时并没有太大差别。
但异常心电信号出现了基线漂移,用低通滤波器滤波后如图3.4。
图3.4低通滤波后的异常心电图
从滤波后图形可以看出低通滤波器没有解决基线漂移问题。
3.2.2带通配合窗函数滤波
带通滤波器是指能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器。
一个理想的带通滤波器应该有一个完全平坦的通带,在通带内没有放大或者衰减。
实际上,并不存在理想的带通滤波器。
滤波器并不能够将期望频率范围外的所有频率完全衰减掉,尤其是在所要的通带外还有一个被衰减但是没有被隔离的范围。
这通常称为滤波器的滚降现象,并且使用每十倍频的衰减幅度的dB数来表示。
通常,滤波器的设计尽量保证滚降范围越窄越好,这样滤波器的性能就与设计更加接近。
然而,随着滚降范围越来越小,通带就变得不再平坦,开始出现“波纹”。
这种现象在通带的边缘处尤其明显,这种效应称为吉布斯现象。
如图3.5是设计的带通滤波器的幅频特性图。
图3.5带通滤波器的幅频特性图
在这次的心电信号滤波中写的matlab带通代码如下:
wp=[0.950]/400;
ws=[0.3100]/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);
通带频率范围为0.9-50Hz,阻带频率范围是0.3-100Hz,通带衰减系数是3db,阻带衰减系数是10db。
现在将异常的心电信号通过带通滤波器,如图3.6
图3.6带通滤波器滤波后心电图
与异常信号心电图3.2对比,可以看到带通滤波器解决了基线漂移问题。
这样才能为后面R波检测提供有利条件。
3.3最终方案的选择
综合上述滤波分析,这次的心率检测系统我采用的是第二种方案。
先将心电信号用textread函数进行读取,然后通过编程将原心电信号显示,再通过一个带通滤波
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 正文