欢迎来到天天文库
浏览记录
ID:39549314
大小:45.42 KB
页数:7页
时间:2019-07-06
《IIR零相移滤波器法去除心电信号中的基线漂移-课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、IIR零相移滤波器法去除心电信号中的基线漂移-课程设计IIR零相移滤波器法去除心电信号中的基线漂移一.实验目的:在心电信号的采集过程中,会引入各种干扰噪声,如基线漂移。为了得到不失真的心电信号,在诊断分析前要对信号进行预处理---数字滤波。心电信号的能谱范围集中在1~80Hz之间,基线漂移的频率一般是0~0.8Hz之间。故认为基线漂移是一个缓慢变化的超低频信号。所以,对基线漂移的剔除,可以认为是要去除心电信号中的低频信号,但又要不影响有价值的信号,包括幅度和相位等。心电信号的滤波一般要求线性相位。IIR滤波器是非线性相位的,但可以通过逆滤波实现线性相位。 二.实验设备PC兼容机一台,操作系
2、统为Windows2000(或Windows98,WindowsXP),安装CodeComposerStudio3.3软件。 三.实验原理零相位IIR数字滤波的流程图:,, 先将输入序列按顺序滤波(forwardfilter),然后将所得结果逆转后反向通过滤波器(reversefilter),再将所得结果逆转后输出(reverseoutput),即得精确零相位失真的输出序列。其时域表达式如下: (1) (2) (3) (4)零相位滤波的频率描
3、述即式(1)~(4)的相应频率响应: (5) (6) (7) (8)由(5)~(8)即可得: (9)从式(9)可见,输出与之间不存在附加相位。如果将所用的滤波器连同上述方法看作组成某一系统的构件与逻辑,那么这一系统的频率响应是: (10)不管具有多么奇怪的相频特性,都可以实现具有式(10)所描述的频率特性的系统——零相位数字滤波器。因为零相位数字滤波器必须将信号序列作“时间上反转”处理,因此从物理上这种方法
4、无法实现,这种构造零相位数字滤波器的思想无法应用于靠硬件实现的滤波器设计,不过可以通过软件来实现。 四.实验数据说明心电信号来自MIT-BIH数据库,数据采样频率为360Hz,如下图所示,实验中为文本文件baseline.txt;滤波器的设计可以用matlab中的fdatool实现。注意:在CCS中读数据需要在文本文件中加头:1651201 五.实验步骤1)先用matlab仿真实现能去除基线的IIR零相移滤波器,观察滤波功能,保存滤波系数;1.matlab中滤波器的设计对心电信号,我们如下给出指标:通带:,幅度失真约为1%:阻带:,衰减大于40dB相对应的数字滤波器的指标:通带截止频率:=
5、0.012217rad通带纹波:=0.005阻带截止频率:=0.005236rad阻带最小衰减:调用matlab中的ellip函数设计椭圆滤波器的程序清单如下: clearall;fs=360;Wp=1.4/fs; %通带截止频率Ws=0.6/fs; %阻带截止频率devel=0.005; %通带纹波Rp=20*log10((1+devel)/(1-devel)); %通带纹波系数 Rs=20; %阻带衰减[NWn]=ellipord(Wp,Ws,Rp,Rs); %求椭圆滤波器的阶次[ba]=ellip(N,Rp,Rs
6、,Wn,'high'); %求椭圆滤波器的系数[hw,w]=freqz(b,a); subplot(2,1,1); plot(w/pi,20*log10(abs(hw))); grid; axis([01-805]);xlabel('w/pi'); ylabel('幅度(dB))');subplot(2,1,2); plot(w/pi,angle(hw)); grid; axis([01-14]); xlabel('w/pi'); ylabel('相位(rad))'); 运行上面的程序,得到所设计的滤波器的系数如下:N=3
7、Rp=0.08686Rs=20Wn=0.0038889Wp=0.0038889Ws=0.0016667a=1 -2.9846 2.9693-0.98474b=0.99234 -2.9772.977 -0.99234devel=0.005fs=80IIR零相移滤波器法去除心电信号中的基线漂移2.滤波效果Matlab的滤波程序:在Matlab中,可直接调用函数filtfilt来实现信号的零相移滤波,程序如下:loa
此文档下载收益归作者所有