《基于窗函数法设计FIR数字滤波器的新算法设计(一).doc》由会员分享,可在线阅读,更多相关《基于窗函数法设计FIR数字滤波器的新算法设计(一).doc(4页珍藏版)》请在三一办公上搜索。
1、基于窗函数法设计FIR数字滤波器的新算法设计(一) 摘要:在用窗函数法设计FIR数字滤波器时,设计的优化主要是通过调整窗函数来进行的。文中提出一种新的优化算法,其基本思想是在窗函数和滤波器阶数不变的情况下,通过迭代运算寻找一个最佳的频率响应函数,对此频率响应函数的傅里叶反变换进行加窗所设计出的滤波器的频率响应相对于理想频率响应的逼近误差最小。文中对算法的运用和改进作了说明,并给出一个设计实例。关键词: FIR数字滤波器;窗函数法;优化算法;逼近误差引言相对于IIR数字滤波器,FIR数字滤波器的主要优点有:一、可具有严格的线性相位特性;二、不存在稳定性问题;三、可利用DFT来实现。这些优点使FI
2、R数字滤波器得到了广泛应用。窗函数法是一种设计FIR数字滤波器的基本方法,但它不是最佳设计方法,在满足同样设计指标的情况下,用这种方法设计出的滤波器的阶数通常偏大。文中提出的算法是在窗函数法的基础上,以所定义的逼近误差最小为准则来进行优化设计的一种算法,由于其中的逼近误差可根据不同的设计要求进行定义,故此算法适应性强,它即可用于设计选频型滤波器,又适用于非选频型滤波器的设计。 设计FIR数字滤波器的基本方法  
3、; 设计FIR数字滤波器的基本方法有窗函数法、频率取样法和等波动最佳逼近法,它们主要是针对选频型滤波器(低通、高通、带通和带阻滤波器)的设计,此种滤波器的设计指标是类似的,典型的指标为通带波动和阻带衰减。在FIR数字滤波器的设计中,还会涉及如微分器和希尔伯特变换器之类的系统,这类非选频型滤波器的设计也遵循以上方法,更完善的设计则是基于任意频域指标的。 窗函数法又称傅里叶级数法,其设计是在时域进行的。设需设计的理想滤波器的频率响应和单位冲激响应分别为和,是的傅里叶反变换,它可表示为: &nb
4、sp;一般是无限长且非因果的,设计时需用一个合适的窗函数把截成有限长的因果序列,使对应的频率响应(的傅里叶变换)尽可能好地逼近理想频率响应。为实际所设计出的滤波器的单位冲激响应,其表达式为: 式中是窗函数,根据的特点和设计要求确定窗函数的形状和滤波器的阶数是这种方法的关键。常用的窗函数有矩形窗函数、三角窗函数、汉宁(Hanning)窗函数、海明(Hamming)窗函数、布莱克曼(Blackman)窗函数、凯塞(Kaiser)窗函数等。设的傅里叶变换为,则可表示为: 逼近的程度主要决定于的幅度函数的主瓣宽度以及旁瓣值的波动范围和衰减速率。对于选频型滤
5、波器,主瓣宽度决定了过渡带宽的宽度,旁瓣值的波动则会在通带和阻带中引起相应的波动。 窗函数法的主要缺点是:一、不容易设计预先给定截止频率的滤波器;二、满足同样设计指标的情况下所设计出的滤波器的阶数通常偏大。 频率取样法是利用理想滤波器频率响应的有限个样本点进行设计的一种方法。这种方法的突出优点是可以在频域直接进行设计,而且在设计选频型滤波器时可通过优化设计减小逼近误差;其缺点在于截止频率的取值受限,另外,因赖以进行优化设计的变量仅限于过渡带上的少数自由样本点,故这种设计不是最佳设计。 相对于前两种方法,等波动最佳逼近法是一种最佳设计方法,
6、但这里的最佳仅仅是指在滤波器阶数相同的情况下,用这种方法设计出的滤波器的频率响应相对于理想滤波器的频率响应的最大误差最小,对于其它设计指标而言,这种方法则不一定是最佳的。 基于窗函数法设计FIR数字滤波器的新算法此算法是一种基于窗函数法的优化算法,其基本思想是在窗函数和滤波器阶数不变的情况下,通过迭代运算寻找一个最佳的频率响应函数,将对的傅里叶反变换加窗后得到的序列()作为所设计滤波器的单位冲激响应,对应的频率响应相对于理想频率响应的逼近误差最小。 算法的表述如下: 第一步:定义逼近误差,确定窗函数和滤波器阶数。 第二步:设定初值;。(和分别表示傅里叶变换和傅里
7、叶反变换运算。) 第三步(从此步进入迭代运算):; 。 第四步:;。 第五步:;。 第六步:将看作设计结果,利用和计算值。 第七步:若,值增加1,返回到第三步。若,判断值是否小于上一次迭代所计算出的值(即利用和计算出的值),若是,值增加1,返回到第三步,若否,退出迭代,和即为设计结果。 下面对算法作几点说明:第一步中,可根据设计要求任意定义。对于选频型滤波器,一般将其定义为: 式中为通带和阻带的并集,为指定的误差加权函数。设计不同的非选频型滤波器时,对的定义往往也不同,有时将其定义为与之差的模的平均值: &nbs
8、p; 二、此算法是一种在窗函数法的基础上进行优化设计的算法,窗函数不同时,优化效果和设计结果都是不同的,因而,设计时应首先根据、和设计指标(逼近误差)在常用的窗函数中选择最佳的窗函数;若不能确定最佳窗函数,可首先采用多种窗函数进行设计,然后从中选取最好的设计结果。 三、在算法的迭代过程中,随着值的增加对应的值在有些情况下是非递增的,在有些情况下则是波动的,这同以及对的定义有关。所以,第七步中当值不再减小时可继续进行迭代,待迭代次数足够大后
9、,选择其中最小的值所对应的和作为最后设计结果。 四、第二步中,在保证的对称性的前提下(针对线性相位滤波器的设计),可对的幅度作其它设定(其相位不能改变),的幅度不同时设计结果会有所不同,设计时可通过调整其幅度进一步优化设计结果。 五、前面提到的最佳频率响应函数是由、和决定的。假设迭代次后得到设计结果,并记,通常是一个与不相等但接近的频率响应函数,接近的程度同第二步中所设定的有关。 六、此算法对矩形窗函数是无效的。可以证明,当采用矩形窗函数时,迭代过程中随着值的增加的值将保持为零。 算法的应用举例我们运用此算法对直接数字式信号合成系统中DAC幅频衰减补偿滤波器进行了设计,此滤波器理想的频率响应为: 是线性相位的,根据其幅度函数的特点,所要设计的滤波器的阶数应为奇数。当值较小时,算法的优化效果很明显,设计中将值定为11,采用的窗函数为布莱克曼(Blackman)窗函数。以下几幅图表示出了设计结果。记第次迭代计算出的值为,图1中星号表示按式定义时的取值点,圆圈号表示按式定义时的取值点(这里将式中的取为全频带,并指定),可见,两种定义下随迭代次数的增加值的变化规律是不同的;图2中实线为迭代一次的设计结果(相当于直接按窗函数法进行设计的结果)