1、,第五章 FIR数字滤波器的设计,5.2 窗函数法设计线性相位 FIR数字滤波器,主要内容,一、窗函数法设计线性相位FIR滤波器的基本思想 二、Gibbs(吉伯斯)现象 三、常用窗函数 四、Kaiser(凯泽)窗,重点与难点,重点 1、窗函数设计法的基本思想,难点 1、常用窗函数,一、基本思想,问题: 理想滤波器的频率响应Hd (ejW )已知,如何设计一物理可实现的滤波器,使其频响特性逼近Hd (ejW )?,hd k一般情况下是无限长非因果序列, 需对其进行截短和因果化处理。,一、基本思想,可实现性处理方案,方案一:,(1) 将hdk 关于k =0对称截短,即hk= hdk, -Lk L,
2、(2) 若 hk非因果系统,可将其右移使其成为因果系统,hk= hdk - L, 0k 2L,只能设计I型或III型线性相位FIR滤波器,(1) 由下式计算hd k:,(2) 计算出hdk后,取其在0 k M范围的值:,hk= hdk, 0k M,一、基本思想,可实现性处理方案,方案二:,可设计四种类型的线性相位FIR滤波器,一、基本思想,第二种方法的设计结果分析,等于零,即hk= hdk, 0k M,最小!,积分平方误差:,由Parseval定理,结论:上述方法所设计的滤波器是在积分平方 误差最小意义下的最佳滤波器。,一、基本思想(采用方案二),1根据要求确定线性相位FIR滤波器的类型,2确
3、定理想滤波器的幅度函数Ad(W)和相位函数fd(W),3按照下式计算IDTFT得hdk,4截短hdk得:,hk= hdk, 0k M,最小积分平方误差设计FIR滤波器的步骤:,fd(W)= -0.5MW +b,例1:设计一个幅度响应能逼近理想带通滤波器的线性相位FIR滤波器。,解: (1) 确定线性相位FIR滤波器类型:可选用I型或II型,(2) 确定理想滤波器的幅度函数Ad(W):,fd(W)= -0.5MW,(3) 确定理想滤波器的相位fd(W):,例1:设计一个幅度响应能逼近理想带通滤波器的线性相位FIR滤波器。,解:,(4) 计算IDTFT得hdk,(5) 截断hdk,长度为N=M+1
4、的矩形窗,例1:设计一个幅度响应能逼近理想带通滤波器的线性相位FIR滤波器。,解:,单位脉冲响应,幅度函数,取Wc1=0.3p,Wc2=0.7p,M =30时,有:,二、Gibbs(吉伯斯)现象,矩形窗设计的FIR低通滤波器在不同阶数时的幅度函数(Wc=p/2),所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为Gibbs 现象。,二、吉伯斯现象,产生吉伯斯现象原因分析,由于所设计滤波器的单位脉冲响应,N=M+1,利用DTFT的性质可得所设计FIR滤波器的频率响应,H(ejW)逼近Hd(ejW)的好坏,取决于窗函数的频谱WN(ejW),窗函数的频谱,二
5、、吉伯斯现象,长度为N的矩形窗窗函数的频谱,矩形窗的幅度函数W(W),1. W(W)的主瓣宽度:,4p/N,2. 旁瓣相对衰减为常数:,=13dB,二、吉伯斯现象,矩形窗设计FIR滤波器的频率响应H(ejW),FIR滤波器的幅度函数:,二、吉伯斯现象,矩形窗设计FIR滤波器的频率响应H(ejW ),H(ejW)主要由主瓣的面积确定。 H(ejW)的波动由旁瓣引起。,FIR滤波器的幅度函数:,二、吉伯斯现象,矩形窗设计FIR滤波器的频率响应H(ejW),H(ejW)逐渐减小,形成了滤波器的过渡带。,FIR滤波器过渡带的宽度和窗函数主瓣的宽度密切相关。,FIR滤波器的幅度函数:,二、吉伯斯现象,矩
6、形窗设计FIR滤波器的频率响应H(ejW),H(ejW)完全由旁瓣的面积确定。,旁瓣的大小决定了FIR滤波器在阻带的衰减。,FIR滤波器的幅度函数:,二、吉伯斯现象,矩形窗设计FIR滤波器的频率响应H(ejW),矩形窗截断产生的波峰大约是9%,故用矩形窗设计出的滤波器阻带最大衰减为:,-20lg0.0921dB,FIR滤波器的幅度函数:,二、吉伯斯现象,结论,1. 窗函数的主瓣宽度决定了H(ejW )过渡带(4/N)的宽度,窗函数长度N增大,过渡带减小。,2. 旁瓣的大小决定了FIR滤波器在阻带的衰减。,用矩形窗设计出的滤波器阻带最大衰减为: 20lg(9%)-21dB,如何提高阻带衰减?,选
7、用旁瓣幅度较小的窗函数,三、常用窗函数,矩形窗,Ap =-20lg(1-dp) 0.82dB, As = -20lg(ds ) 21dB,dp=ds=0.09,三、常用窗函数,Hann(汉纳/汉宁)窗(w=hanning(M+1),Ap =-20lg(1-dp) 0.056dB, As=-20lg(ds ) 44dB,dp=ds =0.0064,三、常用窗函数,Hamming(哈明/汉明)窗(w=hamming(M+1),Ap 0.019dB, As 53dB,dp=ds =0.0022,N,三、常用窗函数,Blackman (布莱克曼)窗(w=blackman(M+1),Ap 0.0017d
8、B,As 74dB,dp=ds =0.0002,N,三、常用窗函数,常用窗函数性质,此处 N 为窗的长度。,例2:用非矩形窗设计截频为Wc =0.5p的线性相位理想低通滤波器,并将设计结果与利用矩形窗设计结果比较。,解:,(1) 确定线性相位FIR滤波器类型:可选用I型或II型,fd(W)= -0.5MW,(2) 确定理想滤波器的幅度函数Ad(W)和相位fd(W),(3) 计算IDTFT得hdk,(4) 截断hdk,可以是汉宁窗、哈明窗或Blackman窗,矩形窗和汉宁窗设计的低通对比,例2:用非矩形窗设计截频为Wc =0.5p的线性相位理想低通滤波器,并将设计结果与利用矩形窗设计结果比较。,
9、矩形窗和哈明窗设计的低通对比,例2:用非矩形窗设计截频为Wc =0.5p的线性相位理想低通滤波器,并将设计结果与利用矩形窗设计结果比较。,矩形窗和Blackman窗设计的低通对比,例2:用非矩形窗设计截频为Wc =0.5p的线性相位理想低通滤波器,并将设计结果与利用矩形窗设计结果比较。,四、Kaiser(凯泽)窗,b 是一可调参数,调节窗函数的形状。,I0(x ): 零阶第一类修正贝塞尔函数。,I0(x )可用幂级数表示为:,一般求20项就能达到所需精度。,定义,( w=kaiser(N,beta) ),四、Kaiser(凯泽)窗,b取不同值时窗的形状(M=20),四、Kaiser(凯泽)窗,
10、其中,A= -20lg (mindp,ds ),N与b 的确定,四、Kaiser(凯泽)窗,Kaiser窗设计FIR滤波器的MATLAB函数,M,Wc,beta,ftype = kaiserord(f,a,dev),f: 表示需设计的FIR滤波器的频带。,a: B个元素的向量, 表示FIR滤波器在B个频带中的 幅度值。一般对通带取值为1,阻带取值为0。,dev: B个元素的向量, 表示FIR滤波器在B个频带中 的波动值。,返回参数M及beta,分别表示FIR滤波器阶数M及Kaiser窗的参数b。,返回参数Wc和ftype是函数fir1的调用参数。,h = fir1(M,Wc,ftype,win
11、dow),M表示滤波器的阶数。,Wc表示理想FIR滤波器的B个频带。,ftype表示滤波器的类型,缺省值为空。,window是一长度为N+1的向量, 默认为Hamming窗。,四、Kaiser(凯泽)窗,获得FIR滤波器的单位脉冲响应,例3:用Kaiser窗设计满足下列指标的I型线性相位FIR低通滤波器。Wp=0.3p, Ws=0.5p,Ap=0.1dB, As=40dB。,解:,(1) 由给定指标确定待逼近理想低通的截频Wc,由于理想低通滤波器的|H(ejW)|在截频Wc处收敛于0.5,因此常将截频Wc取在过渡带的中点,Wc =(Wp + Ws )/2=0.4p,解:,(2) 由给定指标确定
12、Kaiser窗的参数N和b,A= -20lg(mindp,ds )=As=40dB,I型线性相位滤波器阶数必须是偶数,取M=24,例3:用Kaiser窗设计满足下列指标的I型线性相位FIR低通滤波器。Wp=0.3p, Ws=0.5p,Ap=0.1dB, As=40dB。,解:,(3) 设计截频Wc =0.4p的I型线性相位FIR低通滤波器,fd(W)= -0.5MW,例3:用Kaiser窗设计满足下列指标的I型线性相位FIR低通滤波器。Wp=0.3p, Ws=0.5p,Ap=0.1dB, As=40dB。,解:,单位脉冲响应,设计结果,增益响应 G(W)= 20lg |H(ejW)|,例3:用
13、Kaiser窗设计满足下列指标的I型线性相位FIR低通滤波器。Wp=0.3p, Ws=0.5p,Ap=0.1dB, As=40dB。,例4:设计一满足下列指标的线性相位 FIR高通滤波器。,Wp=0.67p, Ws=0.53p,Ap=0.3dB, As=50dB。,解:,由As确定截断所用窗函数:Hamming窗或Kaiser窗,1) 由过渡带宽度确定滤波器长度N,可选I型滤波器,取N=51;或选IV型滤波器,取N=50,2) 由给定指标确定待逼近理想高通的截频Wc,=0.6p,一、采用Hamming窗截断,设计过程如下,3) 确定线性相位FIR滤波器类型:,4) 设计截频Wc =0.6p的线
14、性相位FIR高通滤波器,解:,由As确定截断所用窗函数:Hamming窗或Kaiser窗,一、采用Hamming窗截断,设计过程如下,采用I型线性相位滤波器,N=51,M=50,fd(W)= -0.5MW,例4:设计一满足下列指标的线性相位 FIR高通滤波器。,Wp=0.67p, Ws=0.53p,Ap=0.3dB, As=50dB。,4) 设计截频Wc =0.6p的线性相位FIR高通滤波器,解:,由As确定截断所用窗函数:Hamming窗或Kaiser窗,一、采用Hamming窗截断,设计过程如下,采用I型线性相位滤波器,N=51,M=50,截断,得I型线性相位FIR高通滤波器的单位脉冲响应
15、,hk=hdkw51k,例4:设计一满足下列指标的线性相位 FIR高通滤波器。,Wp=0.67p, Ws=0.53p,Ap=0.3dB, As=50dB。,4) 设计截频Wc =0.6p的线性相位FIR高通滤波器,解:,由As确定截断所用窗函数:Hamming窗或Kaiser窗,一、采用Hamming窗截断,设计过程如下,采用IV型线性相位滤波器,N=50,M=49,fd(W)= -0.5MW+0.5p,例4:设计一满足下列指标的线性相位 FIR高通滤波器。,Wp=0.67p, Ws=0.53p,Ap=0.3dB, As=50dB。,4) 设计截频Wc =0.6p的线性相位FIR高通滤波器,解
16、:,由As确定截断所用窗函数:Hamming窗或Kaiser窗,一、采用Hamming窗截断,设计过程如下,采用IV型线性相位滤波器,N=50,M=49,截断,得IV型线性相位FIR高通滤波器的单位脉冲响应,hk=hdkw50k,例4:设计一满足下列指标的线性相位 FIR高通滤波器。,Wp=0.67p, Ws=0.53p,Ap=0.3dB, As=50dB。,用Hamming窗设计的Wc=0.6p FIR HP滤波器的幅度响应,I 型 N=51 IV型 N=50,解:,由As确定截断所用窗函数:Hamming窗或Kaiser窗,二、采用Hamming窗截断,利用MATLAB实现,%Progra
17、m:利用hamming窗设计FIR高通滤波器 %filter specification Wp=0.67*pi;Ws=0.53*pi;Ap=0.3;As=50; %determine the length of the filter N=ceil(7*pi/(Wp-Ws); N=mod(N+1,2)+N; M=N-1; fprintf(N=%.0fn,N); %generate window w=hamming(N);,例4:设计一满足下列指标的线性相位 FIR高通滤波器。,Wp=0.67p, Ws=0.53p,Ap=0.3dB, As=50dB。,解:,由As确定截断所用窗函数:Hammin
18、g窗或Kaiser窗,二、采用Hamming窗截断,利用MATLAB实现,%cutoff frequency of ideal highpass filter,Wc=(Wp+Ws)/2; k=0:M; hd=-(Wc/pi)*sinc(Wc*(k-0.5*M)/pi); hd(0.5*M+1)=hd(0.5*M+1)+1; h=hd.*w; omega=linspace(0,pi,512); mag=freqz(h,1,omega); magdb=20*log10(abs(mag); plot(omega/pi,magdb);,例4:设计一满足下列指标的线性相位 FIR高通滤波器。,Wp=0.
19、67p, Ws=0.53p,Ap=0.3dB, As=50dB。,解:,由As确定截断所用窗函数:Hamming窗或Kaiser窗,三、采用Kaiser窗截断,利用MATLAB实现,%Program:利用Kaiser窗设计FIR高通滤波器 Ap=0.3;As=50; Rp=1-10.(-0.05*Ap);Rs=10.(-0.05*As); f=0.53,0.67;a=0,1;dev=Rp,Rs; M,Wc,beta,ftype = kaiserord(f,a,dev); %使滤波器为I型 M=mod(M,2)+M; h = fir1(M,Wc,ftype,kaiser(M+1,beta) om
20、ega=linspace(0,pi,512); mag=freqz(h,1,omega); plot(omega/pi,20*log10(abs(mag);,例4:设计一满足下列指标的线性相位 FIR高通滤波器。,Wp=0.67p, Ws=0.53p,Ap=0.3dB, As=50dB。,Kaiser窗设计的高通滤波器,N=42, Ap =0.034 dB, As = 52.4 dB,Wp=0.67p, Ws=0.53p,Ap=0.3dB, As=50dB,采用Hamming窗: I 型 N=51 IV型 N=50,课堂小结1,1、窗函数法设计线性相位FIR滤波器的基本思路,1)根据阻带衰减确
21、定窗函数的类型,4)确定理想滤波器的幅度函数Ad(W)和相位函数fd(W),5)按照下式计算IDTFT得hdk,6)截短hdk得:,hk= hdkwk, 0k M,fd(W)= -0.5MW +b,3)根据要求确定线性相位FIR滤波器的类型,2)根据过渡带宽度确定窗函数的长度N=M+1,课堂小结2,不论窗函数的阶数如何变化,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且阻带最大波纹与通带幅度之比为一个固定值。,2、Gibbs(吉伯斯)现象,课堂小结3,3、常用窗函数,注:N 为窗的长度。,课堂小结4,4、凯泽窗,b 是一可调参数,调节窗函数的形状。,I0(x )可用幂级数表示为:,一般求20项就能达到所需精度。,再见!,