基于串行干扰消除的分布式拓扑控制方法与流程

文档序号:11882432阅读:328来源:国知局
基于串行干扰消除的分布式拓扑控制方法与流程

本发明属于无线通信领域,特别涉及一种分布式拓扑控制方法,可用于认知Ad Hoc网络。



背景技术:

认知Ad Hoc网络是一种充满发展潜力的无线网络通信系统,该网络除了具有传统Ad Hoc网络的自组织、自配置、自适应能力之外,还具有对频谱资源的感知、机会接入以及动态分配的能力,能够灵活地用于各种无固定通信基础设施支撑的环境,提高现有频带资源的利用率。

在认知Ad Hoc网络中,用户分为两类,一类是主用户,另一类是次用户,其中主用户享有信道的优先使用权。当主用户使用某一信道时,干扰到主用户数据传输的次用户必须切换到其他可用的信道来进行数据传输,但这样的切换降低了次用户网络的连通性,严重时会导致网络的分割,从而发生分组传输的时延和中断。因此,需要优化认知Ad Hoc网络的拓扑结构来保证网络的连通性。为了减小主用户对次用户网络连通性的影响,研究者已经提出了一些拓扑控制算法,如XiJun Wang等作者在IEEE JASC 2014上发表的文章“Achieving Bi-Channel-Connectivity with Topology Control in Cognitive Radio Network”。XiJun Wang等的算法可以保证次用户网络的连通,并且能够消除次用户之间的干扰。但是这种方法缺乏与先进干扰管理技术相结合的手段,消耗了过多的信道资源,使得网络的频谱利用率很难得到进一步的提升。



技术实现要素:

本发明的目的在于针对上述现有技术的问题,提出一种基于串行干扰消除的分布式拓扑控制方法,用于保证次用户网络的连通性,消除次用户之间的干扰,减少信道的使用个数,提升网络的频谱利用率。

为实现上述目的,本发明的技术方案包括如下:

(1)初始化网络为k点连通,k≥2,网络中每个节点u分别获得一跳和两跳邻接点的序列号和位置信息;

(2)根据序列号和位置信息建立局部两跳拓扑子图Gu,并计算Gu中任意两个有连接关系的节点x,y之间的链路能耗权重wp(x,y)和链路共存权重wc(x,y);

(3)判断上述局部两跳拓扑子图Gu中任意两个有连接关系的节点x,y之间的链路是否能与主用户链路在同一信道上进行数据传输:若是,则将该链路放入链路共存集合CLu,即CLu=CLu∪(x,y),否则,则不放入链路共存集合CLu

(4)网络中每个节点u构建局部连通子图Su

(4a)初始化每个节点局部连通子图Su的节点集合V(Su)为局部两跳拓扑子图Gu中的所有节点,初始化每个节点局部连通子图Su的边集合E(Su)为空集;

(4b)基于上述局部两跳拓扑子图Gu,每个节点u根据链路能耗权重wp(x,y),构建以u为根,遍及局部两跳拓扑子图中Gu所有节点的最短路径树Tu=(V(Tu),E(Tu)),并将E(Tu)记录到局部连通子图Su的边集合E(Su)中,即其中V(Tu)=V(Gu)为最短路径树Tu的节点集合,E(Tu)为Tu的边集合;

(5)根据局部两跳拓扑子图Gu,判断节点u的出边所对应的链路中是否存在两条或者两条以上的链路属于链路共存集合CLu:若是,则执行步骤(6),否则,执行步骤(7);

(6)网络中的每个节点构建第一冲突子图LSu,并根据LSu构建第一局部生成子图Tu′:

(6a)网络中的每个节点u根据最短路径树Tu找到与自己冲突的节点,构成冲突节点集CNu,并初始化第一冲突子图LSu=(V(LSu),E(LSu)),其中LSu的边集合为E(LSu)={(a,b)|a,b∈u∪CNu,(a,b)∈E(Gu)},LSu的节点集合为V(LSu)=u∪CNu

