完整版研究报告基于matlab的操作员心电信号QRS波检测及分析.docx

上传人:b****5 文档编号:24725615 上传时间:2023-05-31 格式:DOCX 页数:15 大小:66.95KB
下载 相关 举报
完整版研究报告基于matlab的操作员心电信号QRS波检测及分析.docx_第1页
第1页 / 共15页
完整版研究报告基于matlab的操作员心电信号QRS波检测及分析.docx_第2页
第2页 / 共15页
完整版研究报告基于matlab的操作员心电信号QRS波检测及分析.docx_第3页
第3页 / 共15页
完整版研究报告基于matlab的操作员心电信号QRS波检测及分析.docx_第4页
第4页 / 共15页
完整版研究报告基于matlab的操作员心电信号QRS波检测及分析.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

完整版研究报告基于matlab的操作员心电信号QRS波检测及分析.docx

《完整版研究报告基于matlab的操作员心电信号QRS波检测及分析.docx》由会员分享,可在线阅读,更多相关《完整版研究报告基于matlab的操作员心电信号QRS波检测及分析.docx(15页珍藏版)》请在冰豆网上搜索。

完整版研究报告基于matlab的操作员心电信号QRS波检测及分析.docx

完整版研究报告基于matlab的操作员心电信号QRS波检测及分析

基于matlab的操作员心电信号QRS波检测及分析

1引言

众所周知,疲劳是人的一个自然的生理现象,它的产生与一个人的劳动强度、工作环境、本身的健康和情绪等等有关,是人体的一种自我调节和保护功能。

当疲劳被人们感觉时就意味着此刻需要好好休息一下。

但是随着现在经济的高速发展与生活节奏的加快,许多工作人员因为种种原因,都是顶着疲劳继续工作,这样就使得人体产生的疲劳成为一些事故的根本导火索。

本文要探索的是与人疲劳有关的心电信号,通过对人体心电信号的研究,来找出人的疲劳度量,预防人因为过度疲劳工作而导致事故的发生。

本项目通过实验方法采集了执行过程控制任务的操作员的心电信号,通过确定阈值求极值确立R波,然后通过R波确立其前后最近的最低点分别为QS波信号,从而计算出操作员的心电QRS波等时间间隔,最后分析心电R波时间间隔和操作员主观疲劳程度、焦虑程度、努力程度和客观任务负荷的相关性。

2心电原理

人体内蕴藏着大量丰富的生物电信号,如:

脑电信号、心电信号、眼电信号、肌电信号、皮肤电压反应信号等,这些电信号都包含着大量的信息,它们大多都是在各种因素下由复杂生命体发出的不稳定的、幅值微弱的低频生理信号。

而我们研究的便是其中的心电信号,心信号较之其他生物电信号更容易检测,便于实时监测。

心脏周围的组织和体液都能导电,因此可将人体看成为一个具有长、宽、厚三度空间的容积导体。

心脏好比电源,无数心肌细胞动作电位变化的总和可以传导并反映到体表。

在体表很多点之间存在着电位差,也有很多点彼此之间无电位差是等电的。

心脏在每个心动周期中,由起搏点、心房、心室相继兴奋,伴随着生物电的变化,这些生物电的变化称为心电。

现在的科技已经可以通过采取一些有效设备和技术手段捕获人体可用的电信号,并对其进行信号采集与分析,进而有效破译其包含信息,利用这些大量的生命体征信息来对人的生活、工作、医疗等许多方面进行准确而有效的改善和调整。

心电信号受到许多因素的影响,如:

疲劳、疾病等等。

而我们所要探索的便是与人疲劳有关的心电信号,通过对这类心电信号的研究,来找出人的疲劳与心电之间的关系,防止人因为过度疲劳工作而导致事故的发生。

 

3QRS波的检测方法

3.1以软件为主的方法实现QRS波的检测

以软件为主的方法实现QRS波的检测在有大量数据需要检测的时候就显得方便快捷,极度占优。

用软件来实现,就需要确定各波的阈值,当心律失常或QRS波幅度变小,阈值设置过高,会导致漏检产生假阴性(FN,falSenegative)结果。

由于固定阈值的这些特点,可以以此来判断病人的心脏是否存在疾病以及隐患。

3.2QRS波检测算法

Q波和S波通常是低幅高频波,一般Q波位于S波之前,S波位于R波之后,由于他们是一般向下的波,所以他们的峰值点和极值是对应的。

因次只需要在检测到R波后向左和向右分别搜寻到极值点,对应的就是Q波和S波。

