模拟有源滤波器设计的MATLAB实现 下载本文

4 模拟滤波器的逼近理论

由于实际的滤波器与理想的滤波器存在差距,所以我们每个滤波器都有一个原型与之对应。本章介绍常用的模拟原型滤波器的主要特点及其MATLAB实现,包括Butterworth、Chebyshev I, ChebyshevII, Elliptical、Bessel原型低通滤波器的设计。模拟原型滤波器指的是截止频率为1的滤波器。后面所讲的各类模拟滤波器和数字滤波器可通过这些低通原型滤波器变换得到。

4.1 Butterworth滤波器

Butterworth模拟低通滤波器的平方幅频响应函数为:

H?j???A?2???211????c?2N (16)

式中,?c为低通滤波器的截止频率,N为滤波器的阶数。

Butterworth滤波器的特点:通带内具有最大平坦的频率特性,且随着频率增大平滑单调下降;阶数愈高,特性愈接近矩形,过渡带愈窄。传递函数无零点,极点等距离地分布在以s??c为半径的圆周上。

所谓滤波器的零点就是将该点的值代入传递函数后,传递函数的值为零。所谓函数的极点就是将该点的值代入传递函数后,传递函数的值为无穷大。滤波器的增益是指传递函数表达式前的系数。若系统的传递函数表示为:

H?s??Z(s)K?s?z(1)??s?z(2)???s?z(nz)?? (17)

??????P(s)s?p(1)s?p(2)?s?p(np)则滤波器零点为??z?1?,z?2?,?,z(nz)??,极点为??p?1?,p?2?,?,p(np)??,滤波器的增益为K。

这里所说的零点和极点分布在一个圆上为Laplace域中的形式,感兴趣的同学可查看数学中的Laplace变换。

MATLAB信号处理工具箱提供Butterworth模拟低通滤波器原型设计函数buttap,函数调用形式为:

?z,p,k??buttap?n?

式中,n为butterworth滤波器阶数;z,p,k分别为滤波器的零点、极点和增益。

Butterworth滤波器传递函数具有下面的形式:

word文档 可自由编辑

H?s??Z(s)K (18) ?P(s)?s?p(1)??s?p(2)???s?p(n)?滤波器没有零点,极点为??p?1?,p?2?,?,p(n)??,滤波器的增益为K。 在有关模拟滤波器设计的MATLAB程序中,经常遇到一些特定函数。

?b,a??buttap)设计出的零点z,极zp2tfk?z,p,?为将模拟原型滤波器函数(如

点p和增益k形式转换为传递函数(transfer function)形式;其中,b为滤波器传递函数分子多项式系数,a为滤波器传递函数分母多项式系数。

?H,w??(分子和分母多项式的系数为b,a)表示freqsw?b,a,?求出传递函数形式

的滤波器的对应于频率点w的复数频率响应H(包括实部和虚部),这里w为一

个矢量,表示对应的角频率。若该函数不写输出变量,则执行后绘出该滤波器的幅频响应和相频响应图。

图9 Butterworth滤波器原型平方幅频图

由图9知,Butterworth滤波器的幅频平方特性随着频率单调下降。随着滤波器阶数的增大,其幅频特性逐渐接近矩形。 4.1.1 Butterworth滤波器应用

设计一个模拟带通滤波器,我们将设计指标改为:通带频率:2000~3000Hz,两侧过渡带宽500Hz,通带波纹1dB,阻带衰减100dB。检验信号

x(t)?sin2?f1t?0.5cos2?f2t?0.5sin2?f3t,其中f1=100Hz,f2=2500Hz,f3=3900Hz。信号的采样频率为10000Hz。

程序如下:

wp=[2000 3000]*2*pi;ws=[1500 3500]*2*pi;Rp=1;Rs=100; %滤波器设计参数,对于给定HZ应乘以2?

[N,Wn]=buttord(wp,ws,Rp,Rs,'s'); %求得滤波器的最小阶数和截止频率

word文档 可自由编辑

w=linspace(1,4000,1000)*2*pi; %设置绘制频率响应的频率点 [b,a]=butter(N,Wn,'s'); %设计模拟Butterworth滤波器 H=freqs(b,a,w); %计算给定频率点的复数频率响应

magH=abs(H);phaH=unwrap(angle(H)); %计算幅频响应和相频响应 plot(w/(2*pi),20*log10(magH)); %以频率为横坐标绘制幅频响应 xlabel('Frequency/Hz');ylabel('Magnitude/dB'); title('Butterworth analog bandpass filter'); hold on;

plot([1500 1500],ylim); plot([3500 3500],ylim); %绘制阻带边界 grid on figure(2)

dt=1/10000; %模拟信号采样间隔

f1=100;f2=2500;f3=3900;%输入信号的三个频率成分 t=0:dt:0.04; %给定模拟时间段

x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t)+0.5*sin(2*pi*f3*t); %输入信号 H=[tf(b,a)]; %滤波器在MATLAB系统中的表示 [y,t1]=lsim(H,x,t); %模拟输出

subplot(211),plot(t,x),title('Input signal') %绘出输入信号 subplot(212),plot(t1,y) %绘制输出信号 title('Output signal'),xlabel('Time/s')

图10 模拟滤波器幅频响应,阻带边界

由图10可见,滤波器的幅频响应完全符合要求。在阻带边界确实下降到100dB。3900Hz和100Hz的频率均在阻带内,只有25000Hz的频率在通带内。

word文档 可自由编辑

图11 滤波器的输入信号和输出信号

由图11可见,通过模拟系统后,3900Hz的高频成分和100Hz的低频成分被滤除了,输出只含有2500Hz频率成分的振动。

4.2 切比雪夫(chebyshev)滤波器

巴特沃兹滤波器在通带内幅度特性是单调下降的,如果阶次一定,则在靠近截止?c处,幅度下降很多,或者说,为了使通带内的衰减足够小,需要的阶次N很高,为了克服这一缺点,采用切比雪夫多项式来逼近所希望的|H(j?)|2。切比雪夫滤波器的|H(j?)|2在通带范围内是等幅起伏的,所以在同样的通常内衰减要求下,其阶数较巴特沃兹滤波器要小。 4.2.1 Chebyshev I型

Chebvshev I型模拟低通滤波器的平方幅值响应函数为: H?j???A??2??212???1??2CN???c?? (19)

式中,?为小于1的正数,表示通带内的幅值波纹情况;?c为截止频率,N

?为Chebyshev多项式阶数,CN?????为Chebyshev多项式,定义为:

c???cosNcos?1?x?x?1 CN(x)?? (20) ?1??coshNcoshxx?1?????Chebyshev I型滤波器特点是:通带内具有等波纹起伏特性,而在阻带内则

word文档 可自由编辑