基于遗传算法的稀布阵

合集下载

基于matlab的遗传算法及其在稀布阵列天线中的应用

基于matlab的遗传算法及其在稀布阵列天线中的应用

基于matlab的遗传算法及其在稀布阵列天线
中的应用
遗传算法是一种基于生物遗传和进化原理的优化算法,能够有效
地解决复杂的优化问题。

在稀布阵列天线设计中,遗传算法可以应用
于优化天线的布局和参数配置,以提高天线性能。

首先,利用遗传算法进行天线布局优化。

通过将天线的位置作为
染色体编码,采用适应度函数评估布局的好坏,然后通过选择、交叉
和变异等遗传操作,生成下一代的布局方案。

经过多代迭代,逐渐优
化天线的布局,使天线之间的互相干扰降低,同时提高天线的覆盖范
围和信号接收强度。

其次,利用遗传算法进行天线参数的配置优化。

将天线参数作为
染色体编码,例如天线的长度、宽度、高度等,通过适应度函数评估
参数配置的优劣,然后通过遗传操作生成下一代的参数配置。

经过多
轮迭代,逐渐优化天线的参数配置,以使天线的工作频率、波束方向
等性能指标达到最优。

最后,利用遗传算法进行多目标优化。

在稀布阵列天线设计中,
通常需要同时考虑多个性能指标,如最大增益、最小副瓣等。

通过引
入多目标优化算法,结合遗传算法的选择操作,可以生成一系列优化解,形成一个优化解集合,提供给工程师进行决策。

总的来说,基于matlab的遗传算法在稀布阵列天线中的应用可
以实现天线布局和参数配置的优化,从而提高天线的性能和工作效率。

这为天线设计和优化提供了一种有效的方法。

基于改进遗传算法的不规则地形下天线稀疏布阵的优化方法[发明专利]

基于改进遗传算法的不规则地形下天线稀疏布阵的优化方法[发明专利]

专利名称:基于改进遗传算法的不规则地形下天线稀疏布阵的优化方法
专利类型:发明专利
发明人:贾敏,郭家旭,李东博,郭庆,顾学迈
申请号:CN201910926913.9
申请日:20190927
公开号:CN110598360A
公开日:
20191220
专利内容由知识产权出版社提供
摘要:基于改进遗传算法的不规则地形下天线稀疏布阵的优化方法,涉及信息与通信技术领域,是为了在不规则地形下进行天线稀疏布阵时使用更少的天线数量,以提高信号传输效率,本发明中将阵元间最小间距和子阵间最小间距(障碍地形长度)作为改进遗传算法中的一部分分离出,既能提高计算机对于遗传算法的运算速度,进而提高传输效率,又能完美适应存在障碍地形的稀布布阵情况,同时降低了天线布阵的成本。

申请人:哈尔滨工大航卓科技有限公司
地址:150001 黑龙江省哈尔滨市南岗区邮政街副434号哈工大科技园大厦六、七层
国籍:CN
代理机构:哈尔滨市松花江专利商标事务所
代理人:刘士宝
更多信息请下载全文后查看。

基于改进遗传算法的非均匀稀布阵列优化

基于改进遗传算法的非均匀稀布阵列优化
u ig b f n s u cin c n i e ig b t ieo elv l n i lb d h,t eb te y t e ia p ro ma c f h sn i i e sf n t o sd rn o h sd lb e a d man o e wit —t o e h e trs n h t l e f r n eo e c t
o t i e y a a t ey mo iyn h p r t r c e f in s i i e e t p a e .Co a e t i e sf n t n, b an d b d p i l d f i g t eo e a o o fi e t n df r n h s s v c f mp rd wi f n s u ci h t o
s a s r a n t i p p r I h l o i m ,t e e e e t s a i g wi e tito s d vd d i t i e e t p r e a r y i h s a e . n t e ag rt h h lm n p cn t r s rc in i ii e n o d f r n h f n d sa c r i g t h t p fe h tt e n d s a e e c d d i t ia y c d s o e c o d n O t e s e ,a t rt a h o e r n o e n o b n r o e .Th a t rc n e g n ec n b e f s e o v r e c a e
( 安 电 子科 技 大 学 雷达 信 号处 理 国 家 重 点 实 验 室 ,陕 西 西安 70 7 ) 西 1 0 1
摘 要 : 出 了一 种 对 非 均 匀稀 布 阵 列 阵 元 间 距 进 行 优 化 的 改进 的 遗 传 算 法 。该 算 法 在 编 码 时 , 阵 提 将 元 间距 依 据 尺 寸 步 长 划 分 为 不 同 的节 点 , 过 对 节 点 的 二 进 制 编 码 , 活 实 现 带 约 束 阵 元 间距 的 遗 传 编码 。 通 灵 在 遗 传 操 作 过 程 中 , 据 不 同 的 进 化 阶段 自适 应 设 定 算 子 系数 , 效 地 提 高 了遗 传 算 法 的 收 敛 性 。 文 中采 依 有 用 同 时考 虑 副 瓣 电平 和 渡 束 宽 度 的双 适 应 度 函数 , 优 化 得 到 的 天 线 阵 列 方 向 图 比 采 用 单 适 应 度 函 数 有 较 使 好 的 综 合 性 能 。最 后 通 过 大 量 仿 真 结 果 验 证 了这 一 算 法 的有 效 性 。 关 键 词 : 布 阵 ;副 瓣 电平 ;波束 宽度 ;遗 传 算 法 稀

运用遗传算法综合稀疏阵列

运用遗传算法综合稀疏阵列

运用遗传算法综合稀疏阵列Randy L.Haupt IEEE高级会员摘要:大的天线阵列很难被稀疏用来获得较低的旁瓣。

对于非周期阵列的综合问题,传统的统计学方法远远达不到最优配置的要求。

传统的优化方法不适合用来优化多参数或离散参数的问题。

本文将介绍如何利用遗传算法来优化一个稀疏阵列,并在一个周期阵列上利用遗传算法来决定哪一个阵元被稀疏从而抑制阵列的最大相对旁瓣电平。

本文将呈现200个阵元的线阵和200个阵元的面阵的仿真结果,要求稀疏阵列的旁瓣电平低于-20dB,对于线阵,同时在扫描角和带宽上进行了优化。

Ⅰ简介周期性阵列通过有目的的放置相同权值的阵元来产生幅度锥削的低旁瓣,在给定旁瓣要求的前提下利用简单的分析方法推出阵元的位置是不可能的[1]。

事实上,大部分周期阵列的分析方法都是试图将阵列区域内的阵元密度与幅度锥削的低旁瓣的振幅密度相联系起来,同时保持阵列孔径不变[2]。

阵元密度在阵列中心达到最大并逐渐向边缘稀疏,通常情况下,旁瓣电平在主瓣附近减小,而在远离主瓣的位置上增大[3](这个通常是可接受的)。

非周期阵列的综合方法是在给定条件下达到均方旁瓣电平或是最大相对旁瓣电平的要求。

稀疏一个阵列意味着从均匀间隔阵列或者是周期阵列中抽去部分阵元从而在给定孔径的范围内产生所期望的幅值密度。

连接在馈电网络上的阵元的状态是“开”,而连接在匹配负载或虚负载上的阵元的状态就是“关”。

用稀疏阵来产生低旁瓣比稀布阵要简单的多,稀布阵的阵元位置不确定的,有无限多的取值可能。

稀疏阵有2Q种组合,其中Q是阵元数目,如果阵列是对称结构,那么阵元位置的组合数将显著减少。

稀疏也可以看作是振幅锥度的量化,其中每一个阵元的振幅用一个比特来表示。

稀疏一个大的阵列从而产生低旁瓣涉及到检查相当多的阵元位置组合,目的是找到最好的稀疏方式。

只有当阵列较小时无遗漏的检查所有的组合才是可行的[5]。

大部分的优化方法(例如单纯形法、Powell方法、共轭梯度法等)不适合于稀疏阵列优化,他们只能优化一些连续变量而且会陷入局部最小值[6],此外,这些方法是专们用来处理连续参数问题的,而稀疏阵列所处理的是离散参数问题。

基于整数编码遗传算法的稀疏阵列综合

基于整数编码遗传算法的稀疏阵列综合