(6b)每个节点u判断各自的第一冲突子图LSu是否连通:若是,则节点u根据链路共存权重wc(x,y),在LSu上构建局部第一局部生成子图Tu′,否则,节点u用斯坦纳生成树法在Gu上构建第一局部生成子图Tu′;

(6c)节点u将步骤(6b)中生成的第一局部生成子图Tu′的边集合E(Tu′)记录到局部连通子图Su的边集合E(Su)中,即将Tu′的节点集合V(Tu′)记录到局部连通子图Su的节点集合V(Su)中,即将Tu′的节点集合V(Tu′)记录到逻辑冲突邻居集LCNu中,即节点u通过洪泛的方式把LCNu和E(Su)的拓扑信息发送给Su中的所有节点,执行步骤(8);

(7)网络中的每个节点u构建第二冲突子图CSu,并根据CSu构建第二局部生成子图Tu″:

(7a)网络中的每个节点u根据最短路径树Tu找到与自己冲突的节点,构成冲突节点集CNu,并初始化第二冲突子图CSu=(V(CSu),E(CSu)),其中CSu的节点集合为V(CSu)=CNu,边集合为E(CSu)={(c,d)|c,d∈CNu,(c,d)∈E(Gu)};

(7b)每个节点u检测各自的第二冲突子图CSu是否连通:若是,节点u根据链路共存权重wc(x,y)在CSu上构建第二局部生成子图Tu″,否则,节点u用斯坦纳生成树法在Gu\u上构建第二局部生成子图Tu″;

(7c)节点u将步骤(7b)中生成的第二局部生成子图Tu″的边集合E(Tu″)记录到局部连通子图Su的边集合E(Su)中,即将Tu″的节点集合V(Tu″)记录到局部连通子图Su的节点集合V(Su)中,即将Tu″的节点集合V(Tu″)记录到逻辑冲突邻居集LCNu中,即节点u通过洪泛的方式把LCNu和E(Su)的拓扑信息发送给Su中的所有节点,执行步骤(8);

(8)每个节点u根据其他节点发来的拓扑信息更新自己的局部连通子图Su和逻辑冲突邻居集LCNu,将局部连通子图Su上的一跳邻节点v作为逻辑邻节点,构成逻辑邻节点集LNu={v∈V(Su)|(u,v)∈E(Su)};

(9)网络中每个节点u确定自己的发射功率,即将发射功率调整为能够覆盖到所有逻辑邻节点集所需要的功率:

(10)根据网络中的所有节点构成的局部连通子图Su生成最终的全网拓扑G=(V(G),E(G)),其中V(G)为网络中所有节点,E(G)每个节点与自己的逻辑邻节点间的链路,即E(G)={(u,v)|u∈V(G),v∈LNu};

(11)使用贪婪染色算法对已构建的最终全网拓扑G中的每个节点u进行信道分配。

本发明具有如下优点:

1)本发明联合串行干扰消除,功率控制和信道分配,消除了主用户的干扰,提高了次用户数据传输的成功概率;通过功率控制使得次用户能够和主用户同时进行数据传输和接收,从而在保证次用户网络的连通性的同时,提升了频谱利用率;通过信道分配给相互干扰的次用户分配不同的信道,从而消除了次用户之间的干扰。

2)本发明通过功率控制构建适合信道分配的拓扑结构,避免了高复杂度的连通性判断;

3)本发明通过联合认知网络的次用户和主用户在同一信道上进行数据传输,进一步提高了频率利用率,在保证认知网络连通性的前提下,进一步减少了认知网络所需的信道数目,提高了网络整体的鲁棒性。

附图说明

图1为本发明的实现总流程图;

图2为本发明中构建局部生成子图的子流程图;

图3为本发明中节点u拓扑构建的示例图;

图4为用本发明和现有的DBCC得到的平均信道数的仿真对比图;

图5为用本发明和现有的DBCC得到的平均独立路径数的仿真对比图。

具体实施方式

