由于FIR数字滤波器具有系统稳定,容易实现线性相位,允许设计多通带(或多阻带)以及硬件容易实现等特点,使得其在数字信号处理中有着广泛的应用。传统FIR滤波器的设计方法是建立在对理想滤波器频率特性作某种近似的基础上进行设计的,其中包括窗函数法、频率采样法及最佳一致逼近法。窗函数法计算简单,但不能很好地折衷过渡带与幅频响应误差之间的矛盾。频率采样法直接从频域处理,原理简单,计算也不复杂,但不易精确确定其通带和阻带的边缘频率,并且使用传统的查表法,不能保证数据最优。最佳一致逼近法着眼于整个区间内的总误差为最小,但并不一定能保证在每个局部误差都最小。近年来许多学者将先进方法用于FIR滤波器优化设计,如神经网络法和遗传算法等。这些算法具备一定的有效性,但存在理论复杂,收敛速度慢,容易早熟收敛等不足。在此,提出一种改进粒子群优化算法(IMPSO)的FIR滤波器设计方法。该方法计算量小,整定时间短,并能有效克服早熟收敛的问题。
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设计。 [page]
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所示。
3 仿真算例
为了验证所提出算法的有效性,在计算机上采用Matlab语言进行FIR数字滤波器设计的仿真实验。同时为了比较算法性能,还采用基本遗传算法(BGA)和基本粒子群优化算法(BPSO)进行了相同的滤波器优化设计。仿真实验中,粒子群优化算法的参数设置为:群体大小Size=30,参数维数Codel=30,最大惯性权重为0.9,最小为0.2,聚合度为20,最大迭代次数为200;遗传算法参数设置为:种群30,遗传代数200,交叉概率0.5,变异概率0.1。
实例1 设计一个低通FIR数字滤波器,其技术指标如下:
实例2 设计一个带通FIR数字滤波器,其技术指标如下:
图2和图4分别是三种算法在设计FIR低通和带通数字滤波器的参数优化过程图。 [page]
图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也是一种有效的设计方法。
关键字:FIR PSO 数字滤波器
引用地址:基于PSO的FIR数字滤波器设计
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设计。 [page]
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所示。
3 仿真算例
为了验证所提出算法的有效性,在计算机上采用Matlab语言进行FIR数字滤波器设计的仿真实验。同时为了比较算法性能,还采用基本遗传算法(BGA)和基本粒子群优化算法(BPSO)进行了相同的滤波器优化设计。仿真实验中,粒子群优化算法的参数设置为:群体大小Size=30,参数维数Codel=30,最大惯性权重为0.9,最小为0.2,聚合度为20,最大迭代次数为200;遗传算法参数设置为:种群30,遗传代数200,交叉概率0.5,变异概率0.1。
实例1 设计一个低通FIR数字滤波器,其技术指标如下:
实例2 设计一个带通FIR数字滤波器,其技术指标如下:
图2和图4分别是三种算法在设计FIR低通和带通数字滤波器的参数优化过程图。 [page]
图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也是一种有效的设计方法。
上一篇:基于CPLD及DDS的正交信号源滤波器的设计
下一篇:基于数字频率合成DDS的正弦信号发生器设计
推荐阅读最新更新时间:2024-03-30 22:54
基于AVR的数字滤波器滤除工频干扰的快速算法实现
工频干扰广泛存在各种工业现场中,其产生的途径主要包括输电馈线、照明设备、发动机以及各种电子仪器设备等。一般可以通过滤波电路消除工频干扰,但这必将增加硬件结构的复杂程度。实际上,还可以采用数字信号处理的相关算法,通过软件滤波器滤除工频干扰。软件滤波算法的采用,无疑会在简化电路结构的同时,使系统的硬件资源得到更加充分的利用,并达到降低产品成本的要求。 AVR单片机是Atmel公司生产的8位精简指令集(RISC)单片机。与同类单片机相比,在运算速度、外设资源、灵活性等方面性能均衡,性价比较高。AVR单片机适合C语言开发,Mega系列AVR单片机还有一个内部硬件乘法器单元。这些特点都为软件滤波器的实现提供了极大的便利。 1 滤波算法
[单片机]
高冲击信号采集系统中数字滤波器的软件实现
0 引言 在进行高冲击信号采集试验时,虽然在采集板中设计了硬件滤波单元,但依然存在着采集信号毛刺较多的现象,这为后续信号的识别和分析带来了不便,因此需要采用软件滤波的方法对信号进行再次处理。 常用的数字滤波器有IIR滤波器和FIR滤波器。从性能上看,IIR滤波器所用的系数少,可以提高运算速度,但其相位响应,特别是带沿为非线形,稳定性不能一直得到保证。FIR数字滤波器可以得到严格的线性相位,但对同一幅频特性要求,实现阶数高,运算量大。因此一般的IIR和FIR数字滤波器难以做到严格的线性相位与小运算量兼顾,再加上采用浮点运算,影响了对信号的实时处理速度。 在对采集的冲击信号进行软件滤波处理时,为了加快计算速度,对滤波器的性
[单片机]
基于ARM的FIR数字滤波器的软件实现
引言 数字滤波器作为语音与图象处理、模式识别、雷达信号处理、频谱分析等应用中最基本的处理部件,现已成为最常用的工具之一。它既能满足滤波器对幅度和相位特性的严格要求,又能避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。而对于具有线性相位特性的滤波问题,设计时一般都选择FIR滤波器。 相对于窗函数法和频率设计法,在将理想频率响应和实际频率响应之间的加权逼近误差均匀地分散到滤波器的整个通带和阻带最小化和最大误差这个意义上来说,Chebyshev逼近法可以被视为最佳的设计准则。 1设计原理 1.1 FIR数字滤波器 对于长度为N、输入为x(n)、输出为y(n)的FIR滤波器,其输出函数可用差分方程
[单片机]
基于DSPBuilder的FIR滤波器的设计与实现
引言 在信息信号处理过程中,如对信号的过滤、检测、预测等,都要使用滤波器,数字滤波器是数字信号处理(DSP,DigitalSignalProcessing)中使用最广泛的一种器件。常用的滤波器有无限长单位脉冲响应(ⅡR)滤波器和有限长单位脉冲响应(FIR)滤波器两种 ,其中,FIR滤波器能提供理想的线性相位响应,在整个频带上获得常数群时延从而得到零失真输出信号,同时它可以采用十分简单的算法实现,这两个优点使FIR滤波器成为明智的设计工程师的首选,在采用VHDL或VerilogHDL等硬件描述语言设计数字滤波器时,由于程序的编写往往不能达到良好优化而使滤波器性能表现一般。而采用调试好的IPCore需要向Altera公司购买。笔
[模拟电子]
基于FPGA的FIR滤波器设计与仿真
摘要:FIR数字滤波器以其良好的线性相位特性被广泛使用,属于数字信号处理的基本模块之一。FPGA具有的灵活的可编程逻辑可以方便地实现高速数字信号处理。为了提高实时数字信号处理的速度,利用FPGA芯片内部的ROM实现一种查找表结构的FIR数字滤波器。并用MATAB对实验结果进行仿真和分析,证明了设计的可行性。 关键词:有限冲击响应滤波器;硬件描述语言;查找表;现场可编程门阵列 0 引言 数字滤波器是数字信号处理的重要组成部分,其作用是从接收信号中提取出需要的信息同时抑制干扰,由于FIR滤波器的冲击响应是有限长的,因而有可能做成具有严格线性相位的。通常用以下两种方法来实现数字滤波器:一是把滤波器所要完成的运算编成程序并让计算机
[工业控制]
- 热门资源推荐
- 热门放大器推荐