Ke r s y wo d :Ge e i lo i m ; i n d a r y ; r y p t e n s n h ss I t g r c d n tc a g rt h Th n e r a s Ar a a t r y t e i ; n e e o e
1 引 言
Ab t a t o h s u f t i n d a r y s n h ss n o tm ie e i n me h d o e e i l o ih b s d o s r c :F r t e is e o h n e r a y t e i ,a p i z d d s t o fg n tc ag rt m a e n g i t g r o ei r po e . h p l a i n o d v d a e c i to a n ru i g i t g r o i g t e s a c p c n e e d sp o s d By t e a p i to f n i i u l s rp i n m n e sn e e d n , h e r h s a e c c i d n c i r a l e u e n t e p e ie o lm e t h n e a i s ma n a n d c n t n . s n t e o tma r a n sg e ty r d c d o h r m s fee n st i n d r to i i t i e o s a t Ba e o h p i la r y i ee n s p sto it i u i n,t e we g t i f r h r o tm ie t o v x o tm ia i n l me t o ii n d s rb to h i h s u t e p i z d wih c n e p i z t ,wh c mp o e he o ih i r v s t m a n sd — a i fa r y p t e n sg i c n l . e v l iy a d s p ro iy o t o sc nf m e y t e r s to i - i e r to o r a a t r i n f a ty Th a i t n u e i rt fme h d i o i i d r d b h e ul f t e smu a i n d t . h i l to a a

基于微遗传算法的稀疏天线阵列优化方法

基于微遗传算法的稀疏天线阵列优化方法
方位 角对称、 旁瓣电平低 、 起伏小的特点 , 且该算法优化效率 高、 收敛速度快 。
【 关键词】 微遗传 算法 优化
稀疏天线 阵列 方向13 (0 0 1 - 0 4 T 5. 5 A 1o — 79 2 1 )3 5 -
通 信 论 坛
m m II. 1 Ⅲ ● ’ ● .= I , I ^^ ● ● ● e - Il k,
基于微遗传算法的稀疏天线阵列优化方法
李 淳 王艳 温 ,
( 中国电子科技 集 团公 司第五 十 四研 究所 河 石 家庄 00 8 ) 1 5 01 ( 西安 电子 科技 大学 雷达信 号 处理 国家重点 实验 室 陕 西 西安 70 7 ) 2 1 01
e ce y a d fs on r e e rt . i f inc n atc veg nc ae K ey wor s: ir g n tc ag rt ;o i ia on p re a e aa ry at r d m c o — e e o hm i l i pt z t ;s a ntn ra ;p te m i s n
o tnna ra a e h o e m e r s pe f s as a tnna ra i r sntd o c e a lg —r s l i n fa e n ary. m t od f g o ty ha o p re n e ary s e e e t a h ve l h e outo patr w i p i i te n h t o mniie t a o sse y,n rtn o n o ie lbe dr c on lc n itnc i o g a g l bea d lw sd o .And i o imie sto paa ee su l i c o—g ne c ag ihm . i t pt z spo i n rm tr t i ng mi r i i z e t ort i l

基于改进遗传算法的圆阵稀布方法

基于改进遗传算法的圆阵稀布方法
包子阳;陈客松;何子述;韩春林
【期刊名称】《电子技术应用》
【年(卷),期】2008(34)10
【摘要】由于圆形阵列所具有的特性,使其正得到日益广泛的应用,但是圆阵方向图却具有相对主瓣较高的旁瓣电平.为此,针对稀布圆形阵列的天线单元使旁瓣电平尽量降低的问题,应用改进的遗传算法,取角度差值为染色体的基因,进行阵列孔径、单元个数、最小间隔一定的稀布优化排列,减小了遗传算法的搜索空间,提高了搜索效率.仿真结果表明:该方法能有效提高收敛速度、降低圆阵的旁瓣电平.
【总页数】4页(P110-112,115)
【作者】包子阳;陈客松;何子述;韩春林
【作者单位】电子科技大学,电子工程学院,四川,成都,610054;电子科技大学,电子工程学院,四川,成都,610054;电子科技大学,电子工程学院,四川,成都,610054;电子科技大学,电子工程学院,四川,成都,610054
【正文语种】中文
【相关文献】
1.0-1规划的稀布同心圆阵方法研究 [J], 谢欢欢;景跃骐;李艳
2.稀布圆阵的降维优化方法 [J], 于波;陈客松;朱盼;王国强
3.基于MOPSO与凸优化算法的稀布圆阵列方向图优化 [J], 曹爱华;李海林;马守磊;周建江
4.基于改进差分进化算法的圆阵稀布方法 [J], 包子阳;陈客松;何子述;韩春林
5.两种改进算法相结合的圆阵稀布方法 [J], 包子阳;陈客松;何子述;韩春林
因版权原因,仅展示原文概要,查看原文内容请购买。

