博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接
本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。
博客内容主要围绕:
5G/6G协议讲解
算力网络讲解(云计算,边缘计算,端计算)
高级C语言讲解
Rust语言讲解
文章目录
- 一、5G中传输块(TBS)大小的计算方式
- 二、影响TBS的因素
- 三、如何计算TBS
- 3.1 计算TBS的步骤
- 参考
一、5G中传输块(TBS)大小的计算方式
TBS:传输块大小(Transport Block Size)
TB:传输块(Transport Block)
CB:码块(Code Block)
5G NR中的传输块,就是在MAC层和物理层之间传递的有效载荷,特别是对于PDSCH和PUSCH等共享数据信道。传输块在被映射到PDSCH以通过空口传输之前,会在发射机处由物理层进行处理。会在一个传输块中添加CRC,并将其分成多个CB,如下所示。TB由多达百万个比特组成,CB由多达8448个比特组成。
二、影响TBS的因素
在PDSCH上接收数据的设备在尝试解码数据之前,必须确定TB的大小。UE通过解析RRC信令以及PDCCH上的下行控制信息(DCI)来解析TB的大小。
下图描述了获得传输块大小的简化图表,并提供了影响TB大小的参数列表:
- 传输层数(Layers(v))
- 调制阶数(QM)
- 码率(R)
- 物理资源块(PRB)的数量
- 传输周期
三、如何计算TBS
在4G LTE中,传输块大小由MCS字段和资源块分配(Resource block Allocation,PRBs)的函数表提供。然而,5G NR支持的带宽要大得多,传输持续时间也很长,开销也会随CSI-RS等配置的其他特性而变化。就传输块大小而言,这将导致需要大量的表来处理这种大的动态范围。
当某些参数发生变化时,这种方案也可能需要修改。因此,5G NR选择了一种基于公式的方法,并结合最小TBS表,以获得必要的灵活性。
3.1 计算TBS的步骤
-
UE要确定RE的数量(N’RE),即在单个资源块的带宽内可用于数据传输的RE的数量,相关公式如下:
其中:
- N’RE:表示每个资源块(RB)中可用于数据传输的资源元素(RE)的数;
- N s c R B N_{sc}^{RB} NscRB:一个PRB中子载波的数。例如,12;
- N s y m b l s h N_{symbl}^{sh} Nsymblsh:在一个slot内分配给PDSCH的符号数;
- N D M R S P R B N_{DMRS}^{PRB} NDMRSPRB:在这个调度周期内,每个PRB上DMRS占用的RE数;
- N o h P R B N_{oh}^{PRB} NohPRB:头部开销,由PDSCH Serving Cell中的高层参数xOverhead配置;
-
如果N’RE的值大于156,则向下取整为156,即在单个资源块的带宽范围内,假定UE不会分配超过156个RE的资源。使用常规循环前缀(CP,cyclic prefix)下,单个RB带宽内的RE总数为12 x 14 = 168。
-
最终的N’RE值乘以已分配RB的数量,最后的结果记为NRE。已分配RB的数量是从PDCCH的DCI中获取的。
-
NRE的值表示可用于数据传输的总的RE数。
-
然后将可用于数据传输的总RE数转换为信息比特数。信息比特数的多少取决于调制方式、编码速率和层数。UE使用如3GPP下公式:
其中:
- NRE:表示可用于数据传输的总的RE数;
- R:码率;
- QM:调制阶数;
- v:MIMO的层数;
调制阶数和目标码率均从MCS表中提取;
如果使用DCI 1_0接收到PDSCH资源分配,则层数固定为1。否则,层数需要通过查找DCI 1_1表中的“DMRS Ports”列的“Antenna Ports”获得。层数等于分配的DMRS端口数; -
如果Ninfo <= 3824位,则TBS根据3GPP TS 38.214表确定;否则,TBS根据公式确定。确定TBS的具体步骤如下图所示。
-
这个3824比特的门限是基于LDPC信道编码使用“Base Graph 2”时可处理的最大码块大小3840位确定的。CRC比特在信道编码之前添加。大小为3824比特的传输块有一个16比特的CRC,即CRC添加后的总大小可以达到3840比特。LDPC的“Base Graph 1”可以处理的最大码块大小为8448比特,因此对于“Base Graph 1”和“Base Graph 2”来说,如果TB <= 3824比特则不需要在信道编码之前进行分块。
-
当Ninfo > 3824时,会添加一个24比特的CRC而不是16比特的CRC。此外,可能需要在信道编码之前进行分段。当分段时,额外的24比特CRC会被添加到每个分段。下面的计算考虑了这24比特的CRC。N’info的计算公式如下:
-
这个等式会生成一个包含整数字节的结果。它也成一个步长,该步长取决于Ninfo的值。对于较小的Ninfo值,会生成一个64比特的步长,随着Ninfo值的增加,步长增加到128、256、512……比特。
接下来使用以下3个公式之一计算传输块的长度:
- 如果码率 <= 0.25,则使用LDPC ’ Base Graph 2 '(最大码块大小为3816 + 24 = 3840比特),并应用以下公式:
- 如果 N’info > 8424比特,然后将使用LDPC ’ Base Graph I '(最大代码块大小为8424 + 24 = 8448比特),并应用以下公式:
- 否则使用下面的公式:
- 如果码率 <= 0.25,则使用LDPC ’ Base Graph 2 '(最大码块大小为3816 + 24 = 3840比特),并应用以下公式:
参考
- 3GPP TS 38.214 NR; Physical layer procedures for data
- https://5g-tools.com/5g-nr-tbs-transport-block-size-calculator/