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

相关文章

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断