深入理解5g <十八>传输块tbsize的计算

5G NR中传输块大小(TBS)的计算是一个标准化的四步流程,其核心思想是:先根据分配的时频资源和传输配置,计算出一个"中间信息比特数",再对这个数值进行量化取整,最终得到在物理信道上实际传输的比特数。

TBS的计算流程定义在3GPP TS 38.214规范中,下行共享信道(PDSCH)和上行共享信道(PUSCH)的TBS确定分别对应第5.1.3.2节和第6.1.4.2节。核心逻辑可概括为三个维度:**物理资源维度**(PRB数、符号数、开销)、**传输配置维度**(调制阶数、码率、MIMO层数)和**编码处理维度**(LDPC基图选择、码块分割)。


📐 第一步:计算可用的资源元素(RE)总数

首先需要计算在一个物理资源块(PRB)内,真正分配给数据传输的资源元素(RE)数量 \( N'_{RE} \)。

**公式为:**

\ N'_{RE} = N\^{RB}_{sc} \\cdot N\^{sh}_{symb} - N\^{PRB}_{DMRS} - N\^{PRB}_{oh} \\

**参数说明:**

  • \( N^{RB}_{sc} = 12 \):每个PRB在频域上有12个子载波。

  • \( N^{sh}_{symb} \):调度分配中用于PDSCH/PUSCH传输的OFDM符号数(一个时隙通常为14个符号)。

  • \( N^{PRB}_{DMRS} \):每个PRB内用于解调参考信号(DM-RS)的RE数,取决于DM-RS配置类型。

  • \( N^{PRB}_{oh} \):高层配置的开销,用于预留其他参考信号(如CSI-RS)的RE,由高层参数 `Xoh-PDSCH` 配置。

然后,计算分配给该UE的总RE数 \( N_{RE} \):

\ N_{RE} = \\min(156, N'_{RE}) \\cdot n_{PRB} \\

其中 \( n_{PRB} \) 是分配的PRB总数。这里对每个PRB的可用RE数做了上限保护,最大不超过156个。


🧮 第二步:计算中间信息比特数(\( N_{info} \))

得到总RE数后,结合调制与编码策略(MCS)和MIMO层数,计算中间信息比特数 \( N_{info} \):

\ N_{info} = N_{RE} \\cdot R \\cdot Q_m \\cdot v \\

**参数说明:**

  • \( R \):目标码率(Code Rate),由MCS索引查表获得。

  • \( Q_m \):调制阶数,QPSK为2,16QAM为4,64QAM为6,256QAM为8。

  • \( v \):MIMO传输层数。


✨ 第三步与第四步:量化得到最终TBS

根据 \( N_{info} \) 的大小,采用两种不同的量化方式:

情况一:\( N_{info} \le 3824 \)

此时使用**查表法**。首先对 \( N_{info} \) 进行一次量化,得到 \( N'_{info} \):

\ N'_{info} = \\max\\left(24, 2\^n \\cdot \\left\\lfloor \\frac{N_{info}}{2\^n} \\right\\rfloor \\right) \\

其中 \( n = \max(3, \lfloor \log_2(N_{info}) \rfloor - 6) \)。这一步是为了将 \( N_{info} \) 对齐到2的幂次边界上。

然后,在3GPP TS 38.214的 **Table 5.1.3.2-1** 中,查找**不小于** \( N'_{info} \) 的最小TBS值,即为最终TBS。该表覆盖了从24到3824比特的一系列标准TBS值。

情况二:\( N_{info} > 3824 \)

此时使用**公式法**。首先计算 \( N'_{info} \):

\ N'_{info} = \\max\\left(3840, 2\^n \\cdot \\text{round}\\left(\\frac{N_{info} - 24}{2\^n}\\right) \\right) \\

其中 \( n = \lfloor \log_2(N_{info} - 24) \rfloor - 5 \)。

最终TBS的计算分为两种情况,取决于码率 \( R \):

  • **当 \( R \le 1/4 \) 时:**

\ TBS = 8 \\cdot C \\cdot \\left\\lceil \\frac{N'_{info} + 24}{8 \\cdot C} \\right\\rceil - 24 \\

其中 \( C = \left\lceil \frac{N'_{info} + 24}{3816} \right\rceil \)。

  • **当 \( R > 1/4 \) 且 \( N'_{info} > 8424 \) 时:**

\ TBS = 8 \\cdot C \\cdot \\left\\lceil \\frac{N'_{info} + 24}{8 \\cdot C} \\right\\rceil - 24 \\

其中 \( C = \left\lceil \frac{N'_{info} + 24}{8424} \right\rceil \)。

  • **其他情况(\( R > 1/4 \) 且 \( N'_{info} \le 8424 \)):**

\ TBS = 8 \\cdot \\left\\lceil \\frac{N'_{info} + 24}{8} \\right\\rceil - 24 \\


📊 计算示例

以下是一个典型的PDSCH TBS计算示例,参数如下:

  • 调制方式:64QAM,\( Q_m = 6 \)

  • 码率:\( R = 948/1024 \approx 0.9258 \)

  • MIMO层数:\( v = 1 \)

  • 分配的PRB数:\( n_{PRB} = 66 \)

  • 每PRB可用RE数:\( N'_{RE} = 8832 / 66 = 133.8 \),取整后为133

**计算过程:**

  1. **计算总RE数:**

\ N_{RE} = \\min(156, 133) \\times 66 = 133 \\times 66 = 8778 \\

  1. **计算 \( N_{info} \):**

\ N_{info} = 8778 \\times 0.9258 \\times 6 \\times 1 \\approx 48768 \\

  1. **由于 \( N_{info} > 3824 \),使用公式法:**
  • \( n = \lfloor \log_2(48768 - 24) \rfloor - 5 = \lfloor 15.57 \rfloor - 5 = 15 - 5 = 10 \)

  • \( N'_{info} = \max(3840, 2^{10} \times \text{round}((48768-24)/2^{10})) = 1024 \times \text{round}(47.6) = 1024 \times 48 = 49152 \)

  • 由于 \( R > 1/4 \) 且 \( N'_{info} = 49152 > 8424 \),使用第二个分支:

\ C = \\left\\lceil \\frac{49152 + 24}{8424} \\right\\rceil = \\left\\lceil 5.84 \\right\\rceil = 6 \\

\ TBS = 8 \\times 6 \\times \\left\\lceil \\frac{49152 + 24}{8 \\times 6} \\right\\rceil - 24 = 48 \\times \\left\\lceil \\frac{49176}{48} \\right\\rceil - 24 = 48 \\times 1025 - 24 = 49176 \\

**最终TBS = 49176比特**。这与MATLAB 5G工具箱的计算结果一致。


⚠️ 关键注意事项

  1. **阈值3824**:这是区分查表法和公式法的关键阈值,超过这个值会引入更复杂的量化过程。

  2. **RE上限156**:每个PRB的可用RE数有156的上限,这是为了防止在高开销场景下计算出不切实际的大TBS。

  3. **DM-RS开销**:DM-RS的RE数取决于DM-RS配置类型(Type 1或Type 2)和CDM组数,是计算 \( N'_{RE} \) 时最易出错的部分。

  4. **码率分支**:公式法中,码率是否大于1/4会导向不同的码块分割策略,直接影响最终TBS值。

  5. **初传与重传一致**:TBS的确定必须保证初传和重传时一致,即使重传时使用的MCS或资源有所调整,也需要通过特定规则回退到初传的TBS。

相关推荐
RAN11426760083 小时前
1.3第一个程序的介绍
开发语言·qt
blue_ice .4 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
远翔调光芯片^138287988724 小时前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
泡海椒5 小时前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
泡泡鱼(敲代码中)5 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
2501_933670795 小时前
平台招商运营校招能力模型:数据分析、SQL与增长场景拆解
开发语言
菜鸟~noob2336 小时前
【Bonjour】华为Peerium架构深度解析:从冯·诺依曼到百万处理器“一台计算机”,附MATLAB性能仿真【含matlab代码,可直接运行】
开发语言·matlab·华为·peerium
白远山7 小时前
24小时自助健身房系统开发实战:从需求分析到完整指南
java·开发语言·数据库·数据挖掘·需求分析
m0_734571767 小时前
深入理解5g <十九> 计算空口的流量
5g