基于遗传算法的圆柱阵稀疏方法

基于遗传算法的圆柱阵稀疏方法1包子阳电子科技大学电子工程学院,成都 (610054)E-mail :ziyang829@摘 要: 由于共形阵列所具有的特性,使其正得到日益广泛的应用,但是其耗用较多的阵元,方向图具有相对主瓣较高的旁瓣电平。

为此,本文针对基本的共形阵列——圆柱阵列的天线单元,应用遗传算法对其进行稀疏,减少了阵元数量.仿真结果表明:该方法可有效地降低圆柱阵列的旁瓣电平。

关键词: 圆柱阵列,遗传算法,方向图,稀疏阵列 中图分类号:TN820.1+ 5 文献标识码:A1 引言一般情况下,由单个辐射器构成的天线就可以完成发射和接收电磁波的任务。

但在一些特殊应用中,往往要求天线具有强大的方向性和很高的增益,有时还要求天线波瓣可以扫描,并具有一定的形状等,这时就需要使用多个辐射器,并按一定方式排列。

若天线单元排列与载体表面形状一致,则称为共形阵,共形阵中的所有阵元往往不在一个平面上,所以也可以称为非平面阵。

如果各个天线单元排列成一个圆环,就称之为圆阵[1],多个圆阵平行布置在一个圆柱体上,便可构成柱面阵,圆柱阵是最简单的共形阵。

近年来,各种先进的飞行器,比如导弹、飞机、巡航导弹、卫星等,为了获得更高的空气动力学性能和武器性能,越来越希望将它们所携带的电子设备(包括雷达天线单元)安装在飞行器表面上,使阵列天线的阵面与飞行器表面相吻合,形成共形阵列天线。

但其所用阵元较多,方向图具有相对主瓣较高的旁瓣电平。

遗传算法由于其在解决大空间、非线性、全局寻优等复杂问题时具有传统方法所不具备的独特优越性,已在越来越多的领域得到广泛的应用[2~5];近年来利用稀疏阵列单元来降低旁瓣电平的方法成为研究热点[6~8]。

本文采用遗传算法,进行圆柱阵列的稀疏优化排列,取得了较好的结果。

2 优化模型设一个圆柱阵列由M 个半径均为R 的圆形阵列组成,每个圆形阵列上均匀分布着N 个阵元。

所有平面上的阵元分布对称,即阵元分布的方位角相等(2/,0,1,,1;mn n N n N φπ==−L 0,1,1,m M =−L 其中0m =表示下底面,1m M =−表示上底面)。

基于matlab的遗传算法及其在稀布阵列天线中的应用(一)

基于matlab的遗传算法及其在稀布阵列天线中的应用(一)基于Matlab的遗传算法及其在稀布阵列天线中的应用引言遗传算法是一种基于生物遗传学和进化论的优化算法,它通过模拟自然进化过程来求解复杂的问题。

在稀布阵列天线设计中,遗传算法被广泛应用于优化天线的辐射性能和阵列结构。

优化天线辐射性能天线辐射性能的优化是稀布阵列天线设计中的一个重要任务。

遗传算法通过对辐射特性进行建模和优化,可以得到较好的辐射性能。

频率选择性表面设计频率选择性表面(Frequency Selective Surface,FSS)是一种能够对电磁波进行频率选择的结构。

通过遗传算法优化FSS的结构参数,可以实现天线在某些频段的辐射增益增加或者功率辐射方向控制。

天线阵列权重设计天线阵列的辐射性能受到阵列元件权重的影响。

通过遗传算法优化阵列元件的权重,可以实现天线辐射主瓣的控制、辐射方向的调整以及谐振频率的匹配。

优化天线阵列结构天线阵列的结构设计是稀布阵列天线设计中的另一个重点。

遗传算法可以通过优化阵列的布局和排布方式,提高天线的辐射效率和阵列的紧凑性。

阵列元件位置优化阵列元件的位置对天线的辐射性能有很大影响。

通过遗传算法优化元件的位置,可以实现天线辐射主瓣的控制、辐射方向的调整以及副瓣的抑制。

阵列元件数量优化阵列元件的数量和密度决定了阵列的性能和紧凑性。

