新浪博客

转一个讲matlab设计模拟滤波器的文章2(转)

2011-03-08 18:25阅读:


5-9 椭圆模拟原型滤波器平方幅频图

程序运行结果见图5-9。可见阶数为4的椭圆滤波器的过渡带已相当窄(陡),但这种特性的获得是以牺牲通带和阻带的单调平滑特性为代价的。可以看到滤波器的阶数越高平方幅频响应越接近于矩形。

5.3.5

Bessel滤波器 前面讲过的各类原型滤波器均没有绘出其相位随频率的变化特性(相频特性)。在后面的数字信号处理学习中将会看到它们的相位特性是非线性的。本节所介绍的Bessel滤波器就能最大限度地减少相频特性的非线性,使得通带内通过的信号形状不变(拷贝不走样)
Bessel模拟低通滤波器的特点是在零频时具有最平坦的群延迟,并在整个通带内群延迟几乎不变。在零频时的群延迟为。由于这一特点,Bessel模拟滤波器通带内保持信号形状不变。但数字Bessel滤波器没有平坦特性,因此MATLAB信号处理工具箱只有模拟Bessel滤波器设计函数。
函数besselap用于设计Bessel模拟低通滤波器原型,调用格式为:
[z,p,k]=besselap(N)
式中,N为滤波器的阶数,应小于25z,p,k为滤波器的零点、极点和增益。
滤波器的传递函数无零点,具有与(5-10)式相同的形式。下面用实例观看Bessel滤波器的幅频和相频特性。
5-5绘制5阶和10Bessel低通滤波器原型的平方幅频和相频图。
%Samp5_5
clf
n=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=unwrap(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(['N=' num2str(N)]);
grid on
end
5-10 Bessel模拟原型滤波器相频图

可见,Bessel滤波器具有最优线性相频的特点,但这个特点的获得是以牺牲窄过渡带为代价的,即滤波器的幅频平方特性与矩形特性相差甚远。
对所有的模拟原型滤波器做一总结可知:Butterworth滤波器在通带和阻带内均具有平滑单调的特点,但在相同过渡带宽的条件下,该滤波器所需的阶数最多。Chebyshev III型滤波器在通带或阻带内具有波纹,但在相同过渡带宽的条件下,该滤波器所需的阶数比Butterworth滤波器要少。椭圆滤波器在通带和阻带内均有波纹出现,但在相同过渡带宽的条件下,该滤波器所需的阶数最少。Bessel滤波器具有最宽的过渡带,但具有最优的线性相频特性。因此没有绝对“好”的滤波器,要根据解决问题的不同选择不同的滤波器,因此,每一种滤波器的设计方法我们都要熟练掌握。

5.4 频 率 变 换

前面所讲的模拟原型滤波器均是截止频率为1的滤波器,在实际设计中是很难遇到的,然而它是设计其他各类滤波器的基础。我们通常遇到的是截止频率任意的低通滤波器、高通滤波器、带通滤波器和带阻滤波器。如何低通原型模拟滤波器为基础设计这些滤波器呢?这就要用到我们今天要讲的频率变换。所谓频率变换是指各类滤波器(低通、高通、带通、带阻)和低通滤波器原型的传递函数中频率自变量之间的变换关系通过频率变换,我们可以从模拟低通滤波器原型获得模拟的低通滤波器、高通滤波器、带通滤波器和带阻滤波器,再借助于s域至z域的变换关系又可以设计各类后面所讲的无限冲激响应数字滤波器,这是滤波器设计的重要方法之一。
MATLAB信号处理工具箱有lp2lp,lp2hp,lp2bp,lp2bs四个频率变换函数。下面分别叙述其使用方法及各参量的意义。
(1) 函数lp2lp用于实现由低通模拟原型滤波器至低通滤波器的频率变换,调用格式为
[bt,at]=lp2lp(b,a,)
其中,a,b为模拟原型滤波器的分母和分子多项式的系数,为低通滤波器所期望的截止频率(rad/s),若给定的单位为Hz,应乘以2 第5章 模拟滤波器设计 - 诚信是金 - 诚信是金的博客bt,at为返回的低通滤波器的分母和分子多项式的系数。该函数将模拟原型滤波器传递函数执行下面变换:
(5-15)
式中,H(p)为低通原型滤波器传递函数,H(s)为低通滤波器传递函数。该项操作可以执行模拟原型滤波器由截止频率为1到指定截止频率的变换,其原理讨论已超出本课程的范围,可参看其他信号处理参考书。下面的例子说明如何进行模拟原型低通滤波器变换为截止频率不为1的模拟低通滤波器。
5-64阶椭圆模拟原型滤波器变换为截止频率为0.5的椭圆模拟低通滤波器,其中通带波纹Rp=2dB,阻带衰减Rs=30dB
%Samp5_6
Rp=2;Rs=30; %模拟原型滤波器的通带波纹为2dB,阻带衰减为30dB
[z,p,k]=ellipap(4,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); %将模拟原型低通滤波器的截止频率变换为0.5
[Ht,wt]=freqs(bt,at,0:0.01:2); %给出复数频率响应
subplot(2,1,2),plot(wt,abs(Ht).^2); %绘出平方幅频函数
xlabel('w/wc');

我的更多文章

下载客户端阅读体验更佳

APP专享