Matlab环境下基于遗传算法的正弦波信号参数提取

2013-03-29 02:11李振辉李凯姜美雷孔祥源
现代电子技术 2013年2期
关键词:正弦波遗传算法

李振辉 李凯 姜美雷 孔祥源

摘要:遗传算法是模拟生物进化机制而发展起来的一种并行全局搜索方法。近年来,遗传算法作为一种非经典的数学方法应用到越来越广泛的领域中,成为了人工智能理论中一个很活跃的分支学科。从有限采样样本中提取正弦信号参数(包括频率、幅度、相位等)是信号处理中一类重要的估计问题。综合介绍了遗传算法的定义、操作流程和参数选择等;重点阐述了在Matlab环境下,遗传算法在正弦波信号参数提取问题中的实现;对算法进行了测试。

关键词:遗传算法; 正弦波; 参数提取; Matlab

中图分类号:TN911?34 文献标识码:A 文章编号:1004?373X(2013)02?0119?04

0 引 言

正弦信号是在实验和实际的工程问题中遇到得非常多的信号,因而从实际波形或者有限采样数据中重新提取出正弦波的特征:即周期,初始相位和幅值是一项比较重要的工作。例如,转子的转速信号可以通过正弦波信号的频率表现出来,转子旋转时的振动幅值的大小可以通过正弦波信号的幅值表现出来。利用传统的最小二乘法提取正弦信号参数(通常将非线性最小二乘转化为线性问题来处理)存在下列问题:

(1)实践中能线性化的问题只是一小部分;

(2)随着需要估计参数的增加,线性化方法的计算量成几何级数增长;

(3)精度低。也可以采用非线性优化算法如拟牛顿法、Levenberg?Marquart法等来估计正弦信号参数,但该类算法具有收敛到局部极小点的缺点。而遗传算法能很好克服上述缺点(虽然遗传算法自身也有运算效率不高的缺点)。

遗传算法是完全不同于传统的优化方法,它是模拟生物进化机制而发展起来的一种并行全局搜索方法,具有全局优化能力。该算法通过选择、重组和变异等步骤循环操作,在全局范围内搜索最优个体,即优化找到最佳参数估计。

1 遗传算法综述

遗传算法(GA)是借鉴生物界自然选择和群体进化机制而形成的一种全局寻优算法,其本质上是一种基于概率的随机搜索算法[1]。一般认为遗传算法由五个基本部分组成(由Michalewicz归纳)[2]:

(1)问题的解得遗传表示;

(2)创建解的初始种群的方法;

(3)根据个体适应值对其进行优劣判定的评价函数;

(4)用来改变复制过程中产生的子个体遗传组成的遗传算子;

(5)遗传算法的参数值。

在遗传算法中,首先将需要解决问题中的决策变量通过一定的编码表示成遗传空间的一个个体,它是一个基因型串结构数据,然后将目标函数转换成适应度值,用来评价每个个体的优劣,并将其作为遗传操作的依据。初始产生的一系列个体构成初始的种群。

遗传操作包括三个算子:选择、杂交和变异。选择是从当前群体中选择适应值高的个体以生成交配池的过程,交配池是当前代与下一代之间的中间群体。选择算子的作用是用来提高群体的平均适应度值。杂交算子先从交配池中的个体随机配对,然后将两两配对的个体按一定方式相互交换部分基因,其作用是将原有的优良基因遗传给下一代个体,并生成包含更复杂基因的新个体。变异算子是通过模拟自然界的基因突变现象对个体的某一个或几位按某一较小的概率进行反转其二进制字符而形成新的个体。新产生的个体(称为后代)也通过适应度值被评价优劣。新产生的个体中比较优秀的个体构成下一代的种群(即子代种群)。在若干代以后算法收敛到一个最优个体,该个体很有可能就是问题的最优或者次优解。

将问题的解进行遗传表示,也即染色体的编码有多种方法,包括:二进制编码,实数编码,证书或字母排列编码,一般数据编码等。各种方法各有利弊,但都必须满足以下原则:不冗余、合法性、完备性、Lamarckian性质和因果性。

选择算子的选择也有多种:轮盘赌选择、[μ+λ]选择、竞争选择、稳态复制、排序与比例变换、共享等方法都有各自的优点和适应的问题。

