云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于MATLAB的心电信号分析心电信号分析(自己做的)带程序 带图片

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

  • 62 次阅读
  • 3 次下载
  • 2026/1/10 1:34:39

河北工业大学信息工程学院 信号与线性系统课程设计

基于MATLAB的心电信号分析

摘要:

本课题设计了一个简单的心电信号分析系统。直接采用Matlab语言编程的静态仿真方式、采用Simulink进行动态建模和仿真的方式,对输入的原始心电信号,进行线性插值处理,并通过matlab语言编程设计对其进行时域和频域的波形频谱分析,根据具体设计要求完成系统的程序编写、调试及功能测试。得出一定的结论。

关键字:matlab、心电信号提取、线性插值、滤波、simulink仿真。

一、课题目的及意义

心电信号是人类最早研究并应用于医学临床的生物信号之一,它比其它生物电信号更易于检测,并且具有较直观的规律性,因而心电图分析技术促进了医学的发展。

然而,心电图自动诊断还未广泛应用于临床,从国内外的心电图机检测分析来看,自动分析精度还达不到可以替代医生的水平,仅可以为临床医生提供辅助信息。其主要原因是心电波形的识别不准,并且心电图诊断标准不统一。因此,探索新的方法以提高波形识别的准确率,寻找适合计算机实现又具诊断价值的诊断标准,是改进心电图自动诊断效果,扩大其应用范围的根本途径。如何把心电信号的特征更加精确的提取出来进行自动分析,判断出其异常的类型成了亟待解决的焦点问题。本课题通过matlab语言编程,对原始心电信号进行一定的分析处理。

二、课题任务及要求

1、必做部分

(1)利用Matlab对MIT-BIH数据库提供的数字心电信号进行读取,并还原(2)对原始心电信号做线性插值

(3)对处理前后的心电信号分别做频谱分析

利用Matlab软件对处理前后的心电信号编程显示其频谱,分析比较滤 (4) Simulink仿真

根据前面的设计,进行基于Simulink的动态仿真设计。实现心电信号

实际波形。

波前后的频谱,得出结论。

的分析和处理。 2、选作部分

1

河北工业大学信息工程学院 信号与线性系统课程设计 (1)只截取大约2.5s,三个周期左右,大约800个采样数据进行分析。 (2)60Hz工频陷波器设计

三、设计技术指标

四、设计方案论证

1、必做部分

2、选作部分

2

河北工业大学信息工程学院 信号与线性系统课程设计 五、设计内容及结果分析

1、基于matlab编写的程序如下:

%读取心电信号并转化成数组形式

function [t,Xn]=duquexinhao1(w) fid=fopen(w);

C=textscan(fid,'? %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);

%画初始信号和即插值后信号频谱

3

河北工业大学信息工程学院 信号与线性系统课程设计 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]=kesheditonglvboqi(wp,ws,Rp,As,Xn1) T=0.001; f=1/T;

[N,Wc]=buttord(wp,ws,Rp,As,'s'); [b,a]=butter(N,Wc,'s');

f=(0:length(Xn1)-1)*f/length(Xn1);w=f*2*pi; H=freqs(b,a,w);

%高通滤波器

function [H,f]=keshegaotonglvboqi(wp,ws,Rp,As,Xn1) T=0.001; fs=1/T;

[N,Wc]=buttord(wp,ws,Rp,As,'s'); [b,a]=butter(N,Wc,'high','s');

f=(0:length(Xn1)-1)*fs/length(Xn1);w=f*2*pi; H=freqs(b,a,w);

%带阻滤波器

function [H,f]=keshedaizulvboqi(wp,ws,p,s,Xn1) T=0.001;

4

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

河北工业大学信息工程学院 信号与线性系统课程设计 基于MATLAB的心电信号分析 摘要: 本课题设计了一个简单的心电信号分析系统。直接采用Matlab语言编程的静态仿真方式、采用Simulink进行动态建模和仿真的方式,对输入的原始心电信号,进行线性插值处理,并通过matlab语言编程设计对其进行时域和频域的波形频谱分析,根据具体设计要求完成系统的程序编写、调试及功能测试。得出一定的结论。 关键字:matlab、心电信号提取、线性插值、滤波、simulink仿真。 一、课题目的及意义 心电信号是人类最早研究并应用于医学临床的生物信号之一,它比其它生物电信号更易于检测,并且具有较直观的规律性,因而心电图分析技术促进了医学的发展。 然而,心电图自动诊断还未广泛

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com