IIR数字滤波器设计matlab代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大连理工大学实验报告
学院(系): 电子信息与电气工程学部 专业: 电子信息工程 班级: 姓 名: 学号: 组:
实验时间: 实验室: 大黑楼C221 实验台:
指导教师签字:
成绩: 实验名称
实验三 IIR 数字滤波器设计
1、实验目的和要求
(1)掌握双线性变换法设计IIR 数字滤波器。
(2)掌握脉冲响应不变法设计IIR 数字滤波器。
2、实验原理和内容
1. 巴特沃思低通滤波器
巴特沃思低通滤波器幅度平方函数定义为
|H (jΩ)|= a 2N c 211⎪⎪⎭
⎫ ⎝⎛ΩΩ+式中N 为正整数,代表滤波器的阶次,称为截止频率。当时,有
c Ωc Ω=Ω
21)(2=Ωc a j H 即
dB j H j H c a a 3)
()0(lg 201=Ω=δ所以又称为巴特沃思低通滤波器的3分贝带宽。
c Ω巴特沃思低通滤波器的幅度特性如图所示。
图1 巴特沃思低通滤波器的幅度特性图2 切贝雪夫I型低通滤波器的幅度特性
•并分别绘制两种设计方法的频响曲线
(1)双线形变换法设计巴特沃斯IIR低通数字滤波器,代码如下:clc
clear
wp = 0.4*pi;
ws = 0.6*pi;
rp = 2;
rs = 15;
Ts = 0.0001;
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:0.001:pi;
[H,w1]=freqz(Bz,Az,w);
H=20*log10(abs(H));
plot(w/pi,H);
grid on;
title('双线形变换法设计巴特沃斯IIR低通数字滤波器');
xlabel('频率/pi');
ylabel('幅度/dB');
00.10.20.30.40.5
0.60.70.80.91
-300-250
-200
-150
-100
-50
50
低低低低低低低低低低低低IIR 低低低低低低低
低低/pi 低低/d B
(2)直接法设计巴特沃斯IIR 低通数字滤波器,代码如下::
clc
clear
wp=0.4;ws=0.6;rp=2;rs=15;
[N,wc]=buttord(wp,ws,rp,rs);
[Bz,Az]=butter(N,wc);
w=0:0.001:pi;
[H,w1]=freqz(Bz,Az,w);
H=20*log10(abs(H));
plot(w/pi,H);
grid on;
title('直接法设计巴特沃斯IIR 低通数字滤波器');
xlabel('频率/pi');
ylabel('幅度/dB');
00.10.20.30.40.5
0.60.70.80.91
-300-250
-200
-150
-100
-50
50
低低低低低低低低低IIR 低低低低低低低
低低/pi 低低/d B
(3)设计一个巴特沃兹低通滤波器,给定技术指标是100p f Hz =300st f Hz =3p dB α=,抽样频率为。
20s dB α=1000s F Hz =代码如下:
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 低通数字滤波器');
00.050.10.150.20.250.3
0.350.40.450.5
-200-150
-100
-500
Frequency (Hz)P h a s e (d e g r e e s )00.050.10.150.20.250.3
0.350.40.450.5
-150-100
-50
Frequency (Hz)M a g n i t u d e (d B )低低低低IIR 低低低低低低低
五、实验体会
本次实验中用了双线性变换法、冲击响应不变法及直接设计法设计了IIR 滤波器。通过本次实验,我更直观的看到了滤波器的特性,对理论有了更深刻的认识。Matlab 是一个十分强大的工具,有很多很好用的函数,比起人工计算设计滤波器来简单了很多很多,很直观也很实用。