基于TPC算法的WSN网络资源分配matlab仿真

发布时间 2023-05-25 22:36:21作者: 我爱C编程

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

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

       一个移动通信系统面临的主要问题有三个:由哪些资源组成,资源如何分配?这些资源如何组织形成一个网络,网络架构是什么样子的?各网络组成部分之间如何进行信息交互?

       资源及资源分配、网络架构、信息交互是移动通信系统运行的三大要素。移动通信业务质量的高低往往也取决于可分配资源的多少及资源分配的效率、网络架构的优劣、信息交互的效果。

       通信系统的资源有很多种。从大的方面说,有基础设施资源、硬件资源、软件资源、信息资源;从组网的构成看,有计算资源、存储资源、网络带宽资源;带宽资源又有空口带宽资源、传输网带宽资源等。无线侧资源还可以分为基带资源和射频资源。空口带宽资源是射频资源的一种。

       对于无线的空口带宽资源来说,空间、频率、时间、功率、速率、码序列都是资源的表现形式,这些资源是有限的、越用越少的,是不可凭空再生的资源。空间资源是指天线物理单元或天线逻辑端口;频率资源是指载波(CC)、频点资源(频谱资源)、子载波(SCS)、带宽;时间的资源是指无线空口时域里的每一个帧、子帧、时隙;功率资源是指基站或手机信号发送的功率;数据业务的速率资源属于带宽资源的一种,本质上是空间、频率、时间、功率资源,再加上编码、调制方式共同确定的一种可共享资源;码序列资源用于区别不同小区、用户、信道、格式等的数字序列资源,只要数字序列相互正交,就可以做不同事物区别的标签了。

      何恰当地使用和调度这些通信系统的资源呢?这是各种通信系统面临的共同问题。拿无线空口资源来说,可以始终如一地按照一个规则进行资源调度,也可以根据实际情况动态地调整调度策略,这就是资源的动态或静态调度。自适应能力是资源动态调度、策略动态调整的重要表现形式。

       从物理资源的部署方式来看,可分为集中部署和分布部署。从资源的使用的权限来看,资源分为共享资源和专用资源;从无线资源利用的方式来看,可分为复用和分集,即一个资源承载多个信息,还是一个信息放在多个资源上,本质上看资源利用是效率优先还是可靠性优先。从获取资源的方式来看,可以分为基于竞争和基于调度。

 

3.MATLAB核心程序

 

for ij=1:20
    for NU=1:40
        [ij,NU]
        P_bar         = ones(1,NU*4)/500;
        Gamma_hat     = ones(1,NU*4)/10;
    
        [D,Users, BS] = wsns(NU);
        H             = Pathloss_Gain(D,0.09,-3);
    
        initial_power = ones(1,NU*4).*(rand(1,NU*4)*10^-3);
............................................................................
        Outage_Probability1(NU,ij) = TPC_SR_Outage_probability;
        Outage_Probability2(NU,ij) = TPC_Outage_probability;
        
        Aggregate_Power1(NU,ij)    = TPC_SR_Aggregate_power; 
        Aggregate_Power2(NU,ij)    = TPC_Aggregate_power; 
    end
end
L1=length(H(:,1));
L2=length(H(1,:));
 
iteration=50;
 
figure;
subplot(211)
for i=1:4:L2
    plot(1:iteration,P_TPC_SR(:,i));
    grid on;
    xlabel('Iterations');
    ylabel('TPC-SR Powers');
    hold on;
end
 
subplot(212)
for i=1:4:L2
    plot(1:iteration,P_TPC(:,i));
    grid on;
    xlabel('iterations');
    ylabel('TPC Powers');
    hold on;
end
 figure;
 subplot(121)
 plot(4:4:NU*4,mean(Outage_Probability1(1:NU,:),2),'-bs',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.0,0.0]);
 hold on;
 plot(4:4:NU*4,mean(Outage_Probability2(1:NU,:),2),'-r>',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.0]);
 grid on;
 legend('TPC-SR','TPC');
 xlabel('用户数量');
 ylabel('停机概率');
 subplot(122)
 plot(4:4:NU*4,mean(Aggregate_Power1(1:NU,:),2),'-bs',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.0,0.0]);
 hold on;
 plot(4:4:NU*4,mean(Aggregate_Power2(1:NU,:),2),'-r>',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.0]);
 grid on,;
 legend('TPC-SR','TPC');
 xlabel('用户数量');
 ylabel('总功率(W)');