m基于matlab的站点休眠中继CDMA网络动态节能控制算法仿真与性能分析

简介: m基于matlab的站点休眠中继CDMA网络动态节能控制算法仿真与性能分析

1.算法概述

  蜂窝网络不仅需要能够为用户提供高质量的语音服务,而且要能够提供大量的数据传输服务,这就决定了蜂窝网络的发展必须要进一步提高系统容量和高速数据速率覆盖,而传统的蜂窝网络基本无法满足目前的需求。为了满足不断提高系统需求,需要通过通过增加基站密度可以提升系统容量,提高数据传输速率,但是,这会大大增加网络的成本为代价来实现的。仅仅当通信用户数目也以和基站同样级别增加的时候才是可行的[01]。但这在大部分国家,特别是在一些发达国家,蜂窝电话己经高度普及,因此这种方案几乎无法被接受。另一方面,同样数量的用户将要求更高的传输速率,这将成为造成未来无线系统吞吐量拥塞的瓶颈。假设用户不愿意像对语音通话一样对每比特的数据付同样的钱,大量增加基站数目在经济上也是不合算的。针对这种情况,目前应用较为广泛的是中继节点的应用,中继节点RS作为一种比BS更为简单、成本更低的技术可以进一步扩大的整个小区信号的覆盖范围以及增加数据传输速率。中继节点的基本作用是通过缩减基站和用户站之间的传输距离,对信号进行重新处理并向前转发从而提升无线链路质量。

    当中继节点关闭以后,可以大大降低能耗,此时的中继节点失去了发送的能力,被称为休眠节点。而在一个大型的蜂窝网中,由于每个单一的中继节点并不会在每时每刻都处于工作之中,那么会对整个网络产生一定的冗余,在这样一个环境中,中继节点收集到的数据高度相关,完全可以让一部分中继节点休眠,而让另一部分中继节点工作,此外,在中继节点密度较高的区域,此时,在不影响整个小区性能的前提下,通过关闭一部分节点的方法,可以有效降低整个小区的功耗。

   下面讨论在引入节点休眠算法之后,整个小区的功耗,吞吐量以及能效等性能指标。假设在某一时刻,整个小区有k0个中继节点关闭,k-k0个中继节点在正常工作,那么整个小区的总的功耗为:

1.png
2.png

2.仿真效果预览
matlab2022a仿真

从上面的式子可知,通过节点休眠算法后,整个系统的能效显然提高了。下面讨论节点休眠算法的休眠控制机制。

3.png

图1的仿真对比效果可知,采用节点休眠算法后的中继蜂窝网具有最小功耗,其次是中继蜂窝网,而普通蜂窝其功耗最大。

4.png

   改进后的中继蜂窝其吞吐量略大于中继蜂窝网,大于普通蜂窝网,故在吞吐量指标上,基于节点休眠算法的中继蜂窝网具有最佳的性能。此外,从理论上分析可知,采用普通中继算法的吞吐量和采用休眠节点算法的中继模式的系统吞吐量是相同的,但在实际中,考虑各个基站和中继之间的影响及干扰,当采用休眠算法的中继算法的时候,将无关的基站和中继均关闭,这样可以有效降低部分临近区域的基站或中继的干扰,所以采用休眠节点算法的吞吐量会略大于普通中继算法的吞吐量。

5.png

    采用改进算法后的中继蜂窝网,其能效最佳,且在用户较少的时候,其性能更为优越,而当用户数量增加的时候,其性能快速下降,但其整体能效仍然优于普通蜂窝网和中继蜂窝网。

3.MATLAB部分代码预览

load MATLAB_basic_platform\cell.mat
%显示该通信平台
               %系统内总用户数  %总中继数                      %用户设备位置坐标  %基站位置坐标       %中继位置坐标
               %小区半径        %小区个数                      %服务扇区列表     %每个扇区中的用户数  %每个小区的Relay数  %服务小区列表
func_draw_cell(nTotalNumofUser,nNumofCell*nNumofRelayPerCell,dUEPosition      ,dBSPosition        ,dRelayPosition,...
               dCellRadius    ,nNumofCell                   ,ServingSector    ,nNumofUserPerSector,nNumofRelayPerCell,ServingCell_Relay);
           
 
           
Simulation_time = 50;
 
Max_people      = 18;
Step_people     = 1;
Min_people      = 2;
ALL_throughput  = 0;
ALL_Power_comp  = 0;
p               = 0;
%计算吞吐量
%每个小区5个用户
for i = Min_people:Step_people:Max_people
    p = p + 1;
    ALL_throughput  = 0;
    ALL_Power_comp  = 0;
    for k = 1:Simulation_time%利用蒙特卡罗的思想,对一个情况进行多次计算,结果用平均值表示
        i
        [T_user,Power] = func_traffic(i);
        %进行调度
        T_PF_Scheduler = func_PF_Scheduler(T_user,i);
        %计算吞吐量
        ALL_throughput = ALL_throughput + sum(T_PF_Scheduler);
        ALL_Power_comp = ALL_Power_comp + sum(sum(Power));
    end
    ALL_throughput2(p) = ALL_throughput/Simulation_time;
    ALL_Power_comp2(p) = ALL_Power_comp/Simulation_time;
