首页 百科知识 滤波器的设计

滤波器的设计

时间:2023-10-10 百科知识 版权反馈
【摘要】:前者主要用来对现有的滤波器进行数字模拟,后者主要是针对特定的要求来设计滤波器。由于现在模拟滤波器的设计方法已经比较成熟,有一些现成的表可查,并且有时我们也需要将模拟滤波器进行数字逼近,所以冲激响应不变法和双线性变换法能够得到广泛的应用。因此,在设计数字滤波器之前,首先要知道模拟滤波器的系统函数。

4.2 IIR滤波器的设计

在IIR数字滤波器的设计中,通常有两种做法,一种是我们知道了模拟滤波器的拉普拉斯变换,通过一定方法用数字滤波器来逼近模拟滤波器;另一种就是给定滤波器的参数,用特定的函数来设计数字滤波器。前者主要用来对现有的滤波器进行数字模拟,后者主要是针对特定的要求来设计滤波器。典型数字低通滤波器的幅度描述如图4-6所示。

img293

图4-6 典型数字低通滤波器的幅度描述

图中参数δp, δs, ωp, ωs, αp, αs的意义如下:

δp   通带范围误差

δs   阻带范围误差

ωp   通带边界频率

ωs   阻带边界频率

αp   通带峰波

αs   最小阻带衰减

下面所要介绍的冲激响应不变法和双线性变换法都是对模拟滤波器进行数字化。由于现在模拟滤波器的设计方法已经比较成熟,有一些现成的表可查,并且有时我们也需要将模拟滤波器进行数字逼近,所以冲激响应不变法和双线性变换法能够得到广泛的应用。因此,在设计数字滤波器之前,首先要知道模拟滤波器的系统函数。

4.2.1 冲激响应不变法设计

冲激响应不变法是用数字滤波器的冲激响应序列h(n)来逼近模拟滤波器的单位冲激响应hd(t),使h(n)刚好是hd(t)的抽样值,即

h(n)= hd(nT),

其中T表示抽样周期。我们需要将模拟滤波器的拉普拉斯变换Hd(s)作反变换成hd(t),然后以周期T进行抽样,再作Z变换,便可得到我们想要的滤波器系统函数。

假设滤波器的系统函数只有一阶零点,将模拟滤波器系统函数的拉普拉斯变换Hd(s)写成部分展开式:

img294

其中,Ak为系数,sk为一阶极点。对其求拉氏反变换可以得到

img295

对单位冲激响应序列进行抽样,可以得到

img296

再对其进行反变换,我们就可以得到数字滤波器的系统函数:

img297

因为在拉普拉斯变换域内进行抽样后,频率响应还与抽样的周期成反比,为了抑制这种问题,我们将在时域抽样时作以下修正:

img298

于是,有

img299

img300

例4.1 已知模拟低通滤波器的系统函数为利用冲激响应不变法设计数字低通滤波器。

MATLAB程序:

syms s ht hn hs hz hrad shrad rad n;

%s是拉普拉斯变量,ht是模拟滤波器的单位冲激,hn是抽样序列,

%hs是模拟滤波器的系统函数,hz是数字滤波器的Z变换,rad是数字

%角频率,hrad是hn的幅频响应,shrad表示数字滤波器的频率响应

img301

程序运行结果如图4-7所示。

img302

图4-7 例4.1的图形显示

这样我们就可以得到用冲激响应不变法求得的数字滤波器系统函数:

>>hz

hz =

z/(z-1/exp(1))-z/(z-1/exp(2))

即h(n)=img303

冲激响应不变法的优缺点:

冲激响应不变法能够使数字滤波器完全逼近模拟滤波器,且模拟频率和数字频率之间呈线性关系,因此在模拟的时候就不会出现频率失真。一个线性相位的滤波器可以映射成另一个线性相位的滤波器。但是冲激响应不变法的一个明显缺点就是容易出现混叠失真,并且只适用于限带低通或带同滤波器。

4.2.2 用双线性变换法设计

双线性变换是为了解决冲激响应不变法产生混叠失真而提出的。在冲激响应不变法中z = esT是一个多值映射,这也就是冲激响应不变法产生混叠失真的根本原因。双线性变换法的主要思想是先将平面压缩到在虚轴方向上只有-img304img305的平面s1,然后再作映射z = es1T,将其映射到z平面上,如图4-8所示。

img306

图4-8 双线性变换的映射关系

为保证其截止频率不变(参看[16] ,第141~142页),变换式为

img307

在双线性变换下,可得其数字系统与模拟系统的关系为

img308

由上面的变换可知,模拟滤波器的频率与数字滤波器的频率并不呈线性关系,需进行纠正,我们称之为“预畸”,即先通过数字通带截止频率ωp和阻带截止频率ωs换算出模拟滤波器的Ωp和Ωs,然后设计好模拟滤波器后再将其转换成数字滤波器。

例4.2 已知模拟低通滤波器的系统函数为

img309

利用双线性变换法设计数字低通滤波器。

MATLAB程序:

syms k shrad hrad rad hs hz sz s z;

%sz代表两者之间的映射,shrad表示数字滤波器的频率响应,

%hrad表示模拟滤波器的频率响应,rad是角频率,hs是模拟

%滤波器的系统函数,hz是数字滤波器的Z变换,s, z分别是

%拉普拉斯变量和Z变量

img310

程序运行结果如图4-9所示。

可以得到由双线性变换法设计的数字滤波器:

hz =1/((2/z-2)^2/(1/z+1)^2-(3*(2/z-2))/(1/z+1)+2)

即h(n)=img311

img312

图4-9  例4.2的图形显示

下面介绍MATLAB中的函数bilinear:

[numt, dent]= bilinear(num, den, fs)

函数的功能是用双线性变换的方法设计数字滤波器,其中num和den分别是原模拟滤波器的系统函数的分子、分母的系数向量,numt和dent分别是双线性变换后的数字滤波器的系统函数的分子、分母的系数向量,fs是抽样频率。

双线性变换法的优缺点:

由于在双线性变换法中,从模拟滤波器到数字滤波器中的映射是单值映射,这样就从根本上防止了混叠效应的产生。但是其缺点是模拟频率到数字频率之间的映射是非线性的,这样的滤波器会产生一定程度的失真。因此在没有严格要求线性相位的时候,我们用双线性变换法设计IIR滤波器能得到比较好的效果。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