资源描述
用双线性变换法设计Butterworth低通滤波器
精品资料
仲恺农业工程学院
课 程 设 计
题 目 DSP系统开发课程设计
姓 名
院 (系) 信息学院
专业班级 电子班
学 号
指导教师
日 期 2011年10月10日—2011年10月16日
用双线性变换法设计Butterworth低通滤波器
摘要
双线性变换法分别设计数字Butterworth低通滤波器(IIR),使用MATLAB或者C语言编程实现数字Butterworth滤波器,性能要求如下:
低通数字滤波器:采样频率为10Hz,其中通带临界频率,通带内衰减小于1dB,阻带临界频率,阻带内衰减大于20dB。求这个数字滤波器的传递函数H(Z),输出它的幅频和相位特性曲线,观察其通带衰减和阻带衰减是否满足要求。
关键词: 双线性变换,Butterworth低通滤波器,MATLAB
目录
封面--------------------------------------------1
摘要--------------------------------------------2
目录--------------------------------------------3
设计方案----------------------------------------4
预算结果----------------------------------------6
代码--------------------------------------------7
图片--------------------------------------------9
性能评价与心得----------------------------------10
文献参考----------------------------------------11
一、设计目的
《DSP系统开发课程设计》是在学习完有关数字信号处理课程、上机实践应用之后,进行的另一个实践教学环节,其目的在于加深对数字信号处理基础理论和基本知识的理解,使学生较为系统地建立信号、系统、抽样、数字处理的基本概念,掌握信号分析、滤波器设计、数字滤波等基本方法,在一定程度上提高应用系统的综合开发能力、创新意识和创新能力。
二、设计内容与设计要求
1.设计内容:用双线性变换法设计Butterworth低通滤波器
用双线性变换法分别设计数字Butterworth低通滤波器(IIR),使用MATLAB或者C语言编程实现数字Butterworth滤波器,性能要求如下:
低通数字滤波器:采样频率为10Hz,其中通带临界频率,通带内衰减小于1dB,阻带临界频率,阻带内衰减大于20dB。求这个数字滤波器的传递函数H(Z),输出它的幅频和相位特性曲线,观察其通带衰减和阻带衰减是否满足要求。
2.设计要求:
(1)认真阅读有关的课程理论知识;
(2)熟悉MATLAB和Microsoft Visual C++、CCS编程;
(3)独立编写正确、符合设计要求的程序代码;
(4)对设计结果进行性能评价。
3.原理说明
(1)Butterworth低通滤波器的基本思想就是根据一些给出的技术指标和得到阶数N和截止频率。
当时,;
当时,;
由上两个方程对N和求解得:
因此
或者
而系统函数为:
所以
=,k=0,1…2N-1
得到
据以上分析可以得到一个巴特沃斯型的模拟低通滤波器设计
在matlab中用函数afd_butt来表示。
(2)双线性变换法将s平面映射到z平面的关系为:
或
其中T为参数,s和z是双线性的,由下图可以得到:
Re(z)
z-平面
单位圆
Im{z}
s-平面
一对一变换
双线变换的复平面映射
当 时:
所以
把代入得
由于幅度为1,所以有
4.设计步骤
a.确定数字滤波器的性能要求及各数字临界频率,,,;
b.选择T的值,它是任意的,也可以为1;
c.由双线性变换法的变换关系将和进行预修正得:
,
d.设计模拟滤波器,使之满足技术指标和;
e.再由双线性变换法将转变为数字滤波器的系统函数;
f.把得到的数据和预算的结果进行比较。
5.设计流程
三、结果预测
由题可知,fp=3Hz,fr=4Hz,Rp=1db,As=20db,fs=10Hz
所以
=fp*2π/fs=0.6π,=fr*2π/fs=0.8π
得
4
0.6815
=,k=0,1…2N-1
所以H(s)H(-s)的极点如下图所示
所以
四、在MATLAB上实现的代码
%数字滤波器指标fp=3Hz,fr=4Hz,Rp=1db,As=20db,fs=10Hz
Wp=0.6*pi; %通带边界频率(归一化):wp=fp*2*pi/fs
Ws=0.8*pi; %阻带边界频率(归一化):ws=fr*2*pi/fs
Rp=1; %通带波纹
As=20; %阻带衰减
%转换为模拟滤波器指标
T=0.1;Fs=1/T; %T任意设置,为1,Fs=1/T,
OmegaP=(2/T)*tan(Wp/2); %模拟低通原型滤波器通带频率
OmegaS=(2/T)*tan(Ws/2); %模拟低通原型滤波器阻带频率
%模拟巴特沃斯滤波器的阶数和截止频率的计算
[N,OmegaC]=afd_butt(OmegaP,OmegaS,Rp,As);
%双线性变换得到分子和分母的系数向量b,a
[b,a]=bilinear(N,OmegaC,T);
[db,mag,pha,grd,w] = freqz_m(b,a);
%db = [0 到pi弧度]区间内的相对振幅(db)
% mag = [0 到pi弧度]区间内的绝对振幅
% pha = [0 到pi弧度]区间内的相位响应
% grd = [0 到pi弧度]区间内的群迟延
% w = [0 到pi弧度]区间内的501个频率样本向量
%s平面中直接型到级联型转换得到增益系数C和分母的K乘3维实系数矩阵
[C,B,A]=dir2cas(b,a)
%绘图
subplot(4,2,1);plot(w/pi,mag);
xlabel('w(pi)');ylabel('|H(ejw)|');
title('幅度响应');
subplot(4,2,2);plot(w/pi,db);
xlabel('w(pi)');ylabel('dB');
title('分贝');
subplot(4,2,3);plot(w/pi,pha/pi);
xlabel('w(pi)');ylabel('相位(pi)');
title('相位响应');
subplot(4,2,4);plot(w/pi,grd);
xlabel('w(pi)');ylabel('样本');
title('群延迟');
*** Butterworth Filter Order = 4
C =
0.2158
B =
1.0000 2.0000 1.0000
1.0000 2.0000 1.0000
A =
1.0000 0.6754 0.4912
1.0000 0.4967 0.0967
所以系统函数为:
获得图片如下:
五、性能评价与心得
巴特沃斯滤波器在通频带内外都有平稳的幅频特性,但有较长的过渡带,在过渡带上很容易造成失真。由于s与z之间的简单代数关系,所以从模拟传递函数可直接通过代数置换得到数字滤波器的传递函数。由预测的数据和matlab中得出的数据比较可知这个滤波器比较接近实际。
通过一周的课程设计,让我更熟悉了数字信号处理的基本知识和MATLAB的m语言,让我把课上的理论知识运用到实际上去,更进一步巩固了课堂上所学到的东西,并能很好的理解与掌握数字信号处理中基本概念,基本原理,基本分析方法。这一次课程设计让我有机会将自己学到的知识运用到实际上去提高了自己的动手能力,在其中发现了自己的不足,在以后的学习和生活中更加努力。
六、文献参考
《数字信号处理---应用matlab》Vinay K.Ingle John G.Proakis著
仅供学习与交流,如有侵权请联系网站删除 谢谢12
展开阅读全文