数字的信号处理某实验三用双线性变换法设计IIR数字的滤波器.docx
《数字的信号处理某实验三用双线性变换法设计IIR数字的滤波器.docx》由会员分享,可在线阅读,更多相关《数字的信号处理某实验三用双线性变换法设计IIR数字的滤波器.docx(8页珍藏版)》请在冰豆网上搜索。
![数字的信号处理某实验三用双线性变换法设计IIR数字的滤波器.docx](https://file1.bdocx.com/fileroot1/2022-12/6/28de4836-4c2b-4509-ae60-5dfb7547f2ca/28de4836-4c2b-4509-ae60-5dfb7547f2ca1.gif)
数字的信号处理某实验三用双线性变换法设计IIR数字的滤波器
《数字信号处理》
实践报告
题目:
实验三用双线性变换法设计IIR数字滤波器
实验三:
用双线性变换法设计IIR数字滤波器
1.实验目的
(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法。
(2)掌握数字滤波器的计算机仿真方法。
(3)通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。
2.实验步骤
(1)复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR数字滤波器的内容,按照“2.实验内容
(1)”的要求设计满足指标的数字滤波器函数H(z)。
现给出满足本实验要求的数字滤波器系统函数:
H(z)=
=
——(3.1)
式中Hk(z)=
k=1,2,3——(3.2)
A=0.09036
B1=1.2686,C1=-0.7051
B2=1.0106,C2=-0.3583
B3=0.9044,C3=-0.2155
由(3.1)式和(3.2)式可见,滤波器H(z)由三个二阶滤波器H1(z)、H2(z)和H3(z)级联组成,如图3.1所示。
图3.1滤波器H(z)的组成
(2)编写滤波器仿真程序,计算H(z)对心电图信号抽样序列x(n)的响应序列y(n)。
设yk(n)为第k级二阶滤波器Hk(z)的输出序列,yk-1(n)为输入序列,如图3.1所示。
由(3.2)式可得到差分方程:
yk(n)=Ayk-1(n)+2Ayk-1(n-1)+Ayk-1(n-2)+Bkyk(n-1)+Ckyk(n-2)——(3.3)
当k=1时,yk-1(n)=x(n)。
所以H(z)对x(n)的总响应序列y(n)可以用顺序迭代算法得到。
即依次对k=1,2,3,求解差分方程(3.3),最后得到y3(n)=y(n)。
仿真程序就是实现上述求解差分方程和顺序迭代算法的通用程序。
也可以直接调用MATLABfilter函数实现仿真。
(3)在通用计算机上运行仿真滤波程序,并调用通用绘图子程序,完成“2.实验内容
(2)和(3)”。
本实验要用的MATLAB绘图函数见附录。
3.实验内容
(1)用双线性变换法设计一个巴特沃斯低通IIR数字滤波器。
设计指标参数为:
在通带内频率低于0.2π时,最大衰减小于1dB;在阻带内[0.3π,π]频率区间上,最小衰减大于15dB。
以x=[ones(1,10),zeros(1,40)]信号验证。
(2)以0.02π为抽样间隔,打印出数字滤波器在频率区间[0,π/2]上的幅频响应特性曲线。
程序代码:
ws=0.3*pi;
Ap=1;
As=15;
T=1;
WP=(2/T)*tan(wp/2);
WS=(2/T)*tan(ws/2);
[N,Wc]=buttord(WP,WS,Ap,As,'s');
[bt,at]=butter(N,Wc,'s')
[bd,ad]=bilinear(bt,at,1/T)
%数字滤波器的频率响应
[hd,wd]=freqz(bd,ad,60);
%画图
figure
(1);
plot(wd/pi,abs(hd)),grid;
axis([0,1,0,1])
xlabel('w/pi');ylabel('abs(h)')%定义X轴与Y轴的标称含义
title('数滤波器的频率响应')%定义图形名称
n=[1:
56];%输入系列的长度
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];
(3)用所设计的滤波器对实际心电图信号抽样序列(在本实验后面给出)进行仿真滤波处理,并分别打印出滤波前后的心电图信号波形图,观察总结滤波作用与效果。
时域
频域
程序代码:
wp=0.2*pi;
ws=0.3*pi;
Ap=1;
As=15;
T=1;
WP=(2/T)*tan(wp/2);
WS=(2/T)*tan(ws/2);
[N,Wc]=buttord(WP,WS,Ap,As,'s');
[bt,at]=butter(N,Wc,'s')
[bd,ad]=bilinear(bt,at,1/T)
[hd,wd]=freqz(bd,ad,n);
n=[1:
56];%输入系列的长度
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];
y=filter(bd,ad,x);
figure
(1)
subplot(2,1,1);
plot(n,x);title('inputsequence');
xlabel('n');ylabel('x(n)');
subplot(2,1,2);
plot(n,y);title('outputsequence');
xlabel('n');ylabel('y(n)');
k=[0:
2*pi/63:
2*pi];
figure
(2);
X1=fft(x,64);
X1=abs(X1);
subplot(2,1,1);
stem(k,X1);
Y=fft(y,64);
subplot(2,1,2);
stem(k,abs(Y));
4.思考题
用双线性变换法设计数字滤波器过程中,变换公式
s=
中T的取值,对设计结果有无影响?
为什么?
答:
无影响,因为数字滤波器的传输函数H(ejw)以2
为周期,最高频率在
处,因此,
<
,按照线性关系
那么一定满足
因此T可以任选。
在数字滤波器的设计过程中,设计问题起始于数字滤波器上的传输函数
的技术要求,当这些技术要求通过变换公式
得到模拟滤波器的传输函数HC(s)的技术要求并设计出模拟滤波,然后模拟滤波器的传输函数HC(s)再通过公式变换得到数字滤波器的传输函数
,这样取值T对设计的影响就被抵消,因此T的取值对设计结果没有影响。