发明内容
本申请提供了一种小区资源规划方法及系统,以解决资源规划中尽量避免小区间干扰的问题。
为了解决上述问题,本申请公开了一种小区资源规划方法,包括:针对需要规划的小区,对每个小区计算其干扰小区对该小区的干扰权值;根据所述干扰权值对需要规划的小区进行排序,得到排序小区队列;遍历所述排序小区队列中的所有小区,按照干扰代价选择小区分组,其中,所述干扰代价与所述干扰权值和小区的排序相关;将预分配的资源进行分组,为每个小区分组分配一组资源,并将该组资源分配给小区分组内的每个小区。
优选地,所述方法还包括:对于小区分组中需要复用资源的小区,从该小区分组中选择距离当前小区最远的一个小区的资源并复用给所述当前小区。
优选地,所述对每个小区计算其干扰小区对该小区的干扰权值,包括:将每个小区划分为栅格,遍历所有小区的栅格,计算每个栅格的有用接收功率和归属小区;针对每个栅格,执行以下步骤a和b:
a、遍历当前栅格的归属小区对应的所有干扰小区,计算干扰小区对应的每个干扰栅格对当前栅格的干扰功率;
b、针对当前栅格的每个干扰栅格,判断干扰功率减去当前栅格的有用接收功率的值是否大于门限值,并且干扰功率是否大于预设值,将同时满足所述两个条件的干扰栅格记为当前栅格的强干扰栅格;
针对每个小区,统计该小区的各干扰小区中的强干扰栅格点个数,并作为各干扰小区对该小区的干扰权值。
优选地,所述根据干扰权值对需要规划的小区进行排序,得到排序小区队列,包括:设定需要规划的小区总数为N,N为自然数,则有N×N对邻区关系,所有邻区关系的干扰权值表示为N×N的矩阵v,其中Vi,j表示小区j干扰小区i的干扰权值,i表示被干扰小区,j表示干扰小区,排序步骤包括:
S1,将v中的Vi,j从大到小进行排序,取最大的Vi,j=Va,b;
S2,初始化排序小区队列C为1×N的“-1”序列,C={-1,-1,-1,-1,...,-1};
S3,将小区a和b放入排序小区队列C,C={a,b,-1,-1,...,-1},并令指针M=1;
S4,从小区队列C的第M个小区开始遍历,依次对C中的每一个小区x进行如下操作:
1)对v的第x行元素Vx,j进行从大到小排序,将对小区x有干扰的小区y进行如下操作:如果小区y已经在小区队列C中,则跳过;如果小区y不在小区队列C中,则将y放入小区队列C中;
2)如果小区x为C的最后一个小区,且C中仍有“-1”的值,此时C已放入的小区个数为L;则对于未在C中的其余小区的干扰权值Vi,j进行从大到小排序,选择最大权值对应的两个小区,依次放入C中,令M=L+1,返回S4;
3)当小区队列C中小区个数为N时,小区排序结束。
优选地,所述根据干扰权值对需要规划的小区进行排序,得到排序小区队列,包括:设定需要规划的小区总数为N,N为自然数,则有N×N对邻区关系,所有邻区关系的干扰权值表示为N×N的矩阵v,其中Vi,j表示小区j干扰小区i的干扰权值,i表示被干扰小区,j表示干扰小区,排序步骤包括:
S1,初始化排序小区队列C为1×N的“-1”序列,C={-1,-1,-1,-1,...,-1};
S2,指定初始排序小区为a,将小区a放入排序小区队列C,C={a,-1,-1,-1,...,-1},并令指针M=1;
S3,从小区队列C的第M个小区开始遍历,依次对C中的每一个小区x进行如下操作:
1)对v的第x行元素Vx,j进行从大到小排序,将对小区x有干扰的小区y进行如下操作:如果小区y已经在小区队列C中,则跳过;如果小区y不在小区队列C中,则将y放入小区队列C中;
2)如果小区x为C的最后一个小区,且C中仍有“-1”的值,此时C已放入的小区个数为L;则对于未在C中的其余小区的干扰权值Vi,j进行从大到小排序,选择最大权值对应的两个小区,依次放入C中,令M=L+1,返回S3;
3)当小区队列C中小区个数为N时,小区排序结束。
优选地,所述遍历排序小区队列中的所有小区,按照干扰代价选择小区分组,包括:设定需要规划的小区总数为N,N为自然数,并初始化小区分组标识队列R为1×N的“-1”序列,R={-1,-1,-1,-1,...,-1};
进行以下步骤的迭代:
a、从排序小区队列的第一个小区开始依次遍历队列中的每一个小区x;
b、确定每一个小区x的小区分组标识,并将所述小区分组标识放入小区分组标识队列R中;
c、当对排序小区队列的所有小区确定小区分组标识后,计算当前迭代的干扰代价;
d、当未达到迭代次数时,当前迭代的干扰代价与上一次迭代的干扰代价相比不再发生变化,则迭代结束;当达到最大迭代次数时,强制迭代结束;否则,返回步骤a重新进行迭代;
经过以上迭代最终得到的小区分组标识队列R中,具有相同分组标识的小区分为一个组。
优选地,所述步骤b包括:将小区x的小区分组标识依次置为小区总数N模n的各个余值,n为自然数,针对每个余值查找小区分组标识队列R中与小区x有相同小区分组标识的小区,并将这些小区对小区x的干扰权值求和得到对应该余值的干扰总权值;选择干扰总权值最小的一个余值,并将小区x的分组标识确定为该余值;所述步骤c中的干扰代价的定义如下:
对排序小区队列的每一个小区x进行遍历,查找步骤b得到的小区分组标识队列R中与小区x有相同小区分组标识的小区,将这些小区对小区x的干扰权值求和,并依次累加直至遍历到最后一个小区,累加结果作为当前迭代的干扰代价。
优选地,所述为每个小区分组分配一组资源,并将该组资源分配给小区分组内的每个小区,包括:为每个小区分组随机分配一组资源,并将该组资源随机分配给小区分组内的每个小区。
优选地,所述资源包括物理小区标识,和/或,小区频率。
本申请还提供了一种小区资源规划系统,包括:
干扰权值计算模块,用于针对需要规划的小区,对每个小区计算其干扰小区对该小区的干扰权值;
小区排序模块,用于根据所述干扰权值对需要规划的小区进行排序,得到排序小区队列;
小区分组模块,用于遍历所述排序小区队列中的所有小区,按照干扰代价选择小区分组,其中,所述干扰代价与所述干扰权值和小区的排序相关;
资源分配模块,用于将预分配的资源进行分组,为每个小区分组分配一组资源,并将该组资源分配给小区分组内的每个小区。
优选地,所述干扰权值计算模块包括:
栅格划分子模块,用于将每个小区划分为栅格,遍历所有小区的栅格,计算每个栅格的有用接收功率和归属小区;并针对每个栅格,触发以下干扰功率计算子模块和强干扰栅格判断子模块:
干扰功率计算子模块,用于遍历当前栅格的归属小区对应的所有干扰小区,计算干扰小区对应的每个干扰栅格对当前栅格的干扰功率;
强干扰栅格判断子模块,用于针对当前栅格的每个干扰栅格,判断干扰功率减去当前栅格的有用接收功率的值是否大于门限值,并且干扰功率是否大于预设值,将同时满足所述两个条件的干扰栅格记为当前栅格的强干扰栅格;
统计子模块,用于针对每个小区,统计该小区的各干扰小区中的强干扰栅格点个数,并作为各干扰小区对该小区的干扰权值。
优选地,设定需要规划的小区总数为N,N为自然数,则有N×N对邻区关系,所有邻区关系的干扰权值表示为N×N的矩阵v,其中Vi,j表示小区j干扰小区i的干扰权值,i表示被干扰小区,j表示干扰小区;所述小区排序模块包括:
第一干扰权值排序子模块,用于将v中的Vi,j从大到小进行排序,取最大的Vi,j=Va,b;
第一小区队列初始化子模块,用于初始化排序小区队列C为1×N的“-1”序列,C={-1,-1,-1,-1,...,-1};
第一小区入队子模块,用于将小区a和b放入排序小区队列C,C={a,b,-1,-1,...,-1},并令指针M=1;
第一排序子模块,用于从小区队列C的第M个小区开始遍历,依次对C中的每一个小区x进行如下操作:
1)对v的第x行元素Vx,j进行从大到小排序,将对小区x有干扰的小区y进行如下操作:如果小区y已经在小区队列C中,则跳过;如果小区y不在小区队列C中,则将y放入小区队列C中;
2)如果小区x为C的最后一个小区,且C中仍有“-1”的值,此时C已放入的小区个数为L;则对于未在C中的其余小区的干扰权值Vi,j进行从大到小排序,选择最大权值对应的两个小区,依次放入C中,令M=L+1,返回1);
3)当小区队列C中小区个数为N时,小区排序结束。
优选地,设定需要规划的小区总数为N,N为自然数,则有N×N对邻区关系,所有邻区关系的干扰权值表示为N×N的矩阵v,其中Vi,j表示小区j干扰小区i的干扰权值,i表示被干扰小区,j表示干扰小区;所述小区排序模块包括:
第二小区队列初始化子模块,用于初始化排序小区队列C为1×N的“-1”序列,C={-1,-1,-1,-1,...,-1};
第二小区入队子模块,用于指定初始排序小区为a,将小区a放入排序小区队列C,C={a,-1,-1,-1,...,-1},并令指针M=1;
第二排序子模块,用于从小区队列C的第M个小区开始遍历,依次对C中的每一个小区x进行如下操作:
1)对v的第x行元素Vx,j进行从大到小排序,将对小区x有干扰的小区y进行如下操作:如果小区y已经在小区队列C中,则跳过;如果小区y不在小区队列C中,则将y放入小区队列C中;
2)如果小区x为C的最后一个小区,且C中仍有“-1”的值,此时C已放入的小区个数为L;则对于未在C中的其余小区的干扰权值Vi,j进行从大到小排序,选择最大权值对应的两个小区,依次放入C中,令M=L+1,返回1);
3)当小区队列C中小区个数为N时,小区排序结束。
优选地,设定需要规划的小区总数为N,N为自然数,并初始化小区分组标识队列R为1×N的“-1”序列,R={-1,-1,-1,-1,...,-1};所述小区分组模块包括:
遍历子模块,用于从排序小区队列的第一个小区开始依次遍历队列中的每一个小区x;
分组子模块,用于确定每一个小区x的小区分组标识,并将所述小区分组标识放入小区分组标识队列R中;
干扰代价计算子模块,用于当对排序小区队列的所有小区确定小区分组标识后,计算当前迭代的干扰代价;
迭代判断子模块,用于当未达到迭代次数时,当前迭代的干扰代价与上一次迭代的干扰代价相比不再发生变化,则迭代结束;当达到最大迭代次数时,强制迭代结束;否则,返回遍历子模块重新进行迭代;
经过以上迭代最终得到的小区分组标识队列R中,具有相同分组标识的小区分为一个组。
优选地,所述分组子模块将小区x的小区分组标识依次置为小区总数N模n的各个余值,n为自然数,针对每个余值查找小区分组标识队列R中与小区x有相同小区分组标识的小区,并将这些小区对小区x的干扰权值求和得到对应该余值的干扰总权值;选择干扰总权值最小的一个余值,并将小区x的分组标识确定为该余值;
所述干扰代价计算子模块中的干扰代价的定义如下:
对排序小区队列的每一个小区x进行遍历,查找步骤b得到的小区分组标识队列R中与小区x有相同小区分组标识的小区,将这些小区对小区x的干扰权值求和,并依次累加直至遍历到最后一个小区,累加结果作为当前迭代的干扰代价。
优选地,所述资源分配模块包括:
资源未复用分配子模块,用于为每个小区分组随机分配一组资源,并将该组资源随机分配给小区分组内的每个小区;
资源复用分配子模块,用于对于小区分组中需要复用资源的小区,从该小区分组中选择距离当前小区最远的一个小区的资源并复用给所述当前小区。
与现有技术相比,本申请包括以下优点:
首先,本申请在进行资源(如PCI、小区频率)规划时,综合考虑了小区与小区之间的干扰,计算干扰权值,然后基于干扰权值对小区进行排序,排序结束后以干扰代价为衡量指标,对排序后的小区进行分组,迭代找到最优解,最后将资源分配给小区分组中的各个小区。所述方法在整个资源分配过程中,由于充分考虑了小区间的干扰,并且在小区分组时找到了最优解,因此相对于现有的分配方法是一种高效的、精确的分配方法,能够有效避免相邻小区间的干扰问题,并能有效规避小区间CRS(Cell-specific ReferenceSignals,下行小区专属参考符号)信道间的干扰,使分配后的系统性能达到最优。
其次,本申请还考虑模n准则和复用距离尽量远的准则,其中模n准则可以对小区进行任意分组,复用距离远的准则考虑了小区ID不够分配的情况。
当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请提出一种小区资源规划方法,综合考虑了小区与小区之间的干扰,计算干扰权值,然后基于干扰权值对小区进行排序,排序结束后以干扰代价为衡量指标,对排序后的小区进行分组,迭代找到最优解,最后将资源分配给小区分组中的各个小区。
其中,所述小区资源规划可以是物理小区标识(PCI)的规划,也可以是小区频率规划,还可以是具有类似特点的其他资源的规划。
下面主要以PCI的规划为例进行说明,小区频率等其他类似资源的规划可参照此方法。
如前所述,PCI的规划需要满足“不冲突”、“不混淆”这两个基本要求。因此,对小区的PCI进行规划时,主要考虑的问题就是各个物理信道/信号对PCI的约束。包括:
约束条件1:主同步信号PSS(Primary Synchronization Signal)对小区PCI的约束,要求相邻小区PCI之间模3的余值不同,即:
mod(PCI1,3)≠mod(PCI2,3)
约束条件2:辅同步信号SSS(Secondary Synchronization Signal)对小区PCI的约束,要求相邻小区PCI除以3后的整数部分不同,即:
floor(PCI1/3)≠floor(PCI2/3)
约束条件3:PBCH(Physical Broadcast Channel,物理广播信道)对小区PCI的约束,要求相邻小区PCI不同,即:
PCI1≠PCI2
约束条件4:PCFICH(Physical Control Format Indicator Channel,物理控制格式指示信道)对小区PCI的约束,要求相邻小区PCI模2倍的小区RB(Resource Block,资源块)个数后的余值不同,即
约束条件5:DL-RS(Downlink Reference Signals,下行链路参考信号)对小区PCI的约束,要求相邻小区PCI模6的余值不同,即:
mod(PCI1,6)≠mod(PCI2,6)
约束条件6:UL-RS(Uplink Reference Signals,上行链路参考信号)对小区PCI的约束,要求相邻小区PCI模30的余值不同,即:
mod(PCI1,30)≠mod(PCI2,30)
其中,约束条件4、5、6均隐含在约束条件1中。而且,当保证了约束条件1时,约束条件2和约束条件3也保证了。综上所述,可以发现对于物理小区ID规划,可以采用约束条件1,即相邻小区间PCI模3不等原则。
本申请中PCI的规划首先要满足上述前提条件,因此在下面的实施例中优选采用模3准则。
下面通过实施例对本申请所述方法的实现流程进行详细说明。
参照图2所示,是本申请实施例所述一种小区资源规划方法的流程图。
以PCI的规划为例,步骤如下:
步骤201,针对需要规划的小区,对每个小区计算其干扰小区对该小区的干扰权值;
所述干扰小区是指对当前小区造成信号干扰的小区。实际应用中,可以将所有造成信号干扰的小区都作为当前小区的干扰小区进行计算,也可以从中筛选一部分干扰较强的小区作为当前小区的干扰小区。本实施例优选的,采用后面一种方案,这样可以保证在一定精确度的条件下避免计算量太大。
确定当前小区的干扰小区后,每个干扰小区对当前小区都可计算出一个干扰权值。所述干扰权值可作为步骤202中小区排序的依据。
干扰权值的具体计算过程将在图3对应的优选实施例中进行详细说明。
步骤202,根据所述干扰权值对需要规划的小区进行排序,得到排序小区队列;
根据干扰权值以一定的规则对所有需要规划的小区进行排序。小区排序的目的是为了得到小区序列,为步骤203进行小区分组时的迭代循环提供遍历的先后顺序。
由于资源规划的目的之一就是为了尽量避免小区间干扰,因此排序时按照干扰权值从大到小对所有需要规划的小区进行排序。
具体的小区排序过程将在图4对应的优选实施例中进行详细说明。
步骤203,遍历所述排序小区队列中的所有小区,按照干扰代价选择小区分组,其中,所述干扰代价与所述干扰权值和小区的排序相关;
实际应用中,可按照模n准则,将排序小区队列中的所有小区分为n组。例如,按照模3准则,余数为0、1、2,则可分为0、1、2三个小区。小区的分组过程是一个迭代循环的过程,循环的结束以干扰代价为衡量指标。所述干扰代价可通过构建干扰代价函数实现。
小区分组的具体过程将在图5对应的优选实施例中进行详细说明。
步骤204,将预分配的资源进行分组,为每个小区分组分配一组资源,并将该组资源分配给小区分组内的每个小区。
资源分组也可采用模n准则,其中n的取值与小区分组时n的取值相同,即资源分组的个数与小区分组的个数相同。然后,可按照各种方式,如随机或指定或其他方式,为每个小区分组分配一组资源,并将该组资源分配给小区分组内的每个小区。
具体的资源分配过程将在图6对应的优选实施例中进行详细说明。
基于以上内容,仍以PCI的规划为例,下面通过图3至图7详细说明上述的每个步骤。
首先,定义要规划的小区总数为N,N为自然数,干扰权值为InterfaceWeight(简称为W),假设为N×N的矩阵,表示形式如下:
小区排序后生成的序列为C,用下列集合表示:
C={c0,c1,c2,....,cN-1}
干扰代价函数定义为:
f(wi,j,ci,j,...)
其中i表示当前要讨论的小区,j表示当前要讨论的小区的干扰小区。干扰代价函数是和干扰权值、小区排序的先后顺序等因素相关的。
定义迭代次数为ninterate,最大迭代次数为MaxInterateNum。
定义收敛条件为:
定义最终PCI规划后的规划结果为RPCI,用下列集合表示:
RPCI={R0,R1,R2,.....,RN-1}
1、干扰权值的计算
干扰权值可以有多种表示形式,因此其计算方式也多种多样,下面给出两种示例。
示例一:
参照图3所示,是本申请实施例中计算干扰权值的流程图。
本实施例中以强干扰栅格点个数为例进行统计。强干扰栅格点个数主要用于衡量2个小区间的干扰强度,强干扰栅格点数量越多,小区间的干扰越强烈。
定义当前栅格的有用接收功率为C,其它栅格对当前栅格的干扰功率为I,则强干扰栅格点个数统计步骤如下:
步骤301,将每个小区划分为栅格,遍历所有小区的栅格,计算每个栅格的有用接收功率C和归属小区;
即将网络拓扑以一定精度划分为栅格,一个小区可划分为多个栅格,因此同属于一个小区的栅格对应的归属小区也相同。
步骤302,针对每个栅格,执行以下步骤a和b:
a、遍历当前栅格的归属小区对应的所有干扰小区,计算干扰小区对应的每个干扰栅格对当前栅格的干扰功率I;
如前所述,所述干扰小区优选采用干扰信号较强的小区,干扰小区中的栅格定义为干扰栅格。
针对一个栅格,首先根据步骤301找到它的归属小区,再找到该归属小区的所有干扰小区;然后,针对干扰小区中的每个干扰栅格,计算该干扰栅格对当前栅格的干扰功率I。
b、针对当前栅格的每个干扰栅格,判断该干扰栅格的干扰功率I减去当前栅格的有用接收功率C的值是否大于门限值Δthreshold,并且干扰功率I是否大于预设值Ithreshold,将同时满足所述两个条件的干扰栅格记为当前栅格的强干扰栅格;
也就是说,在当前栅格的所有干扰栅格中,同时满足步骤b中两个条件的干扰栅格才能成为强干扰栅格。
需要说明的是,上述干扰栅格的定义表明,当前栅格的所有干扰栅格均与该当前栅格不属于一个小区。但是,具体实现过程中,如果干扰栅格的定义中包含与当前栅格同属一个小区的栅格,那么当判断I-C以及I是否满足条件之前,需要先判断这个干扰栅格的归属小区是否与当前栅格的归属小区相同,如果是,则无需进行判断;如果否,再判断该干扰栅格是否为强干扰栅格。
步骤303,针对每个小区,统计该小区的各干扰小区中的强干扰栅格点个数,并作为各干扰小区对该小区的干扰权值。
依据步骤302得到一个栅格的强干扰栅格后,计算一个小区X的某个干扰小区Y对它的干扰权值时,首先针对小区X中的每个栅格,统计该栅格的属于同一个小区Y的强干扰栅格点个数,然后再将小区X中所有栅格对应的同一个小区Y的强干扰栅格点个数累加,就得到干扰小区Y对小区X的干扰权值。
例如,小区A的干扰小区为B、H,将干扰小区B中的强干扰栅格点个数作为干扰小区B对小区A的干扰权值,并将干扰小区H中的强干扰栅格点个数作为干扰小区H对小区A的干扰权值。
经过以上步骤301至303,就可以得到一个小区对另一个小区的干扰权值,所述干扰权值可作为小区排序的依据。
示例二:
示例二以记分的方式计算干扰权值,步骤如下:
第一步,将小区以一定精度划分为栅格,遍历每个栅格点,计算其干扰栅格的干扰功率;
第二步,针对每个栅格,统计当前栅格的所有干扰栅格的干扰功率的范围,记为区间[a,b],将此区间均匀划分为n个区间(划分方式不一定均匀,也可用其它方式,n可配置),并将此n个区间分别记分,记为[score1,score2,....,scoren](计分标准可根据需求而定);总之,干扰强的区间分值就高;
第三步,遍历每个栅格点,找到每个栅格点的归属小区和其归属小区的干扰小区列表,遍历干扰小区列表中的干扰栅格,统计每个干扰小区的干扰栅格对当前栅格的干扰得分,将得分相加即为当前干扰小区对当前栅格的干扰权值。
第四步,统计归属小区为同一个小区的所有栅格,将当前干扰小区对同一小区所有栅格的干扰权值相加,也即将分值相加,得到当前干扰小区对这个小区的干扰权值。
2、小区排序
如前所述,小区排序的目的是为了得到小区序列,为小区分组时的迭代循环提供遍历的先后顺序。下面给出两种排序示例。
示例一:
参照图4.1所示,是本申请实施例中小区排序的示例一的流程图。
假设需要规划的小区总数为N,N为自然数,则有N×N对邻区关系,所有邻区关系的干扰权值表示为N×N的矩阵v,如下表示:
每对邻区关系有一个干扰权值Vi,j,其中i表示被干扰小区,j干扰小区,Vi,j表示小区j干扰小区i的干扰权值,Vi,j的值对应于上面计算的强干扰栅格点个数。其中,i和j相同的Vi,j的值为0。
根据此邻区关系表,按照如下排序方式对N个小区进行排序,步骤如下:
S1,将v中的Vi,j从大到小进行排序,取最大的Vi,j=Va,b;
S2,初始化排序小区队列C为1×N的“-1”序列,C={-1,-1,-1,-1,...,-1};
S3,将小区a和b放入排序小区队列C,C={a,b,-1,-1,...,-1},并令指针M=1;
每当将一个小区放入小区队列C中时,就替换掉放入位置上的“-1”。
S4,从小区队列C的第M个小区开始遍历,依次对C中的每一个小区x(开始时x=a)进行如下操作:
1)对v的第x行元素Vx,j进行从大到小排序,将对小区x有干扰的小区y(即Vx,y>0)进行如下操作:如果小区y已经在小区队列C中,则跳过;如果小区y不在小区队列C中,则将y放入小区队列C中;
其中,v的第x行元素Vx,j是指:假设x=a=i=0,则第x行元素是指v中的第一行元素V0,0至V0,N-1。
2)如果小区x为C的最后一个小区,且C中仍有“-1”的值,此时C已放入的小区个数为L;则对于未在C中的其余小区的干扰权值Vi,j进行从大到小排序,选择最大权值对应的两个小区,依次放入C中,令M=L+1,返回S4;
3)当小区队列C中小区个数为N时,小区排序结束。
按照以上方式进行排序,当小区队列C中不再有“-1”的值时,所有的N个小区都已经排好序,并形成一个有序的小区队列。
示例二:
与示例一的排序方式类似,不同之处在于第一次放入小区队列C的小区是按照指定方式选出。
参照图4.2所示,是本申请实施例中小区排序的示例二的流程图。
邻区关系表如示例一所示,按照如下排序方式对N个小区进行排序,步骤如下:
S10,初始化排序小区队列C为1×N的“-1”序列,C={-1,-1,-1,-1,...,-1};
S20,指定初始排序小区为a,将小区a放入排序小区队列C,C={a,-1,-1,-1,...,-1},并令指针M=1;
所述指定可根据用户需求来指定,如根据运营商要求指定一个小区a。
后面的步骤S3与示例一相同,如下:
S30,从小区队列C的第M个小区开始遍历,依次对C中的每一个小区x(开始时x=a)进行如下操作:
1)对v的第x行元素Vx,j进行从大到小排序,将对小区x有干扰的小区y(即Vx,j>0)进行如下操作:如果小区y已经在小区队列C中,则跳过;如果小区y不在小区队列C中,则将y放入小区队列C中;
其中,v的第x行元素Vx,j是指:假设x=a=i=0,则第x行元素是指v中的第一行元素V0,0至V0,N-1。
2)如果小区x为C的最后一个小区,且C中仍有“-1”的值,此时C已放入的小区个数为L;则对于未在C中的其余小区的干扰权值Vi,j进行从大到小排序,选择最大权值对应的两个小区,依次放入C中,令M=L+1,返回S30;
3)当小区队列C中小区个数为N时,小区排序结束。
小区排序结束后,进入下面的小区分组过程。
3、小区分组
小区分组也可以有多种方式,下面给出两种示例。
示例一:
如前所述,根据干扰代价进行小区分组,干扰代价可通过构建干扰代价函数实现,干扰代价函数可表示为f(wi,j,ci,j,...),即干扰代价函数与干扰权值、小区排序的先后顺序等因素相关。干扰代价函数可以有多种表达形式,下面图5所示的实施例中将列举出一种干扰代价函数,但是本申请的保护范围不应限定于图5这一种表达形式。
小区分组的过程是一个迭代循环的过程,每次迭代时都遍历所有已排序的小区,并按照干扰代价为小区选择分组,一次迭代结束后计算干扰代价,如果干扰代价不满足循环结束条件,则继续进行下一次的迭代,如果满足则结束迭代,得到小区分组的最优解。由此可知,小区分组过程以干扰代价为衡量指标,当干扰代价达到最小或者迭代次数达到最大时的解即为最终解。
下面通过图5的流程详细说明小区分组过程。
参照图5所示,是本申请实施例中小区分组的流程图。
设定需要规划的小区总数为N,N为自然数,已排好序的小区队列为C,初始化小区分组标识队列R为1×N的“-1”序列,R={-1,-1,-1,-1,...,-1};
进行以下步骤的迭代:
a、从排序小区队列C的第一个小区开始依次遍历队列中的每一个小区x;
b、确定每一个小区x的小区分组标识,并将所述小区分组标识放入小区分组标识队列R中;
本实施例中,确定小区分组标识的方式如下:
按照模n准则,将小区x的小区分组标识依次置为小区总数N模n的各个余值,n为自然数,针对每个余值查找小区分组标识队列R中与小区x有相同小区分组标识的小区,并将这些小区对小区x的干扰权值求和得到对应该余值的干扰总权值;
选择干扰总权值最小的一个余值,并将小区x的分组标识确定为该余值。
例如,在PCI规划中,小区分组标识队列R为PCI_result,假设采用的是模3准则,则分别将小区x的小区分组标识置为0、1、2,针对所述每个小区分组标识查找PCI_result中与小区x有相同小区分组标识的小区,将这些小区对x的干扰权值求和,对应0、1、2分组分别得到I0,I1,I2。从I0,I1,I2中选择最小的值Ik,令小区x的小区分组标识为k。
初始时,PCI_result={-1,-1,-1,-1,...,-1},对于第一个小区x,当x的小区分组标识置为0时,PCI_result中没有与小区x相同小区分组标识的小区,因此I0置为小区x对自己的干扰权值0。同样,当x的小区分组标识分别置为1和2时,对应的I1和I2也分别为0。此时,可以任意选择一个Ik,如选择I2,则第一个小区x的小区分组标识为2,将2放入队列PCI_result中,替换掉队列中相应位置的“-1”。
然后,继续对排序小区队列C中的第二小区确定小区分组标识,此时PCI_result中有一个“2”的值,因此当第二小区的小区分组标识置为2的时候,就可以找到第一个小区与第二个小区的小区分组标识相同,将第一个小区对第二个小区的干扰权值作为I2。而当第二小区的小区分组标识分别置为0和1时,对应的I0和I1分别为0,因此I0,I1,I2中最小值的为I0和I1,任意选择一个Ik,如选择I0,则第二个小区的小区分组标识为0,将0放入队列PCI_result中。
依照此方法,依次对排序小区队列C中的每一个小区确定其小区分组标识。
在上述过程中,排序小区队列C中后面的小区在确定小区分组标识时,都会用到前面所有小区的小区分组标识,即会考虑小区间的相互干扰情况。
c、当对排序小区队列C中的所有小区确定小区分组标识后,计算当前迭代的干扰代价;
本实施例中,干扰代价函数的定义如下:
对于已经进行了一次小区分组的小区队列C进行遍历,对小区队列C中的每一个小区x进行遍历,查找步骤b得到的小区分组标识队列R中与小区x有相同小区分组标识的小区,将这些小区对小区x的干扰权值求和,并依次累加直至遍历到最后一个小区,累加结果作为当前迭代的干扰代价。
即对每一个小区x,计算其他小区对它的干扰权值求和的值,然后将小区队列C中所有小区的求和的值累加,累加结果即为当前这次迭代的干扰代价。
d、当未达到迭代次数时,当前迭代的干扰代价与上一次迭代的干扰代价相比不再发生变化,则迭代结束;当达到最大迭代次数时,强制迭代结束;否则,返回步骤a重新进行迭代;
由于每次迭代得到的小区分组标识队列R可能不同,因此需要进行多次迭代,当未达到迭代次数时,干扰代价不再发生变化,则迭代结束;当达到最大迭代次数时,不管干扰代价是否仍发生变化,则强制收敛结束。
经过以上迭代最终得到的小区分组标识队列R中,具有相同分组标识的小区分为一个组。例如,采用模3准则,小区分组标识队列R中的值由0、1、2组成,所有0值对应的小区分为一组,所有1值对应的小区分为一组,所有2值对应的小区分为一组。
示例二:
步骤如下:
步骤1,假设共有n个小区,将所有小区Id分为三组(mode3=0;mode3=1;mode3=2)。
步骤2,对干扰权值Vi,j进行筛选,当Vi,j小于预设的阈值ΔVi,j时,对应的j小区不作为i小区的干扰邻区,将Vi,j置0。
步骤3,遍历所有未分组小区的邻区列表,对于当前小区i,将Vi,1,Vi,2,...,Vi,n从大到小进行排序,则对应的干扰小区依次为小区i的第一强干扰小区、第2强干扰小区、...等等。
步骤4,找到干扰权值Vi,j中最大的值Va,b。为小区a,及小区a的第一强干扰邻区(小区b),分别分配分组mode3=0、mode3=1。
步骤5,遍历所有小区邻区列表,检查是否有小区a、小区b同时出现在第一、第二强干扰邻区位置的小区,如果有(小区c),则为其分配分组mode3=2,已知小区a、b、c的分组(mode3=0;mode3=1;mode3=2)。
步骤6,遍历所有小区邻区列表,检查所有已知小区分组两两组合(如:ab ac bc)作为第一第二强邻区的小区,为其分配第一第二强邻区未分配的分组,并将其补充到已知小区分组的小区集合中。
步骤7,重复步骤5和6直到所有小区均被分配分组。
步骤8,对于已经分组的小区,检查其任意的两两组合作为第一第二强邻区的小区,如果找不到满足此条件的小区,并且仍然有小区未被分组,则检查第一、三强邻区为已知小区的,为其分配其他分组,依此类推,遍历所有邻区。
步骤9,对于已经分组的小区,检查其任意的两两组合作为第一第二强邻区的小区,如果找不到满足此条件的小区,并且仍然有小区未被分组,则只检查第一强邻区为已知小区的,为其分配其他分组。
如果第一邻区中也没有已知分组小区,则检查第二邻区,依此类推,直到找到满足条件的小区。
步骤10,如果仍然有未分配分组小区(证明这些小区与其他已分组小区相对隔离,没有邻区关系),则对剩余小区重复步骤3-9。
小区分组确定后,进入资源分配过程。
4、资源分配
首先,将预分配的资源进行分组,如果小区分组采用模3准则,则资源分组也采用模3准则,分为0、1、2三组。
然后,可以为每个小区分组随机分配一组资源,并将该组资源随机分配给小区分组内的每个小区。例如,将第0组资源随机分配给第2组小区,将第1组资源随机分配给第0组小区,将第2组资源随机分配给第1组小区。
最后,对于某个小区分组中需要复用资源的小区,为了尽量避免小区间的干扰,从该小区分组中选择距离当前小区最远的一个小区的资源并复用给所述当前小区。
下面以PCI分配为例,由于物理小区ID序列仅有504个,但是部署的小区数可能远远不止这些,因此当504个小区ID全部分配完后,余下的小区将不可避免的复用PCI,此时则根据复用距离尽量远的原则为余下的小区分配PCI。下面给出一种分配的示例。
参照图6所示,是本申请实施例中一种PCI分配示意图。
如图6所示,假设有14个小区,将小区从上到下,从左到右进行编号。假设采用模3准则,则根据上面图5所示的迭代方法,小区分别被分为斜线填充、无填充、方格填充三组,分别用0、1、2表示。则上图的小区分组结果表示为:
C={0,1,2,2,1,0,0,1,0,0,2,2,1,0}
假设能用的物理小区ID共有12个,对应0~11。则将0~11对3取余,分为3组,分别随机分配给上面对应的斜线填充、无填充、方格填充三组,则对应的PCI分组结果可以表示为:
RPCI={4,2,0,3,8,1,Null,5,7,10,6,9,11,Null}
由图示可以看出,还有2个斜线填充没有可用的物理小区ID。则对两个红色小区,分别选取距离最远的红色小区的ID进行分配。分配结果为:
RPCI={4,2,0,3,8,1,1,5,7,10,6,9,11,4}
分配结果示例图如图7所示。
综上所述,本申请实施例在整个资源分配过程中,由于充分考虑了小区间的干扰,并且在小区分组时找到了最优解,因此相对于现有的分配方法是一种高效的、精确的分配方法,能够有效避免相邻小区间的干扰问题,并能有效规避小区间CRS信道间的干扰,使分配后的系统性能达到最优。
而且,本申请还考虑模n准则和复用距离尽量远的准则,其中模n准则可以对小区进行任意分组,复用距离远的准则考虑了小区ID不够分配的情况。
上述实施例是以PCI规划为例进行说明,但具体应用中也可以应用到小区频率规划等其他资源的规划中,其实施原理与上述实施例相似,故不再赘述。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必需的。
基于上述方法实施例的说明,本申请还提供了相应的小区资源规划系统实施例。
参照图8所示,是本申请实施例所述一种小区资源规划系统的结构图。
所述小区资源规划系统可以包括以下模块:
干扰权值计算模块10,用于针对需要规划的小区,对每个小区计算其干扰小区对该小区的干扰权值;
小区排序模块20,用于根据所述干扰权值对需要规划的小区进行排序,得到排序小区队列;
小区分组模块30,用于遍历所述排序小区队列中的所有小区,按照干扰代价选择小区分组,其中,所述干扰代价与所述干扰权值和小区的排序相关;
资源分配模块40,用于将预分配的资源进行分组,为每个小区分组分配一组资源,并将该组资源分配给小区分组内的每个小区。
优选地,在本申请的另一系统实施例中,对应图3所示的方法实施例,所述干扰权值计算模块10可以包括:
栅格划分子模块,用于将每个小区划分为栅格,遍历所有小区的栅格,计算每个栅格的有用接收功率和归属小区;并针对每个栅格,触发以下干扰功率计算子模块和强干扰栅格判断子模块:
干扰功率计算子模块,用于遍历当前栅格的归属小区对应的所有干扰小区,计算干扰小区对应的每个干扰栅格对当前栅格的干扰功率;
强干扰栅格判断子模块,用于针对当前栅格的每个干扰栅格,判断干扰功率减去当前栅格的有用接收功率的值是否大于门限值,并且干扰功率是否大于预设值,将同时满足所述两个条件的干扰栅格记为当前栅格的强干扰栅格;
统计子模块,用于针对每个小区,统计该小区的各干扰小区中的强干扰栅格点个数,并作为各干扰小区对该小区的干扰权值。
优选地,在本申请的另一系统实施例中,对应图4.1所示的方法实施例:
设定需要规划的小区总数为N,N为自然数,则有N×N对邻区关系,所有邻区关系的干扰权值表示为N×N的矩阵v,其中Vi,j表示小区j干扰小区i的干扰权值,i表示被干扰小区,j表示干扰小区;
所述小区排序模块20可以包括:
第一干扰权值排序子模块,用于将v中的Vi,j从大到小进行排序,取最大的Vi,j=Va,b;
第一小区队列初始化子模块,用于初始化排序小区队列C为1×N的“-1”序列,C={-1,-1,-1,-1,...,-1};
第一小区入队子模块,用于将小区a和b放入排序小区队列C,C={a,b,-1,-1,...,-1},并令指针M=1;
第一排序子模块,用于从小区队列C的第M个小区开始遍历,依次对C中的每一个小区x进行如下操作:
1)对v的第x行元素Vx,j进行从大到小排序,将对小区x有干扰的小区y进行如下操作:如果小区y已经在小区队列C中,则跳过;如果小区y不在小区队列C中,则将y放入小区队列C中;
2)如果小区x为C的最后一个小区,且C中仍有“-1”的值,此时C已放入的小区个数为L;则对于未在C中的其余小区的干扰权值Vi,j进行从大到小排序,选择最大权值对应的两个小区,依次放入C中,令M=L+1,返回1);
3)当小区队列C中小区个数为N时,小区排序结束。
优选地,在本申请的另一系统实施例中,对应图4.2所示的方法实施例:
设定需要规划的小区总数为N,N为自然数,则有N×N对邻区关系,所有邻区关系的干扰权值表示为N×N的矩阵v,其中Vi,j表示小区j干扰小区i的干扰权值,i表示被干扰小区,j表示干扰小区;
所述小区排序模块20可以包括:
第二小区队列初始化子模块,用于初始化排序小区队列C为1×N的“-1”序列,C={-1,-1,-1,-1,...,-1};
第二小区入队子模块,用于指定初始排序小区为a,将小区a放入排序小区队列C,C={a,-1,-1,-1,...,-1},并令指针M=1;
第二排序子模块,用于从小区队列C的第M个小区开始遍历,依次对C中的每一个小区x进行如下操作:
1)对v的第x行元素Vx,j进行从大到小排序,将对小区x有干扰的小区y进行如下操作:如果小区y已经在小区队列C中,则跳过;如果小区y不在小区队列C中,则将y放入小区队列C中;
2)如果小区x为C的最后一个小区,且C中仍有“-1”的值,此时C已放入的小区个数为L;则对于未在C中的其余小区的干扰权值Vi,j进行从大到小排序,选择最大权值对应的两个小区,依次放入C中,令M=L+1,返回1);
3)当小区队列C中小区个数为N时,小区排序结束。
优选地,在本申请的另一系统实施例中,对应图5所示的方法实施例,:
设定需要规划的小区总数为N,N为自然数,并初始化小区分组标识队列R为1×N的“-1”序列,R={-1,-1,-1,-1,...,-1};
所述小区分组模块30可以包括:
遍历子模块,用于从排序小区队列的第一个小区开始依次遍历队列中的每一个小区x;
分组子模块,用于确定每一个小区x的小区分组标识,并将所述小区分组标识放入小区分组标识队列R中;
干扰代价计算子模块,用于当对排序小区队列的所有小区确定小区分组标识后,计算当前迭代的干扰代价;
迭代判断子模块,用于当未达到迭代次数时,当前迭代的干扰代价与上一次迭代的干扰代价相比不再发生变化,则迭代结束;当达到最大迭代次数时,强制迭代结束;否则,返回遍历子模块重新进行迭代;
经过以上迭代最终得到的小区分组标识队列R中,具有相同分组标识的小区分为一个组。
优选地,所述分组子模块将小区x的小区分组标识依次置为小区总数N模n的各个余值,n为自然数,针对每个余值查找小区分组标识队列R中与小区x有相同小区分组标识的小区,并将这些小区对小区x的干扰权值求和得到对应该余值的干扰总权值;选择干扰总权值最小的一个余值,并将小区x的分组标识确定为该余值。
所述干扰代价计算子模块中的干扰代价的定义如下:
对排序小区队列的每一个小区x进行遍历,查找步骤b得到的小区分组标识队列R中与小区x有相同小区分组标识的小区,将这些小区对小区x的干扰权值求和,并依次累加直至遍历到最后一个小区,累加结果作为当前迭代的干扰代价。
优选地,在本申请的另一系统实施例中,对应图6、7所示的方法实施例,所述资源分配模块40可以包括:
资源未复用分配子模块,用于为每个小区分组随机分配一组资源,并将该组资源随机分配给小区分组内的每个小区;
资源复用分配子模块,用于对于小区分组中需要复用资源的小区,从该小区分组中选择距离当前小区最远的一个小区的资源并复用给所述当前小区。
对于上述的小区资源规划系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图2至图7所示方法实施例的部分说明即可。
上述小区资源规划系统能够有效避免相邻小区间的干扰问题,并能有效规避小区间CRS信道间的干扰,使分配后的系统性能达到最优。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上对本申请所提供的一种小区资源规划方法及系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。