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份完整源码
标签:Drop,ratio,people,MM,Outage,注水,ratio2,功率,分配 From: https://blog.51cto.com/u_15815923/5743789