1、第五章 FIR 数字滤波器设计5.2.4 几种常用窗函数设计 FIR DF 时,窗函数不仅可以影响过渡带宽度,还能影响肩峰和波动的大小,因此,选择窗函数应使其频谱:(1)主瓣宽度尽量小,以使过渡带尽量陡。(2)旁瓣相对于主瓣越小越好,这样可使肩峰和波动减小,即能量尽可能集中于主瓣内。 对于窗函数,这两个要求是相互矛盾的,要根据需要进行折衷的选择,为了定量地比较各种窗函数的性能,给出三个频域指标:(1)3db 带宽 B ,单位为(最大可能的频率分辨力)(2)最大旁瓣峰值 A(dB) , A 越小,由旁瓣引起的谱失真越小(3)旁瓣谱峰渐进衰减速度 D ( dB/oct ) 一个理想的窗口,应该有最
2、小的 B 、 A 及最大的 D 。 1 、基本窗(1)矩形窗在 Matlab 中,实现矩形窗的函数为 w=boxcar(n) 。(2)三角窗(或巴特利特 Bartlett 窗)由于矩形窗从 0 到 1 (或 1 到 0 )有一个突变的过渡带,这造成了吉布斯现象。Bartlett 提出了一种逐渐过渡的三角窗形式,它是两个矩形窗的卷积。在Matlab中,函数bartlett(n)和 triang(n)用来计算相似的三角窗,但它们有两个重要的区别: bartlett 函数返回的序列两端总是 0 ,因此,对于奇数 n ,语句 bartlett(n+2) 的中间部分等于 triang(n) ;对于偶数
3、n , bartlett 仍然是两个矩形序列的卷积,但 n 为偶数时的三角窗没有标准定义。 (2)余弦窗2、升余弦窗汉宁窗、汉明窗、布莱克曼窗都是升余弦窗的特例, 它们都是频率为 02/(N-1) 和4/(N-1) 的余弦序列的组合。其中 A 、 B 、 C 为常数。升余弦窗的频率特性比矩形窗有很大改善。当 A = 0.5 , B=0.5 , C=0 时,为汉宁 (Hanning) 窗。 Matlab 中, w = hanning(n)当 A = 0.54 , B=0.46 , C=0 时,为汉明窗。 Matlab 中, w = hamming(n)当 A = 0.42 , B=0.5 , C
4、=0.08 时,为布莱克曼窗。 Matlab 中, w = blackman(n) (1)汉宁(Hanning)窗 升余弦窗 (2)汉明( Hamming )窗改进的升余弦窗 (3)布莱克曼( Blackman )窗二阶升余弦窗 比较以上窗函数,可以看到,矩形窗函数具有最窄的主瓣B,但也有最大的边瓣峰值 A和最慢的衰减速度 D。汉宁Hanning窗的主瓣稍宽,但有着较小的旁瓣和较大的衰减速度,因而被认为是较好的窗口。3、凯瑟(Kaiser)窗上面讨论的几种窗函数都是以牺牲一定的主瓣宽度为代价,来获得某种程度的旁瓣抑制,而 Kaiser 窗全面反映了这种主瓣和旁瓣衰减之间的交换关系,它定义了一组
5、可调的由零阶贝塞尔 Bessel 函数构成的窗函数,通过调整参数可以在主瓣宽度和旁瓣衰减之间自由选择它们的比重。对于某一长度的 Kaiser 窗,给定,则旁瓣高度也就固定了。Kaiser 窗函数由 J.F. Kaiser 提出,由下是给出:其中 I0 是修正过的零阶贝塞尔 Bessel 函数,是用来调整窗形状的参数,依赖于参数 N ,选择 N 可产生各种过渡带和接近最优的阻带衰减。对于相同的N, Kaiser 窗可以提供不同的过渡带宽,这是其他窗函数做不到的。例如如果 = 5.658 ,则过渡带宽等于 7.8pi/N ,最小阻带衰减为 60dB ,如下图所示。下面是 分别取 1 、 10 、
6、20 等不同值时,几个长为 50 的 Kaiser 窗。从图中可以看出,参数 选得越大,其频谱的旁瓣越小,但主瓣宽度也相应地增加,因从图中可以看出,参数 选得越大,其频谱的旁瓣越小,但主瓣宽度也相应地增加,因下面固定,当窗的长度变化时,相应的旁瓣的高度保持不变。 由于Bessel函数的复杂性,这种窗的设计公式很难推导,为此,Kaiser 开发了经验公式。给定 wp、ws、 Rp 和 As ,参数定义如下:对于过渡带宽 w = ws - wp (rad/s) ,滤波器阶数为阶数为 N 的滤波器大致能满足要求,但最后的结构还必须要演算以便证明这一点。在 Matlab 中,函数 w = kaiser
7、(n, beta) 实现 Kaiser 窗。4、切比雪夫(Chebyshev)窗在给定旁瓣高度下,Chebyshev窗的主瓣宽度最小,具有等波动性,也就是说,其所有的旁瓣都具有相等的高度。在 Matlab 中,函数 w=chebwin(n,r)以窗长度和旁瓣高度为参数计算切比雪夫窗。Chebyshev 仅对奇数长度的窗有定义,若 n 为偶数,函数 w = chebwin(n,r) 先将它加 1 ,然后设计长为 n+1 的切比雪夫窗。其傅立叶变换的旁瓣幅度低于主瓣 r dB 。此外,还有Papoulis窗、Parzen窗、Poisson窗、Cauchy窗、 Gaussian窗、Bartlett-Hann、Blackman-Harris 、 Nuttalls Blackman-Harris 、 Bohman 、 Flat Top window 、 Hann 、 Parzen (de la Valle-Poussin ) 、 Tapered cosine 等。Matlab 窗设计和分析工具 (WinTool) 具有 GUI 界面,可以用来设计和分析窗函数,其用法: wintoolword文档 可自由复制编辑