LTE - UE Category和速率到底是什么关系?_yu_yuan_hong的博客-程序员秘密

技术标签: LTE  

一般你问那些砖家UE Category N对应的速率是多大时,他会直接把协议里的一张表格发给你,你看到表格后,还是六神无主,因为这个表格只会提供几个你看不懂的非典型大小的bit数(典型数据一般类似1024/32768这类2^{n}规律的数),然后你问那对应的速率到底是多少?他一般会轻描淡写地回复:自己计算然后你也不好再问,因为你不想面对一个饱含这样意思的表情"这你都不会啊?!表格都已经写得这么清楚了!" 

我也经历过无数次类似的情形,比如当时配置一个环境,涉及到交换机VLAN的配置时,我去请教一个老员工,她提到要如何如何配置汇聚链路时,我问汇聚链路是什么,她说“就是Trunk Link啊,Trunk Link你都不懂啊”。基于这样的经历,平时有同事问到我写的一些笔记里我认为非常基础从而一笔带过的配套知识时,我仍然愿意非常详细地讲解,并且讲解过程中,自己可能会有更深理解(教然后知困)。如果这篇文章有些一笔带过的点你觉得有疑问,欢迎私信交流。

 

1. 定义

UE Category定义在哪里?---- 36.306 - 4.1 ue-Category

以DL为例:

UE Category

Maximum number of DL-SCH transport block bits  received within a TTI (Note 1)

Maximum number of bits of a DL-SCH transport block  received within a TTI

Total number of soft channel bits

Maximum number of supported layers for spatial  multiplexing in DL

Category 1

10296

10296

250368

1

Category 2

51024

51024

1237248

2

Category 3

102048

75376

1237248

2

Category  4

150752

75376

1827072

2

Category 5

299552

149776

3667200

4

Category 6

301504

149776 (4  layers, 64QAM)

75376 (2 layers, 64QAM)

3654144

2 or 4

                          ……………………….

 Table 4.1-1: Downlink physical layerparameter values set by the field ue-Category

 

2. 字面意思

乍一看表格,首行的第2列和第3列的描述几乎一模一样。

我看了好几遍才看出区别,现在把这两列里的蓝色文字分别放到上下两行(如下)进行对比:

第2列:Maximum number of DL-SCH transport block bits received within a TTI

第3列:Maximum number of bits of a DL-SCH transport block received within a TTI

最大区别就是在红色部分,我们翻译一下就比较容易区分了:

第2列:一个TTI里接收到的所有DL-SCH TB的bit数的最大量(可能有多个DL-SCH TB -- TB Set)

第3列:一个TTI里接收到一个DL-SCH TB的bit数的最大量(只有一个TB -- TB)

 

3. MAC层速率计算

现在字面意思清楚了,我们根据字面意思来算一下速率(以比较具有代表性的DL CAT-4为例):

假设一个TTI(1ms)传输一个TB,那么速率是:

75376/(1/1000) =75.376Mbps

这个CAT里的最高速率是多少呢?

用第2列的150752/(1/1000) = 150.752Mbps

可以看到150752= 75376*2, 说明CAT-4最多包含2个TB.

 

4. TB数和layer的对应关系

注意,上面说的只是字面意思,真实的含义是什么?TB个数和layer数对应关系是怎样的?

我们注意到最后一列“Maximum number of supported layers for spatial multiplexing in DL”,是指空分复用支持的层数,层数与MIMO支持度对应起来,比如DL 2*2 MIMO, 就支持两层,下图比较清晰[1],跟CAT-4正好对应上:

2 Layers <=> 2 TBs

图片

但是layer和TB是一一对应的吗?

不一定,最多支持2个TB,但是MIMO可以支持4×4或更大。

如上表:

CAT-2: 2Layers  <=>  1 TB

CAT-6: 4Layers  <=>  2 TBs

注意,这里只是讨论TB数和Layer数的对应关系,实际MAC层每个TB进入到PHY层后,到最终进入Layer mapper之前,还要经历:

TB CRC插入==> 码块分割+CRC插入 ==> 信道编码 ==> 速率匹配 ==> 码块级联(至此形成codeword,与TB一一对应)  ==>  加扰 ==> 调制。

 

5. soft channel bits

到这里就完了吗?No, 第4列“Total numberof soft channel bits”还没讲呢。

“Total number of soft channel bits”字面意思是“软信道比特总数”,其实就是指HARQ缓存大小。

下行最多同时有8个HARQ进程,每个HARQ进程传输经过信道编码后的数据,信道编码采用码率为1/3的Turbo码,所以HARQ缓存的数据量要远大于传输数据(如下图[2])。

以Cat-4为例,表格里这个数是1827072.

同时8个HARQ进程,每个进程:1827072/8 = 228384.

如果信道编码采用1/3码率的Turbo码,则:22384/3 = 76128

我们看到76128大于75376,因为这之前还有CRC,码块分割等过程产生的一些bit.

CRC/码块分割/信道编码/速率匹配的细节是比较大的主题,在此先按下不表,需专门文章讨论。

图片

 

Reference

[1] http://www.sharetechnote.com/

