Matlab的FIR滤波器设计与实现.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab的FIR滤波器设计与实现

二、实验平台   Matlab7.1 三、实验原理   以低通滤波器为例,其常用的设计指标有: 通带边缘频率fp(数字频率为Ωp) 阻带边缘频率fst?(数字频率为Ωst) 通带内最大纹波衰减δp=-20log10(1-αp),单位为 dB 阻带最小衰减αs=-20log10(αs),单位为 dB 阻带起伏αs 通带峰值起伏αp   其中,以1、2、3、4条最为常用。5、6条在程序中估算滤波器阶数等参数时会用到。   数字频率 = 模拟频率/采样频率 四、实例分析 例1??用凯塞窗设计一FIR低通滤波器,通带边界频率Ωp=0.3pi,阻带边界频率?Ωs=0.5pi,阻带衰减δs不小于50dB。 方法一:手动计算滤波器阶数N和β值,之后在通过程序设计出滤波器。 第一步:通过过渡带宽度和阻带衰减,计算滤波器的阶数B和β值。 第二步:通过程序设计滤波器。 程序如下: b?=?fir1(29,0.4,kaiser(30,4.55)); [h1,w1]=freqz(b,1);? figure (1)? plot(w1/pi, abs(h1));?? grid; xlabel(归一化频率/p)?; ylabel(幅度/dB)?; figure (2)? plot(w1/pi,angle(h1));? grid; xlabel(归一化频率/p)?; ylabel(相位)?; ? 波形如下: ? 例2? 利用雷米兹交替算法设计等波纹滤波器,设计一个线性相位低通FIR数字滤波器,其指标为:通带边界频率fc=800Hz,阻带边界fr=1000Hz,通带波动?阻带最小衰减At=40dB,采样频率fs=4000Hz。? ?一般调用MATLAB信号处理工具箱函数remezord来计算等波纹滤波器阶数N和加权函数W(ω),调用函数remez可进行等波纹滤波器的设计,直接求出滤波器系数。函数remezord中的数组fedge为通带和阻带边界频率,数组mval是两个边界处的幅值,而数组dev是通带和阻带的波动,fs是采样频率单位为Hz。 解:在MATLAB中可以用remezord?和remez两个函数设计 ? 程序如下:? ? fedge=[800?1000];? ? mval=[1?0];? ? dev=[0.0559?0.01]; ? fs=4000;? ? [N,fpts,mag,wt]=remezord(fedge,mval,dev,fs);? ? b=remez(N,fpts,mag,wt);? ? [h,w]=freqz(b,1,256);? ? plot(w*2000/pi,20*log10(abs(h)));? ? grid;? ? xlabel(频率/Hz)?; ? ylabel(幅度/dB); ? 波形如下: 例3?利用MATLAB编程设计一个数字带通滤波器,指标要求如下:通带边缘频率:Ωp1=0.45pi,Ωp2=0.65pi,通带峰值起伏:δ1=1[dB]。阻带边缘频率:Ωs1=0.3pi,Ωs2=0.8pi,最小阻带衰减:δ2=40[dB]?。 方法一:窗函数法 ? 程序如下: [n,wn,bta,ftype]=kaiserord([0.3?0.45?0.65?0.8],[0?1?0],[0.01?0.1087?0.01]);%用kaiserord函数估计出滤波器阶数n和beta参数 h1=fir1(n,wn,ftype,kaiser(n+1,bta),noscale); [hh1,w1]=freqz(h1,1,256); figure(1) subplot(2,1,1) plot(w1/pi,20*log10(abs(hh1))) grid xlabel(归一化频率w);ylabel(幅度/db); subplot(2,1,2) plot(w1/pi,angle(hh1)) grid xlabel(归一化频率w);ylabel(相位/rad); ? 波形如下: ? 滤波器系数为: h1?= ? ??Columns?1?through?8? ? ????0.0041????0.0055???-0.0091???-0.0018???-0.0056???-0.0000????0.0391???-0.0152 ? ??Columns?9?through?16? ? ???-0.0381????0.0077???-0.0293????0.0940????0.0907???-0.2630???-0.0517????0.3500 ? ??Columns?17?through?24? ? ???-0.0517???-0.2630????0.0907????0.0940???-0.0293????0.0077???-0.0381???-0.0152

文档评论(0)

ipad0a + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档