本发明使用网络场景包括一对主用户和一个认知Ad Hoc网络以及K个可用信道,其中,主用户包括一个主用户发送端和一个主用户接收端,所有的次用户受到同一对主用户的影响,主用户可使用K个信道中的任意一个信道,在主用户占用了某一信道时,次用户只有在不干扰主用户传输的情况下才能使用此信道进行数据传输,主用户可以通过广播获得所有次用户的地理位置,主用户发送功率PPU在整个拓扑控制过程中保持不变。

认知Ad Hoc网络,由n个分布在二维平面区域内的节点组成,每个节点代表一个次用户,且具有唯一的序列号,并可以通过GPS定位技术来获取位置信息,每个节点可以在K个信道中任意一个信道中发送数据,同时在其他所有信道上侦听数据,除此之外每个节点在物理结构、初始设置、功能特性、参数指标等方面不存在任何差异,在该网络中,任意节点间的无线信道为加性高斯白噪声信道,节点通过全向天线与周围节点通信,最大发射功率均为Pmax,任意节点u的发射功率Pu可以在最小和最大之间连续调节,即0≤Pu≤Pmax,传输半径r为节点发射功率的传输距离,任意两个节点之间存在无线链路的充要条件是它们之间的欧式距离小于或等于节点的传输半径r。

参照图1,本发明的实现步骤如下:

步骤1,认知网络中每个节点u发送自己的第一节点信息HELLO-1包,并接收一跳邻节点发送的第一节点信息HELLO-1包。

(1a)网络中的每个节点u以最大发射功率Pmax向u的一跳邻节点广播一次第一节点信息HELLO-1包,该HELLO-1包中含有节点u的序列号和节点u的位置信息;

(1b)网络中的每个节点u接收一跳邻节点以最大发射功率Pmax广播的HELLO-1包,并根据收到的HELLO-1包,统计得到自己的一跳邻节点集DNu

步骤2,网络中每个节点u根据上第一节点信息HELLO-1包,发送自己的第二节点信息HELLO-2包,并接收一跳邻节点发送的HELLO-2包。

(2a)网络中的每个节点u接收所有一跳邻节点发送的第一节点信息HELLO-1包,并以最大发射功率Pmax向自己的一跳邻节点广播一次第二节点信息HELLO-2包,该HELLO-2包含有节点u的所有一跳邻节点的序列号和位置信息;

(2b)网络中的每个节点u接收一跳邻节点以最大发射功率Pmax广播的第二节点信息HELLO-2包,并根据收到的HELLO-1包,统计得到自己的二跳邻节点集ENu

步骤3,网络中每个节点u构建自己的局部两跳拓扑子图Gu并计算Gu中任意两个有连接关系的节点x,y之间的链路能耗权重wp(x,y)和链路共存权重wc(x,y)。

(3a)网络中的每个节点u根据接收到的一跳邻节点发送的HELLO-1和HELLO-2包信息,获取并记录自己的两跳邻节点v2的序列号和位置信息,其中v2∈ENu,同时将ENu的所有节点赋予给局部两跳拓扑子图Gu的节点集合V(Gu),即

(3b)每个节点u根据自己的位置信息以及两跳邻节点的位置信息,计算任意两个节点x,y之间直接传输所需要的最小发射功率其中,x,y∈V(Gu),β为接收信噪比门限值,其根据接收机的灵敏度和误码率要求确定;α为路径损耗因子,dx,y是节点x,y之间的欧式距离;

(3c)若Px,y小于节点u的最大发射功率Pmax,则确定节点x,y之间存在连接关系,否则,节点x,y之间不存在连接关系;

(3d)每个节点u根据两跳邻节点之间的连接关系,建立局部两跳拓扑子图Gu=(V(Gu),E(Gu)),其中局部两跳拓扑子图Gu的节点集合为V(Gu)=ENu∪{u},Gu的边集合为其中是节点之间的欧式距离;

(3e)局部两跳拓扑子图Gu中任意两个有连接关系的节点x,y之间的链路能耗权重wp(x,y),按照下式计算:

wp(x,y)=Px,y

其中,x,y∈V(Gu),Px,y为任意两个有连接关系的节点x,y之间直接传输所需要的最小发送功率,按照下式计算:

<mrow> <msub> <mi>P</mi> <mrow> <mi>x</mi> <mo>,</mo> <mi>y</mi> </mrow> </msub> <mo>=</mo> <msubsup> <mi>&beta;d</mi> <mrow> <mi>x</mi> <mo>,</mo> <mi>y</mi> </mrow> <mi>&alpha;</mi> </msubsup> <mo>,</mo> </mrow>

其中,β为接收信噪比门限值,其根据接收机的灵敏度和误码率要求确定;α为路径损耗因子,dx,y是节点x,y之间的欧式距离;

(3f)局部两跳拓扑子图Gu中任意两个有连接关系的节点x,y之间的链路共存权重wc(x,y),按照下式计算:

<mrow> <msub> <mi>w</mi> <mi>c</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>d</mi> <mrow> <mi>x</mi> <mo>,</mo> <mi>y</mi> </mrow> </msub> <msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>/</mo> <msub> <mi>R</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> <mo>)</mo> </mrow> <msub> <mi>&epsiv;</mi> <mrow> <mi>x</mi> <mo>,</mo> <mi>y</mi> </mrow> </msub> </msup> <mo>,</mo> </mrow>

其中,x,y∈Gu,dx,y为节点x,y间的欧式距离,Rmax为节点的最大传输半径,εx,y为链路共存因子,当链路(x,y)属于链路共存集合CLu时,εx,y=1,否则,εx,y=0。

步骤4,判断上述局部两跳拓扑子图Gu中任意两个有连接关系的节点x,y之间的链路是否能与主用户链路在同一信道上进行数据传输。

(4a)每个节点u对所有局部两跳拓扑子图Gu中的节点按度的大小进行降序排序,其中节点的度为该节点的出边数目;

(4b)依照节点度的次序选择Gu中的节点x∈V(Gu),判断节点x在发送数据时是否会对主用户产生干扰,判断条件为:

<mrow> <msub> <mi>d</mi> <mrow> <mi>x</mi> <mo>,</mo> <msub> <mi>PU</mi> <mi>r</mi> </msub> </mrow> </msub> <mo>&gt;</mo> <msub> <mi>d</mi> <mrow> <msub> <mi>PU</mi> <mi>t</mi> </msub> <mo>,</mo> <msub> <mi>PU</mi> <mi>r</mi> </msub> </mrow> </msub> <msup> <mrow> <mo>(</mo> <msub> <mi>P</mi> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> <mo>/</mo> <msub> <mi>P</mi> <mrow> <mi>P</mi> <mi>U</mi> </mrow> </msub> <mo>)</mo> </mrow> <mrow> <mn>1</mn> <mo>/</mo> <mi>&alpha;</mi> </mrow> </msup> <mo>,</mo> </mrow>

若条件成立,则节点x在发送数据时不会对主用户产生干扰,执行步骤(4c),否则,按节点度的次序对下一个节点执行步骤(4b),直到V(Gu)中所有节点判断完毕,其中,为节点x与主用户接收端PUr的欧式距离,为主用户发送端PUt与主用户接收端PUr的欧式距离,PPU为主用户的发射功率;

(4c)根据局部两跳拓扑子图Gu找出节点x的所有一跳邻居节点,用这些邻节点构成一跳邻节点集DNx,对于该一跳邻居节点集DNx中所有的节点y∈DNx,按度的大小进行降序排序,并依照该度的次序判断该一跳邻居节点集DNx中哪些节点能够在主用户存在的情况下,成功接收来自节点x的数据,判断条件为:

当主用户的干扰强度小于节点y的接收灵敏度时,判断条件为:

主用户的干扰强度强到满足串扰干扰消除条件时,判断条件为:

