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
**计算过程:**
- **计算总RE数:**
\ N_{RE} = \\min(156, 133) \\times 66 = 133 \\times 66 = 8778 \\
- **计算 \( N_{info} \):**
\ N_{info} = 8778 \\times 0.9258 \\times 6 \\times 1 \\approx 48768 \\
- **由于 \( 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工具箱的计算结果一致。
⚠️ 关键注意事项
-
**阈值3824**:这是区分查表法和公式法的关键阈值,超过这个值会引入更复杂的量化过程。
-
**RE上限156**:每个PRB的可用RE数有156的上限,这是为了防止在高开销场景下计算出不切实际的大TBS。
-
**DM-RS开销**:DM-RS的RE数取决于DM-RS配置类型(Type 1或Type 2)和CDM组数,是计算 \( N'_{RE} \) 时最易出错的部分。
-
**码率分支**:公式法中,码率是否大于1/4会导向不同的码块分割策略,直接影响最终TBS值。
-
**初传与重传一致**:TBS的确定必须保证初传和重传时一致,即使重传时使用的MCS或资源有所调整,也需要通过特定规则回退到初传的TBS。