
基于usrp平台的强化学习跳频通信抗干实现方法
技术领域
1.本发明涉及强化学习跳频通信抗干实现方法,尤其涉及一种基于usrp平台的强化学习跳频通信抗干扰实现方法。
背景技术:2.跳频技术作为当前通信领域应用最广的通信抗干扰技术,其具有重要的研究意义。但是在目前的大多数跳频通信系统中,通信双方均是按照确定的跳频图案同步进行跳变,如果在通信过程中遇到压制式干扰或灵巧式干扰,系统无法及时跳频避开干扰频谱,那么己方通信就会被严重干扰,通信质量无法保证;同时,由于通信设备的不断增加,频谱环境变得更为复杂,通信频段也容易互相重叠,从这一方面来讲,常规跳频模式会严重限制跳频通信网容量。
3.随着认知无线电技术(cognitive radio,cr)的提出和发展,其特有的动态频谱接入能力,可以很好的应用在跳频系统中。认知无线电技术还可以和强化学习算法进行结合,利用cr的频谱感知能力扫描和感知周围的环境,然后强化学习算法根据感知信息进行学习来获取策略,以此作为跳频方案,可以实现智能化抗干扰的目的。同时,随着硬件水平的提高,软件无线电技术越来越成熟,在软件无线电平台上进行跳频通信算法研究,可以更加贴合真实环境,具有重要的现实意义。
技术实现要素:4.发明目的:本发明的目的是提供一种有效对抗部分频带阻塞干扰和点频干扰的基于usrp平台的强化学习跳频通信抗干实现方法。
5.技术方案:本发明的强化学习跳频通信抗干实现方法,usrp平台包括一个发射机、一个接收机、一个干扰机和q学习认知引擎,所述q学习认知引擎包括一个信息处理中心、一个q学习算法模块和若干感知节点;发射机发送数据给接收机,干扰机发送单音/多音干扰作为干扰源;发射机和接收机之间采用无线通信;q学习认知引擎与发射机和接收机之间、信息处理中心以及感知节点之间分别采用光纤进行连接;包括以下步骤:
6.s1,系统启动,检测系统各硬件模块功能是否正常,等待用户进行通信;
7.s2,用户开始准备通信,发射机等待发送信息,请求q学习认知引擎分配可用的频谱资源,同时感知节点开始周期性的收集周围环境的数据,并将数据包发送给信息处理中心
8.s3,信息处理中心对收到的数据进行处理,并更新可用/不可用频段频谱信息;
9.s4,根据信息处理中心反馈的频谱资源情况,得到干扰频段信息,然后更新状态-动作对的相应奖励值r;
10.s5,采用同步q学习算法开始在线训练学习,并生成相对应的q表;
11.s6,q学习认知引擎在收到发射机的服务请求后,分配可用的频段频谱资源给发射机;
12.s7,在进行通信的过程中,信息处理中心对当前使用的频谱资源进行判断,判断无线环境是否改变;如果未发生变化,用户继续根据当前q表进行跳频决策接收数据;如果发生变化,q学习认知引擎就需要重新训练,更新q表,此时,用户根据更新的q表进行新的跳频决策;
13.s8,用户通信完成,服务结束。
14.进一步,所述步骤s2中,采用双阈值能量检测算法来对干扰进行检测,多个感知节点周期性的检测所处频谱空间能量数据信息,信息处理中心将数据信息进行采样处理;
15.在采样处理完成后,对于同一频段上第j个感知节点的能量检测数据nj求均值,判断频谱空间是否可用的公式如下:
[0016][0017]
其中,h0是判断频谱空间可用的硬判决门限,h1是判断频谱空间不可用的硬判决门限,n为感知节点的数量,f代表判决结果;
[0018]
当f=0时,表示该频谱空间是可用的;
[0019]
当f=2时,表示该频谱空间是不可用的;
[0020]
当f=1时,表示该频谱空间的状态无法判断,需要进行二次判决。
[0021]
进一步,所述二次判决采用投票机制,统计所有nj《h0或nj》h1的数量:当nj《h0投票数量超过半数以上时,判决其为空闲资源;
[0022]
当nj》h1投票数量超过半数以上时,判决非空闲资源。
[0023]
进一步,所述步骤s5中,将频谱资源划分成相等的频谱子带,信息传输的工作频率所处的频谱子带为当前状态state;在用户通信的过程中,根据q表进行跳频决策,选择对应于当前状态下的最优频谱子带跳频为采取动作action;环境根据代理agent的动作反馈相应的奖励reward,通过训练和学习,将前状态state和采取动作action构成一张q表,则q值更新公式如下:
[0024][0025]
其中,α为学习率,表示旧q值将从新q值那里学到的新q占自身的比重;γ为折扣因子,表示i时刻代理agent处在状态s并且采取行动a获得的奖励值;q
′
(s
′
,a
′
)表示未来潜在的奖励;表示时刻为i时q表中状态为s行动为a时的q值。
[0026]
进一步,所述步骤s5中,所述同步q学习算法将标准q学习算法的off策略替换成on策略,在每个时隙,选择对应于最大q值的动作;
[0027]
在进入下一个状态后,利用cr其宽带频谱感知能力,在该时刻检测干扰机的频率,从而更新所有状态-动作对的所有列。
[0028]
进一步,所述步骤s7中,当信息处理中心发现当前工作频段即将被干扰,立即根据q表进行跳频决策,选择新的最优可用频谱子带,并通知发射机和接收机更改频谱资源。
[0029]
本发明与现有技术相比,其显著效果如下:
[0030]
1、本发明采用q学习认知引擎与环境进行交互,进而学习到干扰机的干扰策略,并做出相对应的决策,能进行自适应调整,主动避免干扰,降低被干扰的概率,减少跳频次数,
大大降低了系统开销;能生成一种自适应的智能跳频图案作为跳频决策,能有效预测干扰机的行为并主动做出规避,实现通信抗干扰的目的;和传统的通信抗干扰方式相比,本发明的跳频系统能有效对抗部分频带阻塞干扰和点频干扰;
[0031]
2、本发明的跳频通信系统的认知引擎训练周期短,决策迅速,能有效应对不同的干扰策略;采用同步q学习算法,能加快训练,在较短的学习周期后得到抗干扰决策策略;同时能在干扰机改变干扰策略的时候,能很快更新其抗干扰决策,保证用户的通信质量;
[0032]
3、本发明是在usrp rio软件无线电平台实现的,该平台是一个比较成熟的软件无线电平台,采用labview图形化编程软件来实现软件编程,相较于其他同类型设备,其操作简便,硬件处理能力更好,可调硬件参数更广且更精确。
附图说明
[0033]
图1本发明的测试系统的流程图;
[0034]
图2本发明的通信抗干扰系统模型图;
[0035]
图3本发明的系统物理部署图;
[0036]
图4本发明的感知节点功能简图;
[0037]
图5本发明的数据封装图;
[0038]
图6本发明的发射端功能框图;
[0039]
图7本发明的接收端功能框图;
[0040]
图8本发明的信息处理中心和认知引擎功能简图;
[0041]
图9本发明的单音/多音干扰功能简图;
[0042]
图10本发明的扫频干扰功能简图;
[0043]
图11为发射端的视频播放截图;
[0044]
图12为受到干扰接收端的视频播放截图;
[0045]
图13为受到干扰的星座图;
[0046]
图14为受到干扰的误码率示意图;
[0047]
图15为采用q学习认知引擎决策后的视频播放截图;
[0048]
图16为采用q学习认知引擎决策后的星座图;
[0049]
图17为采用q学习认知引擎决策后的误码率示意图;
[0050]
图18为验证不同算法在对抗多音干扰的性能对比图;
[0051]
图19为验证不同算法在对抗扫频干扰的性能对比图;
具体实施方式
[0052]
下面结合说明书附图和具体实施方式对本发明做进一步详细描述。
[0053]
本发明采取软件无线电平台usrp rio作为实验环境,研究应用强化学习算法解决真实环境下跳频通信问题,实现了基于强化学习的跳频通信抗干扰系统,通过测试证明强化学习跳频通信决策能够有效抵抗不同策略的干扰,同时可以提高频谱的利用率,有效保证系统用户的通信质量。
[0054]
本发明在上位机的labview上进行图形化编程,如图1所示,首先发射机端使用双阈值能量检测实现频谱感知,获取频谱状态信息;其次根据获得的频谱作为输入信息,更新
q学习的奖励表r,然后采用q学习算法进行迭代训练,得到更新的q表,继续监测频谱状态信息,在频谱状态发生改变后(即被干扰或被占用),根据上述步骤继续更新q表,否则不更新q表,保持原状态不变。当系统开始通信时,根据q表进行自适应跳频决策,选择最优频谱子带跳频通信,从而实现智能化主动避免干扰的效果,保障在使用通信服务的过程中不受干扰的影响,提高通信的稳定性,保证信息的可靠交付。
[0055]
本发明应用usrp rio软件无线电平台,来验证和测试基于强化学习的跳频通信抗干扰方法。具体实施包括如下:
[0056]
(一)信息处理和频谱判定
[0057]
本发明使用双阈值能量检测算法来对干扰进行检测,多个感知节点周期性的检测所处频谱空间能量数据信息,信息处理中心将数据信息进行采样处理,采样率为m(m大小根据系统性能确定)。在采样处理完成后,对于同一频段上第j个感知节点的能量检测数据nj求均值。判断频谱空间是否可用,有如下的硬判决公式:
[0058][0059]
其中,h0和h1为双阈值能量检测的两个阈值,h0是判断频谱空间可用的硬判决门限,h1是判断频谱空间不可用的硬判决门限,n为感知节点的数量,f代表判决结果。当判决结果f=0时,表示该频谱空间是可用的;当判决结果f=2时,表示该频谱空间是不可用的;当判决结果f=1时,表示该频谱空间的状态无法判断,需要进行二次判决。对于二次判决的方式,采用投票机制:统计所有nj《h0或nj》h1的数量,当nj《h0投票数量超过半数以上时,判决其为空闲资源;当nj》h1投票数量超过半数以上时,判决非空闲资源。若二次判决也无法得到结果的资源,在本轮决策中丢弃,等待下一轮新的决策发起时再次进行判决。
[0060]
(二)基于强化学习的抗干扰决策
[0061]
本发明使用机器学习中的q-learning算法来实现跳频决策,实现通信抗干扰策略。将频谱资源划分成相等的频谱子带,信息传输的工作频率所处的频谱子带即为当前状态state,在用户通信的过程中根据q表进行跳频决策,选择对应于当前状态下的最优频谱子带跳频,选择频谱子带的行为即为采取动作action,环境根据代理agent的动作反馈相应的奖励reward,通过训练和学习,将state和action构成一张q表。有如下的q值更新公式:
[0062][0063]
其中,α为学习率,表示旧q值将从新q值那里学到的新q占自身的比重。γ为折扣因子,定义了未来奖励的重要性。表示i时刻代理agent处在状态s并且采取行动a获得的奖励值。q
′
(s
′
,a
′
)表示未来潜在的奖励。表示时刻为i时q表中状态为s行动为a时的q值。
[0064]
但是在利用传统q学习算法来学习干扰策略,从而主动避免信道被干扰的过程中,最大的问题就在于学习干扰机的行为需要花费大量的训练时间,需要多次迭代,才能形成最优的抗干扰策略。此外,在q学习算法收敛前,cr(cognitive radio)必须尝试随机动作,不适合在操作通信链路中进行学习,因为cr可能丢失大量的传输包。为了解决这些问题,在usrp rio软件无线电平台上的上位机labview软件编程端实现机器学习q-learning算法,
本发明应用了改进的q学习算法即同步q学习算法(opsq-learning)。
[0065]
同步q学习算法主要有以下特点:(1)将标准q学习算法的off策略替换成on策略,在每个时隙,cr不再尝试随机动作,而是遵循一个贪婪策略,选择对应于最大q值的动作。(2)利用cr的宽带频谱感知能力,每次对n个q值进行同步更新,而不是只对q矩阵中的一个单元进行异步更新,也就是说,在进入下一个状态后,cr利用其宽带频谱感知能力,在该时刻检测干扰机的频率,从而更新所有状态-动作对(更新q矩阵行q(s,:)的所有列)。
[0066]
实现步骤如下:
[0067]
步骤1:感知节点开始周期性的收集周围环境的数据,并将数据包发送给信息处理中心。
[0068]
步骤2:信息处理中心对收到的数据进行处理,并更新可用/不可用频段频谱信息。
[0069]
步骤3:根据信息处理中心反馈的频谱资源情况,得到干扰频段信息,然后更新状态-动作对的相应奖励值r。
[0070]
步骤4:q学习算法开始在线训练学习,并生成相对应的q表。
[0071]
步骤5:信息处理中心继续对当前使用的频谱资源进行判断,判断无线环境是否改变。如果没有发生变化,则不更新q表,否则q学习认知引擎就需要重新训练,更新q表,以便做出新的抗干扰决策。
[0072]
步骤6:q学习认知引擎在收到发射机的服务请求后,分配可用的频段频谱资源给发射机,以便于发射机和接收机之间的视频通信服务。
[0073]
步骤7:在进行视频通信的过程中,对当前使用的频谱资源进行判断,看无线环境是否改变。如果没有发生变化,用户继续根据当前q表进行跳频决策接收视频数据,否则q学习认知引擎就需要重新训练,更新q表,以便做出新的抗干扰决策。此时,用户需要根据更新的q表进行新的跳频决策以保证通信质量。
[0074]
步骤8:用户通信完成,服务结束。
[0075]
本发明实现了零干扰、低误码的通信抗干扰决策。通过物理层认知无线电技术实现基于能量检测的干扰认知,周期性监测频谱空间的状态,并作为输入信息送到q学习算法模块,q学习算法进行在线训练学习,得到q表矩阵。通过上述过程作为q学习认知引擎,保证用户在通信的过程中可以根据q学习认知引擎学习得到的q表选择最优的跳频决策方案,进行跳频通信,主动避免传输信道被干扰。通过以上手段,确保了用户在通信的过程中,其信息传输信道都是零干扰和低误码的。
[0076]
实验验证如下:
[0077]
一、实验平台
[0078]
在软件无线电中,除了基本的变频、a/d、d/a转换以及射频驱动由硬件平台usrp rio2943r实现,其余的功能均是以软件的形式设计完成。整个通信过程除去基本的收发功能外,几乎所有的扩展功能都是需要自行设计和编程。
[0079]
ni usrp rio 2943r的一系列物理参数如下:可调频率范围是1.2ghz~6ghz,实时带宽为40mhz,pciex4总线速度800mb/s,kintex7 fpga芯片。
[0080]
实验的软件部分是使用labview2015进行设计和调试程序。在软件本身提供的射频收发驱动的基础上,扩展一系列本发明需求的功能,从而实现整个发明。
[0081]
二、实验环境设置
[0082]
如图2所示为实验在测试系统中具体部署。在实验环境中,设置了一个发射机、一个接收机、一个干扰机、一个信息处理中心、一个q学习算法模块和若干感知节点。在实验过程中,发射机发送视频数据给接收机,干扰机发送单音/多音干扰作为干扰源。
[0083]
发射机和接收机之间的通信方式为无线通信;q学习认知引擎与发射机和接收机之间的通信方式为有线通信,使用光纤进行连接;信息处理中心以及感知节点之间同样使用光纤进行连接。通过这样的连接方式,可以确保系统所有通信的可靠性。
[0084]
实验的程序主要分为三个部分:用户(发射机和接收机)、干扰机、q学习认知引擎(包括q学习算法模块、信息处理中心以及感知节点),如图3所示。
[0085]
发射机和接收机实验设置:
[0086]
发射机和接收机在实验中负责数据通信,进行视频传输并显示传输结果,同时对于数据进行统计,反馈服务质量。一台usrp rio设备上可以配置多个天线,并实现siso(single input single output)自发自收,同时考虑到实验室设备有限,所以在同一台usrp rio设备上设置发射机和接收机,同时配置两个单天线作为发射和接收,虽然在物理上位于同一台设备上,但两者之间的数据通信通过无线信道完成,可以有效地模拟在无线环境中传输数据的功能。以发射机和接收机为例,如图6为发射端功能框图,如图7为接收机功能框图。
[0087]
如图6可知,在发射端,从信源开始,经过信源编码、信道编码、qam调制、插入保护间隔uw、组帧等操作后,通过rf发送模块发送到无线信道。为了做到实时修改发射端的射频参数,比如中心频率、本振、增益等,在rf发送模块增加一个外扩接口,以便实现修改发射参数模块的调用。本实验的测试系统传输的是视频数据,所以信源处为vlc软件处理后的数据包。
[0088]
如图7可知,在接收端(即udp接收模块),从接收天线开始接收无线信息,通过rf接收模块后,经过帧同步、帧解析、信道均衡、qam调制、信道译码、信源译码后,到达信宿。同样,为了做到实时修改接收端的射频参数,在rf接收模块加一个外扩接口。信宿处同样是vlc软件,在得到数据后,经过内部解码,对视频进行播放的同时可以观察到视频的播放质量。
[0089]
干扰机实验设置:
[0090]
干扰机主要实现对无线信道的干扰,阻止无线空间中的部分通信。本发明实验借助一台usrp rio设备实现多种干扰方式,比如单音干扰、多音干扰、扫频干扰以及智能干扰等。
[0091]
如图9,实现单音或多音干扰,主要通过单个干扰源或者多个干扰源经过调制之后,通过射频将干扰数据发送到无线信道,干扰单个或多个信道。如图10,实现在2.2ghz-2.8ghz之间的扫频干扰,干扰源经过调制,通过rf发送模块将干扰数据发送到无线信道,同时为了实现扫频干扰的功能,加了一个扫频干扰功能模块,通过对rf发送模块的外扩接口的调用,来实时修改发送的射频参数——发射中心频率,在不同的时隙干扰到不同的无线信道。
[0092]
感知节点实验设置:
[0093]
感知节点主要实现对频谱空间环境的检测,但因为usrp平台在同一时刻只能感知较小带宽内的数据,为了达到对较大频谱空间的检测,在本系统中加了一个扫频模块,实现
在设定带宽范围内,对各段频谱进行扫频检测,获取各频段频谱数据。为了简化感知节点的部署难度,将检测到的频谱数据发送到数据处理节点进行处理。如图4为感知节点的程序框图,在输入设置的射频收发数据参数后,启动程序,开始进行感知数据,然后将感知到的数据按照图5的数据格式进行封装,再通过udp的方式传送给信息处理中心。本发明实验选取2.2ghz-2.8ghz之间的频段进行测试,借助扫频功能模块,使得感知流程在此频谱范围内无间隙的依次执行。当此频谱范围的扫描完成之后,就重新进行此频谱的下一次感知任务。为了实现认知无线电的宽带频谱感知能力,借助多台usrp设备,同时进行扫频检测,可以加大扫频的频谱,也降低了扫频花费的时间,更快掌握频谱空间信息。
[0094]
信息处理中心和q学习算法模块实验设置:
[0095]
对于信息处理中心,主要完成对数据的处理,反馈信道质量,用来更新奖励。主要根据环境的实时状态判断干扰行为,算法对干扰行为进行训练和学习,更新q表。如图8,udp接收模块需要接收两部分数据,分别是发射机发来的数据和感知节点发来的数据。进行udp通信时,根据使用udp端口号的不同,可以很容易辨识不同的数据源。经过认知引擎训练和学习,更新q表,然后发射机和接收机可以根据q表进行跳频决策通信,在本发明实验平台上是通过udp发送模块通知发射机和接收机更改频谱资源。当收到感知节点发来的数据后,进入数据处理模块,对数据进行采样处理,然后判断各信道状态,更新各信道可用状态,更新奖励表,然后q学习算法经过进行训练和学习,更新q表。一旦发现当前工作频段即将被干扰,立即根据q表进行跳频决策,选择新的最优可用频谱子带,通过udp发送模块通知发射机和接收机更改频谱资源。
[0096]
三、实验流程
[0097]
步骤1:配置预设参数。在启动所有程序前,需要对参数进行一个预配置。发射端的射频参数情况设置如下:射频天线tx1,初始中心频率2.4ghz,本振频率-1hz,发射增益0dbm。接收端的射频参数设置如下:射频天线rx1,初始中心频率2.4ghz,本振频率-1hz,接收增益0dbm。干扰机的射频参数设置情况如下:射频天线tx1,初始中心频率2.4ghz,本振频率-1hz,接收增益0dbm。感知节点的初始射频预设参数如下,射频天线rx1,初始中心频率2.2ghz,本振频率-1hz,发射增益0dbm。
[0098]
步骤2:运行感知节点、信息处理中心和q学习算法程序,通过感知节点对频谱空间进行扫频检测数据,然后将数据发送给信息处理中心进行处理,更新信道可用状态,输入到q学习算法模块用于奖励的更新。此时q学习认知引擎通过进行训练和学习,可以得到一个q表即跳频决策策略。
[0099]
步骤3:运行发射端和接收端程序,根据q学习认知引擎选择一个可用信道开始数据通信,打开vlc脚本文件,开始生成视频源数据以及播放接收到的视频源数据。
[0100]
步骤4:运行干扰机程序,对信道进行干扰,测试系统的抗干扰方案是否可以发挥有效作用,且验证结果是否符合预期。当干扰到达传输数据所在的频段时,会极大影响传输视频质量,如果没有抗干扰手段,那么此时发送和接收的视频图像就如图11和图12所示,从图12可以看到视频播放质量很差,有明显的丢帧和时延。图13为接收端的星座图,可以看到星座图此时是紊乱的。图14为误码率图,可以看到误码率很高。
[0101]
步骤5:环境发生改变,q学习认知引擎继续进行训练和学习,更新q表。此时用户可以根据当前所处状态和q表重新进行跳频决策,通过udp发送给接收端和发射端,重新分配
频谱资源,选择跳频通信。跳频调整过后,此时发射和接收的中心频率调整为2.3ghz,符合预期结果。图15为应用强化学习算法进行跳频决策的视频播放截图,可以看到视频传输质量很好。图16为此时接收端的星座图,可见星座图清晰。图17为平均误码率图,在采用强化学习进行跳频决策的传输过程中,信道基本不会被干扰,信道误码率为零。
[0102]
图18和图19分别是各强化学习算法在对抗多音干扰和扫频干扰的性能表现,可以得出,在应对多音以及扫频干扰器时,传统的q学习算法、sarsa算法均在大约一百次迭代训练后开始收敛,如果在软件无线电平台上应用这些技术,那么在实时通信的过程中就会造成数百个数据包的丢失。而本发明所使用的opsq-learning算法的收敛速度比其他算法都快,它在应对几种干扰器时仅需15-20次训练就可以给出合适的抗干扰防御策略。
[0103]
本发明通过软件无线电平台usrp rio上实现的改进同步q学习算法,利用认知无线电的宽带频谱感知能力,加快训练学习进程,可以针对当前状态进行n个q值的同步更新,相比于每次只异步更新单个q值,可以加快算法收敛,更快得到最优抗干扰决策策略。经过实验系统测试,发现应用的改进q学习算法其训练周期仅为7个迭代循环,相比于标准q学习在数百次集后收敛,更有利于实时通信。本发明应用的改进q学习算法在学习期间仅会丢失少量数据包,其丢包率是可以忍受的。