5G NR PDSCH传输块大小计算实战指南从参数解析到查表验证在5G NR物理层开发中准确计算PDSCH物理下行共享信道的传输块大小TBSize是确保调度算法正确性的关键环节。许多初入行业的工程师面对3GPP 38.214协议中复杂的公式和条件判断时常常感到无从下手。本文将采用参数输入→计算步骤→结果验证的线性流程结合具体数值案例带你完整走通TBSize计算全流程。1. 基础参数准备与理解在开始计算前需要明确几个核心概念和输入参数MCS调制与编码方案通过DCI中的5比特字段指示决定了调制阶数(Qm)和目标码率(R)。协议定义了三种MCS表格Table 5.1.3.1-1常规码率64QAM及以下Table 5.1.3.1-2高码率256QAMTable 5.1.3.1-3低码率QPSK/16QAM资源分配参数n_PRB分配的PRB数量N_sh_symb一个slot内PDSCH的符号数N_PRB_DMRS每个PRB中DMRS占用的RE数N_PRB_oh高层配置的开销参数通常为0/6/12/18示例配置假设我们有一个典型场景Qm416QAMR0.4v2层n_PRB50N_sh_symb10DMRS配置类型1CDM组不含数据N_PRB_DMRS6N_PRB_oh02. 可用RE资源计算TBSize的计算起点是确定可用于数据传输的RE资源总数分为三个步骤2.1 单个PRB内的可用RE计算每个PRB在频域有12个子载波时域符号数由调度决定需扣除DMRS和开销N_{RE}^{PRB} 12 \times N_{sh}^{symb} - N_{PRB}^{DMRS} - N_{PRB}^{oh}代入示例参数N_RE_PRB 12×10 - 6 - 0 114 RE2.2 总RE资源计算将单个PRB的RE数扩展到分配的PRB总数N_{RE}^{total} n_{PRB} \times \min(156, N_{RE}^{PRB})其中156是单个PRB的最大RE限制。我们的示例中N_RE_total 50 × min(156,114) 50×114 5700 RE2.3 信息比特数N_info计算基于总RE资源、调制阶数和码率N_{info} N_{RE}^{total} \times R \times Q_m \times v示例计算结果N_info 5700 × 0.4 × 4 × 2 182403. N_info的量化处理根据协议规定需将N_info与阈值3824比较选择不同的量化路径3.1 小数据块处理N_info ≤ 3824当N_info不超过3824时采用查表法量化公式N_{info} 2^n \times round(\frac{N_{info}}{2^n})其中nmax(3, ⌊log₂N_info⌋-6)查表5.1.3.2-1获取不小于N_info的最小TBSize假设案例若N_info1800n max(3, ⌊log₂1800⌋-6) max(3,10-6)4 N_info 2⁴ × round(1800/16) 16×113 1808 查表得TBSize18643.2 大数据块处理N_info 3824我们的示例属于这种情况处理流程更复杂首先计算中间量n ⌊log₂(N_{info})⌋ - 5 N_{info} max(3840, 2^n × round(\frac{N_{info}}{2^n}))示例计算n ⌊log₂18240⌋-5 14-5 9 N_info max(3840, 2⁹×round(18240/512)) max(3840,512×36)18432根据码率选择最终计算公式当R≤0.25时TBSize 8 × C × ⌈(N_info24)/8C⌉ - 24其中C⌈(N_info24)/3816⌉当R0.25且N_info8424时TBSize 8 × C × ⌈(N_info24)/8C⌉ - 24当R0.25且N_info≤8424时TBSize 8 × ⌈(N_info24)/8⌉ - 24我们的示例R0.40.25且N_info184328424C ⌈(1843224)/3816⌉ 5 TBSize 8×5×⌈(1843224)/40⌉ -24 40×462 -24 184564. 特殊场景处理与验证技巧实际工程中还需注意以下特殊情况系统信息传输当DCI由SI-RNTI加扰时强制使用QPSKQm2TBSize不得超过2976典型SIB1传输场景示例# SIB1参数示例 Qm 2 # QPSK R 0.1 # 低码率 v 1 # 单层 n_PRB 20 N_sh_symb 8 N_PRB_DMRS 6覆盖增强场景当DCI由P-RNTI/RA-RNTI加扰时引入缩放因子SS≤1计算公式变为N_info S × N_RE_total × R × Qm × v验证工具开发建议实现自动化计算脚本时建议按以下结构组织代码def calculate_tbsize(n_PRB, N_sh_symb, N_PRB_DMRS, N_PRB_oh, R, Qm, v): # Step 1: Calculate total RE N_RE_PRB 12 * N_sh_symb - N_PRB_DMRS - N_PRB_oh N_RE_total n_PRB * min(156, N_RE_PRB) # Step 2: Calculate N_info N_info N_RE_total * R * Qm * v # Step 3: Quantization and TBS determination if N_info 3824: # Small block processing ... else: # Large block processing ... return TBSize5. 工程实践中的常见问题排查即使按照流程计算实际项目中仍可能遇到结果不符的情况。以下是典型问题排查表问题现象可能原因检查点TBSize偏小DMRS开销计算错误检查CDM组配置和符号数与协议示例不符码率表选择错误确认使用的MCS表格版本超过最大值未应用SIB1限制检查RNTI类型和Qm值量化异常n值计算错误验证log2和取整操作在实验室验证阶段建议采用以下步骤交叉验证使用3GPP 38.214附录中的参考案例进行回归测试对比商用仪器如Keysight/罗德的输出结果在MATLAB或Python中实现两种独立算法进行结果比对实际项目中遇到过的一个典型陷阱当DMRS配置为Type1且CDM组为1100时N_PRB_DMRS的计算需要考虑频域密度加倍。这直接导致RE总数减少15%最终影响TBSize结果。
5G NR PDSCH TBSize计算保姆级教程:从N_info量化到查表,手把手带你跑通流程
发布时间:2026/6/5 15:35:35
5G NR PDSCH传输块大小计算实战指南从参数解析到查表验证在5G NR物理层开发中准确计算PDSCH物理下行共享信道的传输块大小TBSize是确保调度算法正确性的关键环节。许多初入行业的工程师面对3GPP 38.214协议中复杂的公式和条件判断时常常感到无从下手。本文将采用参数输入→计算步骤→结果验证的线性流程结合具体数值案例带你完整走通TBSize计算全流程。1. 基础参数准备与理解在开始计算前需要明确几个核心概念和输入参数MCS调制与编码方案通过DCI中的5比特字段指示决定了调制阶数(Qm)和目标码率(R)。协议定义了三种MCS表格Table 5.1.3.1-1常规码率64QAM及以下Table 5.1.3.1-2高码率256QAMTable 5.1.3.1-3低码率QPSK/16QAM资源分配参数n_PRB分配的PRB数量N_sh_symb一个slot内PDSCH的符号数N_PRB_DMRS每个PRB中DMRS占用的RE数N_PRB_oh高层配置的开销参数通常为0/6/12/18示例配置假设我们有一个典型场景Qm416QAMR0.4v2层n_PRB50N_sh_symb10DMRS配置类型1CDM组不含数据N_PRB_DMRS6N_PRB_oh02. 可用RE资源计算TBSize的计算起点是确定可用于数据传输的RE资源总数分为三个步骤2.1 单个PRB内的可用RE计算每个PRB在频域有12个子载波时域符号数由调度决定需扣除DMRS和开销N_{RE}^{PRB} 12 \times N_{sh}^{symb} - N_{PRB}^{DMRS} - N_{PRB}^{oh}代入示例参数N_RE_PRB 12×10 - 6 - 0 114 RE2.2 总RE资源计算将单个PRB的RE数扩展到分配的PRB总数N_{RE}^{total} n_{PRB} \times \min(156, N_{RE}^{PRB})其中156是单个PRB的最大RE限制。我们的示例中N_RE_total 50 × min(156,114) 50×114 5700 RE2.3 信息比特数N_info计算基于总RE资源、调制阶数和码率N_{info} N_{RE}^{total} \times R \times Q_m \times v示例计算结果N_info 5700 × 0.4 × 4 × 2 182403. N_info的量化处理根据协议规定需将N_info与阈值3824比较选择不同的量化路径3.1 小数据块处理N_info ≤ 3824当N_info不超过3824时采用查表法量化公式N_{info} 2^n \times round(\frac{N_{info}}{2^n})其中nmax(3, ⌊log₂N_info⌋-6)查表5.1.3.2-1获取不小于N_info的最小TBSize假设案例若N_info1800n max(3, ⌊log₂1800⌋-6) max(3,10-6)4 N_info 2⁴ × round(1800/16) 16×113 1808 查表得TBSize18643.2 大数据块处理N_info 3824我们的示例属于这种情况处理流程更复杂首先计算中间量n ⌊log₂(N_{info})⌋ - 5 N_{info} max(3840, 2^n × round(\frac{N_{info}}{2^n}))示例计算n ⌊log₂18240⌋-5 14-5 9 N_info max(3840, 2⁹×round(18240/512)) max(3840,512×36)18432根据码率选择最终计算公式当R≤0.25时TBSize 8 × C × ⌈(N_info24)/8C⌉ - 24其中C⌈(N_info24)/3816⌉当R0.25且N_info8424时TBSize 8 × C × ⌈(N_info24)/8C⌉ - 24当R0.25且N_info≤8424时TBSize 8 × ⌈(N_info24)/8⌉ - 24我们的示例R0.40.25且N_info184328424C ⌈(1843224)/3816⌉ 5 TBSize 8×5×⌈(1843224)/40⌉ -24 40×462 -24 184564. 特殊场景处理与验证技巧实际工程中还需注意以下特殊情况系统信息传输当DCI由SI-RNTI加扰时强制使用QPSKQm2TBSize不得超过2976典型SIB1传输场景示例# SIB1参数示例 Qm 2 # QPSK R 0.1 # 低码率 v 1 # 单层 n_PRB 20 N_sh_symb 8 N_PRB_DMRS 6覆盖增强场景当DCI由P-RNTI/RA-RNTI加扰时引入缩放因子SS≤1计算公式变为N_info S × N_RE_total × R × Qm × v验证工具开发建议实现自动化计算脚本时建议按以下结构组织代码def calculate_tbsize(n_PRB, N_sh_symb, N_PRB_DMRS, N_PRB_oh, R, Qm, v): # Step 1: Calculate total RE N_RE_PRB 12 * N_sh_symb - N_PRB_DMRS - N_PRB_oh N_RE_total n_PRB * min(156, N_RE_PRB) # Step 2: Calculate N_info N_info N_RE_total * R * Qm * v # Step 3: Quantization and TBS determination if N_info 3824: # Small block processing ... else: # Large block processing ... return TBSize5. 工程实践中的常见问题排查即使按照流程计算实际项目中仍可能遇到结果不符的情况。以下是典型问题排查表问题现象可能原因检查点TBSize偏小DMRS开销计算错误检查CDM组配置和符号数与协议示例不符码率表选择错误确认使用的MCS表格版本超过最大值未应用SIB1限制检查RNTI类型和Qm值量化异常n值计算错误验证log2和取整操作在实验室验证阶段建议采用以下步骤交叉验证使用3GPP 38.214附录中的参考案例进行回归测试对比商用仪器如Keysight/罗德的输出结果在MATLAB或Python中实现两种独立算法进行结果比对实际项目中遇到过的一个典型陷阱当DMRS配置为Type1且CDM组为1100时N_PRB_DMRS的计算需要考虑频域密度加倍。这直接导致RE总数减少15%最终影响TBSize结果。