分享
分销 收藏 举报 申诉 / 11
播放页_导航下方通栏广告

类型心电信号处理昆明理工大学.doc

  • 上传人:a199****6536
  • 文档编号:2336623
  • 上传时间:2024-05-28
  • 格式:DOC
  • 页数:11
  • 大小:346.18KB
  • 下载积分:8 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    电信号 处理 昆明 理工大学
    资源描述:
    昆明理工大学信息工程与自动化学院学生实验报告 ( 2016 —20 17 学年第二学期) 课程名称:生物医学信号处理 开课实验室: 设备编号:实验日期:2018年5月30日 年级、专业、班 学号 姓名 成绩 实验项目名称 心电信号处理 指导教师 相艳 教师评语 教师签名: 年月日 一、实验目的 1、对心电信号的记录、处理、心电信号的特点、心电信号的噪声抑制,工频干扰的抑制与基线纠漂有总体了解。 2、能利用MATLAB GUI设计简单的GUI程序。 二、实验原理 1、心电信号的特点: 心电信号具有近场检测的特点,离开人体表微小的距离,就基本上检测不到信号;心电信号通常比较微弱,至多为mV量级,且能量主要在几百赫兹以下;干扰即来自生物体内,如肌电干扰、呼吸干扰等,也来自生物体外,如工频干扰,信号拾取时因不良接地等引入的其他外来干扰等;干扰信号与心电信号本身频带重叠(如工频干扰等)。 2、工频干扰抑制:现在使用较多的方法是使用滤波器对工频干扰进行抑制。 3、基线漂移:基线漂移是因呼吸、肢体活动或运动心电图测试所引起的,故这样使得ECG信号的基准线呈现上下飘逸的情况。 三、实验内容 1、对心电信号处理 主程序: clear;closeall;clc; load 100_ECG_0_20 //加载心电信号 %%%Eliminate Baseline Drift //消除基线漂移 s1=ECG_2; //把心电信号ECG-2赋给s1 s2=smooth(s1,150); //利用移动平均法对s1做平滑处理 ecgsmooth=s1-s2; //消除基线漂移 %%%apply Wavelet Transform //应用小波变换 [C,L]=wavedec(ecgsmooth,8,'db4'); //用db4对ecgsmooth进行8层分解,其中返回的近似和细节都存放在C中,L存放是近似和各阶细节系数对应的长度(阶数为4阶) [d1,d2,d3,d4,d5,d6,d7,d8]=detcoef(C,L,[1,2,3,4,5,6,7,8]); //提取小波的细节系数 %%%Denoise //降噪,消除干扰 [thr,sorh,keepapp]=ddencmp('den','wv',ecgsmooth); //返回小波除噪和压缩后的信号 cleanecg=wdencmp('gbl',C,L,'db4',8,thr,sorh,keepapp);//通过门限阈值处理得到小波系数(执行降噪操作) %%%thresholding1 //取阈值 max_value=max(cleanecg); //最大值(波峰) mean_value=mean(cleanecg); //最小值(波谷) threshold=(max_value-mean_value)/2; //最大值与最小值差的一半作为阈值 %%%R detection algorithm//用R检测算法检测信号 a5=appcoef(C,L,'db4',5);//取分解后的近似部分,也就是第5层低频系数 C1=[a5;d5;d4;d3]; // L1=[length(a5);length(d5);length(d4);length(d3);length(cleanecg)]; R_detect_signal=waverec(C1,L1,'db4'); //用二维小波分解的结果C1,L1重建信号 R_detect_squared=R_detect_signal.^2; //对R检测信号求平方 %%%Beat_Rate_Extraction_Algorithm //计算心率 for a=1:length(R_detect_squared) ifR_detect_squared(a)>threshold R_detect_new(a)=R_detect_squared(a); Else R_detect_new(a)=0; end end mean_R_detect=5*mean(R_detect_new); for q=1:length( R_detect_new)-1 ifR_detect_new(q)<mean_R_detect R_detect_new(q)=0; end end d=0; for b=1:length( R_detect_new)-1 if ( R_detect_new(b)==0) & ( R_detect_new(b+1)~=0) d=d+1; indext(d)= b+1; end end fs_R_deetect=length(R_detect_new)/20; time=indext.*1/fs_R_deetect; ind=0; for z=1:length(time)-1 ind=ind+1; time_diff(ind)=time(z+1)-time(z); end av_time=mean(time_diff); Square_Number=av_time/.2; beat_Rate=300/Square_Number; high=max(R_detect_new); subplot(411);plot(s1);title('Orginal Signal'); //绘制原信号波形图 subplot(412);plot(s1-s2);title('Baseline drift Elimination'); //绘制消除基线漂移波形图 subplot(413);plot(cleanecg);title('Main Signal'); //绘制消除噪声之后的波形图 subplot(414);plot(R_detect_new);title('R detected Signal'); //绘制R检测算法检测信号的波形图 text(length(R_detect_new)/2,high,['Beat Rate = ',num2str(fix(beat_Rate))],'EdgeColor','red'); //显示心率 图1 运行结果 在此信号处理过程中用到的处理算法有小波分解以及小波信号重构,用了Daubechies(dbN)小波,Daubechies小波简写为dbN,N是小波的阶数。此程序中db4,表示小波阶数为4。其流程图下: 图2小波算法流程图 2、 利用matlab GUI平台设计相关GUI程序 ① GUI界面设置 图3 GUI界面设置图 ② GUI程序: functionvarargout = untitled1(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @untitled1_OpeningFcn, ... 'gui_OutputFcn', @untitled1_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); ifnargin&&ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end ifnargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function untitled1_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); functionvarargout = untitled1_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; %%设置下拉菜单 function popupmenu1_Callback(hObject, eventdata, handles)load 100_ECG_0_20 a=get(handles.popupmenu1,'value'); switch a case 1 s1=ECG_1; s2=smooth(s1,150); ecgsmooth=s1-s2; case 2 s1=ECG_2; s2=smooth(s1,150); ecgsmooth=s1-s2; End %%绘制原信号波形图,并将图线设置为红色 function popupmenu1_CreateFcn(hObject, eventdata, handles) ifispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function pushbutton1_Callback(hObject, eventdata, handles) load100_ECG_0_20 a=get( handles.popupmenu1,'value') switch a case 1 s1=ECG_1; case 2 s1=ECG_2; end subplot(411);plot(s1,'--r');title('Orginal Signal'); %%绘制基线漂移的波形图,图线设置为绿色 function pushbutton2_Callback(hObject, eventdata, handles) load100_ECG_0_20 a=get(handles.popupmenu1,'value'); switch a case 1 s1=ECG_1; s2=smooth(s1,150); case 2 s1=ECG_2; s2=smooth(s1,150); end subplot(412);plot(s1-s2,'--g');title('Baseline drift Elimination'); %%绘制进行小波变换降噪之后的主信号波形图 function pushbutton3_Callback(hObject, eventdata, handles) load100_ECG_0_20 a=get( handles.popupmenu1,'value') switch a case 1 s1=ECG_1; s2=smooth(s1,150); ecgsmooth=s1-s2; case 2 s1=ECG_2; s2=smooth(s1,150); ecgsmooth=s1-s2; end [C,L]=wavedec(ecgsmooth,8,'db4'); [d1,d2,d3,d4,d5,d6,d7,d8]=detcoef(C,L,[1,2,3,4,5,6,7,8]); [thr,sorh,keepapp]=ddencmp('den','wv',ecgsmooth); cleanecg=wdencmp('gbl',C,L,'db4',8,thr,sorh,keepapp); subplot(413);plot(cleanecg);title('Main Signal'); %%绘制进行R检测之后的波形图 function pushbutton4_Callback(hObject, eventdata, handles) load100_ECG_0_20 a=get( handles.popupmenu1,'value') switch a case 1 s1=ECG_1; s2=smooth(s1,150); ecgsmooth=s1-s2; case 2 s1=ECG_2; s2=smooth(s1,150); ecgsmooth=s1-s2; end [C,L]=wavedec(ecgsmooth,8,'db4'); [d1,d2,d3,d4,d5,d6,d7,d8]=detcoef(C,L,[1,2,3,4,5,6,7,8]); [thr,sorh,keepapp]=ddencmp('den','wv',ecgsmooth); cleanecg=wdencmp('gbl',C,L,'db4',8,thr,sorh,keepapp); max_value=max(cleanecg); mean_value=mean(cleanecg); threshold=(max_value-mean_value)/2; a5=appcoef(C,L,'db4',5); C1=[a5;d5;d4;d3]; L1=[length(a5);length(d5);length(d4);length(d3);length(cleanecg)]; R_detect_signal=waverec(C1,L1,'db4'); R_detect_squared=R_detect_signal.^2; for a=1:length(R_detect_squared) ifR_detect_squared(a)>threshold R_detect_new(a)=R_detect_squared(a); else R_detect_new(a)=0; end end mean_R_detect=5*mean(R_detect_new); for q=1:length( R_detect_new)-1 ifR_detect_new(q)<mean_R_detect R_detect_new(q)=0; end end d=0; for b=1:length( R_detect_new)-1 if ( R_detect_new(b)==0) & ( R_detect_new(b+1)~=0) d=d+1; indext(d)= b+1; end end fs_R_deetect=length(R_detect_new)/20; time=indext.*1/fs_R_deetect; ind=0; for z=1:length(time)-1 ind=ind+1; time_diff(ind)=time(z+1)-time(z); end av_time=mean(time_diff); Square_Number=av_time/.2; beat_Rate=300/Square_Number; high=max(R_detect_new); subplot(414);plot(R_detect_new);title('R detected Signal'); function pushbutton7_Callback(hObject, eventdata, handles) globalR_detect_new d=0; for b=1:length( R_detect_new)-1 if ( R_detect_new(b)==0) & ( R_detect_new(b+1)~=0) d=d+1; indext(d)= b+1; end end fs_R_deetect=length(R_detect_new)/20; time=indext.*1/fs_R_deetect; ind=0; for z=1:length(time)-1 ind=ind+1; time_diff(ind)=time(z+1)-time(z); end av_time=mean(time_diff); Square_Number=av_time/.2; beat_Rate=300/Square_Number; high=max(R_detect_new); set(handles.edit6,'string',num2str(fix(beat_Rate))); //文本编辑框中显示心率 function edit6_Callback(hObject, eventdata, handles) function edit6_CreateFcn(hObject, eventdata, handles) ifispc&&isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end 图4 GUI界面运行结果图
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:心电信号处理昆明理工大学.doc
    链接地址:https://www.zixin.com.cn/doc/2336623.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork