一种用于硬件上任意波形合成的波形分解方法转让专利

申请号 : CN201210298501.3

文献号 : CN103631760B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 尉迟明丁明跃肖峰李雅琴李旭

申请人 : 华中科技大学

摘要 :

本发明公开了一种用于硬件上任意波形合成的波形分解方法,包括以下步骤:对种群中的个体进行编码,根据编码结构对种群中的个体进行随机生成,计算种群中各个体的适应度值,根据种群中各个体的适应度值进行遗传操作,直至生成新一代种群,重复上述步骤,使种群不断更新进化直至终止条件满足,输出最优解,即复杂波形的最佳分解方案。本发明可以有效的解决传统优化方法中计算框架和参数设置差别很大、需要人工不断测试、容易产生一些不必要的误差、波形的个数和内部参数不能同时达到最优、以大幅度增加分解后波形数量的代价来换取更高拟合精度的问题。

权利要求 :

1.一种用于硬件上任意波形合成的波形分解方法,其特征在于,包括以下步骤:(1)对种群初始化,具体包括以下子步骤:(1-1)对种群中的个体进行编码;

(1-2)根据编码结构对种群中的个体进行随机生成;

(1-2-1)设定三角波和矩形波的波形个数的初始最大值均为Ninit,在1和Ninit之间生成随机整数Ntri和Nrect分别作为三角波和矩形波的个数:Ntri=int[uniform(0,1)×(Ninit-1)+0.5]+1Nrect=int[uniform(0,1)×(Ninit-1)+0.5]+1其中uniform(0,1)为一个呈(0,1)均匀分布的随机数,int为取整函数;

(1-2-2)利用下式由原始复杂信号Vori(t)得到各内部参数的初始最大值;

ρmax=max(abs(Vori(t)))τmax=(t+-t-)/2

smax=(t+-t-)/2

其中max(),abs()分别为求最大值和求绝对值函数;t+和t-分别表示原始复杂信号Vori(t)时间变量t的上下界;

(1-2-3)利用下式对于种群中的所有个体,根据初始最大值随机产生三角波和矩形波的内部参数值;

ρj=-1×ρmax+uniform(0,1)×ρmaxτj=uniform(0,1)×τmaxsj=uniform(0,1)×smaxρk=-1×ρmax+uniform(0,1)×ρmaxτk=uniform(0,1)×τmaxsk=uniform(0,1)×smax其中ρj为个体中第j个矩形波的幅值,ρk为个体中第k个三角波的幅值,τj个体中第j个矩形波的半窗时间,τk为个体中第k个三角波的半窗时间,sj为个体中第j个矩形波相对于y轴的时间平移,sk为个体中第k个三角波相对于y轴的时间平移;

(2)计算种群中各个体的适应度值,具体包括以下子步骤:(2-1)构建适应度函数;

对于种群中的个体i,其适应度函数可表示为:

其中Fi为个体i的适应度函数,VRect和VTri分别表示用来叠加拟合的矩形波和三角波,且每个个体中第j个矩形波和三角波:Vrect(ρk,τk,sk,t)=ρkH(t-sk-τk)H(t-sk+τk)

其中H为单位阶跃函数;

(2-2)构建惩罚函数,以对适应度函数进行微调;

这里N表示当前个体i所含矩形波和三角波的总数目;

(3)根据种群中各个体微调后的适应度值进行遗传操作,直至生成新一代种群,具体包括以下子步骤:(3-1)根据种群中各个体微调后的适应度值Gi选择两个个体作为父代个体;

(3-2)对选择出来的两个个体进行交叉/重组操作;

(3-3)对交叉重组生成的新个体进行变异操作;

(3-4)反复进行(3-1)-(3-3)的遗传操作直至生成新一代种群;

(4)重复进行(2)-(3)操作使种群不断更新进化直至终止条件满足;

(5)输出最优解,即复杂波形的最佳分解方案。

2.根据权利要求1所述的方法,其特征在于,步骤(3-1)包括以下子步骤:(3-1-1)利用下式对微调后的适应度值Gi做尺度变换;

(3-1-2)根据尺度变换后的适应度值计算第i个个体被选中的概率psi:

(3-1-3)计算种群每个个体累积选择概率;

pa0=0

(3-1-4)生成一个(0,1)均匀分布的随机数r,通过对比随机数r在个体累积概率中的位置来确定选择的个体,若随机数pai-1≤r<pai,则个体i被选出。

3.根据权利要求1所述的方法,其特征在于,步骤(3-2)包括以下子步骤:(3-2-1)产生一个(0,1)均匀分布的随机数r,若r小于等于设定的交叉率Rc,则继续进行(3-2-2)-(3-2-3)交叉重组操作,若大于则进入步骤(3-3);

(3-2-2)在步骤(3-1)选择出来的两个个体的编码单链表上各随机选取一个位置作为交叉位置;

(3-2-3)对每一对相互配对的个体上单链表上,在其交叉位置交换两个个体的前后两部分节点,从而形成两个新的个体。

4.根据权利要求1所述的方法,其特征在于,步骤(3-3)包括以下子步骤:(3-3-1)在现有波形组合上删减已有的矩形波/三角波;

(3-3-2)在现有波形组合上增加新的随机产生的矩形波/三角波;

(3-3-3)对个体单链表中各个节点的位置随机乱序;

(3-3-4)对现有波形组合中已有的各矩形波/三角波内部参数进行高斯变异。

说明书 :

一种用于硬件上任意波形合成的波形分解方法

技术领域

[0001] 本发明属于计算机信号处理及进化计算领域,更具体地,涉及一种用于硬件上任意波形合成的波形分解方法。

背景技术

[0002] 硬件上实现任意波形发生的方法主要为直接数字式频率合成器(Direct Digital Synthesizer,简称DDS)技术。采用DDS来实现任意波形发生通常有两种方式:采样和波形分解。简单来说,采样方法即是对原始信号进行采样,并将采样得到的信号幅值和相位信息存入RAM中,建立对应的地址查询表。然后由控制单元(如单片机/DSP/FPGA等)查找幅值相位对应信息用以生成所需波形。而波形分解是将原始信号分解成一系列硬件易实现的简单波形(如三角波和矩形波等)。通过叠加这些简单波形得到原始信号的近似值。叠加过程也是通过DDS技术来完成的,将各简单信号相关信息存入RAM,建立查询表,最后由控制单元通过查找叠加生成。采样方法原理简单,但对过于复杂的波形操作过于繁琐,需较高采样率逐点处理。
[0003] 波形分解方法通过一系列易实现波形的叠加可以很轻易的实现任意复杂波形的生成,且鲁棒性好,此方法的核心在于如何进行波形分解,即如何将复杂波形分解成一系列最优的简单波形组合。然而,传统的波形分解方法存在以下三个问题:
[0004] (1)传统的波形分解往往是固定简单波形个数来寻找各波形内部参数(幅值ρ、半窗宽度τ、相对于y轴的时间平移s)的最优值或是固定简单波形内部参数(幅值ρ、半窗宽度τ、相对于y轴的时间平移s)再寻找波形个数的最优值,波形的个数和内部参数往往不能同时达到最优。
[0005] (2)针对不同复杂程度波形,传统优化方法的计算框架和参数设置差别很大,需要人工不断测试,容易产生一些不必要的误差。
[0006] (3)在波形分解过程中,一般优化算法总是将最优解的搜索导向拟合误差越来越小的位置,这样就容易出现以大幅度增加分解后波形数量的代价来换取更高拟合精度的情况。

发明内容

[0007] 针对现有技术的缺陷,本发明的目的在于提供一种用于硬件上任意波形合成的波形分解方法,旨在解决现有技术中存在的上述问题。
[0008] 为实现上述目的,本发明提供了一种用于硬件上任意波形合成的波形分解方法,包括以下步骤:
[0009] (1)对种群初始化,具体包括以下子步骤:
[0010] (1-1)对种群中的个体进行编码;
[0011] (1-2)根据编码结构对种群中的个体进行随机生成;
[0012] (1-2-1)设定三角波和矩形波的波形个数的初始最大值均为Ninit,在1和Ninit之间生成一个随机整数Ntri和Nrect分别作为三角波和矩形波的个数:
[0013] Ntri=int[uniform(0,1)×(Ninit-1)+0.5]+1
[0014] Nrect=int[uniform(0,1)×(Ninit-1)+0.5]+1
[0015] 其中uniform(0,1)为一个呈(0,1)均匀分布的随机数,int为取整函数;
[0016] (1-2-2)利用下式由原始复杂信号Vor(i t)得到各内部参数的初始最大值(ρmax,τmax,,smax);
[0017] ρmax=max(abs(Vori(t)))
[0018] τmax=(t+-t-)/2
[0019] smax=(t+-t-)/2
[0020] 其中max(),abs()分别为求最大值和求绝对值函数。t+和t-分别表示原始复杂信号Vor(i t)时间变量t的上下界;
[0021] (1-2-3)利用下式对于种族中的所有个体,根据初始最大值随机产生三角波和矩形波的内部参数值;
[0022] ρj=-1×ρmax+uniform(0,1)×ρmax
[0023] τj=uniform(0,1)×τmax
[0024] sj=uniform(0,1)×smax
[0025] ρk=-1×ρmax+uniform(0,1)×ρmax
[0026] τk=uniform(0,1)×τmax
[0027] sk=uniform(0,1)×smax
[0028] 其中ρj/ρk为个体中第j个矩形波或者第k个三角波的幅值,τj/τk为个体中第j个矩形波或者第k个三角波的半窗时间,sj/sk为个体中第j个矩形波或者第k个三角波相对于y轴的时间平移;
[0029] (2)计算种群中各个体的适应度值,具体包括以下子步骤:
[0030] (2-1)构建适应度函数;
[0031] 对于种群中的个体i,其适应度函数可表示为:
[0032]
[0033] 其中Fi为个体i的适应度函数;
[0034] (2-2)构建惩罚函数,以对适应度函数进行微调;
[0035]
[0036] 这里N表示当前个体i所含矩形波和三角波的总数目;
[0037] (3)根据种群中各个体的适应度值进行遗传操作,直至生成新一代种群,具体包括以下子步骤:
[0038] (3-1)根据种群中各个体的适应度值Fi选择两个个体作为父代个体;
[0039] (3-2)对选择出来的两个个体进行交叉/重组操作;
[0040] (3-3)对交叉重组生成的新个体进行变异操作;
[0041] (3-4)反复进行(3-1)-(3-3)的遗传操作直至生成新一代种群;
[0042] (4)重复进行(2)-(3)操作使种群不断更新进化直至终止条件满足;
[0043] (5)输出最优解,即复杂波形的最佳分解方案。
[0044] 步骤(3-1)包括以下子步骤:
[0045] (3-1-1)利用下式对种群中各个个体的适应度值Fi做尺度变换;
[0046]
[0047] (3-1-2)根据尺度变换后的适应度值计算第i个个体被选中的概率psi:
[0048]
[0049] (3-1-3)计算种群每个个体累积选择概率;
[0050] pa0=0
[0051]
[0052] (3-1-4)生成一个(0,1)均匀分布的随机数r,通过对比随机数r在个体累积概率中的位置来确定选择的个体,若随机数pai-1≦r<pai,则个体i被选出。
[0053] 步骤(3-2)包括以下子步骤:
[0054] (3-2-1)产生一个(0,1)均匀分布的随机数r,若r小于等于我们设定的交叉率Rc,则继续进行(3-2-2)-(3-2-3)交叉重组操作,若大于则进入步骤(3-3);
[0055] (3-2-2)在步骤(3-1)选择出来的两个个体的编码单链表上各随机选取一个位置作为交叉位置;
[0056] (3-2-3)对每一对相互配对的个体上单链表上,在其交叉位置交换两个个体的前后两部分节点,从而形成两个新的个体。
[0057] 步骤(3-3)包括以下子步骤:
[0058] (3-3-1)在现有波形组合上删减已有的矩形波/三角波;
[0059] (3-3-2)在现有波形组合上增加新的随机产生的矩形波/三角波;
[0060] (3-3-3)对个体单链表中各个节点的位置随机乱序;
[0061] (3-3-4)对现有波形组合中已有的各矩形波/三角波内部参数进行高斯变异。
[0062] 通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果:
[0063] 1、由于采用了步骤(1),专门设计了合理的通用的数据结构在同一框架下表示了各种复杂波形,所以可以有效的解决传统优化方法中计算框架和参数设置差别很大、需要人工不断测试、容易产生一些不必要的误差的问题。
[0064] 2、由于采用了步骤(3),在步骤(1)设计的波形表示方法下设计了可同时进行组合优化和参数优化的选择、交叉及变异算子,有效地解决了传统方法中波形的个数和内部参数不能同时达到最优的问题。
[0065] 3、由于采用了步骤(2-2),通过加入惩罚函数来调整每个个体的适应度值,使得分解后波形的数量得以控制,从而解决了现有技术中以大幅度增加分解后波形数量的代价来换取更高拟合精度的问题。

附图说明

[0066] 图1是本发明用于硬件上任意波形合成的波形分解方法的流程图。
[0067] 图2是个体编码数据结构的示意图。
[0068] 图3是交叉算子的示意图。
[0069] 图4是变异算子的示意图。
[0070] 图5是本发明用于硬件上任意波形合成的波形分解方法的整体数据结构图。
[0071] 图6是r=0cm的圆环的激励信号仿真结果。
[0072] 图7是r=10cm的圆环的激励信号仿真结果。
[0073] 图8是r=20cm的圆环的激励信号仿真结果。
[0074] 图9是r=30cm的圆环的激励信号仿真结果。
[0075] 图10是r=40cm的圆环的激励信号仿真结果。
[0076] 图11是r=48cm的圆环的激励信号仿真结果。

具体实施方式

[0077] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0078] 以下首先就本发明的术语进行解释和说明:
[0079] 候选解:英文为candidate,是指搜索空间(范围)中潜在的可能成为最优解的解;
[0080] 个体:英文为individual,这里一个个体指的即是一个编码后的候选解;
[0081] 种群:英文为population,为许多个体的集合;
[0082] 惩罚函数:英文为Penalty function,是我们根据个体的某些属性对个体的适应度进行微调的函数。
[0083] 为了描述方便,我们用Vor(i t)表示需要进行分解的原始复杂信号,t为原始复杂信号的采样时间变量,VRect和VTri分别表示用来叠加拟合的矩形波和三角波,且每个个体中第j个矩形波和三角波:
[0084] Vrect(ρj,τj,sj,t)=ρjH(t-sj-τj)H(t-sj+τj)           (1)
[0085]
[0086] 式(1)、(2)中,ρj为第j个矩形波或者三角波的幅值,τj为第j个矩形波或者三角波的半窗时间,sj为第j个矩形波或者三角波相对于y轴的时间平移,H为单位阶跃函数。
[0087] 如图1所示,本发明用于硬件上任意波形合成的波形分解方法包括以下步骤:
[0088] (1)对种群初始化,具体包括以下子步骤:
[0089] (1-1)对种群中的个体(即候选解)进行编码;
[0090] 编码机制是遗传程序设计方法的核心,同时也是各遗传算子设计的基础。设计时通常需要考虑遗传操作和编程实现的便利:
[0091] ①用来累加拟合的矩形波和三角波的个数不是固定的;
[0092] ②在遗传算子中经常需要进行矩形波和三角波的添加和删除操作。
[0093] 基于以上两点,图2给出了本发明的个体编码数据结构,每个个体都包含了两个单链表结构和一个双精度型的适应度值fitness。其中两个单链表分别代表着矩形波的组合和三角波的组合。单链表的每个节点都代表了一个具体的波形(矩形波或三角波),每个节点内部都包含了三个参数:幅值ρ、半窗宽度τ、以及相对于y轴的时间平移s。
[0094] (1-2)根据编码结构对种群中的个体进行随机生成;
[0095] 种群中每个个体所包含的三角波的个数、矩形波的个数及其内部参数(即幅值ρ、半窗宽度τ、相对于y轴的时间平移s)都是随机产生的,本步骤包括以下子步骤:
[0096] (1-2-1)设定三角波和矩形波的波形个数的初始最大值均为Ninit,在1和Ninit之间生成一个随机整数Ntri和Nrect分别作为三角波和矩形波的个数,如式(3)所示:
[0097] Ntri=int[uniform(0,1)×(Ninit-1)+0.5]+1             (3)
[0098] Nrect=int[uniform(0,1)×(Ninit-1)+0.5]+1
[0099] 这里uniform(0,1)为一个呈(0,1)均匀分布的随机数,int为取整函数。
[0100] (1-2-2)利用下式(4),由原始复杂信号Vor(i t)得到各内部参数的初始最大值(ρmax,τmax,smax);
[0101] ρmax=max(abs(Vori(t)))
[0102] τmax(t+-t-)/2                       (4)
[0103] smax=(t+-t-)/2
[0104] 这里max(),abs()分别为求最大值和求绝对值函数。t+和t-分别表示原始复杂信号Vor(i t)时间变量t的上下界。
[0105] (1-2-3)利用式(5),对于种族中的所有个体,根据初始最大值随机产生三角波和矩形波的内部参数值。
[0106] ρj=-1×ρmax+uniform(0,1)×ρmax
[0107] τj=uniform(0,1)×τmax
[0108] sj=uniform(0,1)×smax                       (5)
[0109] ρk=-1×ρmax+uniform(0,1)×ρmax
[0110] τk=uniform(0,1)×τmax
[0111] sk=uniform(0,1)×smax
[0112] 其中ρj/ρk为个体中第j个矩形波或者第k个三角波的幅值,τj/τk为个体中第j个矩形波或者第k个三角波的半窗时间,sj/sk为个体中第j个矩形波或者第k个三角波相对于y轴的时间平移。
[0113] (2)计算种群中各个体的适应度值,具体包括以下子步骤:
[0114] (2-1)构建适应度函数;
[0115] 对于种群中的个体i,原始复杂波形Vori(t)都可以用Ntri个矩形波和Nrect个三角波的叠加来拟合,则该个体的适应度函数可表示为:
[0116]
[0117] 式(6)中,Fi为个体i的适应度函数,用于表示复杂信号与累加的拟合信号之间的差异。这里我们的优化目标是Fi越小越好。
[0118] (2-2)构建惩罚函数,以对适应度函数进行微调;
[0119] 利用我们的方法,可以预见,在进化的过程中得到的矩形波和三角波组合会越来越好,即累加得到的信号与复杂信号之间的拟合误差会越来越小-与此同时,用来拟合的矩形波和三角波的数量很有可能会变得越来越大。这无疑会增加实现的硬件成本,为此构建一个惩罚函数,对第i个个体的适应度值Fi进行微调:
[0120]
[0121] 这里N表示当前个体i所含矩形波和三角波的总数目。
[0122] 利用式(7),包含太多矩形波和三角波的个体的适应度值(即拟合误差)将会被调的更大,这意味着在下一步选择中这样的个体被选择出来的概率会变得更小。
[0123] (3)根据种群中各个体的适应度值进行遗传操作,直至生成新一代种群;
[0124] (3-1)根据种群中各个体的适应度值Fi选择两个个体作为父代个体;
[0125] 好的选择策略能让好的个体能够更快的被选择出来而又不容易收敛到局部最优。如果选择压力过大,遗传搜索会过早地终止;如果选择压力过小,进化过程将会十分缓慢。
常用的选择方法包括轮盘赌选择、随机遍历抽样和锦标赛选择等。这里我们采用的选择策略为轮盘赌方法。
[0126] (3-1-1)利用式(8)对种群中各个个体的适应度值Fi做尺度变换;
[0127] 在比例选择方法中,往往适应度值越大的最终分配的选择概率也大,如式(9)所示。但在我们的波形拟合问题中计算出来的个体适应度值是越小说明拟合越好,所以必须进行适应度尺度变换,将最小值问题转化为最大值问题,如式(8)所示
[0128]
[0129] (3-1-2)根据尺度变换后的适应度值计算个体被选中的概率;
[0130] 轮盘赌是一种基于比例的选择方法,它的基本思想是根据每个个体适应度的相对大小来确定选择概率(或生存概率)。在种群规模为N的一代种群中,若第i个个体的适应度为Fi,则这一个体被选中的概率psi为:
[0131]
[0132] (3-1-3)计算种群每个个体累积选择概率;
[0133] 轮盘赌中选择概率越大的个体被选到的概率会越大。为了方便实现,这里我们将所有个体的选择概率比例映射并归一化到0和1之间。利用公式(10),不断迭代,i=1→N,计算每个个体的累加选择概率pai。
[0134] pa0=0
[0135]
[0136] (3-1-4)生成一个(0,1)均匀分布的随机数r,通过对比随机数r在个体累积概率中的位置来确定选择的个体。若随机数pai-1≦r<pai,则个体i被选出。
[0137] (3-2)对选择出来的两个个体进行交叉/重组操作;
[0138] 交叉/重组算子是遗传算法产生后代个体的主要方式,它模仿的是生物自然进化过程中两个同源染色体通过交配,交换部分基因而重组生成新的染色体的过程。我们方法中交叉/重组算子包括以下三个个步骤:
[0139] (3-2-1)产生一个(0,1)均匀分布的随机数r,若r小于等于我们设定的交叉率Rc,则继续进行(3-2-2)-(3-2-3)交叉重组操作,若大于则进入步骤(3-3);
[0140] (3-2-2)在步骤(3-1)选择出来的两个个体的编码单链表上各随机选取一个位置作为交叉位置;
[0141] (3-2-3)对每一对相互配对的个体上单链表上,在其交叉位置交换两个个体的前后两部分节点,从而形成两个新的个体。
[0142] 如图3例子所示:
[0143] ①随机选取个体单链表上一个位置(图3箭头所指两个不同链表上的位置4和3)
[0144] ②以该位置为中心交换两个个体单链表上的节点
[0145] (3-3)对交叉重组生成的新个体进行变异操作;
[0146] 本发明方法中变异算子主要从以下四步来进行:
[0147] (3-3-1)在现有波形组合上删减已有的矩形波/三角波;
[0148] ①首先,生成一个(0,1)均匀分布的随机数r。若r小于等于删减变异率Rd,则进行此删减波形变异操作,若大于则跳过此删减波形变异操作。
[0149] ②删减波形的数量是随机产生的,且每个删减的波形位置也是随机产生的,删除已有矩形波/三角波操作如图4(1)所示。
[0150] (3-3-2)在现有波形组合上增加新的随机产生的矩形波/三角波;
[0151] ①首先,生成一个(0,1)均匀分布的随机数r。若r小于等于增加变异率Ra,则进行增加波形变异操作,若大于则跳过此增加波形变异操作。
[0152] ②每次添加新波的数量也是随机产生的,且每个新增的矩形波/三角波的内部参数也是随机产生的,新增波形的初始化过程与种群初始化中(1-2-3)步骤类似。图4(2)为增加新的矩形波/三角波操作示意图。
[0153] (3-3-3)对个体单链表中各个节点的位置随机乱序(;图4(3)所示)
[0154] ①首先,生成一个(0,1)均匀分布的随机数r。若r小于等于乱序变异率Rr,则进行乱序变异操作,若大于则跳过此乱序变异操作。
[0155] ②此项操作值仅改变个体单链表中各节点(即矩形波/三角波)的位置,不会改变累加信号的值。此操作的主要影响的是下一代的交叉重组或变异中的操作位置的选取。
[0156] (3-3-4)对现有波形组合中已有的各矩形波/三角波内部参数进行高斯变异。
[0157] 在我们设计的方法中,各矩形波/三角波内部参数的变异与进化策略(ES)中的参数变异方式类似。进化过程中,参数向量被表示为一对浮点型的向量,如:p=(x,σ)。其中第一个向量x表示的为各个参数的值,第二个向量σ表示的则是第一个向量x(参数)的搜索步长,即:(x,σ)=((x1,…,xn)(,σ1,…,σn))-被选出来的个体(x,σ)通过式(11)进行变异进而得到新的参数向量(x’,σ’)。
[0158] σ'=σ·eN(0,Δσ)and x'=x+N(0,σ')                         (11)
[0159] (3-4)反复进行(3-1)-(3-3)的遗传操作直至生成新一代种群。
[0160] 假设种群大小为N,所以这里(3-1)选择操作和(3-2)交叉重组操作需进行N/2次,(3-3)变异操作则需进行N次,使新种群个体数也达到N,如图1所示。
[0161] (4)重复进行(2)-(3)操作使种群不断更新进化直至终止条件满足,如图1所示。
[0162] 这里我们设置的终止条件有两个,任意一个条件满足则退出,进化完成:
[0163] (4-1)最小拟合误差σ:当拟合误差小于等于σ时,进化完成,误差可以接受。
[0164] (4-2)最大迭代次数maxGen:当进化代数大于等于maxGen时,退出,时间开销达到最大接受值。
[0165] (5)输出最优解,即复杂波形的最佳分解方案。
[0166] 为了使得整个进化过程更易进行追踪,我们将进化到目前为止的最佳个体单独储存,并将进化得到的新种群中的最佳个体与之比较,如优于它,则替换它。整个进化结束,输出最佳个体。
[0167] 此发明中方法的实施需要预先确定各种参数,如种群规模、交叉概率、变异概率和终止条件。这些参数的选择与具体的优化问题有直接的关系。除此之外,还包括一些更为遗传算子内部具体参数,如:变异中增加和删减节点的概率,个体进行乱序变异的概率,内部参数变异概率等。
[0168] 算法实现的流程图如图1所示,程序主要数据结构见图5。
[0169] 其中complex(h/cpp)文件及其中包含的complex类用于复数运算,主要是因为理论激励信号(待拟合复杂波形)中包含了复数运算。而在此基础上开发的wave(h/cpp)则是用来计算各种波形,包括理论激励信号(待拟合复杂波形),三角波和矩形波。在wave基础上开发的Linklist类(h/cpp)包括了我们设计方法中的个体编码及相关操作(增加/删除节点等),SignalEvolve(h/cpp)包含了我们设计方法中的各个操作算子(选择、交、重组)的设计。最后则是主函数main。
[0170] 具体实例
[0171] 1)实验测试波形
[0172] 为了更好得说明此发明中介绍的方法,我们以超声X波圆环激励信号(原始复杂信号)仿真为例,做了一些简单的测试(将此复杂信号用本发明中方法进行分解),并罗列了一些基本的结果。
[0173] 超声X波圆环上的激励信号表达式如下:
[0174]
[0175] rn为第n个圆环的半径(n为同心圆的个数,n=1,2…,N),α0为常数,ξ(0<ξ<π/2)是Axicon角,z为z轴的距离,c为声速,t表示时间,H(·)为阶跃函数,τω>0为半窗时间。
[0176] 这里我们测试了25个不同的圆环(即25个不同的原始复杂信号),参数设置如下::α0=0.05,ξ=4°,c=1.5,rn为第n个环的半径(r1=0,r2=2,r3=4mm,…,r25=48mm)。
[0177] 2)实验平台及参数设计
[0178] 实验测试中种群个数为100,种群进化代数为5000,理论激励信号采样率为100smaples/s,交叉重组率Rc为1.0,增加节点变异概率Rm为0.5,删减节点变异概率Rd为
0.5,乱序变异概率Rr为0.5,基波内部参数变异率Rp为0.8。
[0179] 实验平台为Intel双核处理器,E3400盒CPU(LGA775/2.06GHz),内存为2G,采用VC6.0软件平台实现。
[0180] 3)实验结果
[0181] 25个不同的圆环对应的激励信号使用多个矩形波和三角波的组合来拟合,根据本发明中方法得到拟合的矩形波和三角波组合。每个圆环的激励信号都限定由20个以内的矩形波和三角波的组合进行叠加来拟合,得到了25组不同的结果(表1),这里给出了六个环的拟合结果,图6-图11为根据优化结果得到的拟合激励信号(分解后波形累加信号)和理论激励信号的比较,依次分别为环的半径r=0,10,20,30,40,48mm的拟合结果(分解后波形累加信号),图中的实线部分表示的是理论激励信号值,虚线表示拟合激励信号(分解后波形累加信号),横坐标表示时间,纵坐标为归一化幅值。表1给出了25个环的激励信号拟合(分解后波形累加信号)的一些量化指标。表2-表5给出了r=4及r=48两个圆环拟合用的矩形波和三角波的具体内部参数:
[0182] 表1  25个圆环上的拟合激励信号最优的优化结果
[0183]  编号   圆环半径   拟合误差   矩形波个数   三角波个数
  1   0   0.0201455   0   18
  2   2   0.0291446   8   5
  3   4   0.0211932   2   5
  4   6   0.0150017   3   4
  5   8   0.0243147   1   5
  6   10   0.027204   1   5
  7   12   0.0255533   1   5
  8   14   0.0247336   1   5
  9   16   0.0242687   1   4
  10   18   0.0196802   3   1
  11   20   0.0204362   3   1
