数字滤波器的设计及MATLAB实现.docVIP

  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文档。上传文档
查看更多
设计低通数字滤波器,要求在通带内频率低于0.2pirad时,允许幅度误差在1dB以内, 在频率0.3pi rad~pi rad之间的阻带衰减大于15dB,用脉冲响应不变法设计数字滤波器,T=1: 切比雪夫I型模拟滤波器的设计子程序: function [b,a]=afd_chb1(Omegap,Omegar,Ar) if Omegap=0 error(通带边缘必须大于0) end if(Dt=0)|(Ar0) error(通带波动或阻带衰减必须大于0); end ep=sqrt(10^(Dt/10)-1); A=10^(Ar/20); OmegaC=Omegap; OmegaR=Omegar/Omegap; g=sqrt(A*A-1)/ep; N=ceil(log10(g+sqrt(g*g-1))/log10(OmegaR+sqrt(OmegaR*OmegaR-1))); fprintf(\n***切比雪夫I型模拟低通滤波器阶数=%2.0f\n,N); [b,a]=u_chblap(N,Dt,OmegaC); 设计非归一化切比雪夫I型模拟低通滤波器原型程序: function [b,a]=u_chblap(N,Dt,OmegaC) [z,p,k]=cheb1ap(N,Dt); a=real(poly(p)); aNn=a(N+1); p=p*OmegaC; a=real(poly(p)); aNu=a(N+1); k=k*aNu/aNn; b0=k; B=real(poly(z)); b=k*B; 直接形式转换成级联形式子程序: function [C,B,A]=sdir2cas(b,a) Na=length(a)-1; Nb=length(b)-1; b0=b(1);b=b/b0; a0=a(1);a=a/a0; C=b0/a0; p=cplxpair(roots(a));K=floor(Na/2); if K*2==Na A=zeros(K,3); for n=1:2:Na Arow=p(n:1:n+1,:); Arow=poly(Arow); A((fix(n+1)/2),:)=real(Arow); end elseif Na==1 A=[0 real(poly(p))]; else A=zeros(K+1,3); for n=1:2:2*K Arow=p(n:1:n+1,:);Arow=poly(Arow); A((fix(n+1)/2),:)=real(Arow); end A(K+1,:)=[0 real(poly(p(Na)))]; end z=cplxpair(roots(b));K=floor(Nb/2); if Nb==0 B=[0 0 poly(z)]; elseif K*2==Nb B=zeros(K,3); for n=1:2:Nb Brow=z(n:1:n+1,:);Brow=poly(Brow); B((fix(n+1)/2),:)=real(Brow); end elseif Nb==1 B=[0 real(poly(z))]; else B=zeros(K+1,3); for n=1:2:2*K Brow=z(n:1:n+1,:);Brow=poly(Brow); B((fix(n+1)/2),:)=real(Brow); end B(K+1,:)=[0 real(poly(z(Nb)))]; End 计算系统函数的幅度响应和相位响应子程序: function [db,mag,pha,w]=freqs_m(b,a,wmax) w1=0:500; w=w1*wmax/500; h=freqs(b,a,w); mag=abs(h); db=20*log10((mag+eps)/max(mag)); pha=angle(h); 脉冲响应不变法程序: function [b,a]=imp_invr(c,d,T) [R,p,k]=residue(c,d); p=exp(p*T); [b,a]=residuez(R,p,k); b=real(b).*T; a=real(a); 数字滤波器响应子程序: function [db,mag,pha,grd,w]=freqz_m(b,a); [H,w]=freqz(b,a,1000,whole); H=(H(1:501)); w=(w(1:501)); mag=

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档