- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用标准文案
精彩文档
实验题目
心电信号数字滤波系统设计
实验时间
2013年12 月16日
实验地点
A1118
实验成绩
实验性质
□验证性 □设计性 □综合性
教师评语:
□出勤率好 □原理正确 □ 方案合理
□实验结果正确 □ 回答问题正确 □ 报告规范
一、实验目的
本实验项目主要研究数字心电信号的初步分析及滤波器的应用。通过完成本实验的设计,主要达到以下几个目的:
1、了解MATLAB软件的特点和使用方法,熟悉基于Simulink的动态建模和仿真的步骤和过程。
2、了解人体心电信号的时域特征和频谱特征。
3、进一步了解数字信号的分析方法。
4、通过应用具体的滤波器进一步加深对滤波器理解。
5、通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。
二、实验原理
本文是利用MATLAB软件对美国麻省理工学院提供的MIT-BIH数据库的122号心电信号病例进行分析,利用MATLAB软件及simulink平台对122号心电信号的病例进行读取、插值、高通滤波、低通滤波等的处理。将心电信号中的高频和低频的杂波进行滤除后对插值前后滤波前后的时域波形及频谱进行分析。同时也将滤波器的系统函数进行读取,分析,画出滤波的信号流程图,也分析各个系统及级联后的系统的幅频响应、相位响应来判断系统的稳定性,并用MATLAB软件将图形画出,以便于以后的对系统进行分析。
三、使用仪器、器材
Matlab软件
四、实验步骤
1.对原始心电信号做线性插值
运算公式如下:
其中 是第i个数据时间点,Ai是与之对应的数据,N是两数据之间需要的插值数, 是需要插值的两点数据差, ,
2.根据心电信号的频域特征,设计相应的低通和带通滤波器
一般正常人的心电信号频率在0.7~100HZ范围内,人体心电信号微弱,信噪比小,因此,在采集心电信号时,易受到仪器、人体活动等因素的影响,而且所采集的心电信号常伴有干扰。采集心电数据时,由于人的说话呼吸,常常会混有约为0.1Hz到0.25Hz频段的干扰,对于这些低频干扰,可以让信号通过一个高频滤波器,低截止频率设置为0.25,来滤除低频信号,对于高频信号干扰,可以让信号再通过一个低频滤波器,其中截止频率设置为99H
3.对处理前后的心电信号分别做频谱分析
利用Matlab软件对处理前后的心电信号编程显示其频谱,分析比较滤波前后的频谱,得出结论。
如果分析频谱,滤波效果不明显,则需变动滤波器参数指标,重新设计滤波器。通过频谱分析,多次试验确定最合适的滤波器。
4 .Simulink仿真.
根据前面的设计,进行基于Simulink的动态仿真设计。实现心电信号的分析和处理。给出系统的基于Simulink的动态建模和仿真的系统方框图,同时记录系统的各个输出点的波形和频谱图。
五、实验过程原始记录(数据、图标、计算等)
1. 提取txt格式心电信号:
fid=fopen(122.txt);
C=textscan(fid,%8c %f %*f,headerlines,2);
f close(fid);
a=C{1};
y=C{2};
k=length(a)
for i=1:k
c(i)=strread(a(i,:),%*s %f,delimiter,:);
end
x=c;
plot(x,y)
2. 对原始心电信号进行线性插值
t=0.006:0.001:2.5;
F=interp1(x,y,t);
F=F;
t=t;
plot(t,F)
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. 插值前后波形比较
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])
subplot(2,2,3)
plot(t,F)
title(差值后信号时域波形)
axis([0 2.5 -2 1])
M=length(F);
m=1:M;
f 2=m*fs/M;
Y2=fft(F);
subplot(2,2,4)
plot(f2,abs(Y
文档评论(0)