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

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

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

5.3.5Bessel滤波器

前面讲过的各类原型滤波器均没有绘出其相位随频率的变化特性(相频特性)。在后面的数字信号处理学习中将会看到它们的相位特性是非线性的。本节所介绍的Bessel滤波器就能最大限度地减少相频特性的非线性,使得通带内通过的信号形状不变(拷贝不走样)。

Bessel模拟低通滤波器的特点是在零频时具有最平坦的群延迟,并在整个通带内群延迟几乎不变。在零频时的群延迟为。由于这一特点,Bessel模拟滤波器通带内保持信号形状不变。但数字Bessel滤波器没有平坦特性,因此MATLAB信号处理工具箱只有模拟Bessel滤波器设计函数。

函数besselap用于设计Bessel模拟低通滤波器原型,调用格式为:

[z,p,k]=besselap(N)

式中,N为滤波器的阶数,应小于25。z,p,k为滤波器的零点、极点和增益。

滤波器的传递函数无零点,具有与(5-10)式相同的形式。下面用实例观看Bessel滤波器的幅频和相频特性。

【例5-5】绘制5阶和10阶Bessel低通滤波器原型的平方幅频和相频图。

%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 I和II型滤波器在通带或阻带内具有波纹,但在相同过渡带宽的条件下,该滤波器所需的阶数比Butterworth滤波器要少。椭圆滤波器在通带和阻带内均有波纹出现,但在相同过渡带宽的条件下,该滤波器所需的阶数最少。Bessel滤波器具有最宽的过渡带,但具有最优的线性相频特性。因此没有绝对“好”的滤波器,要根据解决问题的不同选择不同的滤波器,因此,每一种滤波器的设计方法我们都要熟练掌握。

5.4 频 率 变

前面所讲的模拟原型滤波器均是截止频率为1的滤波器,在实际设计中是很难遇到的,然而它是设计其他各类滤波器的基础。我们通常遇到的是截止频率任意的低通滤波器、高通滤波器、带通滤波器和带阻滤波器。如何以由低通原型模拟滤波器为基础设计这些滤波器呢?这就要用到我们今天要讲的频率变换。所谓频率变换是指各类滤波器(低通、高通、带通、带阻)和低通滤波器原型的传递函数中频率自变量之间的变换关系。通过频率变换,我们可以从模拟低通滤波器原型获得模拟的低通滤波器、高通滤波器、带通滤波器和带阻滤波器,再借助于s域至z域的变换关系又可以设计各类后面所讲的无限冲激响应数字滤波器,这是滤波器设计的重要方法之一。

MATLAB信号处理工具箱有lp2lp,lp2hp,lp2bp,lp2bs四个频率变换函数。下面分别叙述其使用方法及各参量的意义。

(1)

函数lp2lp用于实现由低通模拟原型滤波器至低通滤波器的频率变换,调用格式为

[bt,at]=lp2lp(b,a,)

其中,a,b为模拟原型滤波器的分母和分子多项式的系数,为低通滤波器所期望的截止频率(rad/s),若给定的单位为Hz,应乘以2a4c26d1e5885305701be709a3d33442f.png。bt,at为返回的低通滤波器的分母和分子多项式的系数。该函数将模拟原型滤波器传递函数执行下面变换:

(5-15)

式中,H(p)为低通原型滤波器传递函数,H(s)为低通滤波器传递函数。该项操作可以执行模拟原型滤波器由截止频率为1到指定截止频率的变换,其原理讨论已超出本课程的范围,可参看其他信号处理参考书。下面的例子说明如何进行模拟原型低通滤波器变换为截止频率不为1的模拟低通滤波器。

【例5-6】将4阶椭圆模拟原型滤波器变换为截止频率为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');ylabel('椭圆 |H(jw)|^2');

title('低通椭圆滤波器(wc=0.5)')

图5-11 将4阶椭圆模拟原型滤波器变换为截止频率为0.5的椭圆模拟低通滤波器的结果

程序的运行结果见图5-11。清楚地表明将截止频率由1变换到0.5。

(2)

函数lp2hp用于实现由低通模拟滤波器至高通滤波器的频率变换。调用格式:

[bt,at]=lp2hp(b,a,)

式中,a4c26d1e5885305701be709a3d33442f.png为高通模拟滤波器所期望的截止频率(rad/s),若给定的频率单位为Hz,应乘以2a4c26d1e5885305701be709a3d33442f.png。该函数将模拟原型滤波器传递函数执行下面变换:

(5-16)

【例5-7】将6阶Chebyshev I型原型滤波器变换为截止频率为0.8的模拟高通滤波器,其中通带波纹Rp=0.5dB。

%Samp5_7

Rp=0.5; %设置滤波器的通带波纹为0.5dB

[z,p,k]=cheb1ap(6,0.5); %设计Chebyshev

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); %由低通原型滤波器转换为截止频率为0.8的高通滤波器

[Ht,wt]=freqs(bt,at,0:0.01:2); %计算滤波器的复数频率响应

subplot(2,1,2),plot(wt,abs(Ht).^2); %绘制传递函数的平方幅频响应

xlabel('w/wc');ylabel('Chebyshev I |H(jw)|^2');

title('Chebyshev I 高通滤波器(wc=0.8)')

图5-12 将6阶Chebyshev I型原型滤波器变换为截止频率为0.8的模拟高通滤波器的结果图

程序运行结果见图5-12。可见实现了从低通滤波器到高通滤波器的转换,并且截止频率也符合例题要求。

(3)

函数lp2bp用于实现由低通模拟原型滤波器至带通滤波器的频率变换。调用格式:

[bt,at]=lp2bp(b,a,a4c26d1e5885305701be709a3d33442f.png,Bw)

式中,a4c26d1e5885305701be709a3d33442f.png为带通滤波器的中心频率(rad/s),Bw为带通滤波器带宽(rad/s)。而

(5-17)

式中, a4c26d1e5885305701be709a3d33442f.png为带通滤波器的下边界频率,a4c26d1e5885305701be709a3d33442f.png为带通滤波器上边界频率。若给定的边界频率为Hz需乘以2a4c26d1e5885305701be709a3d33442f.png

该函数将模拟原型滤波器传递函数执行下面变换运算:

(5-18)

下面用例题说明截止频率和滤波器类型的转换。这里要注意,输出的带通滤波器阶数为模拟原型滤波器阶数的2倍。

【例5-8】将6阶Chebyshev

II型原型滤波器变换为模拟带通滤波器,其中上边界截止频率为0.8 rad/s,下边界截止频率为1.4 rad/s,阻带衰减Rs=20dB。

%Samp5_8

Rs=20;

%滤波器的阻带衰减为20dB

[z,p,k]=cheb2ap(6,Rs); %设计6阶阻带衰减为20dB的Chebyshev II型原型滤波器

[b,a]=zp2tf(z,p,k);

%将零点极点增益形式转换为传递函数形式

[H,w]

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值