[2] 4G: LTE/LTE-Advanced for Mobile Broadband((Erik Dahlman, Stefan Parkvall, Johan Sko¨ld)

[3] 3GPP TS 36.306 UserEquipment (UE) radio access capabilities

[4] 3GPP TS 36.211 Physicalchannels and modulation

[5] 3GPP TS 36.212 Multiplexing and channel coding

[6] 3GPP TS 36.213 Physical layer procedures(s06-s07)


 笔者在公众号“协议工程师笔记”定期发布5G/LTE/IMS...学习笔记, 敬请关注、订阅和分享,谢谢!

                                                               图片

                                                                      一起努力,蒸蒸日上

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/travel_life/article/details/118018479

智能推荐

HttpSession详解_113羊皮卷的博客-程序员秘密

转载自chuansir的博客:session的机制     http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现会话跟踪呢?session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客户,session是以cookie

在Java中,计算一个字符串中每个字符出现次数_MeanderCloud的博客-程序员秘密_java字符串出现次数

1、直接上代码public class CheckWord { public static void main(String[] args) { /*1.定义一个字符串*/ Scanner input = new Scanner(System.in); System.out.println("请输入一串字符:"); String word = input.next(); showWord(word); }

centos6.5安装apache php mysql_Centos6.5 下安装配置Apache+PHP+Mysql环境_伊凹遥的博客-程序员秘密

1.准备工作# yum -y update &amp;&amp; yum -y install vim make cmake gcc gcc-c++ bison bison-devel ncurses ncurses-devel autoconf automake wget unzip lrzsz zlib zlib-devel libgcrypt* libtool*2.安装apache2.2# ...

大数据时代,看看这些牛x的单位吧 - TB, PB, EB, ZB, YB, NB, DB, CB_YYDataV数据可视化的博客-程序员秘密

Byte是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制。目前我们常用计算存储空间的最小单位(其实还有更小的bit,1 Byte=8 bit)。不过从硬盘或者叫做存储空间来说,我们用到的最小单位是KB(Kilobyte),大小为2的10次方字节,与Byte换算是:1KB=1024Byte以后的换算基本都是以2的10次方来递增的。1KiB(Ki

经典算法学习——直接插入排序_乞力马扎罗的雪CYF的博客-程序员秘密

直接插入排序也是比较简单的排序,基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。具体描述如下:设数组为a[0...n-1],(1)初始时,a[0]自成为一个有序区,无序区为a[1...n-1]. 令i=1;(2)将a[i]并入到当前的有序区a[0...i-1]中形成a[0...i]的有序区间;(3)i++并重复(2),直到i==

基于Dubbo的分布式系统架构(四):进行多模块分布式开发_御前两把刀刀的博客-程序员秘密

下面以开发一个spring+springmvc+mybatis框架整合程序为例说明分布式开发过程。后台有三大功能模块,分别是用户模块,账户模块,学生模块。划分后的分布式项目分别是smmvc-common(公共模块)、smmvc-user-facade(用户服务接口模块)、smmvc-user-service(用户服务提供者模块)、smmvc-acct-facade(账务服务接口模块)、smmvc-

随便推点

6-6 单链表结点删除 (20 分)_Reza.的博客-程序员秘密

本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:struct ListNode { int data; ListNode *next;};函数接口定义:struct ListNode *readlist();struct ListNode *deletem( struct ListNode *L, int m ...

赤裸裸的学术干涉!IEEE 清理华为系编辑和审稿人_程序员的那些事_的博客-程序员秘密

(给程序员的那些事加星标)原创整理:程序员的那些事(id:iProgrammer)可能之前大家听过「科学无国界」这个说法。它有 2 层含义:一是指科学成果可以由全人类无国...

[状压DP][概率与期望][二分图] BZOJ 5006 && LOJ #2290. 「THUWC 2017」随机二分图_Vectorxj的博客-程序员秘密

SolutionSolution好神的做法。 如果只有type=0type=0的话,直接状压DP就好了。 fS,Tf_{S,T}表示左边集合为SS,右边匹配的集合为TT的完备匹配的数量的期望。 而后面两种可以这么考虑把一组边拆掉。 type=1type=1的话拆成两条50%50\%可能出现的边和一组25%25\%同时出现的边(若重点是不可能同时选的)。 这样的话同时出现的概率为50%×50

Spring-模拟SpringFactory实现原理_lierenbiji21的博客-程序员秘密_springfactory

问题引出Spring思想是通过配置文件把对象配置好,当我们需要使用的时候不需要再去new创建对象,直接从已经创建好的工程里面拿就好了。实现思路第一步:配置文件中配置好类名跟类的全限定类名UserDao=com.gg.dao.UserDaoImplCourseDao=com.gg.dao.CourseDaoImpl第二步:BeansFactory中读取该配置文件,获取全限定类名,通过反射创建对象,存入map集合中import java.io.InputStream;import java.

url参数拼接 php,PHP解析url并得到url参数方法总结_少女壮士的博客-程序员秘密

PHP 中解析 url 并得到 url 参数这里介绍两种对url操作的方法:1、拿到一个完整url后,如何解析该url得到里面的参数。/*** 解析url中参数信息,返回参数数组*/function convertUrlQuery($query){$queryParts = explode('&amp;', $query);$params = array();foreach ($queryPart...

Java & Android Interviews #1_aeaud3002的博客-程序员秘密

1.GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。2.XML包括哪些解释技术,区别是什么?DOM和SAXDOM将文档解...

推荐文章

热门文章

相关标签