1.1.1熟悉用双线性变换法设计IIR数字滤波器的原理与方法。
1.1.2掌握数字滤波器的计算机仿真方法。
1.1.3通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。
设计IIR数字滤波器一般采用间接法,基本设计过程为:
1、先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;
2、根据模拟滤波器技术指标设计为响应的模拟低通滤波器;
3、根据双线性不变法把模拟滤波器系统函数转换成数字滤波器的系统函数。
计算机、matlab软件。
(1)复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR数字滤波器的内容,用双线性变换法设计数字滤波器系统函数。
(2)编写滤波器仿真程序。
(3)在通用计算机上运行仿真滤波程序。
通过巴特沃斯滤波器的设计方法和双线性变换法设计出的IIR滤波器的频率特性响应曲线如图1所示。
通过观察图1,可以发现该滤波器在通带低于0.2pi时,最大衰减小于1dB; 在阻带内[0.3pi,pi]频率区间上,最小衰减大于15dB。满足设计要求。
用所设计的数字滤波器对实际心电图信号采样序列进行仿真滤波处理,并分别打印出滤波前后的心电图信号波形图,如下图所示。
观察该图,可以很明显的看出滤波后的心电信号变得更加的平滑,即高频成分被滤除,低频成分被保留。我们可以通过滤波前后的幅频特性进行比较,可以看出在0.5pi-1.5pi区间的增益都被压缩成零,即它的滤波后的高频成分都衰减为0。
图 1:滤波器频率特性曲线
图 2:心电信号滤波前后波形和幅频曲线变化
程序代码
clc
close all
%%
%滤波器的设计
clear all;
clc
close all
wpz=0.2*pi;%通带频率
wsz=0.3*pi;%阻带截止频率
Rp=1;%通带衰减
Rs=15;%阻带衰减
Fs=0.02*pi;%采样时间
Ts=1/Fs;%采样频率
wps=2*Fs*tan(wpz/2);%求取模拟铜带截止频率
wss=2*Fs*tan(wsz/2);%求取模拟阻带截止频率
[N,Wn]=buttord(wps,wss,Rp,Rs,'s');%根据模拟滤波器的指标设计巴特沃斯滤波器
[Z,P,K]=buttap(N);%设计巴特沃斯滤波器,Z为极点P为零点K为增益
[Bap,Aap]=zp2tf(Z,P,K);%转化为Hap,Bap为分子系数,Aap为分母系数
[b,a]=butter(N,Wn,'s');
[bz,az]=bilinear(b,a,Fs);
[H,W]=freqz(bz,az);
% figure(1)
subplot(2,1,1);plot(W/pi,20*log10(abs(H)));grid;
xlabel('归一化数字角频率');ylabel('幅度');title('幅频响应曲线')
subplot(2,1,2);plot(W/pi,angle(H));grid;
xlabel('归一化数字角频率');ylabel('相角(rad)');title('相频响应曲线')
figure
%%
%原心电信号
x1=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,...
-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,...
0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];
m=size(x1,2);
nx1=0:m-1;
X1=fft(x1,1024);%计算xn的1024点fft
n=[0:1023];
n1=2*n/1024;%计算1024点DFT对应的采样点频率
% 滤波后信号
y=filter(bz,az,x1);
plot(nx1,y)
%%
%滤波后
% figure
X2=fft(y,1024);%计算xn的1024点fft
n=[0:1023];
n2=2*n/1024;%计算1024点DFT对应的采样点频率
%%绘图
figure(2)
subplot(221),plot(nx1,x1);title('滤波前信号')
subplot(222),plot(nx1,y);title('滤波后信号')
subplot(223),plot(n1,abs(X1));xlabel('\pi'),title('滤波前幅频特性曲线');
subplot(224),plot(n2,abs(X2));xlabel('\pi'),title('滤波后幅频特性曲线');