m异构蜂窝网络的K-Tier下行链路的matlab性能仿真,对比网络Voronoi图,覆盖率等

发布时间 2023-05-19 23:18:34作者: 我爱C编程

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

 

 

 

 

2.算法涉及理论知识概要

       蜂窝网络正在从精心规划的一组大型塔式基站(BSs)对异构基础设施元素的非常规部署,通常还包括微、微微和以及分布式天线。在本文中,我们为下行链路开发易于处理、灵活和精确的模型异构蜂窝网络(HCN),由K层组成随机定位的基站,其中每一层在以下方面可能不同平均发射功率、支持的数据速率和BS密度。假设移动用户连接到最强候选BS,结果信号干扰加噪声比(SINR)当在覆盖范围内,瑞利衰落时,我们得出覆盖概率表达式(相当于中断)在开放和封闭访问下的整个网络上在高SINR状态下,假设一个非常简单的封闭形式精确到−即使在较弱的假设下也是4dB。对于外部验证,我们将其与实际LTE进行比较网络(用于第1层)与其他K1正在建模的层作为独立的泊松点过程。在这种情况下,我们的模型精度在1-2 dB以内。我们还导出了平均值随机定位的移动设备实现的速率和平均负载在BSs的每一层上。对于干扰受限的开放接入网络,一个有趣的观察是,在给定的SINR下分层和/BSs既不会增加也不会降低所有层具有相同目标SINR时的覆盖率或中断。

 

 

 

       Voronoi图是通过Delaunay三角网得到的,所以我们先来介绍一下Delaunay三角网的两个重要的性质:

 

        Delaunay三角网是由一个一个的三角形构成的,其中三角形中的每一个顶点都是Voronoi点集中的点。

 

1、空外接圆性质:在由点集S构成的Delaunay三角网中,每个三角形的外接圆均不包含点集S中的其他任意点,即任何一个Delaunay三角形的外接圆不包含其他任何点。

2、最大的最小角性质:在由点集S所构成的三角网中,Delaunay三角网中三角形的最小角度是最大的,一个简明的解释:2个相邻三角形构成的凸四边形的对角线在相互交换后,6个内角的最小角不再增大。

 

下面给出Voronoi图的定义:

 

       Voronoi图,又叫泰森多边形或Dirichlet图,它是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。N个在平面上有区别的点,按照最邻近原则划分平面;每个点与它的最近邻区域相关联。Delaunay三角形是由与相邻Voronoi多边形共享一条边的相关点连接而成的三角形。Delaunay三角形的外接圆圆心是与三角形相关的Voronoi多边形的一个顶点。Voronoi三角形是Delaunay图的偶图;

 

 

 

 

 

 

3.MATLAB核心程序

 

global BS_num;
global An_num;
global User_num;
global Gains;
global Factors;
global Loss1;
global shadows;
%参数初始化
lamda              = 1e-4;   
%grid小区maco个数
BS_num             = 7;       
%每个基站的天线数
An_num             = 30;                       
User_num           = round(0.748*An_num);
%功率
Pts                = [32,0.32]; 
sigmas             =-92;   
Gains              = 0;
Factors            = 36.7;
Loss1              = 36.8;
shadows            = 0;
%算法模拟次数,通过多次循环,计算平均,提高算法的稳定性。
MTKL               = 200;  
sigmas2            = 10^(sigmas/10)/1e3;
%
%统计仿真出的SIR结果和数值的SIR结果
SIRv               = zeros(MTKL,1e5);
 
for ijk = 1:MTKL
    ijk
    
    %首先构建Grid六边形
    [POS_1,POS_2]                    = func_Grid(lamda);
    
    %定义网络的大尺度衰落
    [Fading_DB,Fading]               = func_Fading(POS_1,POS_2);
..............................................................................
    %大尺度衰减下的选择
    Sel_PLdb                         = Fading_DB(UEsel,Sel_Start);
    Sel_PL                           = Fading(UEsel,Sel_Start);
    
    %信道
    H_Channel                        = func_channel(NSel_Start,NUEsel,Sel_PL);                
 
    %预编码            
    Weight_Channel                   = func_PreCode(NSel_Start,Smaps,H_Channel,Pts,0);
 
    %计算SIR
    for jn = 1:length(intersect(1:length(POS_2(1,:)),UEsel));  
        [Rs2,PowerX,Sel_diff,NSel_diff,Userid] = func_R2(Weight_Channel,H_Channel,Smaps,UEsel,Sel_Start,jn);
        Rs1                                    = func_R1(Weight_Channel,H_Channel,jn,Sel_diff,NSel_diff);
        SIRv(ijk,Userid)                       = SIRv(ijk,Userid) + func_SIRcal(PowerX,Rs1,Rs2,sigmas2);
    end  
end
 
[Pc,SIR] = func_Pc(SIRv);
 
figure
plot(SIR,Pc,'-r>',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.0]);
xlabel('SIR threshold');
ylabel('覆盖率');
axis([-6,10,0.1,1]);
save data_grid1.mat SIR Pc