《有限脉冲响应数字滤波器的设计.ppt》由会员分享,可在线阅读,更多相关《有限脉冲响应数字滤波器的设计.ppt(58页珍藏版)》请在三一办公上搜索。
1、第八章 有限脉冲响应数字滤波器的设计,2,本章目录,利用窗函数法设计FIR滤波器,利用频域采样法设计FIR滤波器,FIR数字滤波器的优化设计,IIR与FIR数字滤波器的比较,FIR数字滤波器的Matlab仿真实现,3,FIR数字滤波器的差分方程为对应的系统函数为,IIR数字滤波器设计过程中只考虑了幅频特性,没有考虑相位特性,所设计的滤波器相位特性一般是非线性的。为了得到线性相位特性,则要采用全通网络进行相位校正。,8.1 引言,4,FIR数字滤波器很容易得到严格的线性相位。FIR数字滤波器的单位脉冲响应是有限长的,因此总是稳定的。FIR滤波器的设计方法:窗函数法频率取样法等纹波逼近法,5,设计
2、思想 寻找一个FIR滤波器,使其频率特性H(ej)逼近理想FIR滤波器的频率特性Hd(ej).一般情况下,Hd(ej)在边界频率处有不连续点,因此hd(n)是无限长的,且非因果的。设计方法是用窗函数w(n)对hd(n)进行截取,8.2 利用窗函数法设计FIR滤波器,6,理想低通滤波器的频率响应单位取样响应,7,将hd(n)截取长度为N的一段,构成h(n)为了保证设计的滤波器具有线性相位,必须满足对称性要求可以将h(n)看作是hd(n)与矩形窗w(n)相乘,8,窗函数设计法的频域解释,时域加窗频域卷积,9,窗函数,时域表示频域表示幅度相位,10,FIR滤波器的幅频特性,FIR滤波器的幅频特性,1
3、1,理想低通与矩形窗频谱函数卷积过程,12,加窗对Hd()的影响,在理想特性不连续点c附近形成过渡带。过滤带的宽度近似等于 W()主瓣宽度,=4/N。通带内增加了波动,最大的峰值在c-2/N 处。阻带内产生了余振,最大的负峰在c+2/N处。通带与阻带中波动的情况与窗函数的幅度谱有关。W()波动愈快(加大时),通带与阻带内波动愈快,W()旁瓣的大小直接影响波动的大小。这些影响是对hd(n)加矩形窗引起的,称之为吉布斯效应。,13,减小吉布斯效应的方法,增加矩形窗口的宽度N不能减少吉布斯效应的影响。N的改变只能改变坐标的比例和 的绝对大小,不能改变主瓣和旁瓣幅度相对值。加大N并不是减少吉布斯效应的
4、有效方法。寻找合适的窗函数形状,使其谱函数的主瓣包含更多的能量,相应旁瓣幅度就变小了;旁瓣的减少可使通带与阻带波动减少,从而加大阻带的衰减。但这样总是以加宽过渡带为代价的。,14,几种常用的窗函数,矩形窗三角(Bartlett)窗 汉宁(Hanning)窗汉明(Hamming)窗 布莱克曼(Blackman)窗凯泽(Kaiser)窗,15,几种常用的窗函数,矩形窗,B为主瓣归一化幅值下降到-3dB时的带宽,主瓣两个过零点之间的宽度,A最大边瓣峰值,D边瓣峰值渐近衰减速度.,16,三角(Bartlett)窗,三角(Bartlett)窗,17,汉宁(Hanning)窗,汉宁(Hanning)窗,1
5、8,汉明(Hamming)窗,汉明(Hamming)窗,19,布莱克曼(Blackman)窗,布莱克曼(Blackman)窗,20,凯泽(Kaiser)窗,凯泽(Kaiser)窗,21,常用窗函数的波形,22,常用窗函数的频谱,23,用窗函数法设计FIR滤波器的步骤,给出希望设计的滤波器的频率响应函数Hd(ej)。根据允许的过渡带宽及阻带衰减,选定窗函数和N值。计算hd(n)如果Hd(ej)不能用简单函数表示,可以用求和代替积分。,24,将hd(n)与窗函数相乘得FIR数字滤波器的冲激响应h(n)计算FIR数字滤波器的频率响应,并验证是否达到所要求的指标,25,例 窗函数法设计FIR滤波器,例
6、8.1 用窗函数法设计线性相位FIR低通滤波器,设N=11,=0.2rad 解:理想数字低通滤波器 单位取样响应,26,要求设计的FIR数字滤波器的单位取样响应,27,用不同窗函数设计的FIR滤波器,用矩形窗时过渡带最窄,而阻带衰减最小,布莱克曼窗过渡带最宽,但阻带衰减加大。为保证有同样的过渡带,必须加大窗口长度N,28,8.3 利用频率抽样法设计FIR滤波器,频率抽样法是在频率域对理想滤波器Hd(ej)采样,在采样点上设计的滤波器H(ej)和理想滤波器Hd(ej)幅度值相等,然后根据频率域的采样值求得实际设计的滤波器的频率特性H(ej)。对理想滤波器的频率特性Hd(ej)在0,2范围内等间隔
7、地取样N个点,29,频率响应,30,Hd(k)选定原则,N为偶数时,N为奇数时,31,滤波器性能的改进,采用频率抽样法设计的FIR数字滤波器在阻带内的衰减很小,在实际应用中往往达不到要求。产生这种现象的原因是由于在通带边缘采样点的陡然变化而引起的起伏振荡。增加阻带衰减的方法是在通带和阻带的边界处增加一些过渡的采样点,从而减小频带边缘的突变,也就减小了起伏振荡,增大了阻带最小衰减。,32,33,8.4 FIR数字滤波器的优化设计,FIR滤波器的优化设计采用“最大误差最小化”的优化准则,根据滤波器的设计指标,导出一组条件,要求在此条件下,在整个逼近的频带范围内使得逼近误差绝对值的最大值为最小,从而
8、得到唯一的最佳解。可以证明,采用最大误差最小化准则得到的最优滤波器,在通带和阻带内必然呈等纹波特性。最大误差最小化准则也称为切比雪夫准则。采用切比雪夫准则设计的滤波器,误差在整个频带均匀分布,对同样的技术指标,这种逼近法需要的滤波器阶数低,而对同样的滤波器阶数,这种逼近法的最大误差最小。,34,切比雪夫最佳一致逼近法准则,设所希望设计的滤波器幅度函数为设计一个FIR滤波器,其幅度函数Hg()在通带和阻带内最佳地一致逼近Hd()在滤波器的设计中,通带和阻带的要求是不一样的,为了统一使用最大误差最小化准则,通常采用误差加权函数的形式。,35,为了保证设计出的滤波器具有线性相位,h(n)必须满足线性
9、相位条件。以h(n)为偶对称且N为奇数为例误差加权函数,36,用函数Hg()最佳一致逼近Hd()的问题是寻找系数a(n),n=0,1,M,使加权误差函数E()的最大绝对值达到最小。,37,交错点阻定理,Hg()是Hd()的最佳一致逼近的充要条件是误差函数E()在A上至少呈现M+2个“交错”,使得 如果已知A上的M+2个交错点频率:,38,用矩阵表示求解方程组,得到系数a(n)和最大加权误差,由此确定最佳滤波器H(),39,实际中交错点组的频率 是不知道的Remez迭代算法 在频域等间隔取M+2个频率 作为交错点的初始值,计算值。,40,利用拉格朗日(Lagrange)插值公式,求出Hg()把H
10、g()代入误差函数,求得E()。,41,如果对所有的频率都有,说明是纹波的极值,频率 是交错点组频率。在某些频率可能,需要交换初始交错点组中的某些点,形成一组新的交错点组。对上次确定的 中每一点,都检查其附近是否存在某一频率,如存在,在该点附近找出局部极点值,并用该点代替原来的点。待M+2个点都检查过,便得到新的交错点组,再次求、H()和E(),于是完成了一次迭代,也就完成了一次交错点组的交换。,42,利用同样的方法,把各频率处使 的点作为新的局部极值点,从而又得到一组新的交错点组。重复以上步骤,因为新的交错点组的选择都是作为每一次求出的E()的局部极值点,因此,在迭代中,每次的|都是递增的。
11、最后收敛到自己的上限,此时H()最佳一致逼近Hd()。,43,Remez算法流程图,44,线性相位FIR滤波器四种形式的统一表示,h(n)为偶对称,N为奇数 h(n)为偶对称,N为偶数h(n)为奇对称,N为奇数h(n)为奇对称,N为偶数,45,H()可以统一表示为,46,系数之间的关系,47,加权误差函数,48,8.5 IIR与FIR数字滤波器的比较,IIR滤波器存在着输出对输入的反馈,因此可以用比FIR滤波器少的阶数来满足技术指标,这样,IIR滤波器所用的存储单元和所需的运算次数都比FIR滤波器少。例如用频率抽样法设计阻带衰减为20dB的FIR滤波器,其阶数要33阶才能达到要求,而如果用双线
12、性变换法设计一个切比雪夫IIR滤波器,只需4-5阶就可以达到同样的指标,所以FIR滤波器的阶数要高510倍。FIR滤波器可得到严格的线性相位,而IIR滤波器则做不到这一点。IIR滤波器的选频特性越好,则相位的非线性就越严重。如果要求IIR滤波器具有线性相位,同时又要求它满足幅度要求,那么就必须用一个全通网络进行相位校正,这必然会大大增加滤波器的节数和复杂性。因此在需要严格线性相位的情况下应该选择FIR滤波器。,49,IIR滤波器必须采用递归结构实现,只有当所有极点都在单位圆内时滤波器才是稳定的。但实际中由于存在有限字长效应,滤波器有可能变得不稳定。而FIR滤波器主要采用非递归结构,因而从理论上
13、以及从实际的有限精度的运算中,都是稳定的。另外,FIR滤波器可以采用快速傅立叶变换(FFT)来实现,在相同阶数下,运算速度可以快得多,50,IIR滤波器可利用模拟滤波器现成的设计公式、数据和表格,因而计算工作量较小,对计算工具要求不高。FIR滤波器没有现成的设计公式,窗函数法只给出窗函数的计算公式,但计算通带和阻带衰减仍无显式表达式。一般,FIR滤波器的设计只有计算机程序可以利用,因此对计算工具要求较高,要借助计算机来设计。另外,IIR滤波器主要是设计规格化的、频率特性为分段常数的标准低通、高通、带通、带阻和全通滤波器,而FIR滤波器可设计出理想正交变换器、理想微分器、线性调频器等各种网络,适
14、应性较广。,51,8.6 FIR数字滤波器的Matlab仿真实现,窗函数法设计FIR滤波器FIR滤波器的优化设计,52,8.6.1 窗函数法设计FIR滤波器,窗函数法是通过对理想滤波器的单位取样响应加窗来逼近理想滤波器的。函数fir1用于设计标准的低通、带通、高通和带阻滤波器。,53,函数fir1的调用格式,函数fir1的调用格式为 b=fir1(n,Wc,ftype,Windows)其中,n为滤波器阶数,Wc为截止频率ftype决定滤波器类型,ftype=high,设计高通FIR滤波器,ftype=stop,设计带阻FIR滤波器。Windows指定窗函数类型,默认为Hamming窗;可选Ha
15、nning、Hamming、Blackman、triangle、bartlett和boxcar窗,每种窗都可以由Matlab的相应函数生成。,54,例:设计butterworth低通滤波器,例8.3 设计一个15阶FIR低通滤波器,截止频率为0.2。,b=fir1(15,0.2);freqz(b,1,512);函数freqz(b,a,N)用于计算由a和b构成的数字滤波器的频率响应,并用图形方式分别表示其幅度响应和相位响应。,55,例8.3 程序运行结果,程序运行结果如图8.13所示。,56,8.6.2 FIR滤波器的优化设计,前面介绍了FIR滤波器的优化设计方法,通过迭代的方法求解FIR滤波器
16、,过程十分复杂。在Matlab中,可以调用函数remez实现滤波器的设计。b=remez(n,f,m)函数remez采用Parks-McClellan算法设计线性相位FIR滤波器,n为滤波器阶数,其幅频特性由f和m指定。,57,例:设计带通滤波器,例8.4 采用Parks-McClellan算法设计一个17阶带通滤波器,并画出期望的幅频特性曲线和实际的幅频特性曲线,,程序段为f=0 0.3 0.4 0.6 0.7 1;m=0 0 1 1 0 0;b=remez(17,f,m);h,w=freqz(b,1,512);plot(f,m,w/pi,abs(h);,58,例8.4 程序运行结果,程序运行结果如图8.14所示。,