zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【注水功率分配】注水功率分配算法的MATLAB仿真

MATLAB算法 仿真 分配 功率
2023-09-11 14:15:33 时间

1.软件版本

MATLAB2021a

2.本算法理论知识

        注水算法是根据某种准则,并根据信道状况对发送功率进行自适应分配,通常是信道状况好的时刻,多分配功率,信道差的时候,少分配功率,从而最大化传输速率。实现功率的注水分配,发送端必须知道CSI。

      当接收端完全知道信道而发送端不知道信号时,发送天线阵列中的功率平均分配是合理的。当发送端知道信道,可以增加信道容量。

       考虑一个维的零均值循环对称复高斯信号向量,r为发送信道的秩。向量在传送之前被乘以矩阵。在接收端,接受到的信号向量y被乘以。这个系统的有效输入输出关系式由下式给出:

 

 

 

 

 3.核心代码

clc;
clear;
close all;
warning off;
addpath 'func\'

Simulation_time = 100;

Max_people      = 15;
Step_people     = 3;
Min_people      = 3;

Drop_ratio      = 0;
Outage_ratio    = 0;
p               = 0;

for i = Min_people:Step_people:Max_people
    p = p + 1;
    ALL_throughput  = 0;
    ALL_Power_comp  = 0;
    %利用蒙特卡罗的思想,对一个情况进行多次计算,结果用平均值表示
    for k = 1:Simulation_time
        k
        [T_user,SNIR]                 = func_COMP_VIOP_traffic2(i);
        %进行调度
        [SU,T_C_CUBP_Scheduler,dr,or] = func_C_CUBP_Scheduler(T_user,SNIR,i);  
        %VoIP packet drop ratio
        Drop_ratio                 = dr;
        %VoIP call outage ratio
        Outage_ratio               = or;
    end 
    Drop_ratio2(p)      = Drop_ratio/Simulation_time;
    Outage_ratio2(p)    = Outage_ratio/Simulation_time;
end

%==========================================================================


figure;
MM = Min_people:Step_people:Max_people;
plot(MM,Drop_ratio2,'m--^','LineWidth',2);title('VoIP packet drop ratio');grid on;
xlabel('用户数量');
ylabel('drop ratio');
axis([2,16,0,0.16]);


figure;
MM = Min_people:Step_people:Max_people;
plot(MM,Outage_ratio2,'m--^','LineWidth',2);title('VoIP call outage ratio');grid on;
xlabel('用户数量');
ylabel('outage ratio');
axis([2,16,0,0.7]);

save CCUBP.mat MM Drop_ratio2 Outage_ratio2

4.操作步骤与仿真结论

 

 

 

 

5.参考文献

[1]张冬梅, 徐友云, 蔡跃明. OFDMA系统中线性注水功率分配算法[J]. 电子与信息学报, 2007, 29(6):4.

A01-98

6.完整源码获得方式

方式1:微信或者QQ联系博主

方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码