- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字信号处理 IIR滤波器设计 什么是滤波器 IIR滤波器基本结构 设计思想 设计模拟低通滤波器 回顾:什么是滤波器 滤波器的种类很多,分类方法也不同; 从功能上分:低通、高通、带通、带阻; 从实现方法上分:FIR、IIR; 从设计方法上来分:切比雪夫、 巴特沃斯; 从处理信号分:经典滤波器、现代滤波器。 回顾:什么是滤波器 经典滤波器 假定输入信号x(n)中的有用成分和希望去除的成分,各自占有不同的频带。当x(n)经过一个线性系统(即滤波器)后即可将欲去除的成分有效地去除。 若信号和噪声的频谱相互重叠,那么经典滤波器将无能为力。 回顾:什么是滤波器 回顾:IIR滤波器结构 回顾:IIR滤波器结构 回顾:IIR滤波器结构 特点: 两个网络级联: 横向延时网络,实现零点; 反馈延时网络,实现极点; 共需(N+M)级延时单元; 系数ai、bi:不直接决定单个零极点,不能很好进行滤波器性能控制; 极点:对系数的变化过于灵敏,从而使系统频率响应对系统变化过于灵敏,也就是对有限精度(有限字长)运算过于灵敏,容易出现不稳定或产生较大误差。 直接型 —— 函数 P130 filter函数 格式: 例 1 —— 应用函数 回顾:IIR滤波器结构 阅读—— P129 【例5.3.1】 阅读—— P129 【例5.3.1】 回顾:IIR滤波器结构 阅读—— P131 【例5.3.2】 级联型 —— 函数 直接型→级联型 function [b0,B,A] = dir2cas(b,a); b0 = b(1); b = b/b0; a0 = a(1); a = a/a0; b0 = b0/a0; M = length(b); N = length(a); if N M b = [b zeros(1,N-M)]; % 补0 elseif M N a = [a zeros(1,M-N)]; % 补0,使a、b等长 N = M; else NM = 0; end 级联型 —— 函数 K = floor(N/2); B = zeros(K,3); A = zeros(K,3); if K*2 == N; b = [b 0]; a = [a 0]; end broots = cplxpair(roots(b)); % 共轭复根对 aroots = cplxpair(roots(a)); for i=1:2:2*K Brow = broots(i:1:i+1,:); Brow = real(poly(Brow)); % 把根转换为二阶多项式 B(fix((i+1)/2),:) = Brow; % fix:趋0(q去掉小数部分取整) Arow = aroots(i:1:i+1,:); Arow = real(poly(Arow)); A(fix((i+1)/2),:) = Arow; end 例 1(续 1) 代码如下: b=[8,-4,11,-2]; a=[1,-1.25,0.75,-0.125]; [b0,B,A] = dir2cas(b,a) 练习 1 代码如下: b=[1,-3,11,-27,18]; a=[16,12,2,-4,-1]; [bo,B,A]=dir2cas(b,a) 级联型 —— 函数 级联型→直接型 function [b,a] = cas2dir(b0,B,A); [K,L] = size(B); b = [1]; a = [1]; for i=1:1:K b=conv(b,B(i,:)); a=conv(a,A(i,:)); end b = b*b0; 级联型 —— 函数 级联滤波函数 function y = casfiltr(b0,B,A,x); [K,L] = size(B); N = length(x); w = zeros(K+1,N); w(1,:) = x; for i = 1:1:K w(i+1,:) = filter(B(i,:),A(i,:),w(i,:)); % 输出为下一级的输入 end y = b0*w(K+1,:); 例 1(续 2) 代码如下: b=[8,-4,11,-2]; a=[1,-1.25,0.75,-0.125]; x=[1,0,0,0,0,0,0]; % 以单位脉冲作为输入信号 y1=filter(b,a,x) % 直接滤波 [b0,B,A] = dir2cas(b,a); y2=casfiltr(b0,B,A,x) %
原创力文档


文档评论(0)