[0184]  12   22   0.00300693   1   2
  13   24   0.00049547   1   3
  14   26   0.00011506   1   2
  15   28   0.00011588   1   2
  16   30   3.28E-05   1   2
  17   32   1.58E-05   1   2
  18   34   3.03E-05   1   2
  19   36   2.51E-05   1   2
  20   38   1.48E-05   1   2
  21   40   8.57E-06   1   3
  22   42   8.29E-06   1   2
  23   44   5.32E-06   2   1
  24   46   2.72E-06   1   2
  25   48   3.50E-06   1   2
[0185] 表2  r=4圆环的拟合激励信号的矩形波参数表
[0186]  序号   幅值   半窗时间   时间平移
  1   0.089264   0.203865   0
  2   0.0332063   0.168708   0
[0187] 表3  r=4圆环的拟合激励信号的三角波参数表
[0188]  序号   幅值   半窗时间   时间平移
  1   0.00715425   0.340878   0
  2   0.00719398   0.0395563   0
  3   0.132451   0.397072   0
  4   -0.2   0.169923   0
  5   0.107979   0.325067   0
[0189] 表4  r=48圆环的拟合激励信号的矩形波参数表
[0190]  序号   幅值   半窗时间   时间平移
  1   0.0163744   0.992541   0
[0191] 表5  r=48圆环的拟合激励信号的三角波波参数表
[0192]  序号   幅值   半窗时间   时间平移
  1   -0.00172178   0.986009   0
  2   0.000176907   0.257408   0
[0193] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。