5G/NR,MCS与TBS的计算_mcs tbs-程序员宅基地

技术标签: 通信  

NR,MCS与TBS的计算

MCS\TBS的基本概念

MCS(Modulation and scheme,调制编码策略):代表了调制方式与编码效率的等级。在3GPP标准的38214中会有MCS等级的表格。常见的256QAM的调制方式会使用5.1.3.1-2:MCS index table 2 for PDSCH。
在这里插入图片描如上述
TBS:是MAC层传给PL层的数据块的大小,它还有一个常见的称呼叫MAC PDU。MAC PDU除以传输时间就是MAC层速率。
信道编码之CRC:CRC(循环冗余校验)是数据通信中最常用的校验码,需要记住TBS不包含CRC,TBS在传给PL层时,需要加上不同bit位数的CRC。比特位的大小跟TBS的长度有关。38.321记载TBS大于3824时,CRC为24位,TBS小于3824时,CRC是16位。
信道编码:5G中业务信道使用LDPC编码,控制信道使用Polar编码。信道编码是为了通过增加冗余,提高系统的纠错能力、发现错误的能力。LDPC编码可以理解为:
有效信息比特和校验矩阵运算后,得到的编码后矩阵,其中有效信息bit为MAC层TBS经过添加CRC后和码块分隔等处理后的信息bit。检验矩阵则是根据信息bit的长度、码率,BG(Base Graph)等,按照一定规则产生的。
LDCP BG1支持的最大码块长度是8448,LDCP BG2支持的最大码块长度是3840。

PDSCH TBS的计算过程–公式解读

