- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字滤波器设计应用综合实验
数字信号处理实验
实验四、数字滤波器设计及
应用综合实验
学院:信息工程学院
班级:电子101班
姓名:
学号:
一、实验目的
1.熟悉IIR数字滤波器的设计原理及方法。
2.熟悉FIR数字滤波器的设计原理及方法。
3. 掌握利用Matlab实现数字滤波器的方法
4. 掌握利用数字滤波器进行信号处理的方法。
5. 了解基于Simulink的动态仿真实现信号滤波的基本方法。
二、实验内容及要求
实验内容:
综合运用数字滤波器设计的相关知识,根据给定设计方法要求,用脉冲响应不变法和双线性变换法设计IIR数字滤波器;利用窗函数设计法设计FIR数字滤波器。根据实际信号的频谱特性,分析、确定滤波器设计技术指标,实现对信号的滤波。
1.IIR数字滤波器设计
(1)用脉冲响应不变法设计巴特沃斯数字滤波器。
该实验所需M文件如下:
①、butterworth低通滤波器原型设计函数:
function [b,a]=afd_butt(Wp,Ws,Rp,As)
N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(Wp/Ws)))
fprintf(\n Butterworth Filter Order=%2.0f\n,N)
OmegaC=Wp/((10^(Rp/10)-1)^(1/(2*N)))
[b,a]=u_buttap(N,OmegaC)
②、非归一化Butterworth模拟低通滤波器设计函数:
function [b,a]=u_buttap(N,Omegac);
[z,p,k]=buttap(N);
p=p*Omegac;
k=k*Omegac^N;
B=real(poly(z));
b=k*B;
a=real(poly(p));
③、利用脉冲响应不变法从模拟到数字滤波器变换函数:
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);
a=real(a);
④、频率响应函数freqz的修正:
function [db,mag,pha,w]=freqz_m(b,a);
[H,w]=freqz(b,a,1000,whole);
H=(H(1:501));
w=(w(1:501));
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
本实验程序如下:
wp=0.2*pi;ws=0.3*pi;Rp=1;As=15;T=1;
OmegaP=wp/T;OmegaS=ws/T;
[cs,ds]=afd_butt(OmegaP,OmegaS,Rp,As);
[b,a]=imp_invr(cs,ds,T)
[db,mag,pha,w]=freqz_m(b,a);
subplot(2,1,1);plot(w/pi,mag);
title(digital filter Magnitude Response)
axis([0,1,0,1.1])
subplot(2,1,2);plot(w/pi,db);
title(digital filter Magnitude in DB)
axis([0,1,-40,5]);
结果:
N1 =
5.8858
N =
6
Butterworth Filter Order= 6
OmegaC =
0.7032
b =
0.0000 0.0006 0.0101 0.0161 0.0041 0.0001
a =
1.0000 -3.3635 5.0684 -4.2759 2.1066 -0.5706 0.0661
本实验波形图如下:
(2)用双线性变换法设计切比雪夫数字滤波器。
本实验所需M文件如下:
非归一化切比雪夫I型模拟低通滤波器原型设计:
function [b,a]=u_chb1ap(N,Rp,Omegac);
[z,p,k]=cheb1ap(N,Rp);
a=real(poly(p));
aNn=a(N+1);
p=p*Omegac;
a=real(poly(p));
aNu=a(N+1);
k=k*aNu/aNn;
B=real(poly(z));
b=k*B;
本实验程序如下:
wp=0.2*pi;ws=0.3*pi;Rp=1;
文档评论(0)