若上述两个判断条件中有一个成立,则链路(x,y)能与主用户链路在同一信道进行数据传输,并将该链路放入链路共存集合CLu,即CLu=CLu∪(x,y);否则,则不放入链路共存集合CLu,并按照节点x的所有一跳邻居节点集DNx的度的顺序对下一个一跳邻居节点进行判断,直到节点x的所有一跳邻居节点全部执行完毕,为节点y与主用户发送端PUt的欧式距离。

步骤5,网络中每个节点u构建局部生成子图Su=(V(Su),E(Su)),并确定自己的逻辑邻节点。

参照图2,本步骤的具体实现如下:

(5a)初始化每个节点局部连通子图Su的节点集合V(Su)为局部两跳拓扑子图Gu中的所有节点,初始化每个节点局部连通子图Su的边集合E(Su)为空集;

(5b)基于上述局部两跳拓扑子图Gu,每个节点u根据链路能耗权重wp(x,y),通过使用Dijkstra算法或Bellman-Ford算法,构建以u为根,遍及局部两跳拓扑子图中Gu所有节点的最短路径树Tu=(V(Tu),E(Tu)),并将E(Tu)记录到局部连通子图Su的边集合E(Su)中,即其中V(Tu)=V(Gu)为最短路径树Tu的节点集合,E(Tu)为Tu的边集合。

步骤6,根据局部两跳拓扑子图Gu,判断节点u的出边所对应的链路中是否存在两条或者两条以上的链路属于链路共存集合CLu:若是,则执行步骤7,否则,执行步骤8。

步骤7,网络中的每个节点构建第一冲突子图LSu,并根据LSu构建第一局部生成子图Tu′。

(7a)网络中的每个节点u根据最短路径树Tu找到与自己冲突的节点,构成冲突节点集CNu,并初始化第一冲突子图LSu=(V(LSu),E(LSu)),其中LSu的边集合为E(LSu)={(a,b)|a,b∈u∪CNu,(a,b)∈E(Gu)},LSu的节点集合为V(LSu)=u∪CNu

(7b)每个节点u判断各自的第一冲突子图LSu是否连通:若是,则节点u根据链路共存权重wc(x,y),在LSu上构建局部第一局部生成子图Tu′,否则,节点u用斯坦纳生成树法在Gu上构建第一局部生成子图Tu′;

(7c)节点u将步骤(7b)中生成的第一局部生成子图Tu′的边集合E(Tu′)记录到局部连通子图Su的边集合E(Su)中,即将Tu′的节点集合V(Tu′)记录到局部连通子图Su的节点集合V(Su)中,即将Tu′的节点集合V(Tu′)记录到逻辑冲突邻居集LCNu中,即节点u通过洪泛的方式把LCNu和E(Su)的拓扑信息发送给Su中的所有节点,执行步骤(9)。

步骤8,网络中的每个节点u构建第二冲突子图CSu,并根据CSu构建第二局部生成子图Tu″。

(8a)网络中的每个节点u根据最短路径树Tu找到与自己冲突的节点,构成冲突节点集CNu,并初始化第二冲突子图CSu=(V(CSu),E(CSu)),其中CSu的节点集合为V(CSu)=CNu,边集合为E(CSu)={(c,d)|c,d∈CNu,(c,d)∈E(Gu)};

(8b)每个节点u检测各自的第二冲突子图CSu是否连通:若是,节点u根据链路共存权重wc(x,y)在CSu上构建第二局部生成子图Tu″,否则,节点u用斯坦纳生成树法在Gu\u上构建第二局部生成子图Tu″;

(8c)节点u将步骤(8b)中生成的第二局部生成子图Tu″的边集合E(Tu″)记录到局部连通子图Su的边集合E(Su)中,即将Tu″的节点集合V(Tu″)记录到局部连通子图Su的节点集合V(Su)中,即将Tu″的节点集合V(Tu″)记录到逻辑冲突邻居集LCNu中,即节点u通过洪泛的方式把LCNu和E(Su)的拓扑信息发送给Su中的所有节点,执行步骤(9)。

