四、滤波原理
滤波器,顾名思义,其作用是对输入信号起到滤波的作用。对下图所示的线性时不变系统,其时域输入输出关系为:
y(n)?x(n)?h(n)
x(n) h(n) y(n) 图 线性时不变系统示意图
若x(n)、y(n)的Fourier变换存在,为X(ej?)和Y(ej?),则输入和输出的关系为:
Y(ej?)?X(ej?)H(ej?)
式中H(ej?)为系统的频率响应。
j?j?再假定 x(n)的Fourier变换的振幅X(e)可用图(a)表示,系统幅频响应H(e)用
图(b)表示,则滤波器输出y(n)的频谱Y(ej?)用图(c)表示。
H(ej?)X(ej?)0?c(a)??c0?c(b)??cY(ej?)0?c(c)??c
图 滤波器滤波示意图
这样,x(n)通过系统h(n)的结果是使输出 y(n)中不再含有???c的频率成分,而使 ???c的成分“不失真”地通过。因此设计不同形状的H(ej?)可以得到不同的滤波结果。
26
若滤波器的输入、输出都是离散的时间信号,那么该滤波器的脉冲响应h(n)也必然是离散的。这样的滤波器是数字滤波器。当用硬件实现一个数字滤波器时,所需的元件是延迟器、乘法器和加法器。当在计算机上用软件实现时,就是一段线性卷积的程序。模拟滤波器智能用硬件来实现,其元件是电阻、电容、电感及运算放大器等。
27
五、模拟滤波器设计原理
5.1 信号无失真传输的条件
信号无失真传输指输入信号通过系统后,输出信号的幅值和输入信号的幅值成正比,允许有一定的延时,但没有波形上的畸变。系统的频率响应H(j?)满足下面的特性:
?H(j?)?k ???(?)??H(j?)???td式中,k、td均为常数。
群延迟(group delay)为信号通过系统的延迟时间,即:
td?d?(?) d?群延迟为相频特性曲线的斜率。对于无失真传输,td为常数,即群延迟为常数。
5.2 理想滤波器的特性
滤波器是一个选频装置。理想滤波器应能无失真地传输游泳信号,而又能完全抑制无用信号。有用信号和无用信号往往占有不同的频带。信号能通过滤波器的频带称为通带(passband),信号被抑制的频带称为阻带(stopband)。理想滤波器频率特性可写为:
?Kej?td,在通带内H(j?)??
?0,在阻带内实际滤波器的特性只能逼近理想滤波器,如下图:
H(j?)10-Ep/20100-Rp/20
可见,滤波器的幅频响应在通带内不是完全平直的,而是呈波纹变化;在阻带内,幅频
28
?p?s特性不为零,而是衰减至某个值;在通带和阻带之间存在一个过渡带,而不是突然下降。
滤波器的通带波纹Rp为相对于频率响应最大点(一般为1)的下降,下降越少说明通带越平直,滤波器的滤波效果越好(通常为1~5dB)。滤波器的阻带衰减Ep也是相对于频率响应最大点(一般为1)的下降,下降越多说明信号在阻带内越不容易通过,滤波效果越好(通常大于15dB)。过渡带越窄,滤波器的频率特性越接近直角矩形特性,滤波效果也越好。
5.3 模拟滤波器传递函数设计原理
模拟滤波器的设计通常在Laplace域内进行讨论。模拟滤波器的技术指标由平方幅值响
2应函数A(?)?H(j?)的形式给出,而H(j?)合传递函数H(s)存在下面的关系:
22A(?2)?H(j?)?H(s)H(?s)即
2s?j?
A(?2)?2??s2?H(s)H(?s)
2给定滤波器的技术指标后,由A(?)?H(j?)求出A(?s2),再适当地分配零极点
2可求出H(s)。为使滤波器稳定,H(s)的极点必须落在s平面左半平面。对于一个滤波器
的极点p,可以写成
1pt的形式,其逆Laplace变换为e,若p?0,随着时间增大至无s?p2穷,该滤波器的输出将出现不稳定。滤波器的零点可任取A(?s)的一半零点,这是因为滤波器对Laplace域表示的传递函数并无特殊要求,但如果要求H(s)具有最小相位,零点也必须选择在s左半平面。
29
六、模拟原型滤波器
模拟原型滤波器指的是截止频率为1的滤波器。
6.1 Butterworth滤波器
Butterworth模拟低通滤波器的平方幅频响应函数为:
H(j?)?A(?2)?21 2N1?(?/?c)式中?c为低通滤波器的截止频率(cutoff frequency),N为滤波器的阶数。 Butterworth滤波器特点:
通带内具有最大平坦的频率特性,且随着频率增大平滑单调下降;阶数越高,特性愈接近矩形,过渡带愈窄;传递函数无零点。
零点:滤波器的零点是将该值代入传递函数后,传递函数的值为零。 极点:滤波器的极点是将该值代入传递函数后,传递函数的值为无穷大。 增益:滤波器的增益是指传递函数表达式前的系数。 传递函数表达式:
H(s)?Z(s)K(s?z(1))(s?z(2))?((s?z(nz)) ?P(s)(s?p(1))(s?p(2))?((s?p(np))则滤波器的零点为[z(1),z(2)?z(nz)],极点为[p(1),p(2)?p(np)],增益为K。 MATLAB信号处理工具箱提供了Butterworth低通滤波器原型设计函数buttap,函数调用格式为: [z,p,k]=buttap(n)
其中,n为Butterworth滤波器的阶数,z、p、k分别为滤波器的零点、极点和增益。 Butterworth滤波器的传递函数具有下面的形式:
H(s)?Z(s)K? P(s)(s?p(1))(s?p(2))?((s?p(n))滤波器没有零点,极点为[p(1),p(2)?p(np)],增益为K。 特殊函数:
[b,a]=zp2tf(z,p,k)为将模拟原型滤波器函数(如buttap)设计出的零点z、极点p和增益形式转换为传递函数形式;其中,b为滤波器传递函数分子多项式系数,a为滤波器传递函
30