沈 平 袁 瑛 周 潘
1(湖北职业技术学院计算机中心 湖北 孝感 432000)2(湖北职业技术学院信息技术学院 湖北 孝感 432000)3(华中科技大学电子信息与通信学院 湖北 武汉 430074)
随着移动终端使用量与业务量的飞速发展,提高移动通信传输的频谱利用率已成为当前的研究重点。认知无线电(Cognitive Radio,CR)[1]能够在对主用户(Primary User,PU)不产生干扰的前提下,充分利用空闲的频谱资源。标准的CR优先维护PU的通信质量(Quality of Service,QoS),次用户(Secondary User,SU)的QoS受到极大的影响,导致SU的传输性能较差[2]。
在CR的物理层,许多研究人员利用正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)技术[3-4]传输速率高且抗多径效果好的优点,设计了基于OFDM的物理层协作通信技术[5-6]。在CR的协议层提高SU的通信质量也成为一个研究的热点,文献[7]将PU与SU的连接中断考虑为约束条件,将最大化SU的传输速率作为目标问题,该算法有效地提高了SU的传输速率,但是也增加了网络中节点的能耗。文献[8]提出了一种多阶段的智能中继算法,将协作过程分为了抗干扰的中继阶段与SU解码PU消息的阶段,通过两个阶段的处理,提高了对PU活动检测的准确性,但该算法并未考虑PU的全部QoS指标。
上述的物理层与协议层的协作通信方案均明显地牺牲了PU的QoS,违背了认知无线电的核心原则。诸多文献[9][10]将认知无线电的协作通信问题建模为多约束条件下的优化问题,文献[10]采用一个线性搜索技术搜索问题的最优解,其解质量不够理想。重引力搜索算法(Gravitational Search Algorithm,GSA)是一种鲁棒性高且易于实现的全局优化算法,对于多约束条件优化问题的效果较好,但是GSA存在容易陷入局部最优的问题,导致寻优结果不稳定。本文将遗传算子引入GSA的每次迭代中,设计了混合重引力搜索算法(Hybrid Gravitational Search Algorithm,HGSA),利用遗传算法的全局搜索能力提高GSA的寻优结果与稳定性。
GSA是一种基于万有引力定律和牛顿第二定律的种群优化算法,粒子依赖彼此的万有引力不断运动,在搜索空间中寻找最优解。GSA中agent作为彼此吸引的目标,每个agent由位置、质量、主动性与主动引力质量4个属性组成。考虑一个包含N个agent的种群,第i个agent的位置定义为[11]:
(1)
第t次迭代中agentj对agenti的引力定义为:
(2)
式中:Maj表示agentj相关的主动引力质量,Mpi表示agenti相关的被动引力质量,表示极小的约束,Rij为agenti与j之间的欧氏距离。重引力常量G(t)是一个随着迭代线性降低的函数,其目标是控制搜索的准确率,计算为下式:
(3)
式中:α与G0分别为用户定义的递减系数与初始值,T为迭代次数,agenti受到的总引力计算为下式:
(4)
(5)
式中:Mii(t)为惯性质量。第t次迭代agenti在d维度的速度与位置方程分别定义为以下两式:
(6)
(7)
算法1重引力搜索算法的伪代码
输入:目标函数f(x);
输出:目标函数的最优解;
1. 设置常量α、G0与max_iter;
2. 初始化种群;
3. WHILE未达到结束条件 {
4. 式(3)计算G;
5. 式(5)计算每个粒子的加速度;
6. 式(6)计算粒子速度;
7. 式(7)计算粒子位置;
8. 计算适应度;
9. }
GSA具有鲁棒性、自适应性与简洁性等优点,但GSA容易陷入局部最优。遗传算法(Genetic Algorithm,GA)中则通过选择算子、交叉算子与变异算子来防止早熟收敛,因此将GA算法引入GSA算法中,同时保留GA与GSA两个算法的优势。
采用随机初始化的机制,之后,使用GSA算法更新每个agent,迭代地接近最优解,每次迭代采用式(3)计算种群的重引力,第t次迭代agent的质量计算为:
(8)
式中:fit_optimal(t)与fit_lowest(t)是第t次迭代目标函数的最优与最差适应度。假设Mpi=Maj=Mii=Mi,i=1,2,…,N,Mi(t)定义为下式:
(9)
每次迭代分别通过式(6)、式(7)更新agent的速度与位置,因此每次迭代重建了一个新的agent种群,每次迭代采用GA的算子对种群进行遗传操作。因为GSA种群的规模较大,因此仅对其中一部分agent进行遗传操作。设GAnum为GA操作的agent数量,定义为下式:
(10)
式中:GSAi表示GSA当前的迭代次数。GSAmax_iter表示GSA的最大迭代次数,GAnum_max与GAnum_min分别表示GA处理的agent数量最大值与最小值。设GA处理的agent最大数量为max_index,定义为:
(11)
式中:GSAPS为GSA的种群规模。提取agent之后,采用遗传算子对agent进行处理,产生新的agent。采用精英机制保留最优解,如下式所示:
(12)
式中:xk表示第k个agent。最终,GA种群的规模与迭代次数的关系为:
(13)
(14)
式中:GAminPS与GAmaxPS分别为种群开始与最后的规模,GAmax_iter与GAmin_iter分别为GA的最大与最小迭代次数,δ与β分别表示种群的生长速度与最大迭代次数。重复上述迭代直至达到期望的结束条件。图1为HGSA的流程框图。
图1 混合重引力算法的流程框图
假设无线网络由若干的正交主信道组成,每个信道分配一个PU,每对PU的发送端-接收端即存在一对SU的发送端-接收端。考虑一个正交信道,每个正交信道的发送器由一个次发送器s与一个主发送器p组成,接收器由一个次目标sd与一个主目标pd组成。SU装备了两个天线:一个负责发送数据,另一个负责接收数据与频谱感知。PU装备一个天线,PU具有一个缓存来保存一个报文,PU队列的到达率服从独立同分布。每个时隙传输的报文数量设为均值为λp∈[0,1]的贝努力随机变量。
如果一个队列的长度是有限的,则认为该队列具有稳定性。设QT表示时隙T开始的队列Q长度,如果满足以下条件,则认为队列Q具有稳定性:
(15)
(16)
式中:(z)+表示max(z, 0)。设队列的离开早于队列的到达,在每个时隙的开始测量队列的长度[12]。
图2 基于Markov链的PU队列模型
将PU队列的状态平衡方程直接定义为PU队列报文数量大于等于1的概率,设为vm:
(17)
(18)
对式(18)进行运算与化简之后,v0可转化为下式:
(19)
如果μp>λp,那么PU队列是稳定的。根据Little法则[13]计算PU平均队列延迟Dp:
(20)
根据式(17)将Dp改写为:
(21)
将v0代入Dp,平均PU队列的延迟为:
(22)
如果μp和λp相等,则最小化平均延迟。PU平均队列延迟不小于一个时隙,说明μp=1(个报文/时隙),如果PU队列的服务速率等于一个单位,那么此时可获得Dp的最小值。
设T表示PU占用WHz带宽发送数据的一个时段,如果用户之间没有发生协作,那么将时隙分为两个不重叠的阶段,一个为发送数据阶段,时段为[0,T-τf],另一个为响应阶段,时长为τf秒,时段为[T-τf,T]。主目标使用响应阶段告知主发送器报文的解码状态。如果PU队列非空,那么PU发送一个大小为b比特的报文至目标节点。PU与主目标实现了自动重传请求(Automatic Repeat-reQuest, ARQ)误差控制方案,主目标在每个报文中设置CRC校验码来表示接收报文的解码状态。如果PU在时段[T-τf,T]内收到一个ACK,那么删除保存在队列头部的报文,否则,在后续时隙中产生一个“重新发送”报文。
如果p→pd连接未中断,那么PU队列头部的报文将被服务。设PU队列的平均服务速率为μp_nc,计算为下式:
(23)
由上式可看出增加响应时长τf,可导致PU队列的服务速率降低。这是因为传输数据的可用时间随着τf的增加而减少,所有连接中断的概率增加也会导致服务速率降低。因为PU以固定速率Rp=b/W(T-τf)(比特/信道)发送数据,根据式(9)增加W、T均会导致信道中断概率的降低。增加Rp会导致每秒解码的比特数量降低,所以增加Rp会导致吞吐量降低。每秒、每赫兹解码的比特数计算为:
(24)
设Rp=b/WT,可得:
(25)
计算up_nc关于b的一阶导数,可获得最优的报文长度:
(26)
(27)
那么最大化每个信道吞吐量的比特数量为:
(28)
图3 p与PU吞吐量(bit·s-1·Hz-1)的关系曲线
根据式(24)、式(25)两式,可将PU队列的平均延迟定义为下式:
(29)
式中:λp<μp_nc为PU队列的稳定性条件。
对于协作用户,SU帮助PU转发一部分的PU报文,如果用户协作对于PU有益,那么PU可能释放一部分带宽给SU。如果PU队列为非空,那么PU释放WsHz的带宽分配给SU,释放Ts秒的时段给SU。PU报文使用的带宽设为Wp=W-WsHz,发送时段与重新发送时段分别设为Tp与Ts。将PU带宽与SU带宽分别表示为Wp与Ws。
SU从时隙开始的τs秒内感知子频带Wp,检测是否存在活动的PU,如果Wp频带被感知为空闲状态,那么SU发送一些数据位来识别频带是否可用。假设SU采用基于能量检测的频谱感知算法,SU在时隙τs< 假设每个时隙内存在两个PU响应阶段,每个PU报文的发送均对应一个响应阶段,接收器在响应阶段通知发送器报文是否可解码。如果PU目标收到一份期望的PU报文,那么PU目标向发送器发送响应消息。第一个响应阶段对应PU发送PU报文,第二个响应阶段对应SU发送PU报文。如果PU收到一个ACK,那么PU清空其队列,PU重新发送PU报文。协作方案的每个时隙中SU的操作分为5个阶段,[0,τs],[τs,Tp],[Tp,Tp+τf],[Tp+τf,Tp+τf+Ts],[T-τf,T],如图4所示。 图4 频谱协作感知的消息格式 SU中使用校验码指示解码的正确性,将校验码置于响应消息的尾部。SU中主响应消息的解码过程设为“删除信道”模型,SU对PU响应消息正确解码的概率设为f。如果SU无法在指定时隙内解码PU响应消息,则认为该响应消息为“NACK”消息,将SU未收到响应消息考虑为一个NACK响应消息。收到NACK响应消息的概率设为ω,将SU未收到响应消息考虑为ACK消息的概率设为ω′,因此,SU具有ω′概率不需要重新发送PU报文。SU应当对ω进行优化,从而减少信道资源的浪费。考虑上述情况的PU平均服务率可定义为下式: (30) 式中:β=f+f′ω表示将串听响应消息考虑为NACK的概率,该情况主要发生于p→pd连接中断的场景。式(30)采用ω对PU平均服务率进行参数化处理。当ω=1,SU转发的PU报文量增加,此时为系统内最大的PU服务速率。为了简化分析,将ω设为定值1,此时PU具有最优的QoS性能。 PU在[0,Tp]时段发送报文,SU在[Tp+τf,Tp+τf+Ts]时段重新发送PU报文。SU将响应消息考虑为NACK消息的情况主要有两种:(1) SU正确地解码了响应消息,但是p→pd连接发生中断;(2) SU未能正确地解码响应消息。SU将串听PU响应消息考虑为NACK的概率定义为: (31) 以下描述了SU在每个阶段的操作: (1) 时段[0,τs] SU同时感应PU子频带Wp,在频带Ws发送数据,感应的结果用于SU在时段[τs,Tp]的操作。 (2) 时段[τs,Tp] 如果SU检测PU为活动状态,那么SU在Ws同时发送其数据,SU在Wp对PU消息进行解码。如果SU检测PU为非活动状态,那么SU在Ws与Wp两个子频带同时发送数据。如果PU为活动状态,而SU检测PU子频带为空闲状态,那么PU与SU在频带Wp上将会产生干扰。 (3) 时段[Tp,Tp+τf] 如果在当前时隙中PU队列中有数据,那么在PU传输的最后,SU在Ws上发送数据,并且将Wp设为空闲,以防止两个频带同时传输响应消息。如果在当前时段中PU队列为空,那么SU在两个子频带中并行的发送数据。 (4) 时段[Tp+τf,T-τf] 解码PU报文的过程中,SU识别PU的状态是否活动。如果满足以下3个条件,那么SU在两个子频带并行地发送数据;① PU在时段[0,Tp]为活动状态,PU目标正确地解码PU报文,SU成功地解码PU响应消息,此时返回一个ACK响应消息;②s→pd连接中断;③ PU在时段[0,Tp]为非活动状态。如果PU在时段[0,Tp]为活动状态,次用户将时段[Tp,Tp+τf]的响应消息作为一个NACK响应,并且s→pd连接未中断,那么SU在Ws上发送数据,或者在Wp上重新发送PU报文。 (5) 时段[T-τf,T] 如果次用户在时段[Tp+τf,T-τf]重新发送报文,那么PU将在该阶段也发送一个响应消息。SU在Ws发送数据,保持侦听频带Wp。如果SU决定不再重新发送PU报文,则不会产生PU响应消息。如果当前时段中PU队列为空,那么SU在该时段发送其数据。 (32) 在PU不活动的情况下,次用户的瞬时发送速率为: (33) 在PU活动的情况下,次用户的瞬时发送速率为: (34) 最终,SU的平均发送速率计算为: (35) SU的平均发送能量计算为: (36) 假设用户对Tp=T-τf-Ts、Wp=W-Ws进行优化,假设频谱感知时间τs为固定的预设值。频谱协作感知优化问题描述为在一定的约束条件下,获得最大的平均数据速率。约束条件包括:PU平均队列延迟、PU队列稳定性以及SU的平均发送能量。优化问题的模型定义为下式: 0≤εl≤E,τs≤Tp≤T(l),0≤Wp≤W,Tp+Ts=T(l) (37) 结合延迟约束与稳定性约束,PU队列的平均服务率应当满足下式: 在没有协作通信的情况下,PU的发送时长为T-τf秒,占用频带为WHz,每个时隙中PU的能耗为PW(T-τf)(J/时隙)。在SU协作通信的情况下,PU的发送时长为Tp/T秒,占用频带为WpHz,每个时隙中PU的能耗为PWpTp≤PW(T-τf)(J/时隙)。协作通信导致PU节约的能耗平均比例定义为节约的能耗与原能耗的比例: 式中:PU的发送时间与占用带宽越少,则节约的能量越多。 选择三个近期不同类型的协作通信机制与本算法进行比较,综合地评估本算法的性能,三个算法分别为MPSR[8]、NBERS[5]、AR[6],本算法简称为HGSCC(Hybrid Gravitational Search Cooperation Communication)。基于MATLAB实现了每个频谱协作通信算法。本算法中GSA相关参数设为:=10-100,G0=100,α=20,GA相关参数设为:交叉率=0.9,变异率=0.01,HGSA相关参数设为:控制参数γ=2,δ=15,β=15,GAminPS=10,GAmin_iter=10,GAnum_min=1,GAnum_max=20。 图5 SU平均传输速率与PU队列平均到达速率的关系 图6 响应消息时长τf对本文协作感知通信算法的影响 (2) PU的性能实验。上述实验显示,本算法有效地提高了次级用户的性能,在此测试了本算法对于PU性能的影响。首先测试了PU平均服务速率与PU队列平均到达速率的关系,以及PU队列平均时延与PU队列平均到达速率的关系,分别如图7、图8所示。图中显示,本算法的PU传输性能明显地优于无协作通信的方案,并且PU的传输性能与其他的协作通信方案接近。本算法的优化目标是在保持PU队列平均时延与稳定性的前提下,提高次用户数据传输的连续性与稳定性。从图8可看出,当λp>0.2报文/时隙,PU队列稳定性较差,因此,PU队列延迟较高,但本算法通过对PUQoS性能设立了约束条件,因此实现了较好的PU队列延迟与较好的队列稳定性。 图7 PU平均服务速率与PU队列平均到达速率的关系 图8 PU队列平均时延与PU队列平均到达速率的关系 (3) 协作通信的能耗。统计了PU平均节约的能耗与PU队列平均到达速率的关系,如图9所示。当λp=0.2报文/时隙,平均节约了超过95%的PU能量;当λp=0.9报文/时隙,平均节约了78%的PU能量。随着λp的提高,SU获得频谱的机会降低,PU始终占据PU频带与时隙传输其数据,因此PU节约的能耗降低。 图9 PU平均节约的能耗与PU队列平均到达速率的关系 对重引力搜索算法存在容易陷入局部最优的问题进行了改进,通过遗传算子提高了重引力搜索算法的全局搜索能力。采用混合重引力搜索算法在线下阶段求解协作通信的优化问题,将PU队列平均时延、PU队列稳定性、SU平均发送能耗考虑为约束条件,对SU数据速率关于传输带宽与传输时长的最大化优化问题进行建模。对比实验的结果显示,本算法有效地提高了次级用户的性能,实现了较好的PU队列延迟与较好的队列稳定性,并且为PU节约了大量的能量。4 频谱协作感知方案设计
4.1 PU响应消息的解码
4.2 协作通信算法设计
4.3 用户数据率与发送能量
5 问题建模与主平均能量节约
5.1 问题建模
5.2 PU节约的能耗
6 仿真实验与结果分析
6.1 实验环境与参数设置
6.2 实验结果与分析
7 结 语