实验五-IIR数字滤波器设计与滤波(附思考题程序)

发布时间 : 星期一 文章实验五-IIR数字滤波器设计与滤波(附思考题程序)更新完毕开始阅读

实验五 IIR数字滤波器设计与滤波

1.实验目的

(1)加深对信号采样的理解, (2)掌握滤波器设计的方法; (3)复习低通滤波器的设计。

2.实验原理

目前,设计IIR数字滤波器的通用方法是先设计相应的低通滤波器,然后再通过双线性变换法和频率变换得到所需要的数字滤波器。模拟滤波器从功能上分有低通、高通、带通及带阻四种,从类型上分有巴特沃兹(Butterworth)滤波器、切比雪夫(Chebyshev)I型滤波器、切比雪夫II型滤波器、椭圆(Elliptic)滤波器以及贝塞尔(Bessel)滤波器等。 典型的模拟低通滤波器的指标如下:?P,?S分别为通带频率和阻带频率,?P,?S分别为通带和阻带容限(峰波纹值)。在通带内要求1??P?Ha(J?)?1,有时指标由通带最大衰减?p和阻带最小衰减?s给出,定义如下:?p??20lg(1??p) 和?s??20lg(?s)

第二种常用指标是用参数?和A表示通带和阻带要求,如图所示:

-可编辑修改-

二者之间的关系为:??[(1??p)?2?1]1/2和?s?1/A,根据这几个参数可导出另外两个参数d,k,分别称为判别因子和选择性因子。

d?

?A?12 k??p/?s

BUTTERWORTH低通滤波器:幅度平方函数定义为Ha(J?)?21,N

1?(?/?c)2N为滤波器阶数,?c为截止频率。当???c时,有Ha(J?)?1/2,为3DB带宽。

BUTTERWORTH低通滤波器系统函数有以下形式:

Ha(s)??cN?(s?sk)k?1N?1 NN?1s?a1s?...?aN?1s?aN由模拟滤波器设计IIR数字滤波器,必须建立好s平面和z平面的映射关系。使模拟系统函数Ha(s)变换成数字滤波器的系统函数H(z),通常采用冲激相应不变法和双线性变换法。冲激相应不变法存在频谱混叠现象,双线性变换法消除了这一线象,在IIR数字滤波器的设计中得到了更广泛的应用。

21?Z?1jwz?es?j?s平面和Z平面的映射关系为s?f(Z)?,将和待入数字频率?1Ts1?Z和等效的模拟频率之间的映射关系:??tan(),由于二者不是线性关系,所以称为预畸变。

w23.实验内容及其步骤

-可编辑修改-

实验的步骤:

(1)给定数字滤波器的幅度相应参数。

(2)用预畸变公式将数字滤波器参数变换为相应的等效模拟滤波器参数。 (3)采用模拟滤波器设计方法设计等效模拟滤波器Ha(s)

(4)采用双线性变换公式把等效模拟滤波器映射为所期望的数字滤波器。 其中第三步中模拟滤波器设计步骤为:

首先,根据滤波器指标求选择因子k和判别因子d 其次,确定满足技术所需的滤波器阶数N, N?再次,设3db截止频率?c

最后由表查出归一化巴特沃斯滤波器系数。 设计举例:

例1 设计一个模拟巴特沃特低通滤波器,它在30rad/s处具有1dB或更好的波动,在50rad/s处具有至少30dB的衰减。求出级联形式的系统函数,画出滤波器的幅度响应、对数幅度响应、相位响应和脉冲响应图。

MATLAB参考程序:

Wp=30;Ws=50;Rp=1;As=30; %技术指标 Ripple=10^(-Rp/20); Attn=10^(-As/20);

[b,a]=afd_butt(Wp,Ws,Rp,As) %巴特沃兹低通滤波器子程序 [db,mag,pha,w]=freqs_m(b,a,50); %计算幅频响应

[ha,x,t]=impulse(b,a); %计算模拟滤波器的单位脉冲响应 figure(1);clf;

-可编辑修改-

logd logk。

subplot(2,2,1);plot(w,mag);title('Magnitude Response'); xlabel('Analog frequency in rad/s'); ylabel('H'); axis([0,50,0,1.1]);grid;

subplot(2,2,2);plot(w,db);title('Magnitude in dB'); xlabel('Analog frequency in rad/s'); ylabel('decibels'); axis([0,50,-40,5]) grid

subplot(2,2,3);plot(w,pha/pi);title('Phase Response'); xlabel('Analog frequency in rad/s'); ylabel('radians'); axis([0,50,-1.1,1.1]) grid

subplot(2,2,4);plot(t,ha);title('Impulse Response'); xlabel('time in seconds'); ylabel('ha(t)');

axis([0,max(t)+0.05,min(ha),max(ha)+0.025]); grid

%巴特沃兹模拟滤波器的设计子程序

function[b,a]=afd_butt(Wp,Ws,Rp,As); if Wp<=0

error('Passband edge must be larger than 0')

-可编辑修改-

联系合同范文客服:xxxxx#qq.com(#替换为@)