资源描述:
《信号与线性系统设计课程设计报告心电信号分析系统设计与仿真》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、-信号与线性系统课程设计报告课题二心电信号分析系统的设计与仿真班级:通信C114姓名:胡伟学号:115665成绩:指导教师:日期:2013.1.5摘要:本课题设计了一个简单的心电信号分析系统。直接采用Matlab语言编程的静态仿真方式、采用Simulink进行动态建模和仿真的方式,对输入的原始心电信号,进行线性插值处理,并通过matlab语言编程设计对其进行时域和频域的波形频谱分析,根据具体设计要求完成系统的程序编写、调试及功能测试。得出一定的结论。关键字:matlab、心电信号提取、线性插值、滤波、simulink仿真。
2、本课题的目的本设计课题主要研究数字心电信号的初步分析方法及滤波器的设计与应用。通过完成本课题的任务,拟主要达到以下几个目的:1.了解MATLAB软件的特点和使用方法,熟悉基于Simulink的动态建模和仿真的步骤和过程;2.了解LabVIEW虚拟仪器软件的特点和使用方法,熟悉采用LabVIEW进行信号分析、系统设计及仿真的方法。3.了解人体心电信号的时域特征和频谱特征;4.通过设计具体的滤波器进一步加深对滤波器性能的理解;.---5.掌握数字心电信号的分析方法,学会系统设计与软件仿真方法;6.通过本课题的训练,培养学生运用
3、所学知识分析和解决实际问题的能力。2设计任务及技术指标设计一个简单的心电信号分析系统。其基本功能包括:输入原始心电信号,对其做一定的数字信号处理,进行时域显示、分析及频谱分析。采用Matlab软件(或LabVIEW虚拟仪器软件)设计相关程序。对基于Matlab软件的程序设计,要求分别采用两种方式进行仿真,即直接采用Matlab语言编程的静态系统仿真方式、采用Simulink进行动态建模仿真的方式。根据心电信号的具体特性参数设计系统各功能模块的源程序,进行调试。1.对原始数字心电信号进行读取,由数字信号数据绘制出其时域波形并
4、加以分析。2.对数字信号数据做一次线性插值,使其成为均匀数字信号,以便后面的信号分析。3.根据心电信号的频域特征(自己查阅相关资料),设计相应的滤波器去除噪声。4.绘制进行信号处理前后的频谱,做频谱分析,得出相关结论。5.对系统功能进行综合测试,整理数据,撰写设计报告。3主要设备和软件1.PC机一台。2.MATLAB6.5以上版本软件,一套。4设计内容以及实验结果与分析读取文件的function函数function[t,Xn]=duquexinhao1(w)fid=fopen(w);C=textscan(fid,'%8c%
5、f%*f','headerlines',2);fclose(fid);a=C{2};b=C{1};k=length(b);fori=1:kc(i)=strread(b(i,:),'%*s%f','delimiter',':');endc=c';d=[c,a];t=d(:,1);.---Xn=d(:,2);保存文件1functionbaocun1(t,Xn)fid=fopen('t.txt','wt');fprintf(fid,'%g',t);fclose(fid);fid=fopen('Xn.txt','wt');fp
6、rintf(fid,'%g',Xn);fclose(fid);保存文件2functionbaocun2(t1,Xn1)fid=fopen('t1.txt','wt');fprintf(fid,'%g',t1);fclose(fid);fid=fopen('Xn1.txt','wt');fprintf(fid,'%g',Xn1);fclose(fid);插值文件function[t2,Xn2]=chazhi1(t,Xn)n=0;y=0;t=t.*1000;m=length(t);fori=1:me(i)=roun
7、d(t(i));endfori=1:(length(t)-1)if(e(i+1)-e(i)>=1)N=(e(i+1)-e(i))/1;A=(Xn(i+1)-Xn(i))/N;forj=1:Nz(y+j,1)=e(i)+(j-1)*1;z(y+j,2)=Xn(i)+(j-1)*An=n+1;j=j+1;endy=n;endi=i+1;endz(y+1,2)=Xn(i);z(y+1,1)=t(i);.---t2=z(:,1);t2=t2./1000;Xn2=z(:,2);afd_butt文件function[b,a]=afd_
8、butt(Wp,Ws,Rp,As);ifWp<=0error('Passbandedgemustbelargerthan0')endifWs<=Wperror('StopbandedgemustbelargerthanPassbandedge')endif(Rp<=0)
9、(As<0)error('PBr