双线性变换法设计数字低通滤波器.doc
燕山大学课 程 设 计 说 明 书题目:双线性变换法设计数字低通滤波器学院(系): 电气工程学院 年级专业: 10级检测2班 学 号: 2 学生: 培露 指导教师: 王娜 教师职称: 讲师 课程名称: 数字信号处理课程设计 基层教学单位:仪器科学与工程系 指导教师:王娜 学号学生(专业)班级设计题目12、 双线性变换法设计数字低通滤波器设计技术参数给定技术指标为:,采样频率。设计要求设计Butterworth低通滤波器,用双线性变换法转换成数字滤波器。(buttord,buttap,butter,bilinear)参考资料数字信号处理方面资料MATLAB方面资料周次前半周后半周应完成容收集消化资料、学习MATLAB软件,进行相关参数计算编写仿真程序、调试指导教师签字基层教学单位主任签字说明:1、此表一式四份,系、指导教师、学生各一份,报送院教务科一份。 2、学生那份任务书要求装订到课程设计报告前面。电气工程学院 教务科目录一.课题描述2二.设计原理.22.1 IIR数字滤波器设计原理.22.2巴特沃斯低通滤波器的原理 32.3双线性变换法42.4用双线法设计巴特沃斯数字低通滤波器的步骤.9三. MATLAB程序.10四.程序中命令介绍.12五. 图像结果. .14六. 结果分析.16七.心得体会:.16一.课题描述数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。如果系统是一个连续系统,则滤波器称为模拟滤波器。如果系统是一个离散系统,则滤波器称为数字滤波器。数字滤波实质上是一种运算过程,实现对信号的运算处理。输入数字信号(数字序列)通过特定的运算转变为输出的数字序列,因此,数字滤波器本质上是一个完成特定运算的数字计算过程,也可以理解为是一台计算机。描述离散系统输出与输入关系的卷积和差分方程只是给数字信号滤波器提供运算规则,使其按照这个规则完成对输入数据的处理。时域离散系统的频域特性:其中、分别是数字滤波器的输出序列和输入序列的频域特性(或称为频谱特性),是数字滤波器的单位取样响应的频谱,又称为数字滤波器的频域响应。输入序列的频谱经过滤波后,因此,只要按照输入信号频谱的特点和处理信号的目的,适当选择,使得滤波后的满足设计的要求,这就是数字滤波器的滤波原理。二.设计原理2.1 IIR数字滤波器设计原理IIR数字滤波器的设计一般是利用目前已经很成熟的模拟滤波器的设计方法来进行设计,通常采用模拟滤波器原型有butterworth函数、chebyshev函数、bessel函数、椭圆滤波器函数等。IIR数字滤波器的设计步骤: 按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标; 根据模拟滤波器技术指标设计为响应的模拟低通滤波器; 跟据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器; 如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤波器,最后通过频率转换的方法来得到所要的滤波器。在MATLAB中,经典法设计数字滤波器主要采用以下步骤:模拟滤波器原型buttap,cheb1ap频率变换模拟离散化bilinear,impinvarIIR数字滤波器图2.1 IIR数字滤波器设计步骤2.2巴特沃斯低通滤波器的原理巴特沃斯滤波器的特点是同频带的频率响应曲线最为平坦,没有起伏,而在组频带则逐渐下降为零。在振幅的对数对角频率的波特图上,从某一边界见频率开始,振幅随着角频率的增加而逐渐减少,趋向于负无穷大。一阶巴特沃斯滤波器的衰减率为每倍频20分贝,二阶巴特沃斯滤波器的衰减率为每倍频12分贝,三阶的衰减率为每分贝18分贝,如此类推,巴特沃斯滤波器的振幅对角频率单调下降,并且滤波器的结束越高,在组频带振幅衰减速度越快,其他滤波器高阶的振幅对角频率图和低阶数的振幅对角频率有不同的形状。上述函数的特点是等距离分布在半径为的圆上。因此,极点用下式表示为的表示式:为了使设计公式和图表统一,将频率归一化。巴特沃斯滤波器采用3dB截止频率归一化,归一化后的系统函数为令,称为归一化频率,称为归一化复变量,这样巴特沃斯滤波器的归一化低通原型系统函数为式中,为归一化极点,用下式表示:2.3双线性变换法1.双线性变换法的基本原理由于从平面到平面的映射具有多值性,使得设计出来的数字滤波器不可避免的出现频谱混迭现象。为了克服脉冲响应不变法可能产生的频谱混叠效应的缺点,我们使用一种新的变换双线性变换。双线性变换法可认为是基于对微分方程的积分,利用对积分的数值逼近的思想 。仿真滤波器的传递函数为将展开为部份分式的形式,并假设无重复几点,则那么,对于上述函数所表达的数字信号处理系统来讲,其仿真输入和模拟输出有如下关系利用差分方程来代替导数,即同时令这样,便可将上面的微分方程写为对应的差分方程形式两边分别取变换,可得这样,通过上述过程,就可得到双线性变换中的基本关系,如下所示所谓的双线性变换,仅是指变换公式中与的关系无论是分子部份还是分母部份都是线性的。2. 转换关系分析双线性变换法采用非线性频率压缩方法,将整个频域轴上的频率围压缩到-/T/T之间,再用z=转换到z平面上。也就是说,第一步现将整个S平面压缩映射到S1平面的-/T/T一条横带里;第二步再通过标准变换关系将此横带变换到整个z平面上去。这样就使S平面与Z平面建立了一一对应的胆汁关系,消除了多只变换性,也就消除了频谱混叠现象,映射关系如图所示。为了将S平面的整个虚轴压缩到轴上的-/T到/T段上,可以通过以上的正切的变换实现=2/Ttan(T/2) 式中,T仍是采样间隔。当由-/T经过0变化到/T时,由-经过0变化到+,也即映射了整个轴。将上式写成将此关系解析延拓到整个S平面和,令=s,=S1,则得S再将S1平面通过以下标准变换关系映射到Z平面:z=从而得到S平面和Z平面的单值映射关系为;以上两式是S平面与Z平面之间的单值映射关系,这种变换都是两个线性函数之比,因此成为双线性变换。依靠双线性变换是建立起来s平面和z平面的单值映射关系,由上式我们可以得到模拟频率和数字频率之间的关系:从上式可知,当时,终止在折叠频率=处,整个轴是单值地对应于单位元的一周。因此双线性变换法不同于脉冲响应不变法,它不存在频率混淆问题。然而,付出的代价是在频率轴上引入了失真。因此,只有当能容忍或补偿这种失真时,使用双线性变换法设计数字滤波器的方法才是实用的。仅在零频率附近时与之间的频率变换关系接近于线性关系,所产生的数字滤波器的幅频响应相对于原模拟滤波器的幅频响应有畸变。图2.3 双线性变化法的频率关系由于S平面的左半平面映射到Z平面的单位圆,S平面的右半平面映射到Z平面的单位圆外,S平面的虚轴映射到Z平面的单位圆上。因此,稳定的模拟滤波器经双线性变换后所得到的数字滤波器也一定是稳定的。但是,它的频率变换关系是非线性畸变。这种非线性即便可以通过预畸变来校正。用双线性变换设计数字滤波器时,一般总是先将数字滤波器的各临界频率经上式的频率预畸变,求得相应参考模拟滤波器的各临界频率,然后设计参考模拟滤波器的传递函数,最后通过双线性变换公式球的数字滤波器的传递函数。这样通过双线性变换,正好将这些频率点映射到我们所需要的位置上。下面我们利用模拟滤波器设计IIR数字低通滤波器的步骤。a)确定数字低通滤波器的技术指标:同代截止频率、同代衰减、阻带截止频率、阻带衰减。b)将数字低通滤波器的技术指标转换成模拟低通滤波器的技术指标。采用双线性变换法,便捷频率的转换关系为 c)按照模拟低通滤波器的技术指标设计模拟低通滤波器。d)将模拟滤波器系统函数Ha(S)从s平面转换到z平面,得到数字低通滤波器系统反函数Ha(z)。H(z)=Ha(S)|2.4 用双线法设计巴特沃斯数字低通滤波器的步骤MATLAB中设计IIR数字滤波器的具体步骤如下:(1) 把给出的模拟滤波器的性能指标转换为数字低通滤波器的性能指标;(2) 将数字低通滤波器的性能指标转换模拟滤波器的性能指标;(3) 根据转换后的性能指标,通过滤波器结束选择函数,来确定滤波器的最小阶数n和固有频率wn;(4) 由最小阶数n得到巴特沃斯模拟低通滤波器原型;(5) 模拟低通滤波器到模拟低通滤波器的转换;(6) 运用双线性变换法把模拟滤波器转换成数字滤波器。三、 MATLAB程序>> fs=1000;%采样频率fp=100;fst=300;wp=2*pi*fp/fs;%数字通带截止频率ws=2*pi*fst/fs;%数字阻带截止频率Rp=3;%通带最大衰减系数Rs=20;%阻带最大衰减系数Fs=fs/fs;Ts=1/Fs;%采样周期m=256;%采样点数Wp=2/Ts*tan(wp/2);%模拟通带截止频率Ws=2/Ts*tan(ws/2);%模拟阻带截止频率N,Wn=buttord(Wp,Ws,Rp,Rs,'s');%选择模拟巴特沃斯低通滤波器的最小阶数z,p,k=buttap(N);%创建巴特沃斯模拟低通滤波器Bp,Ap=zp2tf(z,p,k);%由零点、极点、增益确定传输函数的分子与分母的系数b,a=lp2lp(Bp,Ap,Wn);%模拟低通滤波器到模拟低通滤波器的转换bz,az=bilinear(b,a,Fs*Ts/2);%用双线性变换法实现模拟低通滤波器到数字低通滤波器的转换h,w=freqz(bz,az,m,Fs/fs);%得到数字滤波器的m点复频响应db=20*log(abs(h)/max(abs(h);figure(1);plot(w,abs(h),'r');title('数字低通滤波器')grid on;figure(2);subplot(2,1,1);plot(w/pi,db);title('幅频特性');xlabel('w/pi');ylabel('20lg|Hg(w)|');grid on,subplot(2,1,2);plot(w/pi,angle(h);title('相频特性');xlabel('w/pi');ylabel('相位');grid on;wp1=2*pi*fp;ws1=2*pi*fst;Nc,wc=buttord(wp1,ws1,Rp,Rs,'s');%计算滤波器的阶数和3db截止频率b1,a1=butter(Nc,wc,'s');%计算滤波器系统函数分子分母多项式f,h=freqs(b1,a1);figure(3)plot(h,abs(f);grid on,xlabel('频率(hz)'),ylabel('幅度');title('模拟低通滤波器');四、 程序中命令介绍 1)确定滤波阶段函数buttord 格式: N,Wn=buttord(Wp,Ws,Rp,Rs,S) 表示选择模拟巴特沃斯低通滤波器的最小阶数其中:N:满足指标的最低滤波器阶数 Wn:巴特沃斯自然频率 Rp:通带最大衰减 Rs:阻带最小衰减 Wp、Ws归一化的通带和阻带边缘频率。 2)确定低通模拟滤波器原函数buttap 格式:Z,P,K=buttap(N)其中:N:满足指标的最低滤波器阶数Z:N阶归一化原型巴特沃斯模拟低通滤波器的零点P:N阶归一化原型巴特沃斯模拟低通滤波器的极点K:N阶归一化原型巴特沃斯模拟低通滤波器的增益3)双线性变换函数billinear格式:bz,az=bilinear(bs,zs,Fs/2)其中:as:模拟滤波器传递函数的分母系数 bs:模拟滤波器传递函数的分子系数 az: 数字滤波器传递函数的分母系数 bz: 数字滤波器传递函数的分子系数4) 零点、极点、增益模型转换为传递函数模型zp2tf 格式:Bp,Ap=zp2tf(z,p,k)其中:Bp: 模拟滤波器传递函数的分子系数Ap: 模拟滤波器传递函数的分母系数5) 模拟低通滤波器到模拟低通滤波器的转换lp2lp 格式:b,a=lp2lp(Bp,Ap,Wn)其中:b: 模拟滤波器传递函数的分子系数 a: 模拟滤波器传递函数的分子系数6) 数字滤波器的频率相应freqz 格式: h,w=freqz(bz,az,m)其中,w: m点频率H: m点频率响应 m:采样点五.图像结果N =2Wn =872.6903(3dB截止频率)bz = 0.1053 0.2107 0.1053az = 1.0000 -0.8958 0.3172六、 结果分析本次设计的数字低通滤波器采用巴特沃兹滤波器使用双线性变换法,避免的出现频谱混迭现象。仿真结果中出的模拟和数字滤波器幅频相应符合设计要求即给定技术指标:通带截止频阻带截止频率通带衰减阻带衰减。所仿真结果中数据有N=2,Wn=872.6903.仿真图中符合衰减效果。由此可得所设计的程序符合所设计的技术和参数要求。七心得体会本次设计使用了滤波器设计中的最基本的方法:双线性变换法。滤波器设计原理来比较简单,在MATLAB中有专门的函数可用来调用,实现滤波器的。由于对MATLAB了解的不多,甚至连基本的函数语句都得查书才能知道,这就大大增加了我们设计的时间。有时在调用函数时出现各种错误,得不到正确结果,程序运行时也会有很多的错误。这让我深深体会到,要想正确得出一个波形,需要花很多的时间和很大精力。个人感觉滤波器的设计比较难,而且设计容庞大,使得时间非常紧。不过收获特别大,在不断错误的过程中,我学到了新的知识,同时也磨练了自己的意志。做完本设计,我对低通数字滤波器的原理和设计方法有了更深层次的理解和掌握,对数字滤波器这方面有了系统的理解,收获颇多。八.参考文献信号处理原理与应用 平,王娜,林洪彬 编著 机械工业数字信号处理 王玉德 大学matlab使用教程燕山大学课程设计评审意见表指导教师评语:平时成绩: 指导教师签字:2013 年 6月30日图面与其它成绩:答辩小组评语:设计巧妙,实现设计要求,并有所创新。设计合理,实现设计要求。实现了大部分设计要求。没有完成设计要求,或者只实现了一小部分的设计要求。答辩成绩: 组长签字:2013 年6月30日课程设计综合成绩:答辩小组成员签字: 2013年 6月30日21 / 21