R波的检测利用其为心电信号图形中为最高点的特性,在整个数据中,只需要找出所有的峰值点,将所有峰值点从大到小排序,依据总数据长度以及采样频率来确定取前几位的平均值,确立R波的最大幅度平均值以及最小幅度平均值,确立R波阈值并取大于平均值的最大值为R波,在检测R波的过程中,我们尝试过使用小波变换来平滑数据,但是在寻找到R波并返回到原始数据上的时候,R波会发生偏移,得到的结果并不准确,所以最后在确定R波的过程中,未采用小波变换,而是直接进行逐个判断。

Q、S波的检测在R波检测出来之后就容易了许多,根据QRS波的分布特性,只需从R波前后各推出一个最低点即可。

4眼电数据分析过程及结果

为方便观察,所有例举图形只截取部分

(1)首先导入心电数据,然后将数据赋值给ECG具体实验步骤如下:

functiony=cacu(x);%定义函数,方便之后做相关性分析

z=textRead(x);%读取原始数据为z

ECG=z(:

1);%将原始数据保存进变量ECG

input=ECG(1:

150000);

Rate=ECG(500);%将采样频率Rate设为500

Sig=input;%将所采数据保存进变量Sig

lenSig=length(Sig);%将Sig长度保存为lenSig

lenSig=length(Sig);

Sig(1:

40)=0;%将Sig1前40位置为0

Sig(lenSig-39:

lenSig)=0;%将Sig1后40位置为0

y=Sig;%将Sig赋值给y

Sigtemp=y;%将y赋值给Sigtemp

Siglen=length(y);%将y的长度保存为Siglen

Sigmax=[];%建立空矩阵Sigmax

foRi=1:

Siglen-2%令变量i依次从1加

图1部分心电信号图

(2)根据心电信号特征求R波

foRi=1:

Siglen-2%令变量i依次从1加

if(y(i+1)>=y(i)&y(i+1)>y(i+2))

Sigmax=[Sigmax;abS(Sigtemp(i+1)),i+1];

end;%将y中的所有极点依次填入Sigmax

end;

thRtemp=SoRt(Sigmax);%将Sigmax内元素排序赋值给thRtemp

thRlen=length(Sigmax);%将Sigmax长度保存为thRlen

thR=0;

foRi=(thRlen-899):

thRlen

thR=thR+thRtemp(i);

end;

thRmax=thR/900;%最大幅度平均值(依据输入数据而定)

zeRotemp=SoRt(y);

zeRovalue=0;

foRi=1:

100

zeRovalue=zeRovalue+zeRotemp(i);

end;

zeRovalue=zeRovalue/1000;%最小幅度平均值,对消幅度(依据输入数据而定)

thR=(thRmax-zeRovalue)*0.3;%最大、最小幅度的差值的30%为判别R波的阈值

Rvalue=[];%定位R波

foRi=1:

thRlen

ifSigmax(i,1)>thRmax%寻找大于最大幅度平均值的极点,此处更改为thRmax

Rvalue=[Rvalue;Sigmax(i,2)];

end;

end;

lenRvalue=length(Rvalue);

图2部分心电信号R波图

(3)根据已知R波以及心电信号特征求解Q、S波(此处只例举解Q波的程序,求解S波的程序与其类似):

wtSig2=cwt(Sig,8,'mexh');%对数据进行小波变换平滑处理

Qvalue=[];%设Q波集合

foRi=1:

lenRvalue

foRj=Rvalue(i):

-1:

(Rvalue(i)-30)

ifSig(Rvalue(i))>0

ifwtSig2(j)

tempQvalue=j-9;%确定检测窗的起点

bReak;%正向波,取第一个负极大值

end;

elSe

ifwtSig2(j)>wtSig2(j-1)&wtSig2(j)>wtSig2(j+1)

tempQvalue=j-9;%确定检测窗的起点

bReak;%倒置R波,取第一个正极大值

end;

end;

end;

x1=tempQvalue;

y1=Sig(tempQvalue);

x2=Rvalue(i);

y2=Sig(Rvalue(i));

a0=(y2-y1)/(x2-x1);

b0=-1;

c0=-a0*x1+y1;%求直线公式参数ax+by+c=0

diSt=[];

foRk=tempQvalue:

Rvalue(i)

tempdiSt=(abS(a0*k+b0*Sig(k)+c0))/SQRt(a0^2+b0^2);

diSt=[diSt;tempdiSt];

end;%求点到直线距离

[a,b]=max(diSt);%找到距离最大值,Q波就在附近

tempQvalue=tempQvalue+b-1;

l=(tempQvalue-5):

Rvalue(i);

[c,d]=min(Sig(l));

