实验六 IIR滤波器的设计
一、实验目的:
在理论学习的基础上,掌握不同IIR滤波器的性质、特点,并通过实验学习如何设计各种常用的IIR滤波器,以便在实际工作中能根据具体情况使用IIR滤波器。
二、实验要求:
1、执行例6-1,分析不同滤波器的特点和结果。
2、课本P170例5-8
3、课本P 173二(7)
三、实验内容:
1、例6-1用冲击响应不变法和双线形变换法设计Butterworth低通数字滤波器,要求通带频率为0≤w≤0.2pi,通带波纹小于1dB,阻带在0.3pi≤w≤pi内,幅度衰减大于15dB,采样周期Ts=0.01s。
2、课本P170例5-8用冲击响应不变法设计数字低通滤波器,要求通带和阻带具有单调下降特性。指标参数要求为:通带截止频率为200Hz,通带的最大衰减为δ1=0.8;阻带截止频率为300Hz,阻带最小衰减δ2=20 dB ,采样时间间隔T=1ms。
(1)应用MATLAB函数设计该滤波器,并观察滤波器的幅频特性曲线。
(2)若输入信号为x(t)=2sin400pi*t+sin700pi*t+w(t),w(t)为随机信号,应用该滤波器对信号进行滤波器变换。
3、课本P 173二(7)设计一个数字高通滤波器,要求通带截止频率为wp=0.6pi,且通带衰减不大于3dB ,阻带起始频率ws=0.4pi,且阻带衰减不小于14dB,采样频率10kHz。应用巴特沃思滤波器设计。
四、实验结果与分析
Ⅰ
例题6-1
实验程序:
clc
clear
close all;
wp=0.2*pi;
ws=0.3*pi;
rp=1;
rs=15;
Ts=0.01;
Fs=1/Ts;
Wp=wp/Ts;
Ws=ws/Ts;
[N,Wn]=buttord(Wp,Ws,rp,rs,'s');
[z,p,k]=buttap(N);
[Bap,Aap]=zp2tf(z,p,k);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=impinvar(b,a,Fs);
figure;
[H,W]=freqz(bz,az);
plot(W*pi/10,20*log10(abs(H)));
grid;
xlabel('频率/Hz');
ylabel('幅值');
title('冲激响应不变法')
Wp=(2/Ts)*tan(wp/2);
Ws=(2/Ts)*tan(ws/2);
[N,Wn]=buttord(Wp,Ws,rp,rs,'s');
[Z,P,K]=buttap(N);
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,Fs);
figure(2);
[H,W]=freqz(bz,az);hold on;
plot(W*pi/10,20*log10(abs(H)),'m');
grid;
xlabel('频率/Hz');
ylabel('幅值');
title('双线性变换法')
wp=0.2;ws=0.3;rp=1;rs=15;
[N,Wn]=buttord(wp,ws,rp,rs);
[b,a]=butter(N,Wn);
figure(3);
[H,W]=freqz(b,a);hold on;
plot(W*pi/10,20*log10(abs(H)),'k');
grid;
xlabel('频率/Hz');
ylabel('幅值');
title('完全设计函数')
实验结果:
Ⅱ
例题5-8
实验程序:
fp=200;
Ap=0.8;
fr=300;
Ar=20;
T=0.001;
fs=1/T;
Wp=2*pi*fp;Wr=2*pi*fr;
[N,Wn]=buttord(Wp,Wr,Ap,Ar,'s');
[b,a]=butter(N,Wn,'s');
[bz,az]=impinvar(b,a,fs);
figure(1);
[H,W]=freqz(bz,az);holdon;
plot(W*fs/(2*pi),abs(H),'m');
grid;
xlabel('ƵÂÊ/Hz');
ylabel('ÔöÒæ');
title('µÍͨÂ˲¨Æ÷ƵÂÊÌØÐÔÇúÏß');
n=0:199;
t=n*T;
x=2*sin(400*pi*t)+sin(700*pi*t);
y=filter(bz,az,x);
figure(2);
subplot(211);
plot(n,x,'r');
xlabel('t');
ylabel('x(t)');
title('ÔÐźÅx(t)');
subplot(212);
plot(n,y,'r');
xlabel('t');
ylabel('y(t)');
title('Â˲¨ºóÐźÅy(t)');
实验目的:
Ⅲ
课后题7
实验程序:
wp=0.6*pi;
ws=0.3*pi;
rp=3;
rs=14;
Ts=0.0001;
Fs=1/Ts;
Wp=wp/Ts;
Ws=ws/Ts;
[N,Wn]=buttord(Wp,Ws,rp,rs,'s');
[z,p,k]=buttap(N);
[Bap,Aap]=zp2tf(z,p,k);
[b,a]=lp2hp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,Fs);
figure;
[H,W]=freqz(bz,az);
plot(W*Fs/(2*pi),abs(H));
grid;
xlabel('ƵÂÊ/Hz');ylabel('·ùÖµ');
title('Êý×Ö¸ßͨÂ˲¨Æ÷');
实验结果:
五、实验总结:
学会了Matlab IIR滤波器的设计,掌握了不同IIR滤波器的性质、特点,并通过实验学会了如何设计各种常用的IIR滤波器,以便在实际工作中能根据具体情况使用IIR滤波器。做实验时需要仔细认真!