DIY编程器网

标题: 基于PSO的FIR数字滤波器设计 [打印本页]

作者: liyf    时间: 2012-1-16 17:15
标题: 基于PSO的FIR数字滤波器设计

                      0 引 言
  由于FIR数字滤波器具有系统稳定,容易实现线性相位,允许设计多通带(或多阻带)以及硬件容易实现等特点,使得其在数字信号处理中有着广泛的应用。传统FIR滤波器的设计方法是建立在对理想滤波器频率特性作某种近似的基础上进行设计的,其中包括窗函数法、频率采样法及最佳一致逼近法。窗函数法计算简单,但不能很好地折衷过渡带与幅频响应误差之间的矛盾。频率采样法直接从频域处理,原理简单,计算也不复杂,但不易精确确定其通带和阻带的边缘频率,并且使用传统的查表法,不能保证数据最优。最佳一致逼近法着眼于整个区间内的总误差为最小,但并不一定能保证在每个局部误差都最小。近年来许多学者将先进方法用于FIR滤波器优化设计,如神经网络法和遗传算法等。这些算法具备一定的有效性,但存在理论复杂,收敛速度慢,容易早熟收敛等不足。在此,提出一种改进粒子群优化算法(IMPSO)的FIR滤波器设计方法。该方法计算量小,整定时间短,并能有效克服早熟收敛的问题。
  1 引入粒子聚合度的改进粒子群优化算法
  1.1 粒子群优化算法(PSO)
  PSO算法是美国Kennedy和Eberhart受鸟群觅食行为的启发,于1995年提出的。该算法的思想是通过种群粒子间的合作与竞争,产生群体智能指导优化搜索。PSO算法可用式(1)表示。






  式(2)中rand是[0,1]间的随机数:
  式中:max Xd和min Xd分别是粒子在d维空间上的最大值和最小值。
  惯性权值系数叫决定控制算法的收敛特性,当ω较大时,全局搜索能力强;当ω较小时,局部搜索能力强。文献[6]通过大量实验证明,如果ω随算法迭代的进行而线性减小,将显著改善算法的收敛性能。在此,取:






  取z=ejω,可得到数字滤波器的频率响应为:






  由式(7)容易知得,误差e是滤波器N个系数h(n)(n=0,1,…,N-1)的函数。对FIR滤波器的设计,就要选取合适的滤波器系数h(n),使误差e最小。显然,h(n)的选取是一个组合优化问题,因此可通过优化算法求解滤波器系数h(n),实现FIR设计。
  2.2 适应度函数
  IMPSO通过适应度函数来确定粒子当前位置的优劣,因此选式(7)作为优化设计FIR数字滤波器的适应度函数。即:






  3 仿真算例
  为了验证所提出算法的有效性,在计算机上采用Matlab语言进行FIR数字滤波器设计的仿真实验。同时为了比较算法性能,还采用基本遗传算法(BGA)和基本粒子群优化算法(BPSO)进行了相同的滤波器优化设计。仿真实验中,粒子群优化算法的参数设置为:群体大小Size=30,参数维数Codel=30,最大惯性权重为0.9,最小为0.2,聚合度为20,最大迭代次数为200;遗传算法参数设置为:种群30,遗传代数200,交叉概率0.5,变异概率0.1。
  实例1 设计一个低通FIR数字滤波器,其技术指标如下:






  图2和图4分别是三种算法在设计FIR低通和带通数字滤波器的参数优化过程图。










  图3和图5则是用三种不同算法设计的FIR低通和带通数字滤波器。从图2和图4中容易看出,无论是对低通还是带通滤波器的设计,因为IMPSO对BPSO加入了聚合度检测,能进行智能变异,同时采用线性递减的惯性权值系数。因此与BPSO相比,IMPSO既有最快的寻优速度,也具有最好的适应值,只要迭代次数设置合理,在迭代次数范围内,粒子总会找到全局最优值。BPSO与BGA的寻优速度慢,容易陷入早熟收敛,很难得到理想的最优参数。由图3和图5的FIR低通与带通数字滤波器的幅频特性曲线可明显看出,利用IMPSO设计的滤波器在三种算法中最接近理想的滤波器,是较好的FIR滤波器设计方法。
  4 结 语
  在此通过加入聚合度,并将遗传算法中的变异思想引入到PSO算法中,对粒子实现智能变异,能有效克服标准.PSO容易进入局部收敛的缺点。同时由于该算法用到的参数少,程序实现简单,因此与BGA等其他算法相比,具有运算量少,寻优速度快等优点。通过实例仿真结果表明,这里提出的IMPSO算法在FIR低通与带通数字滤波器的设计上比BPSO和BGA具有更好的收敛速度和搜索能力。在设计FIR带阻和多通带数字滤波器时,IMPSO也是一种有效的设计方法。
            




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2