基于MATLAB的心电信号分析心电信号分析自己做的带程序带图片.doc

基于MATLAB的心电信号分析心电信号分析自己做的带程序带图片.doc

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MATLAB的心电信号分析 摘要: 本课题设计了一个简单的心电信号分析系统。直接采用Matlab语言编程的静态仿真方式、采用Simulink进行动态建模和仿真的方式,对输入的原始心电信号,进行线性插值处理,并通过matlab语言编程设计对其进行时域和频域的波形频谱分析,根据具体设计要求完成系统的程序编写、调试及功能测试。得出一定的结论。 关键字:matlab、心电信号提取、线性插值、滤波、simulink仿真。 一、课题目的及意义 心电信号是人类最早研究并应用于医学临床的生物信号之一,它比其它生物电信号更易于检测,并且具有较直观的规律性,因而心电图分析技术促进了医学的发展。 然而,心电图自动诊断还未广泛应用于临床,从国内外的心电图机检测分析来看,自动分析精度还达不到可以替代医生的水平,仅可以为临床医生提供辅助信息。其主要原因是心电波形的识别不准,并且心电图诊断标准不统一。因此,探索新的方法以提高波形识别的准确率,寻找适合计算机实现又具诊断价值的诊断标准,是改进心电图自动诊断效果,扩大其应用范围的根本途径。如何把心电信号的特征更加精确的提取出来进行自动分析,判断出其异常的类型成了亟待解决的焦点问题。本课题通过matlab语言编程,对原始心电信号进行一定的分析处理。 二、课题任务及要求 1、必做部分 (1)利用Matlab对MIT-BIH数据库提供的数字心电信号进行读取,并还原实际波形。 (2)对原始心电信号做线性插值 (3)对处理前后的心电信号分别做频谱分析 利用Matlab软件对处理前后的心电信号编程显示其频谱,分析比较滤 波前后的频谱,得出结论。 (4) Simulink仿真 根据前面的设计,进行基于Simulink的动态仿真设计。实现心电信号 的分析和处理。 选作部分 只截取大约2.5s,三个周期左右,大约800个采样数据进行分析。 (2)60Hz工频陷波器设计 三、设计技术指标 四、设计方案论证 1、必做部分 2、选作部分 五、设计内容及结果分析 基于matlab编写的程序如下: %读取心电信号并转化成数组形式 function [t,Xn]=duquexinhao1(w) fid=fopen(w); C=textscan(fid,%8c %f %*f,headerlines,2);%去除前两行 fclose(fid); a=C{2}; b=C{1}; k=length(b); for i=1:k c(i)=strread(b(i,:),%*s %f,delimiter,:); end c=c; d=[c,a]; t=d(:,1); %时间 Xn=d(:,2); %幅度 %线性插值 function [t3,Xn3]=xianxingchazhi(t,Xn) m=max(t); t3=0:0.001:m; t3=t3; Xn3=interp1(t,Xn,t3); %保存插值前的信号 function baocun1(t,Xn) fid = fopen(t.txt,wt); fprintf(fid,%g\n,t); fclose(fid); fid = fopen(Xn.txt,wt); fprintf(fid,%g\n,Xn); fclose(fid); %保存插值后的信号 function baocun2(t1,Xn1) fid = fopen(t1.txt,wt); fprintf(fid,%g\n,t1); fclose(fid); fid = fopen(Xn1.txt,wt); fprintf(fid,%g\n,Xn1); fclose(fid); %画初始信号和即插值后信号频谱 function keshehuatu(t,Xn,t1,Xn1) f=1000; T=1/f; m=1:length(Xn); k1=length(Xn1); m1=1:k1; q=f*m/length(Xn); q1=f*m1/k1; subplot(2,2,1) plot(t,Xn) title(初始信号时域波形) subplot(2,2,2) Y=fft(Xn); plot(q,abs(Y)) title(初始信号频谱) subplot(2,2,3) axis([0,1000,0,1000]) plot(t1,Xn1) title(插值信号时域波形) Y1=fft(Xn1); subplot(2,2,4) axis([0,1000,0,5000]) plot(q1,abs(Y1)) title(插值信号频谱) %低通滤波器 function [H,f]=keshedit

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档