m基于matlab的软件无线电注水功率分配算法性能仿真,对比C-PF,C-CUBP,C-DUBP等

简介: m基于matlab的软件无线电注水功率分配算法性能仿真,对比C-PF,C-CUBP,C-DUBP等

1.算法描述

   注水算法是根据某种准则,并根据信道状况对发送功率进行自适 应分配,通常是信道状 况好的时刻,多分配功率,信道差的时候, 少分配功率,从而最大化传输速率。注水算法是根据某种准则,并根据信道状况对发送功率进行自适应分配,通常是信道状况好的时刻,多分配功率,信道差的时候,少分配功率,从而最大化传输速率。实现功率的注水分配,发送端必须知道CSI。当接收端完全知道信道而发送端不知道信号时,发送天线阵列中的功率平均分配是合理的。当发送端知道信道,可以增加信道容量。

    信道功率的注水分配 [1] 是一种形象的说法——假设要为几个信噪比(γ)各不相同的子信道分配功率。曲线1/γ 代表碗底;而功率被注入这只碗,直到恒定的水面线1/γ0(γ0是参考信噪比)为止。对于某个给定信噪比为γ的子信道,注入的功率量是1/γ0− 1/γ,即碗底(1/γ)和水面(1/γ0)之间的水量。

   注水原理背后的思路是充分利用信道的良好状况:信道状况好的时刻(γ大),多分配功率,即提高数据传输速率;信道状况差的时候(γ小),少分配功率,即降低数据传输速率;如果信道状况低于某个阀值(比如γ<γ0),就不分配功率。运用注水分配,可以最大化传输速率。

1.png
2.png
3.png
4.png

Step3:若分配到最小增益的信道能量为负值,即设,p=p+1,转至 Step1;

若任意非负,即得到最佳注水功率分配策略。

2.仿真效果预览
matlab2022a仿真如下:

5.png
6.png
7.png
8.png

   分布式算法,主要是降低算法的资源消耗,但是性能不如集中式算法。降低资源消耗,集中性非常耗资源,而分布式则可以大大降低资源消耗,但性能只是略低于集中式,所以选择分布式。

3.MATLAB核心程序

Parts               = 5;
Ts                  = 5;
Steps               = 5;
End_Times           = 10000;
Factor              = zeros(2,KK);
Rm                  = zeros(1,1);
Qm                  = zeros(1,1);
Alloc               = zeros(1,KK);
T_users             = T_users;
 
dr                  = 0;
or                  = 0;
ind                 = 0;
ino                 = 0;
rhoBE               = 0.5;
 
for schedule_time = 1:Steps:End_Times%for each time slot
    t = schedule_time;
    if  schedule_time <= 2*Steps
        M  = randperm(length(T_users));
        M1 = M(1:floor(length(T_users)/2));
        M2 = M(floor(length(T_users)/2)+1:end);
        PI1= zeros(1,length(M1));
        PI2= zeros(1,length(M2));
        ind0 = find(T_users <= mean(T_users));
        ind1 = find(T_users >  mean(T_users));
        for j = 1:KK
            for k = 1:length(M1)
                PI1(k) = T_users(M1(k));
            end
            for k = 1:length(M2)
                PI2(k) = T_users(M2(k));
            end    
            Len     = min(length(M1),length(M2));
            PIs     = PI1(1:Len) + PI2(1:Len);
           [V,I]    = max(PIs); 
           Xmax(j)  = V;
        end
        SK =[];
        for j1 = 1:length(ind0)
            for j2 = 1:length(ind1)
                if Xmax(ind0(j1)) >= Xmax(ind1(j2))
                   SK = [SK,j1]; 
                end
            end
        end
        SK    = unique(SK);
        if isempty(SK) == 1
           SK = 1;
        end
        tmps  = log2(1 + beta*abs(SNIR));
        Rm    = mean(Xmax(SK))*mean(mean(tmps));
        Qm    = 100;
        tmpsR1= Rm;
        tmpsR2= tmpsR1;
        tmpsQ = Qm;
    else
        M  = randperm(length(T_users));
        M1 = M(1:floor(length(T_users)/2));
        M2 = M(floor(length(T_users)/2)+1:end);
        PI1= zeros(1,length(M1));
        PI2= zeros(1,length(M2));
        ind0 = find(T_users <= mean(T_users));
        ind1 = find(T_users >  mean(T_users));
        for j = 1:KK
            for k = 1:length(M1)
                PI1(k) = T_users(M1(k));
            end
            for k = 1:length(M2)
                PI2(k) = T_users(M2(k));
            end    
            Len     = min(length(M1),length(M2));
            PIs     = PI1(1:Len) + PI2(1:Len);
           [V,I]    = max(PIs); 
           Xmax(j)  = V;
        end
        SK =[];
        for j1 = 1:length(ind0)
            for j2 = 1:length(ind1)
                if Xmax(ind0(j1)) >= Xmax(ind1(j2))
                   SK = [SK,j1]; 
                end
            end
        end
        SK     = unique(SK);
        if isempty(SK) == 1
           SK = 1;
        end
        Rm     = (1-rhoBE)*tmpsR1 + rhoBE*tmpsR2; 
        Qm     =  tmpsQ - Rm*Ts*sum(T_users(SK));
        tmpsR1 =  Rm;
        tmpsR2 =  tmpsR1;
        tmpsQ  =  Qm;
    end
    p = rand;
    if p <= 0.3;
       ino = ino + KK;
       p2 = rand;
       if p2 <= 0.5;
          ind = ind + KK;
       end
    end