通过步骤6-步骤8,得到具体的局部连通子图Su的结果如图3所示,其中,图3(a)表示节点u通过互换第一节点信息HELLO-1包和第二节点信息HELLO-2包构建的局部两跳拓扑子图Gu;图3(b)表示节点u利用链路能耗权重wp(x,y)构建的最短路径树Tu;图3(c)表示节点u构建的第一冲突子图LSu;图3(d)表示节点u构建的第二冲突子图CSu;图3(e)表示节点u在LSu上构建的第一生成子图Tu′;图3(f)表示节点u在CSu上构建的第二生成子图Tu″;图3(g)表示节点u根据第一生成子图Tu′最终构建的生成局部连通子图Su;图3(h)表示节点u根据第二生成子图Tu″最终构建的局部连通子图Su

其中上述步骤(7b)和(8b)中所述Dijkstra算法和斯坦纳生成树法参照Xinjun Wang等作者2014年在IEEE JASC上发表的文章“Achieving Bi-Channel-Connectivity with Topology Control in Cognitive Radio Network”。

步骤9,每个节点u根据其他节点发来的拓扑信息更新自己的局部连通子图Su和逻辑冲突邻居集LCNu,将局部连通子图Su上的一跳邻节点v作为逻辑邻节点,构成逻辑邻节点集LNu={v∈V(Su)|(u,v)∈E(Su)}。

步骤10,网络中每个节点u确定自己的发射功率,即将发射功率调整为能够覆盖到所有逻辑邻节点所需要的功率:其中u的所有逻辑邻节点所需要的功率,是指u的所有逻辑邻节点的发射功率的最大值,pu,v表示u的逻辑邻节点v的发射功率。

步骤11,将网络中的所有节点构成的局部连通子图Su组合起来构成最终的全网拓扑G=(V(G),E(G)),其中V(G)为网络中所有节点,E(G)每个节点与自己的逻辑邻节点间的链路,即E(G)={(u,v)|u∈V(G),v∈LNu}。

步骤12,根据上述形成最终的全网拓扑G,对网络中的每个节点u进行信道分配。

(12a)节点u用最大发送功率Pmax在公共控制信道上广播请求分配信道包RAC,其他节点在收到这个包时需要再次中转该包,直到逻辑冲突邻居集LCNu中的所有节点都接收到RAC包为止;

(12b)逻辑冲突邻居集LCNu中的节点在收到RAC包后,查看自己已经分配的信道,并回馈信道分配包AC给节点u,其中信道分配包AC中包含了该节点已经分配的信道,如果该节点还未分配信道就将包AC记为空包;

(12c)节点u收集所有LCNu中的节点回馈的AC包,并从还未被占用的信道中选择主用户占用概率最小的信道,作为自己的可用信道;

(12d)每个节点独立执行上述过程,直到所有节点都分配完信道为止。

上述步骤1-步骤12中,节点u表示网络中任意节点,链路(x,y)表示网络中节点x,y形成的边。

本发明的效果可通过仿真进一步说明:

(1)仿真条件

在仿真场景中,网络中所有节点随机均匀分布在一个1000×1000m2的二维平面区域中,接收信噪比SNR的门限值β设为-80dBm,路径损耗因子α取值为4,网络中所有节点采用相同的最大发射功率,其中最大发射功率Pmax=256mW,对应的最大传输半径Rmax=400m。

(2)仿真内容和结果

仿真1,用本发明方法与现有DBCC算法对所平均所需信道数进行仿真对比,结果如图4所示:

从图4可见,随着网络中次用户节点数的增多,本发明在三种不同主用户传输功率下所需平均信道数缓慢增长,且都明显少于DBCC,因此本发明可以有效地提高频谱利用率。

仿真2,用本发明与现有DBCC算法对生成拓扑的平均独立路径数进行仿真对比,结果如图5所示:

从图5可见,随着网络中次用户节点数的增多,本发明在三种不同主用户传输功率下生成拓扑的平均独立路径数缓慢增长,且都明显大于DBCC,因此本发明可以有效地提高网络鲁棒性。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1