实验三用双线性变换法设计iir数字滤波器.docx
《实验三用双线性变换法设计iir数字滤波器.docx》由会员分享,可在线阅读,更多相关《实验三用双线性变换法设计iir数字滤波器.docx(11页珍藏版)》请在冰豆网上搜索。
实验三用双线性变换法设计iir数字滤波器
实验_三_题目_用双线性变换法设计IIR数字滤波器第16周星期_3_第6,7节
一.实验目的
(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法。
(2)掌握数字滤波器的计算机仿真方法。
(3)通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。
二、实验内容、方法、设计程序及实验结果
(1)复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR数字滤波器的内容,用双线性变换法设计数字滤波器系统函数
。
其中满足本实验要求的数字滤波器系统函数为:
()
式中:
()
根据设计指标,调用MATLAB信号处理工具箱buttord和butter,也可以得到
。
由公式()和()可见,滤波器
由三个二阶滤波器
、
和
级联而成,如图3-1所示。
图3-1滤波器的组成
此参数下的程序如下:
%实验三,用双线性变换法设计IIR数字滤波器
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];
k=1;%控制滤波循环变量
closeall;%关闭全部绘图窗口
figure
(1);%创建绘图窗口
subplot(2,2,1);%定位子图1
n=0:
55;%横坐标
stem(n,x,'.');%画出枝干图
axis([0,56,-100,50]);%调整坐标
xlabel('n');%标注横坐标
ylabel('x(n)');%标注纵坐标
title('心电图信号采集序列x(n)');%命名该子图
B=[,2*,];%H1滤波器的分子系数矩阵
A=[,];%H1滤波器的分母系数矩阵
A1=[,];%H2滤波器的分母系数矩阵
A2=[,];%H3滤波器的分母系数矩阵
while(k<=3)
y=filter(B,A,x);%进行滤波
x=y;%重新赋值X进行下一次滤波
k=k+1;%控制循环变量
ifk==2
A=A1;
elseA=A2;
end
end
subplot(2,2,3);%定位子图3
stem(n,y,'.');
axis([0,56,-100,50]);
xlabel('n');
ylabel('y(n)');
title('三级滤波后的心电图信号(原坐标)');
subplot(2,2,2)
stem(n,y,'.');
axis([0,56,-15,5]);
xlabel('n');
ylabel('y(n)');
title('调整坐标后的心电图信号');
%求数字滤波器的幅频特性
A=[,2*,];%滤波器的分子系数矩阵
B1=[1,,];%H1滤波器的分母系数矩阵
B2=[1,,];%H2滤波器的分母系数矩阵
B3=[1,,];%H3滤波器的分母系数矩阵
[H1,w]=freqz(A,B1,100);%进行滤波器幅频特性分析
[H2,w]=freqz(A,B2,100);
[H3,w]=freqz(A,B3,100);
H4=H1.*(H2);%点积
H=H4.*(H3);
db=20*log10(abs(H)+eps);
subplot(2,2,4)
plot(w/pi,db);
axis([0,,-50,10]);
xlabel('w');
ylabel('|H(e^j^w)|');
gridon;%显示方格
title('滤波器的幅频响应曲线');
(2)用双线性变换法设计一个巴特沃斯低通IIR数字滤波器。
设计指标参数为:
在通带内频率低于π时,最大衰减小于1dB;在阻带内[π,π]频率区间上,最小衰减大与15dB。
参数如下截图:
程序设计如下:
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];
k=1;%控制滤波循环变量
%关闭全部绘图窗口
figure
(2);%创建绘图窗口
subplot(2,2,1);%定位子图1
n=0:
55;%横坐标
stem(n,x,'.');%画出枝干图
axis([0,56,-100,50]);%调整坐标
xlabel('n');%标注横坐标
ylabel('x(n)');%标注纵坐标
title('心电图信号采集序列x(n)');%命名该子图
B=[,,,,,,];%H1滤波器的分子系数矩阵
A=[,,,,,,];%H1滤波器的分母系数矩阵
y=filter(B,A,x);
subplot(2,2,3);%定位子图3
stem(n,y,'.');
axis([0,56,-100,50]);
xlabel('n');
ylabel('y(n)');
title('滤波后的心电图信号(原坐标)');
subplot(2,2,2)
stem(n,y,'.');
axis([0,56,-100,30]);
xlabel('n');
ylabel('y(n)');
title('调整坐标后的心电图信号');
%求数字滤波器的幅频特性
A=[,,,,,,];%滤波器的分子系数矩阵
B=[,,,,,,];%H1滤波器的分母系数矩阵
[H,w]=freqz(A,B,100);%进行滤波器幅频特性分析
db=20*log10(abs(H)+eps);
subplot(2,2,4)
plot(w/pi,db);
axis([0,,-50,10]);
xlabel('w');
ylabel('|H(e^j^w)|');
gridon;%显示方格
title('滤波器的幅频响应曲线');
三、
(1)、双线性变换法的特点:
1.模拟滤波器经过双线性变换后,不存在频率特性的混叠失真,因而对模拟滤波器的频率响应函数Ha(s)无限带要求,而且能够直接用于设计低通、高通、带通、带阻等各种类型的数字滤波器。
2.与冲激响应不变法中模拟频率与数字频率之间的线性关系ω=ΩTs不同的是,双线性变换法中模拟滤波器的频率与所转换成的数字滤波器的频率之间是非线性关系,但是,如果事先进行频率预畸变,这种非线性关系不会使所设计的数字滤波器的幅频特性受到影响。
由于频率的非线性关系会产生相频特性失真,所以若对数字滤波器的相位特性要求较严,则不宜采用这种变换方法。
3.双线性变换方法比较容易,不需要将模拟系统函数进行部分分式分解。
(2)、数字滤波的过程:
顺序迭代.
设yk(n)为第k级二阶滤波器Hk(z)的输出序列,yk-1(n)为输入序列。
由式3-1可得到差分方程:
yk(n)=Ayk-1(n)+2Ayk-1(n-1)+Ayk-1(n-2)+Bkyk(n-1)+Ckyk(n-2)
当k=1时,yk-1(n)=x(n)。
所以H(z)对x(n)的总响应序列y(n)可以用顺
序迭代算法得到。
即依次对k=1,2,3,求解差分方程(),最后
得到y3(n)=y(n)。
数字滤波的作用:
通过对有噪声的心电图采集信号波形图和经过三级二阶滤波器滤波后的心电图信号波形图的对比分析,可以看出低通滤波器滤除信号中高频噪声的滤波效果,信号变得更平缓。
四、思考题
答:
T取值对结果没有影响。
设数字滤波器w1处衰减为δ1,w2处衰减为δ2
双线性变换公式:
由于是低通滤波器:
得:
模拟巴特沃思低通滤波器的幅度平方函数为:
令:
α,N是一个与T无关的量。
查表得归一化模拟低通滤波器为:
则去归一化模拟低通滤波器为:
数字系统函数为:
由以上各式得:
α是一个与T无关的量。
H(z)是一个与T无关的函数,所以T取值对结果没有影响。