3. 信道编码基础:Turbo码原理、LDPC码简介、Polar码在5G中的应用

信道编码,说白了就是给数据加一层「防弹衣」。我在小基站项目里摸爬滚打这些年,最深的体会就是:没有好的信道编码,再高的信噪比也白搭。今天咱们聊聊三种主流编码——Turbo、LDPC和Polar。嗯,它们各有各的脾气。

3.1 Turbo码:迭代解码的鼻祖

Turbo码是3G/4G时代的扛把子。它的核心思想很巧妙:用两个简单的卷积码并行编码,然后通过迭代解码互相纠错。我当年第一次看到Turbo码的仿真结果时,差点以为仿真器坏了——性能离香农限那么近,这不科学啊!

Turbo码编码器结构

两个递归系统卷积码(RSC)编码器,中间夹一个交织器。输入比特流先送进第一个RSC,同时经过交织器打乱顺序后送进第二个RSC。两个编码器输出的校验比特,加上原始信息比特,一起发出去。

解码时用迭代的MAP算法(也叫BCJR算法)。每次迭代,两个解码器交换「软信息」——也就是对数似然比(LLR)。我习惯迭代4-6次,再多就收益递减了。

避坑指南

我曾经在FPGA上实现Turbo解码器时,发现迭代次数设成8次,延迟直接翻倍,但增益只多了0.1dB。后来我学乖了:小基站场景下,4次迭代是性价比最优的选择。

3.2 LDPC码:低密度奇偶校验的威力

LDPC码其实比Turbo码发明得更早(1960年代),但直到90年代才被重新发现。它的特点是:校验矩阵非常稀疏——大部分元素是0,只有少量1。这种稀疏性让解码可以用简单的消息传递算法(BP算法)实现。

我个人觉得LDPC码最大的优势是并行性好。Turbo码的解码是串行的(两个解码器来回迭代),而LDPC的BP算法天然适合并行计算。在5G NR中,LDPC码被选为数据信道的编码方案,原因之一就是高吞吐量场景下的硬件实现效率。

特性 Turbo码 LDPC码
解码复杂度 中等(迭代MAP) 较低(BP算法)
并行性 差(串行迭代) 好(并行更新)
短码性能 较好 一般(需要长码)
5G应用 控制信道 数据信道

注意

LDPC码的校验矩阵设计很关键。我见过有人随便生成一个稀疏矩阵就用,结果解码器死活不收敛。记住:矩阵的围长(girth)至少要4,最好6以上,否则短环会严重恶化性能。

3.3 Polar码:5G控制信道的宠儿

Polar码是土耳其教授Erdal Arikan在2008年提出的。它是第一种被严格证明能达到香农容量的编码方案。你想想看,这有多厉害——香农限自1948年提出以来,终于有人从理论上找到了完美逼近的方法。

Polar码的核心是「信道极化」现象。什么意思呢?通过递归的极化变换,N个独立的二进制输入信道会变成两类:一部分信道容量趋近于1(好信道),另一部分趋近于0(坏信道)。我们只需要在好信道上传输信息比特,坏信道上传输固定比特(冻结比特)。

在5G NR中,Polar码被用于控制信道(如PDCCH、PBCH)。为什么?因为控制信道的码块长度通常较短(几十到几百比特),而Polar码在短码场景下性能优于LDPC码。我在做5G小基站物理层时,Polar解码器的实现让我头疼了好一阵——SCL(串行抵消列表)算法的延迟控制是个精细活。

Polar码解码算法对比

  • SC(串行抵消):复杂度O(N log N),但性能一般
  • SCL(串行抵消列表):列表大小L=8或16,性能接近MAP,复杂度O(L·N log N)
  • CA-SCL(CRC辅助SCL):加CRC校验后,性能进一步提升,是5G标准方案

3.4 三种编码在小基站中的选型建议

做小基站物理层实现时,编码选型不能只看理论性能。我建议你从三个维度考虑:

  1. 吞吐量要求:如果峰值速率要求高(比如1Gbps以上),LDPC码是首选,它的并行解码架构更容易达到高吞吐。
  2. 码块长度:短码(< 1024比特)场景下,Polar码的SCL解码器性能更好;长码场景下LDPC码更优。
  3. 硬件资源:Turbo码的解码器面积最小,适合低成本方案;LDPC和Polar的解码器都需要较大的存储资源(特别是LLR存储和路径度量存储)。

我的经验

我曾经在一个项目中,为了兼容4G和5G,不得不在同一颗FPGA上同时实现Turbo和LDPC解码器。最后我采用了时分复用的方式:Turbo解码器用4次迭代,LDPC解码器用10次BP迭代,共享一部分存储和运算单元。嗯,这样资源节省了约30%。

3.5 小结

三种编码各有千秋。Turbo码成熟可靠,LDPC码高吞吐,Polar码短码性能优异。在5G小基站中,数据信道用LDPC,控制信道用Polar,这是标准答案。但如果你在做4G/5G双模设备,Turbo码依然绕不开。

最后说一句:信道编码的实现,理论仿真和硬件实现之间往往有差距。我建议你多跑定点仿真,看看量化位数对性能的影响——这个坑我踩过,希望你别再踩。