好文档 - 专业文书写作范文服务资料分享网站

IIR数字滤波器的设计

天下 分享 时间: 加入收藏 我要投稿 点赞

实验 IIR数字滤波器的设计

一.实验目的

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

(2)观察双线性变换法和脉冲响应不变法设计的数字滤波器的频域特性,了解双线性变换法和脉冲响应不变法的特点和区别。

(3) 熟悉 Butterworth滤波器、 Chebyshev滤波器和椭圆滤波器的频率特性。

二.实验原理与方法

IIR数字滤波器的设计方法可以概括为图一,本实验主要掌握IIR滤波器的第一种方法,即利用模拟滤波器设计IIR数字滤波器,这是IIR数字滤波器设计最常用的方法。利用模拟滤波器设计,需要将模拟域的H(s)转换为数字域H(z),最常用的转换方法为脉冲响应不变法和双线性变换法。

IIR数字滤波器的设计方法

从模拟滤波器设计IIR数字滤波器 直接设计IIR数字滤波器 脉冲响应 不变法 双线性变换法 零、极点累试发 频域逼近法 时域逼近法 图(1) IIR数字滤波器的设计图

1.脉冲响应不变法

用数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应ha(t),让

h(n)正好等于ha(t)的采样值,即

h(n)?ha(nT)

其中T为采样间隔。如果以Ha(s)及H(z)分别表示ha(t)的拉氏变换及h(n)的Z变换,则

H(z)|z?esT1?2π??Ha(s?jκ) Tk???T在 MATLAB中,可用函数impinvar实现从模拟滤波器到数字滤波器的脉冲响应不变映射。 2.双线性变换法

s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。双线性变换不存在频率混叠问题。

s平面与z平面之间满足下列映射关系

s?21?zΤ1?z?1?12?s 或 z?T2?sT

在 MATLAB中,可用函数 bilinear实现从模拟滤波器到数字滤波器的双线性变换映射。

双线性变换是一种非线性变换,即Ω?畸变可通过预畸变得到校正。

由模拟滤波器设计数字滤波器,必须先将数字滤波器的设计技术指标转换成模拟低通滤波器的设计指标,设计出模拟低通滤波器的原型,然后进行映射(原型变换)。 3.设计步骤

IIR数字滤波器的设计过程中,模拟滤波器的设计是关键。模拟滤波器的设计一般是采用分步设计的方式,这样设计原理非常清楚,具体步骤如下:

①确定所需类型数字滤波器的技术指标。

②将所需类型数字滤波器的技术指标转换成模拟滤波器的技术指标。 ③将所需类型模拟滤波器的技术指标转换成模拟低通滤波器技术指标。 ④设计模拟低通滤波器。

⑤将模拟低通滤波器通过频率转换,转换成所需类型的模拟滤波器。在 MATLAB

2?tan,这种非线性引起的幅频特性T2

中,可利用的lp2lp、lp2hp、lp2bp、lp2bs等函数来实现。

⑥将所需类型的模拟滤波器转换成所需类型的数字滤波器。利用 MATLAB中的

Impinvar、 bilinear函数。

三.实验内容

已知?p?0.2?,Rp?1dB,?s?0.6?,Rs?25dB,T?1ms,分别用脉冲响应不变法和双线性变换法设计一个Butterworth数字低通滤波器,观察所设计数字滤波器的幅频特性曲线,记录带宽和衰减量,检查是否满足要求。比较这两种方法的优缺点。

0-5-10-15-20dbimpinvarbilinear-25-30-35-40-45-5000.10.20.30.40.5pi0.60.70.80.91

图(2)实验仿真图

MATLAB程序如下:

wp11=0.2*pi;ws11=0.6*pi;T=0.001;Rp=1;Rs=25; %确定所需类型数字滤波器的技术指标 wp=wp11/T;ws=ws11/T;

wp1=(2/T)*tan(wp11/2);ws1=(2/T)*tan(ws11/2);

%将所需类型数字滤波器的技术指标转换成模拟低通滤波器的技术指标 [n,wn]=buttord(wp,ws,Rp,Rs,'s'); [b,a]=butter(n,wn,'s');

%求模拟滤波器的系统函数 % [n,wn]=buttord(wp1,ws1,Rp,Rs,'s'); % [b,a]=butter(n,wn,'s'); %impinvar

[bz,az]=impinvar(b,a,1/T); [db,mag,pha,w]=freqz_m(bz,az); %双线性变换法

plot(w/pi,db,'LineWidth',2,'Color','r');axis([0,1,-50,2]);hold on

%绘图,为了使横坐标显示的事频率f(单位是Hz),将原变量表w(模拟角频率,单位为rad/s)进行了处理 [n,wn]=buttord(wp1,ws1,Rp,Rs,'s'); [b,a]=butter(n,wn,'s'); [bz,az]=bilinear(b,a,1/T); [db,mag,pha,w]=freqz_m(bz,az); %求数字滤波器的频率响应

plot(w/pi,db,'LineWidth',2,'Color','k');;axis([0,1,-50,2]);

%绘图,为了与模拟滤波器的频响在同一坐标中绘出,需将数字频率w转换为模拟频率f,转换公式为f?w?fs/2? legend('impinvar','bilinear') xlabel('pi') %横坐标表示pi ylabel('db') %纵坐标表示db grid on;

四.实验中的结论

利用模拟滤波器设计数字滤波器,就是将设计的模拟滤波器系统函数Ha(s)变换成数字滤波器系统函数H(z)。脉冲响应不变法,会产生频谱混叠。由于脉冲响应是冲激响应的采样,要求模拟滤波器的频谱限带小于折叠频率。实际的滤波器不可能是严格限带,所以设计的数字滤波器不可避免地会产生混叠失真。

滤波器能很好地重现原模拟滤波器的频率特性。数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应,时域特性逼近好。双线性变换法, 解决了脉冲响应不变法的混叠失真问题。它是一种简单的代数映射关系,设计十分方便。从S平面的Ω到Z平面的ω的映射是非线性关系(因S→S1平面的频率映射非线性),带来了频率和相位失真。

五.收获与建议

通过本次实验对滤波器的变化有了进一步的了解,将不同要求的目标滤波器转换到低通滤波器来处理,同时也对有关滤波器的函数有了一个新的认识。 实验不仅用到了Matlab里面自带的函数,同时也用到一些外部函数,对这些函数的使用也加强了自己使用Matlab的能力。懂得不要盲目的去抄写代码,有很多很熟,只有理解了他的含义,才能够合理的使用。

IIR数字滤波器的设计

实验IIR数字滤波器的设计一.实验目的(1)掌握脉冲响应不变法和双线性变换法设计IIR数字滤波器的具体方法和原理,熟悉双线性变换法和脉冲响应不变法设计低通、带通IIR数字滤波器的计算机编程。(2)观察双线性变换法和脉冲响应不变法设计的数字滤波器的频域特性,了解双线性变换法和脉冲响应不变法的特点和区别。
推荐度:
点击下载文档文档为doc格式
02yoj7603c5s23r4b01m9s4tl8lgrm00e2g
领取福利

微信扫码领取福利

微信扫码分享