资源描述
数
字
信
号
处
理
实
验
姓名:彭金金
学号:071041219
同组成员:王春香
实验三
IIR数字滤波器的设计及滤波实现
一、程序如下:
wp=0.2*pi;
ws=0.3*pi;
Rp=1;As=15;
ripple=10^(-Rp/20);Attn=10^(-As/20);
T=0.02*pi;Fs=1/T;
Omgp=(2/T)*tan(wp/2);
Omgs=(2/T)*tan(ws/2);
[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s');
[bal,aal]=butter(n,Omgc,'s');
[bd,ad]=bilinear(bal,aal,Fs);
[sos,g]=tf2sos(bd,ad);
[H,w]=freqz(bd,ad);
dbH=20*log10((abs(H)+eps)/max(abs(H)) );
plot(w/pi,dbH);title('滤波器的幅频响应');
ylabel('dB');xlabel('频率(\pi)');axis([0,0.5,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,0.5]);
set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);
grid
n=0:55;
x=[-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];
figure
plot(n,x,'k');
xlabel('n');ylabel('x');
title('心电图信号线图');
grid
figure
stem(n,x,'m')
xlabel('n');ylabel('x');
title('心电图离散序列')
grid
w1=linspace(-2*pi,2*pi,500);
N=length(x);n=0:N-1;X=x*exp(-j*n'*w1);
figure
plot(w1,abs(X),'r')
xlabel('w1'),ylabel('X')
title('心电图幅频特性')
grid
h=ifft(H);
n=0:length(h)-1;
figure
stem(n,h,'g')
axis([0,50,-0.3,0.3])
xlabel('n'),ylabel('h')
title('数字滤波器时域响应')
grid
hx=conv(x,h);
n2=0:length(hx)-1;
figure
stem(n2,hx,'g')
xlabel('n'),ylabel('hx')
title('滤波后的心电图信号')
axis([0,60,-50,10])
grid
n1=0:length(hx)-1;
HX=hx'*exp(-j*n1'*w1);
figure
plot(w1,abs(HX))
xlabel('w1')
ylabel('HX')
title('滤波后心电图信号的幅频响应')
grid
二、各信号的波形如下:
三、思考题:
用双线性变换发设计数字滤波器过程中,变换公式中T是我取值对设计结果有无影响?为什么?
解:用双线性变换发设计数字滤波器过程中,变换公式中T是我取值对设
计结果没有影响,因为T只是一个参数,在设计滤波器的过程中其值可以被约去,对滤波器
的特性没有任何影响。
四、实验结论:
实验中对心电图信号进行滤波有两种方法,一种是频域相乘,一种是时域卷积,由滤波器的时域特性可以看出它是一个N值很小的离散信号,采用反傅里叶变换将其转换为时域与心电图信号卷积更为方便。
对一次滤波后的信号进行2次3次滤波得到的信号波形如下:
hhx=conv(h,hx);
n3=0:length(hhx)-1;
figure
stem(n3,hhx)
axis([0,70,-40,10])
xlabel('n3'),ylabel('hhx'),title('二次滤波后的心电图信号'),grid
hhhx=conv(h,hhx);
n4=0:length(hhhx)-1;
stem(n4,hhhx)
xlabel('n4')
ylabel('hhhx')
axis([0,70,-40,10])
title('三次滤波后的心电图信号')
展开阅读全文