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

news2025/1/21 7:18:07

目录

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)
    i
    PF_times = 100;%m为调度次数
    G        = Nums(i);%为UE个数
    CC       = 3; %个数
    T        = Twind;
    Rbs      = zeros(G,CC,PF_times);   %矩阵s为每次调度RB所分配的UE
    Rates    = 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:G
        dist1 = 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);
    end
    Wk = 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);
        %初始化alpha
        alpha            = 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;
                end
            end
            Rbs(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); 
            else
               Avg_rate(1,k2,n+1)=(1-1/T).*Avg_rate(1,k2,n)+(1/T).*Sum_rate(k2,k2,n);
            end
        end
    end
    Rates_=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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/105789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IPv4 和 IPv6 报文格式详解

文章目录1 概述2 报文格式2.1 IPv42.2 IPv62.3 两者区别3 网工软考真题1 概述 2 报文格式 2.1 IPv4 中文名英文名长度 bit(位)解释版本Version4IP协议版本号,固定为 4首部长度Header Length4数据报首部的总长度。 以 4 Byte(字节…

【Java基础知识复盘】Java概述篇

本人知识复盘系列的博客并非全部原创,大部分摘自网络,只是为了记录在自己的博客方便查阅,往后也会陆续在本篇博客更新本人查阅到的新的知识点,望悉知! Java概述 何为编程 编程就是让计算机为解决某个问题而使用某种程…

100多条2023年元宇宙统计数据!Hubbleverse替你整理好了!

欢迎来到Hubbleverse 🌍 关注我们 关注宇宙新鲜事 📌 预计阅读时长:9分钟 本文仅代表作者个人观点,不代表平台意见,不构成投资建议。 元宇宙最近被评为最热门的新兴技术趋势之一。在过去的几年里,元宇宙…

SpringBoot整合Mybatis之Mapper接口和映射文件

一、什么是MyBatis MyBatis中文网https://mybatis.net.cn/ MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型…

消息中间件执行原理

1 关于消息中间件 1.1 什么是消息中间件? 消息中间件是指在分布式系统中完成消息的发送和接收的基础软件。 消息中间件也可以称消息队列(Message Queue / MQ),用高效可靠的消息传递机制进行与平台无关的数据交流,并基…

区块链技术应用展望

区块链作为一个"去中心化"的分布式账本数据库,能够让数据的产生、运行和应用更加公开与透明。区块链被认为是互联网之后又一大创新之举,是第二个互联网时代——价值互联网时代的来临,区块链将从基础设施层面为各行各业带来巨大的变…

力扣(LeetCode)353. 贪吃蛇(2022.12.20)

请你设计一个 贪吃蛇游戏,该游戏将会在一个 屏幕尺寸 宽度 x 高度 的屏幕上运行。如果你不熟悉这个游戏,可以 点击这里 在线试玩。 起初时,蛇在左上角的 (0, 0) 位置,身体长度为 1 个单位。 你将会被给出一个数组形式的食物位置…

C++中二叉树的递归遍历方法

在《C中二叉树的非递归遍历方法2-1》中提到,二叉树的遍历分为前序遍历、中序遍历、后序遍历和层序遍历四种。要遍历的二叉树如图1所示。 图1 二叉树结构 创建该二叉树的代码请参见《C中二叉树的非递归遍历方法2-1》。 1 前序遍历的递归实现 前序遍历的输出顺序是…

VC2010 的控制台程序中使用 EasyX

以下是在 VC2010 的控制台应用程序中使用 EasyX 的具体步骤: 1. 启动 VC2010,点击菜单 File -> New -> Project...,打开 New Project 对话框: 2. 选择 “Win32 Console Application” 类型的项目,并选择项目所在…

「驱动知识」Linux下RTC时间的读写分析

Linux下RTC时间的读写分析​ 1.1.1 系统时间与RTC时间​ Linux系统下包含两个时间:系统时间和RTC时间。​ 系统时间:是由主芯片的定时器进行维护的时间,一般情况下都会选择芯片上最高精度的定时器作为系统时间的定时基准,以避免…

【我不熟悉的javascript】map和weakmap的区别

map 保存键值对,并且能够记住键的原始插入顺序,任何值(对象或者基本类型)都可以作为一个键或一个值 基本方法有 get, set, has, delete, clear长度 .size迭代 keys, values, extries, forEach可以使用for ...of 迭代任何值(对象或者基本类型)都可以作为…

如何在头条做营销:2022今日头条营销价值洞察报告.pdf(附下载链接)

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2022年11月份热门报告盘点《底层逻辑》高清配图华为2021数字化转型:从战略到执行.pdf华为项目管理金种子培训教材.pdf清华大学256页PPT元宇宙研究报告.pdf&#xf…

nn.AdaptiveAvgPool2d和nn.AvgPool2d的区别

nn.AdaptiveAvgPool2d 功能:该函数与二维平均池化运算类似,区别主要体现在自适应上,对于任何输入大小,输出大小均为指定的HW大小。 nn.AdaptiveAvgPool2d(output_size)output_size:指定的输出大小,可以是…

echarts-for-weixin只显示折线图,其他不显示解决办法

小程序使用echarts-for-weixin展示图表,结果只展示折线图,其他的统统不显示,百度大法一下午终于知道可能是echarts包内只有折线图。 下载好替换搞定!

【Vue 快速入门系列】3分钟掌握Vue中插槽的使用与理解

文章目录前言一、常规实现方式二、匿名插槽三、具名插槽四、作用域插槽前言 插槽作用:让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于 父组件 > 子组件 。 插槽分类:默认插槽、具名插槽、作用域插…

docker部署solr+zk集群

在三台服务器上搭建solr集群,具体架构如下所示: 192.168.184.127 solr1/zk1 192.168.184.128 solr2/zk2 192.168.184.129 solr3/zk3 1.安装docker 三台服务器上都执行以下命令 # setenforce 0 # systemctl stop firewall…

代码随想录Day56|583.两个字符串的删除操作 、72.编辑距离、编辑距离总结篇

文章目录583.两个字符串的删除操作72.编辑距离编辑距离总结篇583.两个字符串的删除操作 文章讲解:代码随想录 (programmercarl.com) 题目链接:583. 两个字符串的删除操作 - 力扣(LeetCode) 题目: 给定两个单词 wor…

Flume EmbeddedAgent

flume flume 二次开发,对EmbeddedAgent的简易改造,动态控制agent,实现启动、关闭等功能。 模块结构如下所示: flume-parent github地址 1、用途 1.1、本地调试 对flume不是特别熟悉的开发者,都没有办法一次开发完…

消息队列mq

1. 为什么使用消息队列? 其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么? 解耦、异步、削峰 2. 消息队列优缺点 2.1.优点 优点上面已经说了,就是在特殊…

并查集的原理及实现

Ⅰ. 并查集原理 在一些应用问题中,需要将 n 个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述这…