实验四 有限脉冲响应数字滤波器的设计及MATLAB程序
- 格式:doc
- 大小:463.50 KB
- 文档页数:7
实验四 IIR数字滤波器的设计
一 实验目的
(1)熟悉用双线性变换法和脉冲响应不变法设计IIR数字滤波器的原理及方法。
(2)掌握IIR数字滤波器的MATLAB实现方法。
二 实验原理
设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),
基本设计过程是:
① 将给定的指标转换成过渡模拟滤波器的指标;
脉冲响应不变法:T
双线性变换法: 2tan()2T
② 设计过渡模拟滤波器;
MATLAB信号处理工具箱中的滤波器设计函数butter、cheby1、cheby2
和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2以及
椭圆模拟与数字滤波器。本实验要求设计巴特沃斯低通IIR数字滤波器。
③ 将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。
三 实验内容及步骤
(1)分别用双线性变换法和脉冲响应不变法设计一个巴特沃斯低通IIR数字滤
波器。设计指标参数为:在通带内频率低于0.2π时,最大衰减小于1dB, 在阻
带[0.3π,π] 频率区间上,最小衰减大于40dB,采样频率1000sfHz。
(2)绘图显示并打印滤波器的幅频响应特性曲线和损耗函数曲线,分析比较二
种设计方法。
(3)调用滤波器实现函数filter,分别用二种不同方法所设计的滤波器对()xn进
行滤波处理,得到输出()yn,
()cos(0.1)cos(0xnnn
并分别打印出滤波前后信号的幅频特性曲线,观察总结滤波作用与效果。
四 思考题
(1)脉冲响应不变法不适用设计哪类滤波器?为什么?
(2)用双线性变换法设计数字滤波器过程中,变换公式
11211zsTz
中T的取值对设计结果有无影响?为什么?
答:有,令s=jΩ,z=ejω
代入上式中可得
2tan()2T
上式说明,s 平面上Ω与z平面的ω成非线性正切关系,在ω=0附近接近线性
关系。当ω增加时,Ω增加得愈来愈快,当ω趋近π时,Ω趋近于∞。正是因为
这种非线性关系,消除了频率混叠现象。 所以ω与Ω之间的非线性关系是双线
性变换法的缺点,直接影响数字滤波器频响逼真的模仿模拟滤波器的频响,同时
又有ω=1/T,所以,T的取值对设计结果有影响
五 实验报告要求
(1)简述实验目的及原理。
(2)打印程序清单。
(3)绘制IIR滤波器的()jHe特性曲线及损耗函数曲线。
(3)对比滤波前后信号的幅频特性曲线,说明数字滤波器的滤波作用。
(4)简要回答思考题。
%实验1 用脉冲响应不变法设计一个巴特沃斯低通IIR数字滤波器
clc;
clear all;
wp=0.2*pi;ws=0.3*pi;fs=1000;
T=1/fs; wap=wp/T; was=ws/T; rp=1; rs=40;%性能指标
[N,wc]=buttord(wap,was,rp,rs,'s'); %计算模拟滤波器的阶数N和3dB截止频率wc
[B,A]=butter(N,wc,'s'); %计算相应的模拟滤波器系统函数
[Bz,Az]=impinvar(B,A,fs); %用脉冲响应不变法将模拟滤波器转换成数字滤波器
[H,w]=freqz(Bz,Az); %计算数字滤波器的频率响应
n=0:199;
xn=cos(0.1*pi.*n)+cos(0.5*pi.*n);
yn=filter(Bz,Az,xn);
xk=fft(xn);
yk=fft(yn);
N=200;
k=2*(0:N-1)/N;
figure(1);
subplot(211);
plot(w/pi,abs(H));
title('脉冲响应不变法数字滤波器幅频响应特性曲线'); xlabel('\omega/\pi'); ylabel('|H(jw)|');
axis([0,1,0,1.1]);grid on;
subplot(212);
plot(w/pi,20*log10(abs(H)/max(abs(H))));grid on; %绘制损耗函数曲线
xlabel('\omega/\pi');ylabel('幅度(dB)');
title('脉冲响应不变法数字滤波器损耗函数曲线');
figure(2);
subplot(221); plot(n,xn);
title('滤波前输入信号x(n)');xlabel('n');ylabel('xn');
subplot(222); plot(k,abs(xk));
title('滤波前输入信号x(n)的频谱');xlabel('\omega/\pi');ylabel('幅度');%axis([0,2,0,120]);
subplot(223); plot(n,yn);
title('脉冲响应不变法滤波后输出信号y(n)');xlabel('n');ylabel('yn');axis([0,100,-1.1,1.1]);
subplot(224); plot(k,abs(yk));
title('脉冲响应不变法滤波后输出信号y(n)的频谱');xlabel('\omega/\pi');ylabel('幅度');
%实验2 用双线性变换法设计一个巴特沃斯低通IIR数字滤波器
wp=0.2*pi;ws=0.3*pi;fs=1000;T=1/fs;
wap=2/T*tan(wp/2);was=2/T*tan(ws/2); rp=1; rs=40;%性能指标
[N,wc]=buttord(wap,was,rp,rs,'s'); %计算模拟滤波器的阶数N和3dB截止频率wc
[B,A]=butter(N,wc,'s'); %计算相应的模拟滤波器系统函数
[Bz,Az]=bilinear(B,A,fs);%用双线性变换法将模拟滤波器转换成数字滤波器
[H,w]=freqz(Bz,Az); %计算数字滤波器的频率响应
n=0:199;
xn=cos(0.1*pi.*n)+cos(0.5*pi.*n);
yn=filter(Bz,Az,xn);
xk=fft(xn);
yk=fft(yn);
N=200;
k=2*(0:N-1)/N;
figure(1);
subplot(211);
plot(w/pi,abs(H));
title('双线性变换法数字滤波器幅频响应特性曲线'); xlabel('\omega/\pi'); ylabel('|H(jw)|');
axis([0,1,0,1.1]);grid on;
subplot(212);
plot(w/pi,20*log10(abs(H)/max(abs(H))));grid on; %绘制损耗函数曲线
xlabel('\omega/\pi');ylabel('幅度(dB)');
title('双线性变换法数字滤波器损耗函数曲线');
figure(2);
subplot(221); plot(n,xn);
title('滤波前输入信号x(n)');xlabel('n');ylabel('xn');
subplot(222); plot(k,abs(xk));
title('滤波前输入信号x(n)的频谱');xlabel('\omega/\pi');ylabel('幅度');%axis([0,2,0,120]);
subplot(223); plot(n,yn);
title('双线性变换法滤波后输出信号y(n)');xlabel('n');ylabel('yn');axis([0,100,-1.1,1.1]);
subplot(224); plot(k,abs(yk));
title('双线性变换法滤波后输出信号y(n)的频谱');xlabel('\omega/\pi');ylabel('幅度');