1 引入粒子聚合度的改进粒子群优化算法
1.1 粒子群优化算法(PSO)
PSO算法是美国Kennedy和Eberhart受鸟群觅食行为的启发,于1995年提出的。该算法的思想是通过种群粒子间的合作与竞争,产生群体智能指导优化搜索。PSO算法可用式(1)表示。
式中:vidk是粒子i在第k次迭代中第d维速度;xidk是粒子i在第k次迭代中第d维的位置;ω是惯性权值系数;pbestidk,是粒子i在第k次迭代中第d维个体极值点的位置(即个体最优);gbestdk是整个种群在第k次迭代中第d维全局极值点的位置(即全局最优);r1,r2是[0,1]之间的随机数;c1,c2是加速系数,或称学习因子。
1.2 带粒子聚合度的改进粒子群优化算法
由式(1)可知,如果粒子的当前位置在gbest,此时个体极值点与全局极值点为同一点,即pbest与gbest相同。这时粒子速度若等于零,则种群的粒子将会出现进化停滞,算法只能收敛到种群目前寻找到的最优解gbest。假如这时gbest对应的只是一个局部最优解,那么算法就出现了早熟收敛现象。
针对PSO算法存在早熟和局部收敛的问题,在基本PSO的基础上,加入粒子聚合度n和一个线性递减的惯性权值系数ω,对PSO算法进行改进。
聚合度n是用来反映粒子群聚集程度的一个系数。当粒子群出现高度聚集,进化停滞时,n随迭代次数递增;当n大于一个阈值λ(此阈值根据具体情况选择)时,对粒子进行变异,使变异粒子跳离当前位置,进入其他区域。在其后的搜索中,算法有新的个体极值pbest和全局极值gbest,从而跳出局部收敛。多次循环迭代后,就能找到全局最优。
改进的算法可用式(2)和式(3)表示:
式(2)中rand是[0,1]间的随机数:
式中:max Xd和min Xd分别是粒子在d维空间上的最大值和最小值。
惯性权值系数叫决定控制算法的收敛特性,当ω较大时,全局搜索能力强;当ω较小时,局部搜索能力强。文献[6]通过大量实验证明,如果ω随算法迭代的进行而线性减小,将显著改善算法的收敛性能。在此,取:
式中:(ωmax为最大惯性权值系数;ωmin为最小惯性权值系数;k为迭代次数;ksum为迭代总数。
2 用IMPSO设计FIR数字滤波器
2.1 FIR数字滤波器分析
N阶FIR数字滤波器的单位抽样响应为k(0),k(1),…,k(N-1),其传递函数可表示为:
取z=ejω,可得到数字滤波器的频率响应为:
如果设计FIR数字滤波器的理想频率响应为Hd(ejω),则设计滤波器与理想FIR滤波器的误差e可通过对两滤波器的幅度在一定量的离散点上的误差平方和来表示,即取M个离散点时:
由式(7)容易知得,误差e是滤波器N个系数h(n)(n=0,1,…,N-1)的函数。对FIR滤波器的设计,就要选取合适的滤波器系数h(n),使误差e最小。显然,h(n)的选取是一个组合优化问题,因此可通过优化算法求解滤波器系数h(n),实现FIR设计。
2.2 适应度函数
IMPSO通过适应度函数来确定粒子当前位置的优劣,因此选式(7)作为优化设计FIR数字滤波器的适应度函数。即:
显然,Fithess函数值越小,则对应滤波器的幅度均方误差就越小,该粒子就对应更佳的滤波器系数。算法结束后,适应度最小的粒子所代表的参数值就是滤波器的最优系数。
2.3 算法编码及流程
为了用IMPSO算法求解h(n),应对优化参数h(0),h(1),…,h(N-1)进行适当的编码,以形成IMPSO算法中的粒子。算法用实数来表示各参数,h(0),h(1),…,h(N-1)分别表示N个粒子当前的位置;vh(0),vh(1),…,vh(N-1)分别表示当前粒子的速度;pbest(0),pbest(1),…,pbest(N-1)表示各粒子的个体最优,gbest表示全体的最优解。算法流程如图1所示。