tempQvalue=tempQvalue-6+d;%在最大值附近修正Q波,得到结果

Qvalue=[Qvalue;tempQvalue];

lenQvalue=length(Qvalue);%取Q波集合长度

end;

图3部分心电信号QRS输出图形

(4)得到所有QRS波之后,我们对数据进行了整理,提取出了各类特征值,并以图像形式输出。

程序如下:

foRi=1:

(lenRvalue-1)

tR(i)=(Rvalue(i+1)-Rvalue(i))/500;

end;%计算R波时间间隔

tQ=[];

foRi=1:

(lenQvalue-1)

tQ(i)=(Qvalue(i+1)-Qvalue(i))/500;

end;%计算Q波时间间隔

tS=[];

foRi=1:

(lenSvalue-1)

tS(i)=(Svalue(i+1)-Svalue(i))/500;

end;%计算S波时间间隔

tQR=[];

foRi=1:

lenRvalue

tQR(i)=(Rvalue(i)-Qvalue(i))/500;

end;%计算同次QR波时间间隔

tRS=[];

foRi=1:

lenSvalue

tRS(i)=(Svalue(i)-Rvalue(i))/500;

end;%计算同次RS波时间间隔

tQS=[];

foRi=1:

lenSvalue

tQS(i)=(Svalue(i)-Qvalue(i))/500;

end;%计算同次QS波时间间隔

%R指标计算

avetR=0;%定义RR时间间隔平均值%定义RR间隔标准差

foRi=1:

lenRvalue-1

avetR=avetR+tR(i);

end;

图4QRS波特征值

(5)在求的QRS波的特征值之后,我们对其进行了进一步的计算得出了相邻的R、Q、S、QS、QR、RS波时间间隔的平均值,方差,标准差及标准差与均值的比值,具体程序如下:

avetR=avetR/i;

SDtR=0;

foRi=1:

lenRvalue-1

SDtR=SDtR+(tR(i)-avetR)^2;

end;

vaRtR=SQRt(SDtR);%定义RR时间间隔方差

SDR=SDtR/avetR;%定义RR时间间隔标准差除以平均值

%Q指标计算

avetQ=0;

foRi=1:

lenQvalue-1

avetQ=avetQ+tQ(i);

end;

avetQ=avetQ/i;

SDtQ=0;

foRi=1:

lenQvalue-1

SDtQ=SDtQ+(tQ(i)-avetQ)^2;

end;

vaRtQ=SQRt(SDtQ);

SDQ=SDtQ/avetR;

%S指标计算

avetS=0;

foRi=1:

lenSvalue-1

avetS=avetS+tS(i);

end;

avetS=avetS/i;

SDtS=0;

foRi=1:

lenSvalue-1

SDtS=SDtS+(tS(i)-avetS)^2;

end;

vaRtS=SQRt(SDtS);

SDS=SDtS/avetS;

%QR指标计算

avetQR=0;

foRi=1:

lenRvalue-1

avetQR=avetQR+tQR(i);

end;

avetQR=avetQR/i;

SDtQR=0;

foRi=1:

lenRvalue-1

SDtQR=SDtQR+(tQR(i)-avetQR)^2;

end;

vaRtQR=SQRt(SDtQR);

SDQR=SDtQR/avetQR;

avetRS=0;%RS指标计算

foRi=1:

lenSvalue

avetRS=avetRS+tRS(i);

end;

avetRS=avetRS/i;

SDtRS=0;

foRi=1:

lenRvalue;

SDtRS=SDtRS+(tRS(i)-avetRS)^2;

end;

vaRtRS=SQRt(SDtRS);

SDRS=SDtRS/avetRS;

%QS指标计算

avetQS=0;

foRi=1:

lenSvalue

avetQS=avetQS+tQS(i);

end;

avetQS=avetQS/i;

SDtQS=0;

foRi=1:

lenSvalue

SDtQS=SDtQS+(tQS(i)-avetQS)^2;

end;

vaRtQS=SQRt(SDtQS);

SDQS=SDtQS/avetQS;

通过8组信号各得到的24组对应的特征值分别与已知任务难度标准[01344310],疲劳程度标准[020304060806030],焦虑程度标准[010101010201010],努力程度标准[020304050504010]进行相关性分析分别得表1如下:

表1特征与任务难度相关性分析结果

特征值

ctR

ctQ

ctS

ctQR

ctRS

ctQS

相关性

-0.8105

-0.8105

-0.8104

0.2913

-0.1163

0.1558

特征值

cSDtR

cSDtQ

cSDtS

cSDtQR

cSDtRS

cSDtQS

相关性

0.4458

0.4464

0.4451

0.4858

0.6410

