IIR零相移滤波器法去除心电信号中的基线漂移-课程设计.doc_第1页
IIR零相移滤波器法去除心电信号中的基线漂移-课程设计.doc_第2页
IIR零相移滤波器法去除心电信号中的基线漂移-课程设计.doc_第3页
IIR零相移滤波器法去除心电信号中的基线漂移-课程设计.doc_第4页
IIR零相移滤波器法去除心电信号中的基线漂移-课程设计.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IIR零相移滤波器法去除心电信号中的基线漂移-课程设计IIR零相移滤波器法去除心电信号中的基线漂移一实验目的:在心电信号的采集过程中,会引入各种干扰噪声,如基线漂移。为了得到不失真的心电信号,在诊断分析前要对信号进行预处理-数字滤波。心电信号的能谱范围集中在180Hz之间,基线漂移的频率一般是00.8Hz之间。故认为基线漂移是一个缓慢变化的超低频信号。所以,对基线漂移的剔除,可以认为是要去除心电信号中的低频信号,但又要不影响有价值的信号,包括幅度和相位等。心电信号的滤波一般要求线性相位。IIR滤波器是非线性相位的,但可以通过逆滤波实现线性相位。二实验设备PC 兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP),安装Code Composer Studio 3.3 软件。三实验原理零相位IIR数字滤波的流程图:, , 先将输入序列按顺序滤波(forward filter),然后将所得结果逆转后反向通过滤波器(reverse filter),再将所得结果逆转后输出(reverse output),即得精确零相位失真的输出序列。其时域表达式如下: (1) (2) (3) (4)零相位滤波的频率描述即式(1)(4)的相应频率响应: (5) (6) (7) (8)由(5)(8)即可得: (9)从式(9)可见,输出 与 之间不存在附加相位。如果将所用的滤波器 连同上述方法看作组成某一系统的构件与逻辑,那么这一系统的频率响应是: (10)不管 具有多么奇怪的相频特性,都可以实现具有式(10)所描述的频率特性的系统零相位数字滤波器。因为零相位数字滤波器必须将信号序列作“时间上反转”处理,因此从物理上这种方法无法实现,这种构造零相位数字滤波器的思想无法应用于靠硬件实现的滤波器设计,不过可以通过软件来实现。四实验数据说明心电信号来自MIT-BIH数据库,数据采样频率为360Hz,如下图所示,实验中为文本文件baseline.txt;滤波器的设计可以用matlab 中的fdatool实现。注意:在CCS中读数据需要在文本文件中加头:1651 2 0 1五实验步骤1)先用matlab 仿真实现能去除基线的IIR零相移滤波器,观察滤波功能,保存滤波系数;1. matlab中滤波器的设计对心电信号,我们如下给出指标:通带: ,幅度失真约为1%:阻带: ,衰减大于40dB相对应的数字滤波器 的指标:通带截止频率: =0.012217rad通带纹波: =0.005阻带截止频率: =0.005236rad阻带最小衰减: 调用matlab中的ellip函数设计椭圆滤波器的程序清单如下:clear all;fs=360;Wp=1.4/fs; %通带截止频率Ws=0.6/fs; %阻带截止频率devel=0.005; %通带纹波Rp=20*log10(1+devel)/(1-devel); %通带纹波系数 Rs=20; %阻带衰减N Wn=ellipord(Wp,Ws,Rp,Rs); %求椭圆滤波器的阶次b a=ellip(N,Rp,Rs,Wn,high); %求椭圆滤波器的系数 hw,w=freqz(b,a); subplot(2,1,1); plot(w/pi,20*log10(abs(hw); grid; axis(0 1 -80 5);xlabel(w/pi); ylabel(幅度(dB);subplot(2,1,2); plot(w/pi,angle(hw); grid; axis(0 1 -1 4); xlabel(w/pi); ylabel(相位(rad) ;运行上面的程序,得到所设计的滤波器的系数如下:N=3Rp= 0.08686Rs= 20Wn= 0.0038889Wp= 0.0038889Ws= 0.0016667a= 1 -2.9846 2.9693 -0.98474b= 0.99234 -2.977 2.977 -0.99234devel= 0.005fs= 80IIR零相移滤波器法去除心电信号中的基线漂移2. 滤波效果Matlab的滤波程序:在Matlab中,可直接调用函数filtfilt来实现信号的零相移滤波,程序如下:load baseline.txt; %读取放在baseline.txt的心电数据data = baseline; result =filtfilt(b,a,data);figure(2);subplot(211);plot(data);subplot(212);plot(result);Matlab中IIR零相移滤波效果2)在CCS中读入带有基线漂移的心电信号文件,作为为研究对象;3)将设计的滤波器用CCS实现,观察滤波功能,比较滤波前后的频谱。经过反复试验,将ccs中滤波器系数调整为:b=0.991, -2.971, 2.971, -0.991 a= 1, -2.9846, 2.9693, -0.98474 所以ccs 中iir.c程序为:#includemath.h#define IIRNUMBER 4#define SAMPLEF 360 /采样频率float IIR();, , int read_signals(int *input);main()nIn=0; nOut=0; fInput=fOutput=0; while ( 1 ) read_signals(fIn); /设置断点1 for(i = 0;i =3600 ) nOut=0; float IIR(int j) switch(j) case 0: fOutj = 9.92340;break; case 1: fOutj = 9.77078;break; case 2: fOutj = 9.61971;break; case 3: fOutj = 9.47060;break; default:fOutj=2.9846*fOutj-1-2.9693*fOutj-2+0.9847*fOutj-3+0.99*fInj-2.97*fInj-1+2.97*fInj-2-0.99*fInj-3;break; return(fOutj);/ 读取输入信号int read_signals(int *fIn) / 在此读取采集数据信号放到输入缓冲区input return(1);.cmd文件为:-w-stack 500-sysstack 500-l rts55x.libMEMORY DARAM: o=0x100, l=0x7f00 VECT : o=0x8000, l=0x100DARAM2: o=0x8100, l=0x200 DARAM3: o=0x8300, l=0x7d00 SARAM: o=0x10000, l=0x30000 SDRAM: o=0x40000, l=0x3e0000SECTIONS .text: DARAM .vectors: VECT .trcinit: DARAM .gblinit: DARAM frt: DARAM .cinit: DARAM .pinit: DARAM .sysinit: DARAM .bss: DARAM3 .far: DARAM3 .const: DARAM3 .switch: DARAM3 .sysmem: DARAM3 .cio: DARAM3 .MEM$obj: DARAM3 .sysheap: DARAM3 .sysstack DARAM3 .stack: DARAM3 六实验结果问题与思考 通过matlab设计一个滤波器,其滤波效果较好,但在ccs中用matlab中所设计的滤波器的系数设计滤波器时其滤出的心电信号的效果并不好,经过反复微调ccs中滤波器的系数,得出的滤波效果逐渐趋向于要求的效果,与通过matlab中滤波器滤出的波形近似。可知,同一个滤波器在matlab中和ccs中滤波的效果并不一样,要想要达到相同的效果,还需要调整滤波器的系数,由于经验缺乏,在ccs中滤波器中的系数并不完美,滤波效果也没有matlab中的好,以后需要增加这方面的实践,并在实践中积累经验。由于在ccs使用方面经验有限,在编程方面能力有限,课题完成得并不完全和完美,在ccs中仅仅完成了数据读入、滤波器设计、一次滤波、图像输出的功能,没能进行数据逆转和二次滤波。但滤波效果我觉得是能满足使用要求的。未能完成部分在下面的实验中将进一步努力实现。观察上页所示试验结果,可知,设计的高通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论