通过遗传算法优化元件的数量和分布,可以实现辐射效率的提高和阵列结构的简化。

结论基于Matlab的遗传算法在稀布阵列天线设计中具有重要的应用价值。

通过优化天线辐射性能和阵列结构,可以实现天线设计的高效性和灵活性。

然而,遗传算法的应用仍然面临一些挑战,例如算法的收敛速度和全局最优解的搜索能力,需要进一步的研究和改进。

遗传算法的优势1.并行搜索能力:遗传算法可以同时搜索多个解的空间,并从中找到最优解。

这使得它能够在较短的时间内找到全局最优解。

2.适应性:遗传算法可以根据问题需求进行调整和改进。

采用遗传算法的MIMO雷达L型阵列稀布优化

采用遗传算法的MIMO雷达L型阵列稀布优化和洁;冯大政;孟超;马仑【期刊名称】《电讯技术》【年(卷),期】2015(55)8【摘要】In order to avoid the grating lobe effect in multiple-input multiple-output( MIMO) radar caused by array sparse distribution,a synthesis and optimization algorithm of L-shape sparse array in MIMO radar is proposed. Two-dimensional pattern synthesis is achieved with L-shape sparse array in MIMO radar which is equivalent to virtual rectangular plane array. Both the transmitting and receiving antenna array ge-ometries are optimized through introducing a random perturbed variable,so thatthe grating lobe can be sup-pressed and two-dimensional pattern synthesis with lower relative sidelobe levels in both azimuth and ele-vation dimensions can also be obtained. In the proposed method,mutation operation in classic genetic algo-rithm is modified to enhance the global search capability. Simulation results indicate the validity of the pro-posed methods.%针对多输入多输出( MIMO)雷达阵列稀布导致栅瓣效应的问题,研究了L型阵列方向图综合方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%主函数,位于x轴上的不等间距直线阵列,参考文献《一种有阵元间距约束的稀布阵天线综合方法——陈客松》clc,clear,clf;format;T1=clock;s1=sprintf('程序正在运行中,请稍等......');disp(s1);N=35; %阵元数L=50; %阵列孔径dc=0.5; %最小阵元间距SP=L-(N-1)*dc; %SP为孔径上剩余布阵区间长度popsize=200; %设置初始种群规模pc0=0.7; %设置初始交叉概率pm0=0.01; %设置初始变异概率numitera=800; %设置迭代次数chromlength=N-2; %设置初始决策变量个数In=1; %设各个阵元激励是等幅同相的res=1800; %设置采样点数,也就是分辨率theta=0:pi/res:pi; %theta 是观察方向与阵轴的夹角theta0=90/180*pi; %theta0 为波束指向,当为0.5*pi 时为侧射阵u=cos(theta)-cos(theta0);pop=initpop(popsize,chromlength,SP,L,dc);%运行初始化函数,产生初始化种群num=1; %初始化循环变量(现在是只有完成所要求的迭代次数,循环才会终止)bestindividual=ones(numitera,N+1); %保存每次迭代的最佳值while num<=numitera %设置程序终止条件[SLLmax,Elog]=calobjvalue(pop,popsize,N,u,res);%计算目标函数,并求出最大峰值旁瓣fitvalue=calfitvalue(SLLmax,popsize);%计算适应度值的大小newpop=select(fitvalue,popsize,pop); %newpop为经过轮盘赌选择之后的新的种群newpop1=pretreat(newpop,popsize,dc,chromlength);%遗传操作预处理newpop2=crossover(newpop1,popsize,pc0,N); %进行交叉运算newpop3=mutation(newpop2,popsize,pm0,N,SP); %进行变异运算newpop4=posttreat(newpop3,popsize,dc,chromlength);%遗传操作后处理%遗传操作之后再重新计算适应度函数大小[newSLLmax,newElog]=calobjvalue(newpop4,popsize,N,u,res);newfitvalue=calfitvalue(newSLLmax,popsize);%求出最佳个体,并保存最小峰值旁瓣和最佳个体[Minvalue,Index]=min(newfitvalue);bestindividual(num,1)=Minvalue; %每一代中的最小峰值旁瓣保存在第一列bestindividual(num,2:N+1)=newpop4(Index,:); %每一代最小峰值旁瓣所对应的最优染色体(也即是阵元所在的位置)pop=newpop4; %重新赋值进行循环num=num+1; %自变量加1end%求出bestindividual中的最小值及最优染色体bestindividual1=abs(bestindividual); %取绝对值[Minfit,I]=max(bestindividual1(:,1)); %求出bestindividual1 中最大值,也就是bestindividual 中的最小值及其所在的行Minfit=-1*Minfit; %求出最低峰值旁瓣电平chromosome=bestindividual(I,2:N+1); %最优染色体str1=sprintf('进化到第%d代\n',I);str2=sprintf('对应的染色体:%s\n',num2str(chromosome));str3=sprintf('最优值为:%.3f\n',Minfit);disp(str1);disp(str2);disp(str3);%画出方向图S=zeros(1,length(u)); %初始化阵因子for m=1:NS(1,:)=S(1,:) + exp(j*2*pi*u*chromosome(1,m));endS=abs(S);Slog = 20*log10(S/max(S));plot(theta*180/pi,Slog,'k','linewidth',2); %绘制阵因子方向图xlabel('方位角(degree)','FontSize',11);ylabel('PSLL(dB)','FontSize',11);axis([0 180 -45 0]);%计算程序运行时间T2=clock;T3=T2-T1;if T3(6)<0 %计算秒T3(6)=T3(6)+60;T3(5)=T3(5)-1;endif T3(5)<0 %计算分钟T3(5)=T3(5)+60;T3(4)=T3(4)-1;endif T3(4)<0 %计算小时T3(4)=T3(4)+24;T3(3)=T3(3)-1;ends2=sprintf('程序运行耗时:%d 小时%d 分钟%.4f 秒',T3(4),T3(5),T3(6));disp(s2);%遗传算法子函数,产生初始种群function pop=intipop(popsize,chromlength,SP,L,dc)pop1=SP*(ones(popsize,chromlength)-rand(popsize,chromlength)); %产生popsize行,chromlength=N-2列个随机数pop1=sort(pop1,2); %按行进行从小到大的排列a=ones(popsize,chromlength)-(1-dc); %产生popsize行,chromlength=N-2列个相距为dc的矩阵a=cumsum(a,2); %按行叠加,计算累积和pop2=pop1+a;pop=cat(2,zeros(popsize,1),pop2,L*ones(popsize,1)); %产生popsize行,N列的初始化种群%遗传算法子程序: 遗传操作预处理function newpop1=pretreat(newpop,popsize,dc,chromlength) %newpop1为预操作之后得到的基因矩阵%创建约束矩阵con=ones(popsize,chromlength)-(1-dc); %产生popsize行,chromlength=N-2列个相距为dc的矩阵con=cumsum(con,2); %按行叠加,计算累积和cons=cat(2,zeros(popsize,1),con,zeros(popsize,1)); %约束矩阵,cat(dim,A,B,C)dim=1表示按列连接,dim=2表示按行连接newpop1=newpop-cons;%遗传算法子程序,计算适应度值function fitvalue=calfitvalue(SLLmax,popsize)fitvalue=zeros(popsize,1);for i=1:popsizefitvalue(i)=SLLmax(i); %fitvalue也是列向量,其实和SLLmax是一样的,相当于赋值end%遗传算法子程序,计算目标函数值的大小function [SLLmax,Elog]=calobjvalue(pop,popsize,N,u,res)E=zeros(popsize,length(u)); %E为阵元无方向性时的方向性函数,也即是阵因子FFmax=zeros(popsize,1); %用于保存主瓣峰值index=zeros(popsize,1); %用于保存主瓣峰值所在的位置for m=1:popsizefor n=1:NE(m,:)=E(m,:)+exp(j*2*pi*u*pop(m,n)); %计算目标函数endE(m,:)=abs(E(m,:)); %适应度函数都是非负的,且是为了下面的对数用算Elog(m,:)=20*log10(E(m,:)/max(E(m,:))); %以分贝数来表示,其中log10表示以10为底的对数[FFmax(m),index(m)]=max(Elog(m,:)); %求出主瓣位置并保存end%求出最大旁瓣for i=1:popsizefor n=index(i):res %用于求出最靠近主瓣右边的凹陷点的位置if Elog(i,n)>Elog(i,n+1)continueendif Elog(i,n)<Elog(i,n+1)brk1=n;breakendendfor m=index(i):-1:2 %用于求出最靠近主瓣左边的凹陷点的位置if Elog(i,m)>Elog(i,m-1)continueendif Elog(i,m)<Elog(i,m-1)brk2=m;breakendendSLL1=Elog(i,brk1:res); %右边除去主瓣所在区域的旁瓣值集合SLL2=Elog(i,1:brk2); %左边除去主瓣所在区域的旁瓣值集合SLLmax(i)=max([SLL1,SLL2]);%求出最大的峰值旁瓣endSLLmax=SLLmax'; %此时得到的SLLmax为列向量%遗传算法子程序,进行轮盘赌选择(在轮盘赌之前,利用最优染色体代替最次染色体,然后参与轮盘赌)function newpop=select(fitvalue,popsize,pop) %newpop为经过轮盘赌选择之后的新的种群[minvalue,index1]=min(fitvalue); %求出当前种群中最优解,并求出其所在的行数[maxvalue,index2]=max(fitvalue); %求出当前种群中最次解,求出其所在行数pop(index2,:)=pop(index1,:); %将最优染色体代替最次染色体,参与轮盘赌选择fitscore=fitvalue/sum(fitvalue); %计算个体被选中的概率,由于fitvalue为负值,因此fitscore越大,fitvalue越小,也就是说峰值旁瓣电平越小,越是最优解fitscore=cumsum(fitscore); %群体中个体的累积概率wh=sort(rand(popsize,1)); %生成[0,1]区间上的随机数wh,并从小到大排列wheel=1;fitone=1;while wheel<=popsize %执行轮盘赌选择操作if wh(wheel)<fitscore(fitone)newpop(wheel,:)=pop(fitone,:);wheel=wheel+1;elsefitone=fitone+1;endend%遗传算法子程序:交叉运算(单点交叉)function newpop2=crossover(newpop1,popsize,pc0,N)for i=1:2:popsize-1if rand<pc0 %交叉规则,只有随机数小于交叉概率才可以进行交叉cpoint=round(rand*(N-3)+2); %产生交叉位置,位于[2,N-1]区间newpop2(i,:)=[newpop1(i,1:cpoint),newpop1(i+1,cpoint+1:N)]; %单点交叉,交换数据newpop2(i,:)=sort(newpop2(i,:),2); %对交叉后的基因矩阵进行按行排列,元素从小到大newpop2(i+1,:)=[newpop1(i+1,1:cpoint),newpop1(i,cpoint+1:N)];newpop2(i+1,:)=sort(newpop2(i+1,:),2);elsenewpop2(i,:)=newpop1(i,:);%不满足交叉条件,不进行交叉newpop2(i,:)=sort(newpop2(i,:),2);newpop2(i+1,:)=newpop1(i+1,:);newpop2(i+1,:)=sort(newpop2(i+1,:),2);endend%也可以利用算数交叉,下面是简要的说明,a是某一个参数%for i=1:2:popsize-1% if rand<pc% newpop2(i,:)=a*newpop1(i,:)+(1-a)*newpop1(i+1,:);% newpop2(i,:)=sort(newpop2(i,:),2);% newpop2(i+1,:)=a*newpop1(i+1,:)+ a*newpop1(i,:);% newpop2(i+1,:)=sort(newpop2(i+1,:),2);%else% newpop2(i,:)=newpop1(i,:);% newpop2(i,:)=sort(newpop2(i,:),2);%newpop2(i+1,:)=newpop1(i+1,:);%newpop2(i+1,:)=sort(newpop2(i+1,:),2)%end%end% pc也可以随着进化时间而变化%遗传算法子程序:变异运算function newpop3=mutation(newpop2,popsize,pm0,N,SP)newpop3=newpop2;for i=1:popsizeif (rand<pm0) %变异规则,只有随机数小于变异概率才进行变异操作mpoint=round(rand*(N-3)+2); %产生变异位置,位置区间为[2,N-1]newpop3(i,mpoint)=rand*SP; %变异位置上的元素用[0,SP]区间上的随机数代替newpop3(i,:)=sort(newpop3(i,:),2); %将变异后的基因矩阵按行从小到大排序elsenewpop3(i,:)=newpop2(i,:);endend%也可以使pm随着进化代数的变化逐渐增大,有利于跳出局部最优%for i=1:popsize%pm=pm0+(0.05-pm0)*i/popsize。

相关文档
最新文档