end
%计算能效
figure(6);
%计算能效 = 用户吞吐量/功耗
plot(MM,ALL_throughput2./ALL_Power_comp2,'b-*','LineWidth',2);title('能效 = 用户吞吐量/功耗');grid on;
xlabel('用户数量');
ylabel('能效');
01-40m
相关文章
|
4天前
|
资源调度 监控 算法
基于扩频解扩+LDPC编译码的QPSK图传通信系统matlab误码率仿真,扩频参数可设置
该通信系统主要用于高质量图像传输,如无人机、视频监控等场景。系统采用QPSK调制解调、扩频技术和LDPC译码,确保复杂电磁环境下的稳定性和清晰度。MATLAB仿真(2022a)验证了算法效果,核心程序包括信道编码、调制、扩频及解调等步骤,通过AWGN信道测试不同SNR下的性能表现。
27 6
基于扩频解扩+LDPC编译码的QPSK图传通信系统matlab误码率仿真,扩频参数可设置
|
1天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PPO强化学习的buckboost升降压电路控制系统matlab仿真,对比PID控制器
本项目利用MATLAB 2022a对基于PPO强化学习的Buck-Boost电路控制系统进行仿真,完整代码无水印。通过与环境交互,智能体学习最优控制策略,实现输出电压稳定控制。训练过程包括初始化参数、收集经验数据、计算优势和奖励函数并更新参数。附带操作视频指导,方便用户理解和应用。
25 12
|
2天前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。
|
1天前
|
算法
基于梯度流的扩散映射卡尔曼滤波算法的信号预处理matlab仿真
本项目基于梯度流的扩散映射卡尔曼滤波算法(GFDMKF),用于信号预处理的MATLAB仿真。通过设置不同噪声大小,测试滤波效果。核心代码实现数据加载、含噪信号生成、扩散映射构建及DMK滤波器应用,并展示含噪与无噪信号及滤波结果的对比图。GFDMKF结合非线性流形学习与经典卡尔曼滤波,提高对非线性高维信号的滤波和跟踪性能。 **主要步骤:** 1. 加载数据并生成含噪测量值。 2. 使用扩散映射捕捉低维流形结构。 3. 应用DMK滤波器进行状态估计。 4. 绘制不同SNR下的轨迹示例。
|
8月前
|
Web App开发 JavaScript 前端开发
JavaScript中的性能优化:代码优化技巧与性能分析工具
【4月更文挑战第22天】本文探讨JavaScript性能优化,包括代码优化技巧和性能分析工具。建议避免全局查找、减少DOM操作、使用事件委托、优化循环和异步编程以提升代码效率。推荐使用Chrome DevTools、Lighthouse和jsPerf等工具进行性能检测和优化。持续学习和实践是提升JavaScript应用性能的关键。
|
2月前
|
缓存 监控 Linux
Linux性能分析利器:全面掌握perf工具
【10月更文挑战第18天】 在Linux系统中,性能分析是确保软件运行效率的关键步骤。`perf`工具,作为Linux内核自带的性能分析工具,为开发者提供了强大的性能监控和分析能力。本文将全面介绍`perf`工具的使用,帮助你成为性能优化的高手。
174 1
|
2月前
|
缓存 监控 Linux
掌握Linux性能分析:深入探索perf工具
【10月更文挑战第26天】
81 1
|
3月前
|
Web App开发 监控 JavaScript
一些常用的 Vue 性能分析工具
【10月更文挑战第2天】
173 1
|
4月前
|
SQL 缓存 关系型数据库
MySQL高级篇——性能分析工具
MySQL的慢查询日志,用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long-query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为 10,意思是运行10秒以上(不含10秒)的语句,认为是超出了我们的最大忍耐时间值。它的主要作用是,帮助我们发现那些执行时间特别长的 SOL 查询,并且有针对性地进行优化,从而提高系统的整体效率。当我们的数据库服务器发生阻塞、运行变慢的时候,检查一下慢查询日志,找到那些慢查询,对解决问题很有帮助。
MySQL高级篇——性能分析工具
|
8月前
|
监控 Java 开发者
Java一分钟之-Java性能分析与调优:JProfiler, VisualVM等工具
【5月更文挑战第21天】本文介绍了Java性能优化的两个利器——JProfiler和VisualVM。JProfiler通过CPU Profiler、内存分析器和线程视图帮助解决过度CPU使用、内存泄漏和线程阻塞问题;VisualVM则聚焦于GC行为调整和类加载优化,以减少内存压力和提高应用性能。使用这些工具进行定期性能检查,是提升Java应用效率的关键。
214 0