《模拟滤波器设计.doc》由会员分享,可在线阅读,更多相关《模拟滤波器设计.doc(45页珍藏版)》请在三一办公上搜索。
1、第5章 模拟滤波器设计滤波是信号处理的一种基本而重要的技术,利用滤波可从复杂的信号中提取所需要的信号,抑制不需要的部分。第3章中利用FFT进行简单滤波的尝试已初步说明了这个问题。所谓滤波器是指具有一定传输特性的信号处理装置。本章首先介绍模拟滤波器设计原理,然后介绍几种常见原型滤波器的设计,尔后介绍将模拟原型滤波器转换为其他类型滤波器的频率转换方法,最后介绍MATLAB中的模拟滤波器并通过应用实例进行说明。5.1 滤波器的基本概念511滤波原理滤波器,顾名思义,其作用是对输入信号起到滤波的作用。对图5-1所示的线性时不变系统,其时域输入和输出关系为:y(n)=x(n)h(n) (5-1) h(n
2、) x(n) y(n) 图5-1 线性时不变系统示意图若x(n),y(n)的Fourier变换存在,为和,则输入和输出的关系为: (5-2)式中,为系统的频率响应。再假定x(n)的Fourier变换的振幅可用图5-2的上图表示,系统幅频响应可用图5-2的中图表示,则滤波器的输出y(n)的频谱可表示为图5-2的下图。 图5-2 滤波器滤波示意图这样,x(n)通过系统h(n)的结果是使输出y(n)中不再含有的频率成分,而使的成分“不失真”地给以通过。因此设计出不同形状的可以得到不同的滤波结果。若滤波器的输入、输出都是离散时间信号,那么该滤波器的脉冲响应h(n)也必然是离散的。我们称这样的滤波器为数
3、字滤波器(digital filter)。当用硬件实现一个数字滤波器时,所需的元件是延迟器、乘法器和加法器。当在计算机上用软件实现时,它就是一段线性卷积的程序。我们知道模拟滤波器只能用硬件来实现,其元件是电阻、电容、电感及运算放大器等。512滤波器的分类滤波器的种类很多,分类方法也不同,如可以从功能上分,也可以从实现方法上分,或从设计方法上来分等。但总的来说,滤波器可分为两大类,即经典滤波器和现代滤波器。经典滤波器是假定输入信号x(n)中的有用成分和希望去除的成分各自占有不同的频带,如图5-2所示,当x(n)通过一个线性系统(即滤波器)后可将欲去除的成分有效去除。如果信号和噪声的频谱相互重叠,
4、那么经典滤波器将无能为力。现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。一旦信号被估计出,那么估计出的信号将比原信号有更高的信噪比。本课程侧重于经典滤波器。经典滤波器从功能上总的可分为四种,即低通(lLow pass)、高通(hHigh pass)、带通(bBand pass)、带阻(bBand stop)滤波器,当然每一种又有模拟滤波器和数字滤波器两种形式。图5-3和图5-4分别给出了模拟滤波器和数字滤波器的四种形式。图中所给的滤波器的幅频响应都是理想情况,在实际上是不可能实现的。在实际工作中,我们设计的滤波器都是在某些准则下对理想滤波器
5、的近似,这保证了滤波器在物理上是可实现的,且是稳定的。图 5-3 理想模拟滤波器幅频响应图5-4 理想数字滤波器的幅频响应图5-3和图5-4 的理想滤波器在物理上是不可实现的。不可实现的根本原因是从一个频率带到另一个频率带之间存在突变。为了物理上可实现,我们从一个带到另一个带之间设置一个过渡带,且在通带和阻带内也不应该严格为1或零,应给以较小的容限。在中,我们要介绍这种容限。5.2 模拟滤波器的设计原理5.2.1 信号无失真传输的条件所谓信号无失真传输是指输入信号通过系统后,输出信号的幅值和输入信号的幅值成正比。允许有一定的延时,但没有波形上的畸变。因此,系统的频率响应H(j)满足下面的特性:
6、 (5-3)式中,k,td均为常数。即信号无失真传输的条件是:系统的幅频响应|应为常数,相频响应应与频率成比例。或者说,滤波器应具有无限宽的定值幅频与线性相频。通常定义群延迟(Group delay)为信号系统的延迟时间,即: (5-4)群延迟为相频特性曲线的斜率。对于信号无失真传输,td为常数,即群延迟为常数;否则它是频率的非线性函数。5.2.2 理想滤波器的特性滤波器是一个选频装置。理想滤波器应能无失真地传输有用信号,而又能完全抑制无用信号。有用信号和无用信号往往占有不同的频带。信号能通过滤波器的频带称为通带(Passband)。信号被抑制的频带称为阻带(Stopband)。理想滤波器频率
7、特性可写为: (5-5)但通过后面的讲解我们会知道理想滤波器是物理不可实现系统。实际滤波器的频率特性只能“逼近”理想滤波器。图 5-5为低通滤波器的幅频特性示意图。图5-5低通滤波器的幅频特性示意图可见,滤波器的幅频响应在通带内不是完全平直的,而是呈波纹变化;在阻带内,幅频特性也不为零,而是衰减至某个值;在通带和阻带之间存在一个过渡带,而不是突然下降。通常,实际设计要求滤波器的技术指标包括通带波纹Rp(Passband ripple)(dB)、阻带衰减Rs(Stopband attenuation)(dB)、通带边界频率、阻带边界频率、过渡带宽。滤波器的通带波纹Rp为相对于频率响应最大点(一般
8、为1)的下降,因此下降越少说明通带越平直,滤波器的滤波效果越好(通常为15dB)。滤波器的阻带衰减Rs也是相对于频率响应最大点(一般为1)的下降,因此下降越多说明信号在阻带内越不容易通过,因此滤波效果越好(通常要大于15dB)。过渡带宽越窄,滤波器的频率特性越接近于直角矩形特性,滤波效果也越好。应该指出的是,图5-5给出的是低通滤波器的情况,对于高通、带通、带阻具有相同的参数。5.2.3 模拟滤波器传递函数设计原理模拟滤波器的设计理论通常在Laplace域内进行讨论,本节只讨论其应用。模拟滤波器的技术指标可由平方幅值响应函数的形式给出,而和传递函数H(s)存在下面关系: (5-6)即 (5-7
9、)当给定模拟滤波器的技术指标后,由求出A(-s2),再适当地分配零极点可求出H(s)。为了使滤波器稳定,H(s)的极点必须落在s平面左半平面,这是因为对于一个滤波器的极点p,就可以写成的形式,其逆Laplace变换(对应于时间域)为,若p0,则随着时间增大至无穷,该滤波器的输出将出现不稳定。滤波器的零点选择可任取A(-s2)的一半零点,这是因为滤波器对Laplace域表示的传递函数并无特殊要求,但如果要求H(s)具有最小相位,零点也必须选择在s左半平面。5.3 模拟原型滤波器本节介绍常用的模拟原型滤波器的主要特点及其MATLAB实现,包括Butterworth、Chebyshev I, Che
10、byshevII, Elliptical、Bessel原型低通滤波器的设计。模拟原型滤波器指的是截止频率为1的滤波器。后面所讲的各类模拟滤波器和数字滤波器可通过这些低通原型滤波器变换得到。5.3.1 Butterworth滤波器Butterworth模拟低通滤波器的平方幅频响应函数为: (5-8)式中,为低通滤波器的截止频率(Cutoff frequency),N为滤波器的阶数。Butterworth滤波器的特点:通带内具有最大平坦的频率特性,且随着频率增大平滑单调下降;阶数愈高,特性愈接近矩形,过渡带愈窄,传递函数无零点。这里的特性接近矩形,是指通带频率响应段与过渡带频率响应段的夹角接近直角
11、。通常该角为钝角,如果该角为直角,则为理想滤波器。所谓滤波器的零点就是将该点的值代入传递函数后,传递函数的值为零。所谓函数的极点就是将该点的值代入传递函数后,传递函数的值为无穷大。滤波器的增益是指传递函数表达式前的常数。若系统的传递函数表示为 (5-9)则滤波器零点为z(1),z(2),z(nz),极点为p(1),p(2),p(np),滤波器的增益为K。这里所说的零点和极点分布在一个圆上为Laplace域中的形式,感兴趣的读者同学可查看数学中的Laplace变换。MATLAB信号处理工具箱提供Butterworth模拟低通滤波器原型设计函数buttap,函数调用形式为:z,p,k=buttap
12、(n) 式中,n为butterworth滤波器阶数;z,p,k分别为滤波器的零点、极点和增益。Butterworth滤波器传递函数具有下面的形式: (5-10)滤波器没有零点,极点为p(1),p(2),p(n),滤波器的增益为K。在有关模拟滤波器设计的MATLAB程序中,经常遇到一些特定函数。b,a=zp2tf(z,p,k)为将模拟原型滤波器函数(如buttap)设计出的零点z,极点p和增益k形式转换为传递函数(Transfer function)形式;其中,b为滤波器传递函数分子多项式系数,a为滤波器传递函数分母多项式系数,见(4-4)式。H,w=freqs(b,a,w)求出传递函数形式(分
13、子和分母多项式的系数为b,a)表示的滤波器的对应于频率点w的复数频率响应H(包括实部和虚部),这里w为一个矢量,表示对应的角频率。若该函数不写输出变量,则执行后绘出该滤波器的幅频响应和相频响应图。【例5-1】绘制Butterworth低通模拟原型滤波器的幅频平方响应曲线,阶数分别为2,5,10,20。%Samp5_1n=0:0.01:2; %频率点for ii=1:4 %取4种滤波器 switch ii case 1,N=2; case 2,N=5; case 3,N=10; case 4,N=20; end z,p,k=buttap(N); %设计Butterworth滤波器 b,a=zp2
14、tf(z,p,k); %将零点极点增益形式转换为传递函数形式 H,w=freqs(b,a,n); %按n指定的频率点给出频率响应 magH2=(abs(H).2; %给出传递函数幅度平方 hold on; plot(w,magH2); %绘制传递函数幅度平方endxlabel(w/wc);ylabel(|H(jw)|2);title(Butterworth模拟原型滤波器);text(1.5,0.18,n=2) %作必要的标记text(1.3,0.08,n=5)text(1.16,0.08,n=10)text(0.93,0.98,n=20)grid on;图5-6 Butterworth滤波器原
15、型平方幅频图程序的运行结果见图5-6。可以看到,滤波器的幅频平方特性随着频率单调下降。随着滤波器阶数的增大,其幅频特性逐渐接近矩形,与前面介绍的Butterworth滤波器的特性一致。5.3.2 Chebyshev I型Chebvshev I型模拟低通滤波器的平方幅值响应函数为 (5-11)式中,为小于1的正数,表示通带内的幅值波纹情况;为截止频率,N为Chebyshev多项式阶数,为Chebyshev多项式,定义为: (5-12)Chebyshev I型滤波器特点是:通带内具有等波纹起伏特性,而在阻带内则单调下降,且具有更大衰减特性;阶数愈高,特性愈接近矩形,传递函数没有零点。MATLAB信
16、号处理工具箱函数cheb1ap设计N阶Chebyshev I型模拟低通滤波器原型。因为Chebyshev I型模拟原型滤波器通带内具有等波纹特点,所以在调用时需增加通带波纹所能下降的最低限度Rp(dB)的参数。由于Rp为相对于增益1的下降分贝数,所以该值越小滤波器在通带内越接近1,滤波器的性能越好,通常取值范围为15(dB)。此函数的调用格式为:z,p,k=cheb1ap(N,Rp)式中,N为滤波器的阶数,Rp为通带波纹,单位为dB。z,p,k分别为滤波器的零点、极点和增益。滤波器传递函数具有与(5-9)式相同的形式。【例5-2】绘制Chebyshev I型模拟低通滤波器的平方幅频响应曲线,阶
17、数为2,4,6,8。%Samp5_2n=0:0.01:2; %设置频率点for ii=1:4 switch ii case 1,N=2; case 2,N=4; case 3,N=6; case 4,N=8; end Rp=1; %设置通带波纹为1dB z,p,k=cheb1ap(N,Rp); %设计Chebyshev I型滤波器 b,a=zp2tf(z,p,k); %转换为传递函数形式 H,w=freqs(b,a,n); %求得传递函数的频率特性 magH2=(abs(H).2; %求得传递函数的幅频响应posplot=2,2, num2str(ii);%将数字ii转换为字符串,与2,2,合
18、并并赋给posplot。 subplot(posplot); plot(w,magH2); title(N= num2str(N);%将数字N转换为字符串与N=合并作为标题。 xlabel(w/wc); ylabel(Chebyshev I |H(jw)|2);grid onend图5-7 Chebyshev I型模拟原型滤波器平方幅频图程序的运行结果见图5-7。与Butterworth滤波器相比(图5-6),可以看到:在相同的阶数下,Chebyshev I型模拟原型滤波器具有更窄(更陡)的过渡带。但这种特性是以牺牲了通带的单调平滑特性(而成为波纹状)为代价的。如果我们不想牺牲通带内的单调平滑
19、特性有无办法设计阶数较小而过渡带较窄的滤波器呢?这就涉及Chebyshev II型滤波器。5.3.3 Chebyshev II型滤波器Chebyshev II型低通模拟滤波器的平方幅值响应函数为: (5-13)式中各项参数的意义同上。Chebyshev II型模拟滤波器的特点是:阻带内具有等波纹的起伏特性,而在通带内是单调、平滑的,阶数愈高,频率特性曲线愈接近矩形,传递函数既有极点又有零点。Chebyshev II型模拟滤波器传递函数具有(5-9)式的形式。滤波器零点为z(1),z(2),z(nz),极点为p(1),p(2),p(np),滤波器的增益为K。MATLAB信号处理工具箱提供函数ch
20、eb2ap设计N阶Chebyshev II型模拟滤波器的原型。由于Chebyshev II型滤波器阻带内有波纹,通带内单调平滑,则必须给定阻带衰减Rs。前面已经讲过,通带波纹和阻带衰减都是相对于增益1的下降,因此,Rp和Rs越大则与通带增益1的差距越大。因此,阻带衰减Rs越大对应的滤波器滤波效果越好,通常Rs的取值要大于16dB。该函数通常调用格式为:z,p,k=cheb2ap(N,Rs)式中,N为滤波器的阶数;Rs为阻带波纹,单位dB; z,p,k为滤波器的零极点和增益。【例5-3】 绘制Chebyshev II型原型模拟滤波器的平方幅频响应曲线,阶数分别为2,4,6,8。%Samp5_3n
21、=0:0.01:2; %设置频率点for ii=1:4 switch ii case 1,N=2; case 2,N=4; case 3,N=6; case 4,N=8; end Rs=16; %阻带衰减设置为16dB z,p,k=cheb2ap(N,Rs); %设计Chebyshev II型模拟原型滤波器 b,a=zp2tf(z,p,k); %转化为传递函数 H,w=freqs(b,a,n); %求出滤波器的频率响应 magH2=(abs(H).2; %频率响应的幅度平方 posplot=2,2, num2str(ii); subplot(posplot); plot(w,magH2); %
22、绘出幅频平方响应函数 title(N= num2str(N); xlabel(w/wc); ylabel(Chebyshev II |H(jw)|2); grid on;end图5-8 Chebyshev II型模拟原型滤波器平方幅频图程序运行结果见图5-8。可见Chebyshev II型滤波器在通带内是单调平滑的,而阻带内却出现了波纹。随着滤波器阶数的增高,其幅频特性越接近矩形。由前面的讲解可知,Butterworth滤波器具有单调平滑的频率特性,但在过渡带宽相同的条件下,所需的滤波器阶数较高(即设计的滤波器滤波速度较慢,成本较高)。而Chebyshev I和II型滤波器在通带或阻带内有波纹
23、出现,但在过渡带宽相同的条件下,所需的滤波器阶数较低(即设计的滤波器滤波速度较快,成本较低)。如果我们对通带和阻带内的平滑特性均不作限制,能否在相同的过渡带宽的情况下设计出阶数更低的滤波器呢?这就是下面要讲的椭圆滤波器。5.3.4 椭圆滤波器椭圆(Elliptic)模拟低通原型滤波器的平方幅值响应函数为 (5-14)式中,为小于1的正数,表示波纹情况;为低通滤波器的截止频率(Cutoff frequency),N为滤波器的阶数,为椭圆函数,其定义已超出本课程的范围,我们直接利用。Elliptic滤波器的特点:在通带和阻带内均具有等波纹起伏特性,与以上滤波器原型相比,相同的性能指标所需的阶数最小
24、,但相频响应具有明显的非线性。MATLAB信号处理工具箱提供Elliptic模拟低通滤波器原型设计函数ellipap。由于椭圆滤波器通带和阻带均有波纹,因此函数输入参数中通带波纹和阻带衰减均需给出。该函数调用形式为:z,p,k=ellipap(n,Rp,Rs)式中,n为椭圆滤波器阶数;Rp,Rs分别为通带波纹和阻带衰减,单位dB,通常滤波器的通带波纹的范围为15dB,阻带衰减的范围大于15dB。z,p,k分别为滤波器的零点、极点和增益。滤波器传递函数具有与(5-9)式相同的形式。 【例5-4】 绘制Elliptic低通模拟原型滤波器的幅频平方响应曲线,阶数分别为2,34,64,85。%Samp
25、5_4n=0:0.01:2; %设置频率点for ii=1:4 switch ii case 1,N=2; case 2,N=3; case 3,N=4; case 4,N=5; end Rp=1; Rs=15; %设置通带波纹为1dB,阻带衰减为15dB z,p,k=ellipap(N,Rp,Rs); %设计椭圆滤波器 b,a=zp2tf(z,p,k); %将零点极点增益形式转化为传递函数形式 H,w=freqs(b,a,n); %求得传递函数的复数频率响应 magH2=(abs(H).2; %给出幅度平方函数 posplot=2,2, num2str(ii); %给出绘图区域 subplo
26、t(posplot); plot(w,magH2); ylim(0 1) %绘出幅度平方函数 title(N= num2str(N); xlabel(w/wc); ylabel(椭圆 |H(jw)|2); grid on;end图5-9 椭圆模拟原型滤波器平方幅频图 程序运行结果见图5-9。可见阶数为4的椭圆滤波器的过渡带已相当窄(陡),但这种特性的获得是以牺牲通带和阻带的单调平滑特性为代价的。可以看到滤波器的阶数越高平方幅频响应越接近于矩形。5.3.5 Bessel滤波器前面讲过的各类原型滤波器均没有绘出其相位随频率的变化特性(相频特性)。在后面的数字信号处理学习中将会看到它们的相位特性是非
27、线性的。本节所介绍的Bessel滤波器就能最大限度地减少相频特性的非线性,使得通带内通过的信号形状不变(拷贝不走样)。Bessel模拟低通滤波器的特点是在零频时具有最平坦的群延迟,并在整个通带内群延迟几乎不变。在零频时的群延迟为。由于这一特点,Bessel模拟滤波器通带内保持信号形状不变。但数字Bessel滤波器没有平坦特性,因此MATLAB信号处理工具箱只有模拟Bessel滤波器设计函数。函数besselap用于设计Bessel模拟低通滤波器原型,调用格式为:z,p,k=besselap(N)式中,N为滤波器的阶数,应小于25。z,p,k为滤波器的零点、极点和增益。滤波器的传递函数无零点,具
28、有与(5-10)式相同的形式。下面用实例观看Bessel滤波器的幅频和相频特性。【例5-5】绘制5阶和10阶Bessel低通滤波器原型的平方幅频和相频图。%Samp5_5clfn=0:0.01:2; %设置频率点for ii=1:2 switch ii case 1,pos=1;N=5; case 2,pos=3;N=10; end z,p,k=besselap(N); %设计Bessel模拟滤波器 b,a=zp2tf(z,p,k); %将零点极点增益形式转化为传递函数形式 H,w=freqs(b,a,n); %求得传递函数的复数频率响应 magH2=(abs(H).2; phaH=unwra
29、p(angle(H); %求得函数的相位角并进行解缠绕运算 phaH=phaH*180/pi; %将相位角由弧度转化为度 posplot=2,2, num2str(pos); %设置绘图位置字符串 subplot(posplot); plot(w,magH2); grid on %绘出平方幅频响应 title(N= num2str(N); xlabel(w/wc); ylabel(Bessel |H(jw)|2); grid on subplot(2,2, num2str(pos+1); plot(w,phaH); xlabel(w/wc);ylabel(Bessel 相位/o); title
30、(N= num2str(N); grid onend图5-10 Bessel模拟原型滤波器相频图可见,Bessel滤波器具有最优线性相频的特点,但这个特点的获得是以牺牲窄过渡带为代价的,即滤波器的幅频平方特性与矩形特性相差甚远。对所有的模拟原型滤波器做一总结可知:Butterworth滤波器在通带和阻带内均具有平滑单调的特点,但在相同过渡带宽的条件下,该滤波器所需的阶数最多。Chebyshev I和II型滤波器在通带或阻带内具有波纹,但在相同过渡带宽的条件下,该滤波器所需的阶数比Butterworth滤波器要少。椭圆滤波器在通带和阻带内均有波纹出现,但在相同过渡带宽的条件下,该滤波器所需的阶数
31、最少。Bessel滤波器具有最宽的过渡带,但具有最优的线性相频特性。因此没有绝对“好”的滤波器,要根据解决问题的不同选择不同的滤波器,因此,每一种滤波器的设计方法我们都要熟练掌握。5.4 频 率 变 换前面所讲的模拟原型滤波器均是截止频率为1的滤波器,在实际设计中是很难遇到的,然而它是设计其他各类滤波器的基础。我们通常遇到的是截止频率任意的低通滤波器、高通滤波器、带通滤波器和带阻滤波器。如何以由低通原型模拟滤波器为基础设计这些滤波器呢?这就要用到我们今天要讲的频率变换。所谓频率变换是指各类滤波器(低通、高通、带通、带阻)和低通滤波器原型的传递函数中频率自变量之间的变换关系。通过频率变换,我们可
32、以从模拟低通滤波器原型获得模拟的低通滤波器、高通滤波器、带通滤波器和带阻滤波器,再借助于s域至z域的变换关系又可以设计各类后面所讲的无限冲激响应数字滤波器,这是滤波器设计的重要方法之一。MATLAB信号处理工具箱有lp2lp,lp2hp,lp2bp,lp2bs四个频率变换函数。下面分别叙述其使用方法及各参量的意义。(1) 函数lp2lp用于实现由低通模拟原型滤波器至低通滤波器的频率变换,调用格式为bt,at=lp2lp(b,a,)其中,a,b为模拟原型滤波器的分母和分子多项式的系数,为低通滤波器所期望的截止频率(rad/s),若给定的单位为Hz,应乘以2。bt,at为返回的低通滤波器的分母和分
33、子多项式的系数。该函数将模拟原型滤波器传递函数执行下面变换: (5-15)式中,H(p)为低通原型滤波器传递函数,H(s)为低通滤波器传递函数。该项操作可以执行模拟原型滤波器由截止频率为1到指定截止频率的变换,其原理讨论已超出本课程的范围,可参看其他信号处理参考书。下面的例子说明如何进行模拟原型低通滤波器变换为截止频率不为1的模拟低通滤波器。【例5-6】将4阶椭圆模拟原型滤波器变换为截止频率为0.5的椭圆模拟低通滤波器,其中通带波纹Rp=2dB,阻带衰减Rs=30dB。%Samp5_6Rp=2;Rs=30; %模拟原型滤波器的通带波纹为2dB,阻带衰减为30dB。z,p,k=ellipap(4
34、,Rp,Rs); %设计椭圆滤波器b,a=zp2tf(z,p,k); %由零点极点增益形式转换为传递函数形式H,w=freqs(b,a,0:0.01:2); %给出复数频率响应subplot(2,1,1),plot(w,abs(H).2); %绘出平方幅频函数xlabel(w/wc);ylabel(椭圆 |H(jw)|2);title(原型低通椭圆滤波器(wc=1)bt,at=lp2lp(b,a,0.5);Ht,wt=freqs(bt,at,0:0.01:2); %给出复数频率响应subplot(2,1,2),plot(wt,abs(Ht).2); %绘出平方幅频函数xlabel(w/wc);
35、ylabel(椭圆 |H(jw)|2);title(低通椭圆滤波器(wc=0.5) 图5-程序的运行结果见图5-11。清楚地表明将截止频率由1变换到0.5。(2) 函数lp2hp用于实现由低通模拟滤波器至高通滤波器的频率变换。调用格式:bt,at=lp2hp(b,a,)式中,为高通模拟滤波器所期望的截止频率(rad/s),若给定的频率单位为Hz,应乘以2。该函数将模拟原型滤波器传递函数执行下面变换: (5-16)【例5-7】将6阶Chebyshev I型原型滤波器变换为截止频率为0.8的模拟高通滤波器,其中通带波纹Rp=0.5dB。%Samp5_7z,p,k=cheb1ap(6,); %设计C
36、hebyshev I型模拟原型滤波器b,a=zp2tf(z,p,k); %由零点极点增益形式转化为传递函数形式H,w=freqs(b,a,0:0.01:2); %计算传递函数的复数频率响应subplot(2,1,1),plot(w,abs(H).2); %绘制传递函数的平方幅频响应xlabel(w/wc);ylabel(Chebyshev I |H(jw)|2);title(Chebyshev I 低通原型滤波器(wc=1)bt,at=lp2hp(b,a,0.8);Ht,wt=freqs(bt,at,0:0.01:2); %计算滤波器的复数频率响应subplot(2,1,2),plot(wt,
37、abs(Ht).2); %绘制传递函数的平方幅频响应xlabel(w/wc);ylabel(Chebyshev I |H(jw)|2);title(Chebyshev I 高通滤波器(wc=0.8)图5-程序运行结果见图5-12。可见实现了从低通滤波器到高通滤波器的转换,并且截止频率也符合例题要求。(3) 函数lp2bp用于实现由低通模拟原型滤波器至带通滤波器的频率变换。调用格式:bt,at=lp2bp(b,a,Bw)式中,为带通滤波器的中心频率(rad/s),Bw为带通滤波器带宽(rad/s)。而 (5-17)式中, 为带通滤波器的下边界频率,为带通滤波器上边界频率。若给定的边界频率为Hz需
38、乘以2。该函数将模拟原型滤波器传递函数执行下面变换运算: (5-18)下面用例题说明截止频率和滤波器类型的转换。这里要注意,输出的带通滤波器阶数为模拟原型滤波器阶数的2倍。【例5-8】将6阶Chebyshev II型原型滤波器变换为模拟带通滤波器,其中上边界截止频率为0.8 rad/s,下边界截止频率为1.4 rad/s,阻带衰减Rs=20dB。%Samp5_8Rs=20; %滤波器的阻带衰减为20dBz,p,k=cheb2ap(6,Rs); %设计6阶阻带衰减为20dB的Chebyshev II型原型滤波器b,a=zp2tf(z,p,k); %将零点极点增益形式转换为传递函数形式H,w=fr
39、eqs(b,a,0:0.01:2); %计算模拟原型滤波器的复数频率响应subplot(2,1,1),plot(w,abs(H).2); %绘制平方幅频响应xlabel(w/wc);ylabel(Chebyshev II |H(jw)|2);title(Chebyshev II 型低通原型滤波器(wc=1)w1=0.8;w2=1.4; %给定欲设计滤波器通带的下限和上限频率w0=sqrt(w1*w2);bw=w2-w1; %计算中心点频率和频带宽度bt,at=lp2bp(b,a,w0,bw); %频率转换Ht,wt=freqs(bt,at,0:0.01:2); %计算滤波器的复数频率响应sub
40、plot(2,1,2),plot(wt,abs(Ht).2); %绘制平方幅频响应xlabel(w/wc);ylabel(Chebyshev II |H(jw)|2);title(Chebyshev II型带通滤波器(wc)图5-13 将6阶Chebyshev II型原型滤波器变换为模拟带通滤波器的结果图程序运行结果为图5-13。可见该程序实现了由低通原型滤波器到带通滤波器的转换。(4) 函数lp2bs用于实现由低通模拟原型滤波器至带阻滤波器的频率变换。调用格式bt,at=lp2bs(b,a,Bw)式中,为带阻滤波器的中心频率(rad/s),Bw为带阻滤波器带宽(rad/s)。而 (5-19)
41、式中, 为带阻滤波器的下边界频率,为带阻滤波器上边界频率。若给定的边界频率为Hz需乘以2。该函数将模拟原型滤波器传递函数执行下面变换运算: (5-20)注意:输出的带阻滤波器和带通滤波器是滤波器原型阶数的2倍。【例5-9】 将6阶Butterworth原型滤波器变换为模拟带阻滤波器,其中上边界频率为0.7 rad/s,下边界频率为1.5 rad/s。%Samp5_9z,p,k=buttap(6); %设计阶数为6的Butterworth模拟原型滤波器b,a=zp2tf(z,p,k); %将零点极点增益形式转换为传递函数形式H,w=freqs(b,a,0:0.01:2); %计算指定频率点的复数
42、频率响应subplot(2,1,1),plot(w,abs(H).2); %绘制平方幅频响应xlabel(w/wc);ylabel(Butterworth |H(jw)|2);title(Btterworth低通原型滤波器(wc=1)w1=0.7;w2=1.5; %带阻滤波器的下限及上限频率w0=sqrt(w1*w2);bw=w2-w1; %计算中心点频率和阻带宽度bt,at=lp2bs(b,a,w0,bw); %频率转换Ht,wt=freqs(bt,at,0:0.01:2); %计算带阻滤波器指定点的复数频率响应subplot(2,1,2),plot(wt,abs(Ht).2);%绘制平方幅频响应xlabel(w/wc);ylabel(Butterworth |H(jw)|2);title(Butterworth带阻滤波器(wc) )图5-14 将6阶Butterworth原型滤波器变换为模拟带阻滤波器的结果图程序运行结果为图5-10。可见,该程序实现了由低通原型滤波器到带阻滤波器之间的转换,并且频带参数与所要求的完全一致。5.5 滤波器最小阶数选择前面所述的模拟滤波器设计中,滤波器阶数是我们在编程时任意指定的。其实它是决定滤波器品质