end
 
SU = Rm/1e2;
Rms= Rm/KK/3;
dr = ind/End_Times;
or = ino/End_Times;
01_098m
相关文章
|
9天前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
10天前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
8天前
|
算法
基于HASM模型的高精度建模matlab仿真
本课题使用HASM进行高精度建模,介绍HASM模型及其简化实现方法。HASM模型基于层次化与自适应统计思想,通过多层结构捕捉不同尺度特征,自适应调整参数,适用于大规模、高维度数据的分析与预测。MATLAB2022A版本运行测试,展示运行结果。
|
11天前
|
存储 算法 决策智能
基于免疫算法的TSP问题求解matlab仿真
旅行商问题(TSP)是一个经典的组合优化问题,目标是寻找经过每个城市恰好一次并返回起点的最短回路。本文介绍了一种基于免疫算法(IA)的解决方案,该算法模拟生物免疫系统的运作机制,通过克隆选择、变异和免疫记忆等步骤,有效解决了TSP问题。程序使用MATLAB 2022a版本运行,展示了良好的优化效果。
|
9天前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
10天前
|
机器学习/深度学习 算法 芯片
基于GSP工具箱的NILM算法matlab仿真
基于GSP工具箱的NILM算法Matlab仿真,利用图信号处理技术解析家庭或建筑内各电器的独立功耗。GSPBox通过图的节点、边和权重矩阵表示电气系统,实现对未知数据的有效分类。系统使用MATLAB2022a版本,通过滤波或分解技术从全局能耗信号中提取子设备的功耗信息。
|
10天前
|
机器学习/深度学习 算法 5G
基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
基于MIMO系统的SDR-AltMin混合预编码算法通过结合半定松弛和交替最小化技术,优化大规模MIMO系统的预编码矩阵,提高信号质量。Matlab 2022a仿真结果显示,该算法能有效提升系统性能并降低计算复杂度。核心程序包括预编码和接收矩阵的设计,以及不同信噪比下的性能评估。
27 3
|
13天前
|
机器学习/深度学习 算法 数据挖掘
提高时钟置换算法的性能
【10月更文挑战第25天】通过上述一种或多种方法的综合应用,可以在不同程度上提高时钟置换算法的性能,使其更好地适应各种复杂的系统环境和应用场景,提高虚拟内存管理的效率和系统的整体性能。
32 5
|
14天前
|
机器学习/深度学习 存储 算法
基于Actor-Critic(A2C)强化学习的四旋翼无人机飞行控制系统matlab仿真
基于Actor-Critic强化学习的四旋翼无人机飞行控制系统,通过构建策略网络和价值网络学习最优控制策略。MATLAB 2022a仿真结果显示,该方法在复杂环境中表现出色。核心代码包括加载训练好的模型、设置仿真参数、运行仿真并绘制结果图表。仿真操作步骤可参考配套视频。
33 0
|
24天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。