1. QC-LDPC码的多码长设计原理
在5G NR标准中,QC-LDPC码通过基图(BG)和移位因子Z的协同设计实现灵活码长支持。这种设计就像搭积木——BG提供基础结构框架,Z值决定每个积木块的放大倍数。具体来看:
基图维度决定最小颗粒度:BG1的系统列数为22列,BG2为10列。这意味着当Z=1时,BG1支持的最小信息位长度为22比特,BG2为10比特。实际应用中,Z值通常远大于1,因此系统列数成为码长调整的"最小步进单位"。
移位因子的指数扩展:Z取值遵循a×2^j的规律(a∈{2,3,5,7,9,11,13,15},j=0-5),这种设计使得码长呈近似指数增长。例如当a=2时,Z可取2,4,8,...,384,对应码长范围从几十比特到上万比特。
填充比特的精细调节:当K=k×Z与待编码块大小(CBS)不完全匹配时,通过添加填充比特实现精确匹配。这些填充比特不参与实际传输,就像裁缝在布料上做的临时标记线,确保最终成衣尺寸精准。
实测数据显示,BG1在Z=384时可支持最大8448比特的码块(22×384),比LTE的6144比特提升了37.5%,充分满足5G eMBB业务的高吞吐需求。
2. 多码率设计的实现策略
QC-LDPC的码率灵活性来自三个层面的协同设计:
2.1 基图的行列裁剪
通过选择BG的不同子矩阵实现码率切换。例如BG1的完整校验矩阵有46行,当仅使用前4行校验方程时,码率为(68-4)/68≈0.94;使用全部46行时码率降至(68-46)/68≈0.32。这就像水龙头的流量调节——开的校验行越少,信息流量越大。
2.2 校验比特的增量传输
支持IR-HARQ时,系统可先发送高码率版本(如0.9),若解码失败再逐步发送预留的校验比特。实测表明,这种增量冗余方式比LTE Turbo码的重传效率提升20%以上。
2.3 系统比特的智能打孔
对高码率场景,可选择性打孔部分系统比特。标准规定优先打孔大列重对应的2Z个系统比特,因其在译码时信息流动更强,抗打孔能力更好。这就好比建筑中的承重墙不能拆除,但可以适当移除非承重墙。
3. 硬件友好的并行设计
为平衡灵活性与硬件效率,5G NR采用了创新性的并行架构:
Banyan网络优化:当Z为2的幂时,采用蝶形结构的Banyan连线器,仅需Z×log₂Z个2-1 MUX单元。例如Z=64时,相比通用QSN网络可节省约40%的逻辑资源。
分层译码加速:将校验矩阵划分为多个层级,每层可并行处理。在Xilinx UltraScale+ FPGA上的实测显示,这种设计可使吞吐率达到1.2Gbps@100MHz。
动态重构机制:通过配置寄存器实时切换BG和Z值。某商用基带芯片实测表明,模式切换延迟小于50ns,满足5G的时延要求。
4. 性能优化关键技巧
在实际部署中,我们总结了几个提升QC-LDPC性能的实用方法:
移位值优化:通过mod(Vij, Z)计算循环移位值时,优先选择能增大围长(Girth)的参数。测试表明,当围长从6提升到8时,BLER=10⁻⁵所需的SNR可降低约0.3dB。
早期终止策略:设置动态阈值,当校验方程满足率超过95%时可提前终止迭代。某基站芯片采用该技术后,平均迭代次数从8次降至5次。
混合调度算法:对BG1前4行采用分层调度,后42行使用泛洪调度。这种混合方式在保持性能的同时,能降低15%的内存访问开销。
5. 典型配置实例分析
以BG1+Z=96的配置为例(对应码长6528比特):
矩阵构造:
- 将46×68的BG中每个"1"替换为96×96循环移位矩阵
- 移位值Pij=mod(Vij,96),其中Vij来自标准定义的基准值
速率匹配:
# 伪代码示例 def rate_matching(code_rate): if code_rate > 0.67: use_rows = round(46 * (1 - code_rate)) return bg_matrix[:use_rows] else: return bg_matrix # 全矩阵用于低码率性能对比:
码率 吞吐量(Mbps) 所需SNR(dB) 1/3 320 -2.1 1/2 480 1.2 2/3 640 3.8 5/6 800 6.5
在实际项目中,我们通常会根据信道质量动态选择BG和Z值组合。例如在小区边缘优先使用BG2+低Z值配置,而在基站近点则采用BG1+高Z值组合以获得更高频谱效率。