0.5562

特征值

cvaRR

cvaRQ

cvaRS

cvaRQR

cvaRRS

cvaRQS

相关性

0.4486

0.4496

0.4478

0.4886

0.6284

0.5569

特征值

cSDR

cSDQ

cSDS

cSDQR

cSDRS

cSDQS

相关性

0.4793

0.4797

0.4787

0.4470

0.6490

0.5131

表2特征与疲劳程度相关性分析

特征值

ctR

ctQ

ctS

ctQR

ctRS

ctQS

相关性

-0.7026

-0.7025

-0.7025

0.5456

0.0846

0.3985

特征值

cSDtR

cSDtQ

cSDtS

cSDtQR

cSDtRS

cSDtQS

相关性

0.2545

0.2533

0.2537

0.2537

0.3574

0.0407

特征值

cvaRR

cvaRQ

cvaRS

cvaRQR

cvaRRS

cvaRQS

相关性

0.3559

0.3555

0.3546

0.2509

0.3757

0.0456

特征值

cSDR

cSDQ

cSDS

cSDQR

cSDRS

cSDQS

相关性

0.2766

0.2752

0.2758

0.207

0.3606

0.0046

表3特征与焦虑程度相关性分析

特征值

ctR

ctQ

ctS

ctQR

ctRS

ctQS

相关性

-0.6242

-0.624

-0.6241

0.4640

0.0553

0.3296

特征值

cSDtR

cSDtQ

cSDtS

cSDtQR

cSDtRS

cSDtQS

相关性

0.1501

0.1500

0.1494

0.2741

0.1437

-0.0741

特征值

cvaRR

cvaRQ

cvaRS

cvaRQR

cvaRRS

cvaRQS

相关性

0.2258

0.2264

0.2246

0.2593

0.1616

-0.0718

特征值

cSDR

cSDQ

cSDS

cSDQR

cSDRS

cSDQS

相关性

0.1684

0.1681

0.1677

0.2344

0.1447

-0.098

表4特征与努力程度做相关性分析

特征值

ctR

ctQ

ctS

ctQR

ctRS

ctQS

相关性

-0.8134

-0.8134

-0.8134

0.3809

-0.0548

0.2370

特征值

cSDtR

cSDtQ

cSDtS

cSDtQR

cSDtRS

cSDtQS

相关性

0.3615

0.3609

0.3608

0.4874

0.5069

0.3302

特征值

cvaRR

cvaRQ

cvaRS

cvaRQR

cvaRRS

cvaRQS

相关性

0.4251

0.4251

0.4240

0.4887

0.511

0.3361

特征值

cSDR

cSDQ

cSDS

cSDQR

cSDRS

cSDQS

相关性

0.3914

0.3905

0.3907

0.4424

0.5137

0.2912

(7)分析上表数据可得,所有四组程度标准都与相邻Q、R、S波的时间间隔相关性程度最高,即通过分析操作员当前心电信号的QRS频率可分析出操作员当前的各项数据。

5.总结

在本项目中,我们通过编程实现了对QRS波群的检测及定位,并求出了相邻的R、Q、S、QS、QR、RS波时间间隔的平均值,方差,标准差及标准差与均值的比值,将其分别与任务难度系数、操作员的疲劳程度、焦虑程度、努力程度进行了相关性分析。

相关性分析的结果表明:

任务难度系数、操作员的疲劳程度、焦虑程度、努力程度等都可以从操作员的QRS波的平均时间间隔表现出来。

这个结果可以广泛应用到各个领域,能够帮助掌握操作员的当前工作状态,以保障其工作效率最优化。

6.项目组对项目的自我评价

在落实这个项目的过程中,我们运用了所学的知识,对心电信号进行了分析和处理。

在这个分析问题、处理问题的探索过程中,培养了我们的创新意识,增强了我们的动手实践能力,有助于加强团队合作的精神,我们学到了解决实际问题的思路并掌握了MATLAB软件编程的方法。

同时本项目激发了我们的学习兴趣,提高了我们的实践能力。

我们学到了一个道理,在今后的生活当中,只要用心去做,问题,将不是问题。

参考文献:

[1]董承琅陶寿淇陈灏珠.《实用心脏病学》上海科技出版社1994

[2]周辉《数字信号处理基础及MATLAB实现》中国林业出版社2005

[3]肖伟刘忠《MATLAB程序设计与应用》清华大学出版社2005

[4]姚天任江太辉《数字信号处理第2版》武汉理工大学出版社2000

[5]黄文梅熊佳林杨勇《信号分析与处理——MATALB语言及应用》

国防科技大学出版社,2000

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

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1