FIR滤波器窗函数设计Word格式.docx
《FIR滤波器窗函数设计Word格式.docx》由会员分享,可在线阅读,更多相关《FIR滤波器窗函数设计Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
对于同样的滤波器设计指标,FIR滤波器所要求的阶数可能比IIR滤波器高5-10倍,但是FIR滤波器可以得到严格的线性相位。
2.从结构上看,IIR滤波器必须采用递归结构,极点位置必须在单位圆内,否则系统将不稳定。
相反,FIR滤波器只要采用非递归结构,不论在理论上还是在实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。
此外FIR滤波器可以采用快速傅里叶变换算法,在相同阶数的条件下,运算速度可以快得多。
3.从设计工具看,IIR滤波器可以借助于模拟滤波器的成果,因此一般都有有效的封闭形式的设计公式可供准确计算,计算工作量比较小,对计算工具的要求不高。
从上面的简单比较可以看到IIR与FIR滤波器各有所长,所以在实际应用时应该从多方面考虑来加以选择。
从使用要求上来看,在对相位要求不敏感的场合,如语言通信等,选用IIR较为合适,这样可以充分发挥其经济高效的特点;
对于图像信号处理,数据传输等以波形携带信息的系统,则对线性相位要求较高。
如果有条件,采用FIR滤波器较好。
另外,不论IIR和FIR,阶数越高,信号延迟越大;
同时在IIR滤波器中,阶数越高,系数的精度要求越高,否则很容易造成有限字长的误差使极点移到单位园外。
因此在阶数选择上是综合考虑的。
二、FIR数字滤波器的设计
(一)FIR滤波器原理
FIR滤波器的系统输入输出差分方程为:
所以FIR滤波器的系统函数为:
由于FIR滤波器的单位脉冲响应h(n)是一个有限长序列,H(z)是
的(N−1)次多项式,它在Z平面上有(N−1)个零点,同时在原点有(N−1)阶重极点。
因此,H(z)永远稳定。
FIR滤波器设计的任务是选择有限长度的h(n),使传输函数
满足一定的幅度特性和线性相位要求。
由于FIR滤波器很容易实现严格的线性相位,所以FIR数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。
(二)FIR滤波器的窗函数设计原理
窗函数法的设计思想是按照所要求的理想滤波器频率响应
,设计一个FIR滤波器,使之频率响应
来逼近
。
先由
的傅里叶反变换导出理想滤波器的冲激响应序列
,即:
由于
是矩形频率特性,所以
是一无限长的序列,且是非因果的,而要计的FIR滤波器的冲激响应序列是有限长的,所以要用有限长的序列h(n)来逼近无限长的序列
,最有效的方法是截断
,或者说用一个有限长度的窗口函数w(n)序列来截取
,即:
按照复卷积公式,在时域中的乘积关系可表示成在频域中的周期性卷积关系,即可得所设计的FIR滤波器的频率响应:
其中,
为截断窗函数的频率特性。
由此可见,实际的FIR数字滤波器的频率响应
逼近理想滤波器频率响应
的好坏,完全取决于窗函数的频率特性
如果w(n)具有下列形式:
w(n)相当于一个矩形,我们称之为矩形窗。
即我们可采用矩形窗函数w(n)将无限脉冲响应
截取一段
来近似为
经过加矩形窗后所得的滤波器实际频率响应能否很好地逼近理想频率响应呢下图给出了理想滤波器加矩形窗后的情况。
理想低通滤波器的频率响应
如图中左上角图,矩形窗的频率响应
为左下角图。
根据卷积定理,即得实际滤波器的频率响应
图形为图中右图。
由图可看出,加矩形窗后使实际频率响应偏离理想频率响应,主要影响有三个方面:
(1)理想幅频特性陡直边缘处形成过渡带,过渡带宽取决于矩形窗函数频率响应的主瓣宽度。
(2)过渡带两侧形成肩峰和波纹,这是矩形窗函数频率响应的旁瓣引起的,旁瓣相对值越大,旁瓣越多,波纹越多。
(3)随窗函数宽度N的增大,矩形窗函数频率响应的主瓣宽度减小,但不改变旁瓣的相对值。
为了改善滤波器的性能,需使窗函数谱满足:
主瓣尽可能窄,以使设计出来的滤波器有较陡的过渡带;
第一副瓣面积相对主瓣面积尽可能小,即能量尽可能集中在主瓣,外泄少,使设计出来的滤波器的肩峰和余振小逼近于理想滤波器。
但是这两个条件是相互矛盾的,实际应用中,折衷处理,兼顾各项指标。
(三)MATLAB信号处理中提供的窗函数
上边只考虑了矩形窗,如果我们使窗的主瓣宽度尽可能地窄,旁瓣尽可能地小,可以获得性能更好的滤波器,通过改变窗的形状来达到这个目的。
在数字信号处理的发展过程中形成了不同于矩形窗的很多窗函数,这些窗函数在主瓣和旁瓣特性方面各有特点,可满足不同的要求。
为此,用窗函数法设计FIR数字滤波器时,要根据给定的滤波器性能指标选择窗口宽度N和窗函数w(n)。
下面具体介绍几类类窗函数及其特性。
1.矩形窗
矩形窗函数的时域形式可以表示为:
它的频域特性为:
2.汉宁窗函数
汉宁窗函数的时域形式可以表示为:
为矩形窗函数的幅度频率特性函数。
汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍,为8π/N。
3.海明窗函数
海明窗函数的时域形式可以表示为:
它的频域特性为:
海明窗函数的最大旁瓣值比主瓣值低41dB,但它和汉宁窗函数的主瓣宽度是一样大的。
4.三角窗函数
三角窗是最简单的频谱函数
为非负的一种窗函数。
三角窗函数的时域形式可以表示为:
当n为奇数时:
当n为偶数时:
三角窗函数的主瓣宽度为8π/N,比矩形窗函数的主瓣宽度增加了一倍,但是它的旁瓣宽度却小得多。
(四)各窗函数的图形及幅频特性
1.用MATLAB编程绘制各种窗函数的形状,窗函数的长度为21。
程序如下:
clf;
Nwin=21;
n=0:
Nwin-1;
figure
(1)
forii=1:
4
switchii
case1
w=boxcar(Nwin);
%矩形窗
stext='
矩形窗'
;
case2
w=hanning(Nwin);
%汉宁窗
汉宁窗'
case3
w=hamming(Nwin);
%海明窗
海明窗'
case4
w=triang(Nwin);
%三角窗
三角窗'
end
posplot=['
2,2,'
int2str(ii)];
subplot(posplot);
stem(n,w);
%绘出窗函数
holdon
plot(n,w,'
r'
);
%绘出包络线
xlabel('
n'
ylabel('
w(n)'
title(stext);
holdoff;
gridon;
end
程序运行结果如下图:
2.用MATLAB编程,采用512个频率点绘制各窗函数的幅频特性。
Nf=512;
%窗函数复数频率特性的数据点数
Nwin=20;
%窗函数数据长度
%矩形窗
[y,f]=freqz(w,1,Nf);
%求解窗函数的幅频特性
mag=abs(y);
%求得窗函数幅频特性
posplot=['
subplot(posplot);
plot(f/pi,20*log10(mag/max(mag)));
%绘制窗函数的幅频特性
xlabel('
归一化频率'
振幅/dB'
title(stext);
由上图各窗函数的幅频特性可以看到各种窗函数都具有明显的主瓣和旁瓣。
主瓣频宽和旁瓣的幅值衰减特性决定了窗函数的应用场合。
矩形窗具有最窄的主瓣,但也有最大的旁瓣峰值(第一旁瓣衰减为13dB);
不同窗函数在这两方面的特点是不同的,因此应根据具体的问题进行选择。
通常来讲,海明窗和汉宁窗的主瓣,具有较小的旁瓣和较大的衰减速度,是较为常用的窗函数。
下表列出了各种窗函数主瓣和旁瓣的特征:
各窗函数的特征表
窗函数
主瓣频宽
第一旁瓣相对主瓣衰减(dB)
矩形窗
-13
汉宁窗
-31
海明窗
-41
三角窗
-25
此外,主旁瓣频率宽度还与窗函数长度N有关。
增加窗函数长度N将减小窗函数的主瓣宽度,但不能减小旁瓣幅值衰减的相对值(分贝数),这个值是由窗函数决定的。
例如:
绘制矩形窗函数的幅频响应,窗长度分别为:
(1)N=10;
(2)N=20;
(3)N=50;
(4)N=100时的图形如下:
由上图可以看出,随着N的增大,主瓣和旁瓣都变窄,但第一旁瓣相对主瓣的幅值下降分贝数相同,第二旁瓣相对第一旁瓣幅值下降的分贝数也相同。
然而,随着N的增大,旁瓣数也增多,减少主瓣宽度和抑制旁瓣是一对矛盾,不可兼得,只能根据不同用途折衷处理。
三、运用窗函数设计数字滤波器
用于信号分析中的窗函数可根据滤波器的指标进行不同选择。
用于滤波器的窗函数,一般要求窗函数的主瓣宽度窄,以获得较好的过渡带;
旁瓣相对值尽可能少,增加通带的平稳度和增大阻带的衰减。
窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:
(1)通过傅里叶逆变换获得理想滤波器的单位脉冲响应
;
(2)由性能指标(阻带衰减的分贝数)根据窗函数的特征表的值确定满足阻带衰减的窗函数类型
,和窗口长度N;
(2)根据
,求实际滤波器的单位脉冲响应
(3)检验滤波器的性能。
下面根据上面步骤设计FIR滤波器:
一、例1要求用窗函数设计一个线性相位FIR低通滤波器,并满足性能指标:
通带边界的归一化频率
=,阻带边界的归一化频率
=,