实验3 无限冲激响应数字滤波器设计

时间:2025-07-15

一般理工科的数字信号处理实验课上用到的指导书

实验3 无限冲激响应数字滤波器设计

一、 实验目的

掌握双线性变换法及脉冲相应不变法设计IIR数字滤波器的具体设计方法及其原理,熟悉用双线性变换法及脉冲响应不变法设计低通、高通和带通IIR数字滤波器的计算机编程。

二、 实验原理

在MATLAB中,可以用下列函数辅助设计IIR数字滤波器:1)利用buttord和cheblord可以确定低通原型巴特沃斯和切比雪夫滤波器的阶数和截止频率;2)[num,den]=butter(N,Wn)(巴特沃斯)和[num,den]=cheby1(N,Wn),[num,den]=cheby2(N,Wn)(切比雪夫1型和2型)可以进行滤波器的设计;3)lp2hp,lp2bp,lp2bs可以完成低通滤波器到高通、带通、带阻滤波器的转换;4)使用bilinear可以对模拟滤波器进行双线性变换,求得数字滤波器的传输函数系数;5)利用impinvar可以完成脉冲响应不变法的模拟滤波器到数字滤波器的转换。

例1 设采样周期T=250μs(采样频率fs =4kHz),用脉冲响应不变法和双线性变换法设计一个三阶巴特沃兹滤波器,其3dB边界频率为fc =1kHz。

[B,A]=butter(3,2*pi*1000,'s'); [num1,den1]=impinvar(B,A,4000); [h1,w]=freqz(num1,den1); [B,A]=butter(3,2/0.00025,'s'); [num2,den2]=bilinear(B,A,4000); [h2,w]=freqz(num2,den2); f=w/pi*2000;

plot(f,abs(h1),'-.',f,abs(h2),'-'); grid;

xlabel('频率/Hz ') ylabel('幅值/dB')

程序中第一个butter的边界频率2π×1000,为脉冲响应不变法原型低通滤波器的边界频

一般理工科的数字信号处理实验课上用到的指导书

率;第二个butter的边界频率2/T=2/0.00025,为双线性变换法原型低通滤波器的边界频率.图1给出了这两种设计方法所得到的频响,虚线为脉冲响应不变法的结果;实线为双线性变换法的结果。脉冲响应不变法由于混叠效应,使得过渡带和阻带的衰减特性变差,并且不存在传输零点。同时,也看到双线性变换法,在z=-1即Ω=π或f=2000Hz处有一个三阶传输零点,这个三阶零点正是模拟滤波器在ω=∞处的三阶传输零点通过映射形成的。

例2 设计一数字高通滤波器,它的通带为400~500Hz,通带内容许有0.5dB的波动,阻带内衰减在小于317Hz的频带内至少为19dB,采样频率为1,000Hz。

wc=2*1000*tan(2*pi*400/(2*1000)); wt=2*1000*tan(2*pi*317/(2*1000)); [N,wn]=cheb1ord(wc,wt,0.5,19,'s'); [B,A]=cheby1(N,0.5,wn,'high','s'); [num,den]=bilinear(B,A,1000); [h,w]=freqz(num,den); f=w/pi*500;

plot(f,20*log10(abs(h))); axis([0,500,-80,10]); grid; xlabel('')

ylabel('幅度/dB')

图2 MATLAB运行结果。

例3 设计一巴特沃兹带通滤波器,其3dB边界频率分别为f2=110kHz和f1=90kHz,在阻带f3 = 120kHz处的最小衰减大于10dB,采样频率fs=400kHz。

一般理工科的数字信号处理实验课上用到的指导书

w1=2*400*tan(2*pi*90/(2*400));

w2=2*400*tan(2*pi*110/(2*400)); wr=2*400*tan(2*pi*120/(2*400)); [N,wn]=buttord([w1 w2],[ w1 wr],3,10,'s'); [B,A]=butter(N,wn,'s');

[num,den]=bilinear(B,A,400); [h,w]=freqz(num,den); f=w/pi*200;

plot(f,20*log10(abs(h))); axis([40,160,-30,10]); grid;

xlabel('频率/kHz') ylabel('幅度/dB')

图3 MATLAB运行结果

例4 一数字滤波器采样频率fs = 1kHz,要求滤除100Hz的干扰,其3dB的边界频率为95Hz和105Hz,原型归一化低通滤波器为

w1=95/500; w2=105/500;

[B,A]=butter(1,[w1, w2],'stop'); [h,w]=freqz(B,A); f=w/pi*500;

plot(f,20*log10(abs(h))); axis([50,150,-30,10]); grid;

xlabel('频率/Hz') ylabel('幅度/dB')

一般理工科的数字信号处理实验课上用到的指导书

图4 MATLAB的计算结果

三、 实验内容

利用MATLAB编程设计一个数字带通滤波器,指标要求如下:

通带边缘频率:ΩP1

αp≤1[dB]

=0.45π,Ω

P2

=0.65π

,通带峰值起伏:

α≥40[dB]。

阻带边缘频率:ΩS1=0.3π,ΩS2=0.8π,最小阻带衰减: S

分别用脉冲响应不变法和双线性变换法进行IIR数字滤波器的设计。

1. 双线性变换法(巴特沃兹原型)

ws1=2*8000*tan(0.3*pi/2); ws2=2*8000*tan(0.8*pi/2); wp1=2*8000*tan(0.45*pi/2); wp2=2*8000*tan(0.65*pi/2); ws=[ws1 ws2];wp=[wp1 wp2]; Rp=1;Rs=40;

[N,Wn]=buttord(wp,ws,Rp,Rs,'s'); [num,den]=butter(N,Wn,'s'); [B,A]=bilinear(num,den,8000); [h,w]=freqz(B,A); f=w/pi*4000; subplot (2,1,1); plot(f,20*log10(abs(h))); axis([0,4000,-60,10]);

grid; xlabel('频率/Hz') ;ylabel('幅度/dB'); subplot(2,1,2); plot(f,angle(h));

grid; xlabel('频率/Hz') ;ylabel('相位');

一般理工科的数字信号处理实验课上用到的指导书

幅幅/dB

-20-40-60

频频/kHz

42

相相

0-2-4频频/kHz

2. 脉冲响应不变法(巴特沃兹原型)

fs=8000;

ws1=0.3*pi*fs;ws2=0.8*pi*fs; wp1=0.45*pi*fs;wp2=0.65*pi*fs; ws=[ws1 ws2];wp=[wp1 wp2]; Rp=1;Rs=40;

[N,Wn]=buttord(wp,ws,Rp,Rs,'s'); [num,den]=butter(N,Wn,'s'); [B,A]=impinvar(num,den,8000); [h,w]=freqz(B,A); f=w/pi*4000; subplot(2,1,1); plot(f,20*log10(abs(h))); axis([0,4 …… 此处隐藏:4106字,全部文档内容请下载后查看。喜欢就下载吧 ……

实验3 无限冲激响应数字滤波器设计.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219