实验三 IIR数字滤波器的设计
04013222 张嘉俊
一、实验目的
(1)掌握双线形变换法及脉冲响应不变法设计IIR数字滤波器的具体设计方法及其原理,熟悉用双线形变换法及脉冲响应不变法设计低通,高通和带通IIR数字滤波器的计算机编程。
(2)观察双线形变换法及脉冲响应不变法设计的滤波器的频域特性,了解双线形变换法及脉冲响应不变法的特点。
(3)熟悉巴特沃思滤波器,切比雪夫滤波器和椭圆滤波器的频率特性。
(3)实验中有关变量的定义
通带边界频率阻带边界频率?通带波动
At最小阻带衰减fs采样频率T采样周期
(4)设计一个数字滤波器一般包括以下两步 a. 按照任务要求,确定滤波器性能指标
b. 用一个因果稳定的离散时不变系统的系统函数去逼近这一性能要求
(5)数字滤波器的实现
对于IIR滤波器,其逼近问题就是寻找滤波器的各项系数,使其系统函数逼近一个所要求的特性。先设计一个合适的模拟滤波器,然后变换成满足约定指标的数字滤波器。 用双线形变换法设计IIR数字滤波器的过程: a. 将设计性能指标中的关键频率点进行“预畸”
b. 利用“预畸”得到的频率点设计一个模拟滤波器。 c. 双线形变换,确定系统函数
fcfr
二、实验内容
(1)fc=0.3kHz,δ=0.8dB,fr=0.2kHz,At=20dB,T=1ms;设计一切比雪夫高通滤波器,观察其通带损耗和阻带衰减是否满足要求。
源程序:
clc,clear;
wc=2000*tan(2*pi*300*0.001/2); wr=2000*tan(2*pi*200*0.001/2); [N,wn]=cheb1ord(wc,wr,0.8,20,'s'); [B,A]=cheby1(N,0.8,wn,'high','s'); [num,den]=bilinear(B,A,1000); [h,w]=freqz(num,den); f=w/(2*pi)*1000; plot(f,20*log10(abs(h))); axis([0,500,-80,10]); grid;
xlabel('Frequency/Hz');ylabel('Amplitude/dB'); title('Chebyshev High-pass Filter');
实验结果:
分析与结论: 观察图形可知,δ趋近于0;f=200Hz时,幅度约为-30dB,满足At=20dB的要求,故其通带损耗和阻带衰减满足要求。
(2)fc=0.2kHz,δ=1dB,fr=0.3kHz,At=25dB,T=1ms;分别用脉冲响应不变法及双线形变换法设计一巴特沃思数字低通滤波器,观察所设计数字滤波器的幅频特性曲线,记录带宽和衰减量,检查是否满足要求。比较这两种方法的优缺点。
clc,clear;
wc=2*pi*200; wr=2*pi*300;
wc2=2*1000*tan((2*pi)*200*0.001/2); wr2=2*1000*tan((2*pi)*300*0.001/2); %脉冲响应不变法
[N1,wn]=buttord(wc,wr,1,25,'s'); [B1,A1]=butter(N1,wn,'s');
[num1,den1]=impinvar(B1,A1,1000); [h1,w1]=freqz(num1,den1); %双线性变换法
[N2,wn2]=buttord(wc2,wr2,1,25,'s'); [B2,A2]=butter(N2,wn2,'s');
[num2,den2]=bilinear(B2,A2,1000); [h2,w2]=freqz(num2,den2); f1=w1/pi*500; f2=w2/pi*500;
plot(f1,20*log10(abs(h1)),'-',f2,20*log10(abs(h2)),'--'); legend('脉冲响应不变法','双线性变换法');
axis([0,500,-80,10]);grid;xlabel('Frequency/Hz');ylabel('Amplitude/dB'); title('Butterworth Low-pass Filter');
分析与结论: 通带边界和阻带边界分别为200Hz,300Hz,最小阻带衰减量满足25dB。
脉冲响应不变法
优点:模拟频率到数字频率的转换是线性的,ω=ΩΤ,时域特性逼近。 缺点:有频谱周期延拓效应,会产生频谱混叠现象,因此只适合带限滤波器
双线性变换法
优点:通过严重非线性关系将S平面与Z平面一一对应,不存在频谱混迭效应。 缺点:时域到频域是非线性变换,数字滤波器的响应有畸变,在高频处有较大失真。
(3)利用双线性变换法分别设计满足下列指标的巴特沃思滤波器,切比雪夫滤波器和椭圆滤波器,并作图验证设计结果:fc=1.2kHz,δ<=0.5dB,fr=2kHz,At>=40dB,fs=8kHz。比较这三种滤波器的阶数。
源程序:
clc,clear;
wr=2*8000*tan(2*pi*2000/(2*8000)); wc=2*8000*tan(2*pi*1200/(2*8000)); %巴特沃思型
[N1 wn1]=buttord(wc,wr,0.5,40,'s'); [B1 A1]=butter(N1,wn1,'low','s'); [num1 den1]=bilinear(B1,A1,8000); [h1 w]=freqz(num1,den1); %切比雪夫型
[N2 wn2]=cheb1ord(wc,wr,0.5,40,'s'); [B2 A2]=cheby1(N2,0.5,wn2,'low','s'); [num2 den2]=bilinear(B2,A2,8000); [h2 w]=freqz(num2,den2);
[N3 wn3]=ellipord(wc,wr,0.5,40,'s'); %椭圆型
[B3 A3]=ellip(N3,0.5,40,wn3,'low','s'); [num3 den3]=bilinear(B3,A3,8000); [h3 w]=freqz(num3,den3); f=w/(2*pi)*8000;
plot(f,20*log10(abs(h1)),'-',f,20*log10(abs(h2)),'-.',f,20*log10(abs(h3)),'--'); legend('巴特沃思型','切比雪夫型','椭圆型'); axis([0 4000 -100 10]);grid;
xlabel('Frequency/Hz');ylabel('Amplitude/dB');
实验结果:
分析与结论:
在题设指标下:Butterworth型滤波器需要9阶,Chebyshev型需要5阶,椭圆型需要4阶。
(4)分别用脉冲响应不变法及双线形变换法设计一巴特沃思数字带通滤波器,已知fs=3kHz,其等效的模拟滤波器指标为δ<3kHz,2kHz
源程序:
clc,clear; %脉冲响应不变法 w1=2*pi*2000; w2=2*pi*3000; wr1=2*pi*1500; wr2=2*pi*6000;
[N1 wn1]=buttord([w1 w2],[wr1 wr2],3,20,'s'); [B A]=butter(N1,wn1,'s'); [num1 den1]=impinvar(B,A,30000); [h1 w]=freqz(num1,den1); %双线性变换法
w1=2*30000*tan(2*pi*2000/(2*30000)); w2=2*30000*tan(2*pi*3000/(2*30000)); wr1=2*30000*tan(2*pi*1500/(2*30000)); wr2=2*30000*tan(2*pi*6000/(2*30000)); [N2 wn2]=buttord([w1 w2],[wr1 wr2],3,20,'s');