本发明属于无线通信技术领域,尤其涉及一种基于q学习和神经网络的d2d通信功率控制算法。
背景技术:
由于通信终端的急速增长,无线频谱资源短缺问题日益严重,为缓解频谱资源短缺问题,d2d通信方式被提出并应用于蜂窝网络中,这种通信方式具有提高频谱利用率、降低通信时延、节约功率能耗等优势。在共享模式中,d2d用户对复用蜂窝用户的频谱资源块,能够有效提高蜂窝网络的频谱利用率,但两者之间的互相干扰无法避免。因此,如何在保证蜂窝用户通信质量的前提下有效缓解d2d链路与蜂窝链路之间的干扰成为d2d通信中的一个重要问题。针对这一问题,目前的解决方法主要包括功率控制、频谱分配和模式选择三种,其中功率控制通过对用户进行合理的功率分配减小链路之间的干扰。
针对蜂窝网络d2d通信的功率控制方法已经得到广泛研究,但随着机器学习的广泛应用,有必要探索和研究基于机器学习的d2d通信干扰控制方法。机器学习分为监督学习、半监督学习、无监督学习和强化学习,其中强化学习通过与环境之间的交互来指导智能体的行为,监督学习根据现有数据标签来训练一个最优模型。强化学习适用于没有模型先验知识的场景,如本发明中的d2d通信功率控制问题。但强化学习泛化能力较弱,在环境发生变化时需要重新学习,将花费大量的计算资源。因此,本发明将强化学习算法和神经网络相结合,以适应移动场景中的d2d通信功率分配。
技术实现要素:
本发明目的在于提供一种基于q学习和神经网络的d2d通信功率控制算法,以解决在单小区上行链路共享场景中引入d2d通信导致的基站、蜂窝用户、d2d用户对三者之间的干扰和系统吞吐量低的技术问题。
为解决上述技术问题,本发明的具体技术方案如下:
一种基于q学习和神经网络的d2d通信功率控制算法,包括以下步骤:
步骤1、为蜂窝用户和d2d用户对分配频谱资源,利用距离信息计算蜂窝链路和d2d链路的信道增益,利用频谱分配信息计算共享同一频谱资源块的用户链路的信干噪比,根据香农公式计算用户吞吐量;
步骤2、根据d2d通信功率控制场景定义q学习中的智能体、动作、状态、奖励函数参数;
步骤3、根据q学习算法更新q值表,实现d2d用户对的功率分配;
步骤4、定义神经网络的输入、输出和网络结构;
步骤5、运用q学习获得的数据训练神经网络模型,通过训练好的模型进行d2d用户对的功率分配。
进一步地,所述步骤1中蜂窝链路的信干噪比为:
其中,ci表示第i个蜂窝用户,其中i=1,2,…,m;dj表示第j个d2d用户对(j=1,2,…,n),r=1,2,…,k表示系统中频谱资源块的编号,m表示蜂窝用户的数量;n表示d2d用户对的数量;k表示频谱资源块的数量;
3、根据权利要求2所述的基于q学习和神经网络的d2d通信功率控制算法,其特征在于,所述步骤1中d2d链路的信干噪比为:
其中,
进一步地,系统中蜂窝用户的吞吐量为:
其中,w表示频谱带宽;
系统中d2d用户对的吞吐量为:
其中,
系统中所有用户的总吞吐量为:
进一步地,步骤2中所述智能体是通信系统中的d2d用户对,系统中存在n个智能体;
所述动作用a表示,为共享同一频谱资源块的每个d2d用户对选择一个发射功率p∈{p1,p2,…,pl},动作用a表示,其中,p1,p2,…,pl为可供选择的发射功率;
所述状态用s表示,是单状态,即学习过程中只有一个状态;
所述奖励函数用r表示,指特定频谱资源块上的条件吞吐量:
其中,τ0表示蜂窝链路信干噪比的门限值;
上式表示当蜂窝链路的信干噪比高于门限值时,奖励函数为该频谱资源块上的总吞吐量;否则,奖励函数为-1,表示惩罚值。
进一步地,步骤3中,根据q学习算法更新q值表,实现d2d用户对功率分配的步骤包括:
步骤3.1、对于n个d2d用户对dj,j∈{1,2,…,n},初始化所有q值表的值为0;
步骤3.2、选择第r个频谱资源块;
步骤3.3、选择第r个频谱资源块上的第j个d2d用户对;
步骤3.4、基于当前q值表,根据ε-greedy策略选择一个动作a;
步骤3.5、执行动作a,计算奖励函数r;
步骤3.6、根据公式
步骤3.7、重复步骤3.4到步骤3.6直到q值表收敛;
步骤3.8、重复步骤3.3到步骤3.7直到同一频谱资源块上的d2d用户对均被考虑;
步骤3.9、重复步骤3.2到步骤3.8直到所有频谱资源块均被考虑。
进一步地,步骤4中神经网络的输入数据为蜂窝用户、d2d用户对在小区中分布的距离信息,输出数据为同一频谱资源块中每一个d2d用户对的发射功率;
共有n个d2d用户对共享同一个频谱资源块,输入数据个数为n2+n+1,输出数据个数为n;
神经网络模型结构为一个含有5个全连接层的神经网络,每一层中使用relu函数作为激活函数;第一层节点个数为n2+n+1,第二层节点个数为2(n2+n+1),第三层节点个数为4(n2+n+1),第四层节点个数为2(n2+n+1),第五层节点个数为n。
进一步地,步骤5中,运用q学习获得的数据训练神经网络模型,通过训练好的模型进行d2d用户对功率分配的步骤包括:
步骤5.1、对训练数据进行归一化;
步骤5.2、将训练数据输入神经网络模型,根据前向传播获得预测值,通过误差反向传播更新节点参数,当误差小于门限值后停止训练;
步骤5.3、产生新的测试数据,将测试数据预处理后输入训练好的模型得到输出数据,对输出进行反归一化处理得到d2d用户对的功率分配。
本发明的一种基于q学习和神经网络的d2d通信功率控制算法具有以下优点:在保证蜂窝用户通信质量的前提下,能够有效提高蜂窝用户、d2d用户共存系统的吞吐量。
附图说明
图1为本发明的d2d通信上行链路共享系统模型示意图;
图2为本发明的定义q学习参数步骤流程示意图;
图3为本发明的q学习算法步骤流程示意图;
图4位本发明的神经网络算法步骤流程示意图;
图5为本发明的算法流程示意图。
具体实施方式
为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种基于q学习和神经网络的d2d通信功率控制算法做进一步详细的描述。
本发明实施例公开的一种基于q学习和神经网络的d2d通信功率控制算法,应用于单小区场景中。小区内有一个基站bs、m个蜂窝用户,记为c={c1,c2,…,cm}和n个d2d用户对,记为
因为d2d用户复用上行链路的频谱资源,此时系统中存在三种干扰,如图1所示:(1)蜂窝用户发射给基站的信号被d2d用户对接收端接收到,对d2d用户对产生干扰;(2)d2d用户对发送端发射给d2d用户对接收端的信号被基站接收到,对基站产生干扰;(3)d2d用户对发送端发射给d2d用户对接收端的信号被同小区内其他d2d用户对接收端接收到,对其他d2d用户对产生干扰。
本发明实施例的一种基于q学习和神经网络的d2d通信功率控制算法主要包含5个步骤:(1)计算用户信干噪比、吞吐量;(2)定义q学习参数;(3)运行q学习算法;(4)定义神经网络的输入、输出和结构;(5)训练神经网络,用训练好的模型实现功率分配。
首先,为蜂窝用户和d2d用户对随机分配频谱资源,利用距离信息计算蜂窝链路和d2d链路的信道增益,利用频谱分配信息计算共享同一频谱资源块的用户链路的信干噪比,根据香农公式计算用户吞吐量;
其次,根据d2d通信功率控制场景定义q学习中的智能体、动作、状态、奖励函数等参数;
然后,根据q学习算法更新q值表,实现d2d用户对的功率分配;
接着,定义神经网络的输入、输出和网络结构;
最后,运用q学习获得的数据训练神经网络模型,通过训练好的模型进行d2d用户对的功率分配。
如图5所示,本发明实施例公开的一种基于q学习和神经网络的d2d通信功率控制算法的实施步骤如下:
步骤1、计算用户信噪比、吞吐量:
小区内基站与蜂窝用户、基站与d2d用户对接收端、d2d用户对发送端和蜂窝用户之间以及d2d用户对之间的信道增益分别表示为:
蜂窝链路的信干噪比为:
其中,ci表示第i个蜂窝用户(i=1,2,…,m),dj表示第j个d2d用户对(j=1,2,…,n),r=1,2,…,k表示系统中频谱资源块的编号,m、n和k分别表示蜂窝用户、d2d用户对和频谱资源块的数量;
d2d链路的信干噪比为:
其中,
根据香农公式,系统中蜂窝用户的吞吐量为:
其中,w表示频谱带宽。系统中d2d用户的吞吐量为:
其中,
步骤2、定义q学习参数:
1)智能体:通信系统中的d2d用户对,一个d2d用户对即为一个智能体,系统中存在n个智能体;
2)动作a:为共享同一频谱资源块的每个d2d用户对选择一个合适的发射功率p∈{p1,p2,…,pl},其中,p1,p2,…,pl为可供选择的发射功率;
3)状态s:单状态,即学习过程中只有一个状态;
4)奖励函数r:特定频谱资源块上的条件吞吐量:
其中,τ0表示蜂窝链路信干噪比的门限值。上式表示当蜂窝链路的信干噪比高于门限值时,奖励函数为该频谱资源块上的总吞吐量,否则,奖励函数为-1,表示惩罚值。
具体操作详见图2的流程示意图。
步骤3、运行q学习算法:
步骤3.1、对于n个d2d用户对dj,j∈{1,2,…,n},初始化所有q值表的值为0;
步骤3.2、选择第r个频谱资源块;
步骤3.3、选择第r个频谱资源块上的第j个d2d用户对;
步骤3.4、基于当前q值表,根据ε-greedy策略选择一个动作a;
步骤3.5、执行动作a,计算奖励函数r;
步骤3.6、根据公式
步骤3.7、重复步骤3.4到步骤3.6直到q值表收敛;
步骤3.8、重复步骤3.3到步骤3.7直到同一频谱资源块上的d2d用户对均被考虑;
步骤3.9、重复步骤3.2到步骤3.8直到所有频谱资源块均被考虑。
具体操作见图3的流程示意图。
步骤4、定义神经网络的输入、输出和结构:
神经网络的输入数据为蜂窝用户、d2d用户对在小区中分布的距离信息,输出数据为同一频谱资源块中每一个d2d用户对的发射功率,假设共有n个d2d用户对共享同一个频谱资源块,则输入数据个数为n2+n+1,输出数据个数为n。
神经网络模型结构为一个含有5个全连接层的神经网络,每一层中使用relu函数作为激活函数;第一层节点个数为n2+n+1,第二层节点个数为2(n2+n+1),第三层节点个数为4(n2+n+1),第四层节点个数为2(n2+n+1),第五层节点个数为n。
步骤5、训练神经网络,用训练好的模型实现功率分配:
步骤5.1、对训练数据进行归一化;
步骤5.2、将训练数据输入神经网络模型,根据前向传播获得预测值,通过误差反向传播更新节点参数,当误差小于一定门限值后停止训练;
步骤5.3、随机产生新的测试数据,将测试数据预处理后输入训练好的模型得到输出数据,对输出进行反归一化处理得到d2d用户对的功率分配。
具体操作见图4的流程示意图。
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。