同理,杂交算子和变异算子也有多种。经常使用的杂交算子有:算术杂交、混合杂交、单峰正态分布杂交、边界算子和基于方向的杂交。使用的较多的变异算子是:非均匀变异、有向变异何高斯变异。

在使用遗传算法时,除需要选定各个算子外,还必须确定一些运行参数,比如:编码串长度、选择压力、杂交和变异概率、种群规模等等。编码串长度由问题的所要求的精度来决定,长的编码能得到较精确的解,但可能导致过长的求解时间。选择压力用来限制搜索空间的大小,较小的选择压力可以在更大的空间上进行广度搜索,但可能保留较多的不可行解(实际上,保持适量的不可行解是必要的,因为这其中的某一些个体可能提供关于最优解的有用信息,即某些优良基因)。杂交概率控制着杂交操作的频率,杂交操作是遗传算法中产生新个体的主要方法,所以杂交概率通常应取较大值,但如果杂交概率太大的话又可能反过来会破坏群体的优良模式,反而增加迭代代数。变异概率也是影响新个体产生的一个因素,如果变异概率太小,则产生新个体较少;如果变异概率太大,则又会使遗传算法变成随机搜索,通常取变异概率取较小,以保证种群发展的稳定性。至于种群规模的选择,种群规模太大时,计算量会很大,使遗传算法的运行效率降低,运行时间增加,但种群规模太小时,却降低了种群的多样性,有可能找不出最优解。

从理论上讲,不存在一组适用于所有问题的最佳参数值和最佳算子,随着具体问题的不同,有效参数和高效遗传算子选择的差异往往是十分显著的。在此处所用到Matlab下的遗传算法工具箱具有强大的功能,可以让用户自己选择具体使用何种遗传算子,也允许用户在规定范围内自己选择各组参数值,甚至还包括结束搜索的方式和结果的输出方式等都可以自由选择。

5 结 语

从实验结果来看,遗传算法在正弦波信号参数提取中的应用比较很成功,能够比较好的得到优化参数,尤其是在算法参数的选择比较恰当和待寻优参数的范围能限定到比较小的范围,同时,噪声干扰较小时能更好的工作。

当然,即使存在一定的白噪声对结果的影响也是非常小的。另外,遗传算法过于耗时的毛病在本问题中也几乎没有体现出来,算法运行用时很短。当然“耗时长短”这一点还与给定的采样数据量,也就是计算量由一定的关系。

总之,在Matlab环境下基于遗传算法的正弦波信号参数提取能很好的实现。实际应用上也有较好的前景,在实验室或者工程项目中都可以由本算法和一些前期的采样装置较好较快的得到结果。

参考文献

[1] 玄光男,程润伟.遗传算法与工程优化[M].北京:清华大学出版社,2004.

[2] 梁科.Matlab环境下的遗传算法程序设计及优化问题求解[J]. 开发研究与设计技术,2006(4):1049?1051.

[3] 席裕庚,柴天佑,恽为民.遗传算法综述[J]. 控制理论与应用,1996(6):69?70.

[4] 李少远,蔡文剑.工业过程辨识与控制[M].北京:化学工业出版社,2005.

[5] 殷铭,张兴华,戴先中.基于Matlab的遗传算法实现[J]. 电子技术应用,2000(1):8?10.

[6] 曹志松.基于混合遗传算法的航空发动机PID控制参数寻优[J].航空动力学报,2003(9):1588?1592.

[7] 陈秋灵,徐江峰.用遗传算法搜索一维光子晶体带隙[J].中国计量学院学报,2007(1):97?101.

[8] 周雄伟,熊庆国,况海龙,等.基于遗传算法的组合逻辑电路设计的FPGA实现[J].电子设计工程,2012(1):148?150.

猜你喜欢
正弦波遗传算法
单相正弦波变频电源设计与实现
采用BC5016S的纯正弦波逆变器设计及制作
遗传算法对CMAC与PID并行励磁控制的优化
基于自适应遗传算法的CSAMT一维反演
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于遗传算法和LS-SVM的财务危机预测
协同进化在遗传算法中的应用研究
基于改进的遗传算法的模糊聚类算法
基于FPGA的信号发生器在分频器检测上的应用
基于嵌入式技术的电网同步正弦波发生装置研究