基于MATLAB的心电信号分析系统的设计与仿真
更新时间:2023-12-20 02:43:01 阅读量: 教育文库 文档下载
信号与线性系统课程设计报告
课题二 基于MATLAB的心电信号分析系统的设计与仿真
摘要:本文是利用MATLAB软件对美国麻省理工学院提供的MIT-BIH数据库的122号心电信
号病例进行分析,利用MATLAB软件及simulink平台对122号心电信号的病例进行读取、插值、高通滤波、低通滤波等的处理。将心电信号中的高频和低频的杂波进行滤除后对插值前后滤波前后的时域波形及频谱进行分析。同时也将滤波器的系统函数进行读取,分析,画出滤波的信号流程图,也分析各个系统及级联后的系统的冲击响应、幅频响应、相位响应和零极点图来判断系统的稳定性,并用MATLAB软件将图形画出,以便于以后的对系统进行分析。
关键词:MATLAB,simulink,心电信号,滤波器 1.课程设计的目的、意义:
本设计课题主要研究数字心电信号的初步分析及滤波器的应用。通过完成本课题的设计,拟主要达到以下几个目的:
(1)了解MATLAB软件的特点和使用方法,熟悉基于Simulink的动态建模和仿真的步骤和过程;
(2)了解人体心电信号的时域特征和频谱特征; (3)进一步了解数字信号的分析方法;
(4)通过应用具体的滤波器进一步加深对滤波器理解;
(5)通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。
2 设计任务及技术指标:
设计一个简单的心电信号分析系统。对输入的原始心电信号,进行一定的数字信号处理,进行频谱分析。采用Matlab语言设计,要求分别采用两种方式进行仿真,即直接采用Matlab语言编程的静态仿真方式、采用Simulink进行动态建模和仿真的方式。根据具体设计要求完成系统的程序编写、调试及功能测试。
2.1必做部分:
2.1.1读取原始心电信号
美国麻省理工学院提供的MIT-BIH数据库是一个权威性的国际心电图检测标准库,近年来应用广泛,为我国的医学工程界所重视。MIT-BIH数据库共有48个病例,每个病例数据长30min,总计约有116000多个心拍,包含有正常心拍和各种异常心拍,内容丰富完整。
为了读取简单方便,采用其txt格式的数据文件作为我们的原心电信号数据。利用Matlab提供的文件textread或textscan函数,读取txt数据文件中的信号,并且还原实际波形。
2.1.2对原始心电信号做线性插值
由于原始心电信号数据不是通过等间隔采样得到的,也就是说原始的心电数据并不是均匀的,而用
~ 1 ~
信号与线性系统课程设计报告
Matlab中提供的数字滤波器处理数据时,要求数据是等间隔的。因此设计的系统首先应对原始心电信号做线性插值处理,使其变为等间隔的数字信号,否则直接处理后会出现偏差,根据心电信号的特点, 把时间分隔成0.001s。添加的幅值点采用一次线性插值。对二维数据进行插值,相连幅值间数据的插值根据时间进行,运算公式如下:
?t?ti?ti?1,
N??t/0.001,?A?Ai?Ai?1,
tj?tj?1?0.001Aj?Aj?1??A/N
,
其中ti是第i个数据时间点,Ai是与之对应的数据,N是两数据之间需要的插值数,?A是需要插值的两点2,3,?arraysize,j?1,2,3,?N?1,数据差,i?1,tj?1?ti?1,Aj?1?Ai?1,
i,j?1时数组tj,Aj依次排列,即得到了插值后等间隔的新数据。
2.1.3根据心电信号的频域特征,设计相应的低通和带通滤波器
一般正常人的心电信号频率在0.7~100HZ范围内,幅度为10?V(胎儿)~5mV(成人)。人体心电信号微弱,信噪比小,因此,在采集心电信号时,易受到仪器、人体活动等因素的影响,而且所采集的心电信号常伴有干扰。采集心电数据时,由于人的说话呼吸,常常会混有约为0.1Hz到0.25Hz频段的干扰,对于这些低频干扰,可以让信号通过一个高频滤波器,低截止频率设置为0.25,来滤除低频信号,对于高频信号干扰,可以让信号再通过一个低频滤波器,其中截止频率设置为99Hz。也可以直接应用带通滤波器设计。
(1)根据以上指标,设计模拟巴特沃斯(切比雪夫)低通、高通或带通滤波器,画出幅频特性(模拟滤波器幅频特性freqs)。
(2)根据心电信号频谱范围设计一个3阶以上模拟滤波器对心电信号进行预滤波; (3)采用直接、级联或并联方式,实现该系统,并画出系统的信号流图; (4)分析系统的时域特性(阶跃响应、冲击响应等),并用Matlab绘出相关波形; (5)用Matlab分析幅频特性,并绘出相关波形; (6)分析系统函数零极点与幅频特性的关系。
2.1.4对处理前后的心电信号分别做频谱分析
利用Matlab软件对处理前后的心电信号编程显示其频谱,分析比较滤波前后的频谱,得出结论。 如果分析频谱,滤波效果不明显,则需变动滤波器参数指标,重新设计滤波器。通过频谱分析,多次试验确定最合适的滤波器。
2.1.5 Simulink仿真
根据前面的设计,进行基于Simulink的动态仿真设计。实现心电信号的分析和处理。给出系统的基于Simulink的动态建模和仿真的系统方框图,同时记录系统的各个输出点的波形和频谱图。
~ 2 ~
信号与线性系统课程设计报告
2.2选作部分:
2.2.1减少分析数据的工作量试验
只截取大约2.5s,三个周期左右,大约800个采样数据进行分析;
2.2.2 50Hz工频陷波器设计
由于电子设备采集到的信号经常会混有电源线干扰。电源线干扰是以50 Hz为中心的窄带噪声,带宽小于1Hz。设计相应的带阻滤波器滤除电源线干扰,并对处理后的信号做频谱分析。
3 设计方案论证:
4 设计内容(程序清单附带图片): 4.1MATLAB程序清单及图片:
4.1.1 提取txt格式心电信号: fid=fopen('122.txt');
C=textscan(fid,'? %f %*f','headerlines',2); fclose(fid); a=C{1}; y=C{2};
k=length(a) for i=1:k
c(i)=strread(a(i,:),'%*s %f','delimiter',':'); end
~ 3 ~
信号与线性系统课程设计报告
x=c'; plot(x,y)
4.1.2 对原始心电信号进行线性插值 t=0:0.001:2.5; F=interp1(x,y,t); F=F'; t=t'; plot(t,F)
~ 4 ~
信号与线性系统课程设计报告
4.1.3 把数据读到txt中
fid = fopen('t.txt','wt'); fprintf(fid,'%g\\n',t); fclose(fid);
fid = fopen('F.txt','wt'); fprintf(fid,'%g\\n',F); fclose(fid);
4.1.4插值前后波形比较 subplot(2,2,1) plot(x,y)
title('初始信号时域波形') axis([0 2.5 -2 1]) subplot(2,2,2) fs=1000; N=length(y) n=1:N; f1=n*fs/N; Y1=fft(y);
plot(f1,abs(Y1))
title('初始信号频谱') axis([0 1000 0 200])
~ 5 ~
信号与线性系统课程设计报告
mag=abs(H); ph=angle(H); ph=ph*180/pi;
subplot(2,2,3),plot(f,mag);grid title('h2幅度响应')
subplot(2,2,4);plot(f,ph);grid title('h2相位响应')
figure(6)
zr=roots(B) %系统一的零点图 pk=roots(A) %系统一的极点图
zplane(B,A); %zplane函数画出系统一的零极点图 figure(7)
zr1=roots(cs1) %系统二的零点图 pk1=roots(ds1) %系统二的极点图
zplane(cs1,ds1); %zplane函数画出系统一的零极点图
4.1.9截取到2.5s对截取的部分进行滤波及频谱分析 t1=0:0.001:2.5; F0=interp1(x,y,t1); F0=F0'; t1=t1'; figure(8)
subplot(3,1,1); plot(1000*t1,F0);
wp=0.7*2*pi;ws=0.25*2*pi;Rp=0.1;As=40;T=1; [N,wc]=buttord(wp,ws,Rp,As,'s') [B,A]=butter(N,wc,'s'); [b,a]=imp_invr(B,A,T)
[db,mag,pha,w]=freqz_m(b,a); y11=filter(b,a,F0);
subplot(3,1,2);plot(y11); title('高通滤波后_{2.5}')
wp1=2*pi*60;ws1=2*pi*99;Rp1=0.1;As1=40;T1=1000; OmegaP1=wp1/T1;OmegaS1=ws1/T1;
[cs1,ds1]=afd_butt(OmegaP1,OmegaS1,Rp1,As1); [b1,a1]=imp_invr(cs1,ds1,T)
[db1,mag1,pha1,w1]=freqz_m(b1,a1); y21=filter(b1,a1,y11); subplot(3,1,3);plot(y21); title('低通滤波后_{2.5}') M=length(F0); m=1:M; fs=1000; f2=m*fs/M;
~ 11 ~
信号与线性系统课程设计报告
F01=fft(F0); Y11=fft(y11); Y21=fft(y21) figure(9)
subplot(3,1,1) plot(f2,abs(F01)) axis([0,1000,0,200])
title('原始信号频谱_{2.5}') subplot(3,1,2) plot(f2,abs(Y11)) axis([0,1000,0,200])
title('高通滤波后信号频谱_{2.5}') subplot(3,1,3) plot(f2,abs(Y21)) axis([0,1000,0,200])
title('低通滤波后信号频谱_{2.5}')
~ 12 ~
信号与线性系统课程设计报告
~ 13 ~
信号与线性系统课程设计报告
~ 14 ~
信号与线性系统课程设计报告
~ 15 ~
信号与线性系统课程设计报告
4.2.Simulink仿真参数设置及波形对比:
4.2.1滤波器参数设置
4.2.2滤波前后的图形进行对比
~ 16 ~
信号与线性系统课程设计报告
原始波形
低通滤波后
5 实验结果与分析:
~ 17 ~
高通滤波后
信号与线性系统课程设计报告
6 总结
~ 18 ~
信号与线性系统课程设计报告
7.实验收获及心得体会
~ 19 ~
信号与线性系统课程设计报告
参考文献:
[1] 北京迪阳正泰科技发展公司.综合通信实验系统——信号与系统指导书(第二版). 2006,6
~ 20 ~
信号与线性系统课程设计报告
[2] 丁玉美.数字信号处理(第三版).西安电子科技大学出版社,2001 [3] 吴大正. 信号与线性系统分析(第四版). 高等教育出版社,2005,8 [4] 谢嘉奎. 电子线路—非线性部分(第五版). 高等教育出版社,2003,2 [5] 陈后金. 信号分析与处理实验. 高等教育出版社,2006,8
~ 21 ~
信号与线性系统课程设计报告
[2] 丁玉美.数字信号处理(第三版).西安电子科技大学出版社,2001 [3] 吴大正. 信号与线性系统分析(第四版). 高等教育出版社,2005,8 [4] 谢嘉奎. 电子线路—非线性部分(第五版). 高等教育出版社,2003,2 [5] 陈后金. 信号分析与处理实验. 高等教育出版社,2006,8
~ 21 ~
正在阅读:
水的故事传说02-20
【史上最全高考生物必考资料】高中生物必修一实验大总结!03-08
心理健康教育教案03-30
最新人教版2018年九年级英语全册 知识点总结归纳12-15
手术无影灯新的设计理念05-18
电气工程预算要点11-13
白砂中心小学2011---2012学年德育工作总结06-07
植物保护专业硕士培养方案03-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 心电
- 仿真
- 信号
- 基于
- 分析
- MATLAB
- 设计
- 系统
- 第18课 中国社会主义经济建设的曲折发展
- 2020年新编偷税行为认定与处理若干疑难问题解析名师精品资料
- 八年级数学上册期末试卷及答案
- 江苏省徐州市第三中学2018届高三年级生物二轮复习导学案专题8 生态的变异,育种与进化,Word版
- 新视野大学英语3第三版Unit 1习题翻译及答案
- 给排水施工方案
- 联合试运转报告封面及目录
- 小学语文修改病句专题训练
- 音视频监控系统产品技术要求汇总
- 农村基层党建难题破解之道
- 清华大学高等土力学复习题
- 司马光砸缸教案
- 2018-2019浅论中医药院校高等教育教学改革-实用word(3页)
- 企业青年思想引导大纲(试用版)
- 2018-自主招生自荐信:哈尔滨工业大学-实用word文档(2页)
- 低压配电系统的接地安全基础知识 docx
- 暨南大学2011医学实验动物学考核大纲
- 2017年上半年新疆安全工程师安全生产法:保证劳动合同制度的顺利实施试题
- 九十年代日本经济 - 图文
- 2007年高中总复习第一轮英语 Senior Book 3 Unit 5-Unit 6