m在LTE-A系统载波聚合下的资源分配算法的matlab仿真

2023-11-10 11:21

本文主要是介绍m在LTE-A系统载波聚合下的资源分配算法的matlab仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

        载波聚合即CA,是LTE-A中的关键技术。是为满足用户峰值速率和系统容量提升的要求,增加系统传输带宽的技术,通过CA技术,用户最高上网速率可提升到300Mbps,带来极速上网体验。载波聚合是LTE-A中的关键技术。为了满足单用户峰值速率和系统容量提升的要求,一种最直接的办法就是增加系统传输带宽。因此LTE-Advanced系统引入一项增加传输带宽的技术,也就是CA。CA技术可以将2~5个LTE成员载波聚合在一起,实现最大100MHz的传输带宽。有效提高了上下行传输速率。终端根据自己的能力大小决定最多可以同时利用几个载波进行上下行传输。CA功能可以支持连续或非连续载波聚合,每个载波最大可以使用的资源是110个RB。每个用户在每个载波上使用独立的HARQ实体,每个传输块只能映射到特定的一个载波上。

      LTE采用由eNB构成的单层结构,这种结构有利于简化网络和减小延迟,实现低时延、低复杂度和低成本的要求。与3G接入网相比,LTE减少了RNC节点。名义上LTE是对3G的演进,但事实上它对3GPP的整个体系架构作了革命性的改变,逐步趋近于典型的IP宽带网络结构。

      LTE的架构也叫E-UTRAN架构,如图3所示。E-UTRAN主要由eNB构成。同UTRAN网络相比,eNB不仅具有NodeB的功能,还能完成RNC的大部分功能,包括物理层、MAC层、RRC、调度、接入控制、承载控制、接入移动性管理和Inter-cellRRM等。

为了满足LTE-A下行峰速1 Gbps,上行峰速500 Mbps的要求,需要提供最大100 MHz的传输带宽,但由于这么大带宽的连续频谱的稀缺,LTE-A提出了载波聚合的解决方案。

载波聚合(Carrier Aggregation, CA)是将2个或更多的载波单元(Component Carrier, CC)聚合在一起以支持更大的传输带宽(最大为100MHz)。

每个CC的最大带宽为20 MHz。

为了高效地利用零碎的频谱,CA支持不同CC之间的聚合(如图1)

·         相同或不同带宽的CCs

·         同一频带内,邻接或非邻接的CCs

·         不同频带内的CCs 


      从基带(baseband)实现角度来看,这几种情况是没有区别的。这主要影响RF实现的复杂性。

      CA的另一个动力来自与对异构网络(heterogeneous network)的支持。后续会在跨承载调度(cross-carrier scheduling)中对异构网络进行介绍。

2.仿真效果预览

matlab2022a仿真结果如下:

 

3.MATLAB核心程序

for i = 1:length(Nums)iPF_times = 100;%m为调度次数G        = Nums(i);%为UE个数CC       = 3; %个数T        = Twind;Rbs      = zeros(G,CC,PF_times);   %矩阵s为每次调度RB所分配的UERates    = zeros(G,G);            %整个调度过程每个UE所获得的速率Avg_rate = ones(1,G,PF_times+1);  %每个UE所获得的平均速率Rand_rate= [];Sum_rate = [];%根据用户在CC上的路径损耗进行分组%我们建设CC坐标为,用户坐标随时产生XY1      = [100,200];XY2      = [300,100];XY3      = [200,400];XY       = 1000*rand(2,G);SET      = [];%定义权重因子L        = CC;for j=1:Gdist1 = sqrt((XY(1,j)-XY1(1))^2 + (XY(2,j)-XY1(2))^2); dist2 = sqrt((XY(1,j)-XY2(1))^2 + (XY(2,j)-XY2(2))^2);dist3 = sqrt((XY(1,j)-XY3(1))^2 + (XY(2,j)-XY3(2))^2);dist  = [dist1,dist2,dist3];%不同载波频率衰减不一样PL1(j)   = 58.83+37.6*log(10*dist1/1e3) + 21*log(10*f1);PL2(j)   = 58.83+37.6*log(10*dist2/1e3) + 21*log(10*f2);PL3(j)   = 58.83+37.6*log(10*dist3/1e3) + 21*log(10*f3);[V,I]    = min([PL1(j),PL2(j),PL3(j)]);SET(j)   = I;%分组号Wk(j)    = L/G*dist(I)/Avg_rate(1,j,end);distt(j) = min(dist);endWk = Wk/max(Wk);%距离较大的定义为郊区[VV,II] = sort(distt);Ijiq    = II(round((1-ker)*G):G);Izx     = II(1:round((1-ker)*G)-1);for n=1:PF_times;  %调度次数rng(n);%初始化alphaalpha            = zeros(1,G);%侵略因子%生成随机速率信息Rand_rate(:,:,n) = randint(G,CC,[0 500]);  %pf调度%每个RB开始分配for jq = 1:CC;  t  = 1;if jq == 1;PL=PL1;end;if jq == 2;PL=PL2;end;if jq == 3;PL=PL3;end;for jG = 2:G; if Rand_rate(jG,jq,n)/Avg_rate(1,jG,n)>Rand_rate(t,jq,n)/Avg_rate(1,t,n) & PL>=300+50*rand;t = jG;endendRbs(t,jq,n) = G*rand;end %获得的速率Sum_rate(:,:,n) = Rbs(:,:,n)*Rand_rate(:,:,n)';   %整个调度过程每个UE所获得的速率Rates(:,:)  = Sum_rate(:,:,n)+Rates(:,:); %更新平均速率for k2=1:G;              if rand>0.2%得到服务Avg_rate(1,k2,n+1)=(1-1/T).*Avg_rate(1,k2,n); elseAvg_rate(1,k2,n+1)=(1-1/T).*Avg_rate(1,k2,n)+(1/T).*Sum_rate(k2,k2,n);endendendRates_=Wk*Rates;speed1(i) = sum(sum(Rates_(:,Ijiq)))/1e6;speed2(i) = sum(sum(Rates_(:,Izx)))/1e6;speed(i)  = speed1(i)+speed2(i);
end
01_181m

4.完整MATLAB

V

这篇关于m在LTE-A系统载波聚合下的资源分配算法的matlab仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/382344

相关文章

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方