1、UE首先计算时隙内分配给PDSCH的RE个数,
N R E ′ N'_{RE} NRE= N S C R B N^{RB}_{SC} NSCRB N s y m b s h N^{sh}_{symb} Nsymbsh- N D M R S P R B N^{PRB}_{DMRS} NDMRSPRB- N o h P R B N^{PRB}_{oh} NohPRB
其中:
N S C R B N^{RB}_{SC} NSCRB:为一个RB中的子载波个数;
N s y m b s h N^{sh}_{symb} Nsymbsh:为一个时隙中的分配个PDSCH的符号数;
N D M R S P R B N^{PRB}_{DMRS} NDMRSPRB:为一个时隙中DMRS占用的子载波,主意DMRS type1与DMRS type2不一致;
N o h P R B N^{PRB}_{oh} NohPRB:为;时隙中由高层参数决定的。
2、计算在一个时隙内,PDSCH所占用的BWP中,所有的分配给PDSCH的RE个数 N R E N_{RE} NRE
N R E N_{RE} NRE=min(156, N R E ′ N'_{RE} NRE)
n P R B n_{PRB} nPRB
注意:156=1213,是指一般情况下一个时隙的所有符号不可能都用来发射PDSCH,一般每个时隙的首符号是用来发PDCCH的。
3、计算信息bit数 N i n f o N_{info} Ninfo
N i n f o N_{info} Ninfo= N R E N_{RE} NRE
R ∗ R* R Q m Q_m Qm* v v v
Q m Q_{m} Qm:是指调制的阶数
R R R:是MCS等级确定的目标码率,注意是目标码率,不一定是真实码率,从公式中也可以看出码率的计算公式,即 N i n f o N_{info} Ninfo与PDSCH信道上传输的比特个数的比值。
v v v:是指下行的层数,是一种空域的特性的表达
个人思考: N i n f o N_{info} Ninfo是TBS的本质,它是MAC层真正想要传给PL的信息比特,但因为要经过信道编码,并不是所有bit个数的信息都可以传送给物理层,比特的个数必须要满足信道编码的特定要求,这些要求构成了TBS的大小限制:

  • TBS必须可以字节对齐,因此TBS必须是8的倍数
  • TBS必须是被码块个数C整除,因此TBS是C的倍数
  • TBS分隔的每个码块必须是字节对齐,因为TBS分隔成码块时,需要 先增加CRC,因此“TBS+CRC”必须是8C的倍数。这一点由后面TBS的计算公式可以看出。
    4、当 N i n f o N_{info} Ninfo<=3824时:
    注意:3824是大小的分界线,是因为小码块LDCP BG2支持的最大码块长度是3840,3824加上16比特的CRC,正好是3840,即一个码块。
    N i n f o N_{info} Ninfo做一个量化处理,得到 N i n f o ′ N'_{info} Ninfo,量化处理从原因是TBS的大小有限制。
    $$

在这里插入图片描述
通过计算得出 N i n f o ′ N'_{info} Ninfo,然后通过查表5.1.3.2-1,来找到最接近并且不小于 N i n f o ′ N'_{info} Ninfo的TBS。如下表所示:
在这里插入图片描述
注意:采用3824作为大小码块的分隔点,是因为LDCP BG2支持的最大码块长度是3840。而3824+16(CRC的比特长度)可以构成一个最小的码块。

5、当 N i n f o N_{info} Ninfo>=3824时:
需要采用如下公式进行量化,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当目标码率R较低时,利用LDCP BG2进行编码。其中C是所需的码块个数,此时TBS需要分割成多个码块才能传播。可以观察到每个TBS的最终计算结果是需要减去24的,因为当TBS大于3824时,CRC的长度是24bit,而码块分隔前是需要先增加CRC的。必须保证增加CRC后,TBS是8C的倍数。
在这里插入图片描述

当TBS进一步变大,超过了LDCP BG1支持的最大码块长度是8448,此时应该使用BG1进行编码。8424+24=8448。
TBS的计算中减去24可以保证增加CRC后是8的倍数,那请问每一个分隔后的码块向PL传播时,还需要加CRC吗?应该是需要的。
上面是BG1 ,多码块传播。
N i n f o N_{info} Ninfo<8424时:
可以利用LDCP BG1单码块传输即可,计算公式如下。

在这里插入图片描述
总结:小TBS可以查表,大TBS是计算,并且需要考虑到分隔成多个码块传播。
写的过程中参考的3GPP协议,以及前面一些博主的文章。也有自己的思考,希望可以记录一下自己的学习过程,也能帮助到大家。

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

智能推荐

spark学习笔记_spark dataframe 列 除以1000-程序员宅基地

文章浏览阅读705次。spark介绍MapReduce存在的缺陷:Spark的模块组成spark的使用模式Spark最核心的数据抽象RDD操作每一个懒操作都会只生成一个rdd对象,但是数据没有加载进来,只有执行了一个action操作,数据才会加载进来..._spark dataframe 列 除以1000

DataFrame的行列索引_dataframe 按行列数索引-程序员宅基地

文章浏览阅读2.3k次。https://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-integer DataFrame.iloc[:,1] : 选择第一列 DataFrame.iloc[1,:] : 选择第一行_dataframe 按行列数索引

软件静默安装_silent install builder-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏22次。最近做一个项目,其中需要使用到一个第三方工具,需要进行安装,但又不能弹出界面,就必须静默安装。。经大佬指点,使用工具 Silent Install Builder 即可。Silent Install Builder1. 安装上面有链接,下载安装即可2. 操作界面是这样点击:Create Silent Installation (中间那个)就可以选择你要静默安装程序的安装包位置然..._silent install builder

Android之ContentProvider(内容提供者)_什么类在contentprovider中担任提供者的角色-程序员宅基地

文章浏览阅读820次。Android四大组件的作用1、Activity是一种展示型组件,是一种前台界面的角色,完成用户的交互。对用户来说,Activity就是Android应用的全部,因为其他三大组件对用户来说是不可感知的。2、BroadcastReceiver是一种消息型组件,主要作用是消息的传递,该消息的传递可以在应用内,也可以在应用之间,它的角色是一个消息的传递者,它同样无法被用户所感知,因为它工作在系统内部..._什么类在contentprovider中担任提供者的角色

HTML类选择器的次一级叫什么,css常见选择器有哪些?优先级是什么?-程序员宅基地

文章浏览阅读128次。css常见选择器有哪些?优先级是什么?下面本篇文章就来给大家介绍一下css常见选择器以及它们的优先级。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。选择器也称为选择符,所有的html语言中的标记都是通过css选择器控制的。常见的css选择器有标签选择器、类选择器、id选择器、通配符选择器。1、标签选择器标签选择器,也称为元素选择器。标签选择器的基本形式如下:tagName{pro..._元素选择器表示形式

vicoapp使用备忘-程序员宅基地

文章浏览阅读1.1k次。vico是一个模式编辑器,意味着没用过vi之类编辑器的童鞋用起来肯定觉得很不习惯。模式切换i:切至编辑模式,在光标前插入a:切至编辑模式,在在光标后插入I:类似于i,不过在行首插入esc键:返回普通模式o:在当前行下方新插入一行,并切至编辑模式O:在当前行上方新插入一行,并切至编辑模式

随便推点

java数据流转化为图片_输出流读取文件内容转换为图片-程序员宅基地

文章浏览阅读3.2k次。package com.gdin.dome;import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.FileReader;import java.io.IOException;import org.junit.Test;public classdome5 {@T..._在线输出流转换图片

openharmony - ets开发一个简单的helloworld并实现页面间跳转_ets的登录跳转代码-程序员宅基地

文章浏览阅读2.1k次。快速做一个简单的helloworld及页面间跳转_ets的登录跳转代码

C语言中的结构体,结构体中数组初始化与赋值_c语言结构体初始化赋值-程序员宅基地

文章浏览阅读8.5w次,点赞18次,收藏86次。原作地址:https://www.cnblogs.com/zhangfeionline/p/5913905.html最近写c语言中的结构体遇到了些问题,从网上找了些资料如下:结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论;1.结构体的定义和赋值结构体是可以直接初始化的,在定义的时候,就可_c语言结构体初始化赋值

java 判断字符串是否以指定字符串的字符开头_string判断以什么开头-程序员宅基地

文章浏览阅读1.7w次,点赞7次,收藏20次。1 ~ 写在前面:很多时候用过的东西不温习就忘记了,到时候需要的时候还是需要百度,温故而知新,说的真好!!2~进入主题Java判断String是否以某个字符串开头:语法:startWith(String prefix, int toffset)prefix:指定的前缀toffset:在字符串中查找的位置,可以省略,省略就从第一个下标开始查找String strTest= "helloWord";System.out.println(strTest.startsWith("hello"_string判断以什么开头

电脑(笔记本)连接Console口配置网络设备(路由器、交换机、防火墙)的方法...-程序员宅基地

文章浏览阅读3.3k次。原文地址:CTOWhy文档库 » 什么是USB转RS232转接头,usb转串口转接头? -------------------------------------------如果使用Console口管理CISCO设备,都是将Console线的一端连接到设备的Console口上,另一端连接到电脑的DB9或者DB25接口上。而DB9和DB25这两种接口一般只在台式..._电脑连接交换机console口进入配置

HTML——文字水印_html 文字水印-程序员宅基地

文章浏览阅读393次,点赞9次,收藏8次。【代码】HTML——文字水印。_html 文字水印

推荐文章

热门文章

相关标签