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

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,应乘以2。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,)
式中,为⾼通模拟滤波器所期望的截⽌频率(rad/s),若给定的频率单位为Hz,应乘以2。该函数将模拟原型滤波器传递函数执⾏下⾯变
换:
(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)')
iccn图5-12 将6阶Chebyshev I型原型滤波器变换为截⽌频率为0.8的模拟⾼通滤波器的结果图
程序运⾏结果见图5-12。可见实现了从低通滤波器到⾼通滤波器的转换,并且截⽌频率也符合例题要求。
(3)
函数lp2bp⽤于实现由低通模拟原型滤波器⾄带通滤波器的频率变换。调⽤格式:
[bt,at]=lp2bp(b,a,,Bw)
式中,为带通滤波器的中⼼频率(rad/s),Bw为带通滤波器带宽(rad/s)。⽽
(5-17)
式中, 为带通滤波器的下边界频率,为带通滤波器上边界频率。若给定的边界频率为Hz需乘以2。
该函数将模拟原型滤波器传递函数执⾏下⾯变换运算:
(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]=freqs(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)')
3d打印玻纤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); %计算滤波器的复数频率响应
subplot(2,1,2),plot(wt,abs(Ht).^2); %绘制平⽅幅频响应
xlabel('w/wc');ylabel('Chebyshev II |H(jw)|^2');
title('Chebyshev II型带通滤波器(wc=0.8~1.4)')
图5-13 将6阶Chebyshev II型原型滤波器变换为模拟带通滤波器的结果图
程序运⾏结果为图5-13。可见该程序实现了由低通原型滤波器到带通滤波器的转换。
(4)
函数lp2bs⽤于实现由低通模拟原型滤波器⾄带阻滤波器的频率变换。调⽤格式
[bt,at]=lp2bs(b,a,,Bw)
式中,为带阻滤波器的中⼼频率(rad/s),Bw为带阻滤波器带宽(rad/s)。⽽
(5-19)
式中, 为带阻滤波器的下边界频率,为带阻滤波器上边界频率。若给定的边界频率为Hz需乘以2。
该函数将模拟原型滤波器传递函数执⾏下⾯变换运算:
(5-20)
注意:输出的带阻滤波器和带通滤波器是滤波器原型阶数的2倍。
【例5-9】 将6阶Butterworth原型滤波器变换为模拟带阻滤波器,其中上边界频率为0.7 rad/s,下边界频率为1.5 rad/s。
%Samp5_9
[z,p,k]=buttap(6); %设计阶数为6的Butterworth模拟原型滤波器
[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('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=0.7~1.5) ')
图5-14 将6阶Butterworth原型滤波器变换为模拟带阻滤波器的结果图
程序运⾏结果为图5-10。可见,该程序实现了由低通原型滤波器到带阻滤波器之间的转换,并且频带参数与所要求的完全⼀致。摄像考勤机
5.5 滤波器最⼩阶数选择
前⾯所述的模拟滤波器设计中,滤波器阶数是

本文发布于:2024-09-25 04:34:07,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/226857.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议