原创 用matlab确定椭圆滤波器的阶数(原创)

2009-2-6 20:41 36707 21 21 分类: 模拟

matlab确定椭圆滤波器的阶数(原创)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


        首先要安装Matlab,尽管Matlab很早已经出了Matlab7,但安装文件很大,如果机器不太好的话,完全没必要,装个matlab6.5就够了,下面的Matlab6.5的下载地址,经过了验证,可以下载,并且用迅雷下载的话,速度很快。


请使用右键-迅雷下载--matlab6.5下载地址


Matlab的信号处理工具箱提供了设计椭圆滤波器的函数:ellipord函数和ellip函数。


 


ellipord函数


求椭圆滤波器的阶数


调用格式:[n,Wp] = ellipord(Wp,Ws,Rp,Rs)


n-椭圆滤波器最小阶数;


Wp-椭圆滤波器通带截止角频率;


Ws-椭圆滤波器阻带起始角频率;


Rp-通带波纹(dB);


Rs-阻带最小衰减(dB)


 


其中WpWs都是角频率,值在0~1之间,当采样频率为f时,奈奎斯特频率为f/2


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 


63c9b19f-6e2a-4755-bede-037fbe4c3885.JPG


 

例如:设计一个低通椭圆滤波器,通带截止频率为10MHz,阻带起始频率为11MHz,通带波纹为小于0.25dB,阻带衰减为60dB,采样频率f=100MHz,其程序为:https://static.assets-stash.eet-china.com/album/old-resources/2009/2/6/ba02857b-94c9-43e1-8f03-21001cdb2a9f.rar


 


Elliptic_n.m文件:


f=100000000;


fn=f/2;


Rp=0.25;


Rs=60;


Wp=10000000/fn;


Ws=11000000/fn;


[n,Wn]=ellipord(Wp,Ws,Rp,Rs);


 


程序运行:


>> run ellip_n


>> n


n =


     9


 


        椭圆滤波器的阶数n=9与我的另一篇blog文章“椭圆滤波器设计”用椭圆滤波器选择性图所得到的阶数是一样的。


 


ellip函数


椭圆滤波器设计


调用格式:[b,a] = ellip(n,Rp,Rs,Wp)


 [b,a] = ellip(n,Rp,Rs,Wp,'ftype')


返回长度为n+1的滤波器系数行向量ba,


 


f2fe3c93-ed98-4db5-a2ab-52542f741b12.JPG


'ftype' = 'high' 高通滤波器


'ftype' = 'low'低通滤波器


'ftype' = 'stop'带阻滤波器


程序运行:


>>[b,a]=ellip(n,Rp,Rs,Wn)


>> freqz(b,a,512,f)


 


512为频率等分点,为默认)



 


点击看大图  


  


        可以看到滤波器在8MHz的时候就开始截止了,到10MHz的时候衰减得很厉害。不过用ellipord函数确定椭圆滤波器的阶数还是很有用的,通过确定阶数,从而在通过查询元件归一化参数值表,设计出低通椭圆滤波器。具体可参考我的blog文:椭圆滤波器设计。


 


 


参考资料:


1)DDS芯片AD9850应用:输出低通滤波器的设计


http://hi.baidu.com/winston_phil/blog/item/2241a59790fc436e55fb96f7.html


2)数字椭圆滤波器的Matlab设计与实现,<<现代电子技术>>2007 30 06期,作者: 王靖, 李永全  


                              pdf


3)Minimum order for elliptic filters – MATLAB


http://www.mathworks.com/access/helpdesk/help/toolbox/signal/ellipord.html


4)Elliptic filter design – MATLAB


http://www.mathworks.com/access/helpdesk/help/toolbox/signal/ellip.html 


5)请问matlab中怎么调用m文件啊!!


http://tieba.baidu.com/f?kz=268172890


6matlabfreqz 


http://blog.csdn.net/silenceee/archive/2006/11/01/1361258.aspx

文章评论0条评论)

登录后参与讨论
我要评论
0
21
关闭 站长推荐上一条 /2 下一条