当前位置:首页 > IIR数字滤波器设计matlab代码
大连理工大学实验报告
学院(系): 电子信息与电气工程学部 专业: 电子信息工程 班级: 姓 名: 学号: 组:
实验时间: 实验室: 大黑楼C221 实验台:
指导教师签字: 成绩:
实验名称
实验三 IIR数字滤波器设计
一、实验目的和要求
(1)掌握双线性变换法设计IIR数字滤波器。 (2)掌握脉冲响应不变法设计IIR数字滤波器。
二、实验原理和内容
1. 巴特沃思低通滤波器
巴特沃思低通滤波器幅度平方函数定义为
???1???????c?式中N为正整数,代表滤波器的阶次,?c称为截止频率。当???c时,有
Ha(j?c)即
2 |Ha(jΩ)|=
212N
?1 2?1?20lgHa(j0)?3dB
Ha(j?c)所以又称?c为巴特沃思低通滤波器的3分贝带宽。
巴特沃思低通滤波器的幅度特性如图所示。
图1 巴特沃思低通滤波器的幅度特性
2. 切贝雪夫低通滤波器
切贝雪夫I型滤波器的幅度平方函数为
Ha(j?)?212???1??2CN???c????
其中,ε是表示通带波纹大小的一个参数,ε越大,波纹也越大。
?为?对?c的归一化频率,?c?c为截止频率,CN(x)是N阶切贝雪夫多项式。
切贝雪夫I型低通滤波器的幅度特性如图所示
图2 切贝雪夫I型低通滤波器的幅度特性
三、主要仪器设备
Matlab 四、实验内容及结果
1. 用双线性变换法设计一个巴特沃斯IIR低通数字滤波器。设计指标
参数为:在通带内频率低于*pi 时,最大衰减小于2dB ;在阻带内[*pi, pi] 频率区间上,最小衰减大于15dB 。要求:
?(1)用buttord,buttap,zp2tf,lp2lp,bilinear等指令实现 ?(2)用buttord,butter指令实现 ?并分别绘制两种设计方法的频响曲线
(1)双线形变换法设计巴特沃斯IIR低通数字滤波器,代码如下:
clc clear wp = *pi; ws = *pi; rp = 2; rs = 15;
Ts = ;
Fs = 1/Ts; %采样频率
wp = 2/Ts*tan(wp/2); ws = 2/Ts*tan(ws/2);
[N,wc]=buttord(wp,ws,rp,rs,'s'); [z,p,k]=buttap(N); [b,a]=zp2tf(z,p,k); [B,A]=lp2lp(b,a,wc); [Bz,Az]=bilinear(B,A,Fs); w=0::pi;
[H,w1]=freqz(Bz,Az,w); H=20*log10(abs(H)); plot(w/pi,H); grid on;
title('双线形变换法设计巴特沃斯IIR低通数字滤波器'); xlabel('频率/pi'); ylabel('幅度/dB');
(2)直接法设计巴特沃斯IIR低通数字滤波器,代码如下:clc clear
wp=;ws=;rp=2;rs=15;
[N,wc]=buttord(wp,ws,rp,rs); [Bz,Az]=butter(N,wc); w=0::pi;
[H,w1]=freqz(Bz,Az,w); H=20*log10(abs(H)); plot(w/pi,H); grid on;
title('直接法设计巴特沃斯IIR低通数字滤波器'); xlabel('频率/pi');
:
ylabel('幅度/dB');
(3)设计一个巴特沃兹低通滤波器,给定技术指标是
fp?100Hzfst?300Hz?p?3dB?s?20dB,抽样频率为
Fs?1000Hz。
代码如下: clc clear fp=100; fs=300; Fs=1000; af = 3; as = 20; wp = 2*fp/Fs; ws = 2*fs/Fs;
[n, Wn]=buttord(wp,ws,af,as); [b, a]=butter(n, Wn); figure(1) freqz(b,a,512,1);
title('巴特沃斯IIR低通数字滤波器');
五、实验体会
本次实验中用了双线性变换法、冲击响应不变法及直接设计法设计了IIR滤波器。通过本次实验,我更直观的看到了滤波器的特性,对理论有了更深刻的认识。Matlab是一个十分强大的工具,有很多很好用的函数,比起人工计算设计滤波器来简单了很多很多,很直观也很实用。
共分享92篇相关文档