首页 › deep-tech › 图解5G为何用两套信道编码

LDPC与Polar:5G信道编码的“双雄分工”原理详解

2016年11月,3GPP的RAN1工作组为5G选定了信道编码方案,做出了一个在4G时代看来颇为“反常”的决定:数据信道用LDPC码,控制信道用Polar码,Turbo码这位3G/4G时代的功臣直接出局。为什么一个标准要同时养两套编码?为什么性能在3G时代封神的Turbo会被抛弃?Polar码这个2009年才诞生的“新人”,凭什么只用七年就登上了国际标准?这篇文章不讲新闻,只讲原理——看完你会明白,这其实是数学特性与工程需求之间一次教科书式的“人岗匹配”。


一、一切的起点:香农给出的“天花板”

理解信道编码,先要理解它要解决的问题:信号经过无线信道后必然出错,我们如何让错误尽可能少?

想象你在嘈杂的餐厅里和朋友对话。为了保证对方听懂,你可能会说:“我说的地址是——重复一遍——中山路120号。”你牺牲了一倍的时间,换来了信息传递的可靠性。信道编码做的事情一模一样:在信息里按规则掺入冗余比特,接收方利用这些冗余发现错误、纠正错误。

那冗余掺到什么程度算极限?1948年香农给出了著名的信道容量公式:

$$C = B \log_2 \left(1 + \frac{S}{N}\right)$$

其中 $B$ 是带宽,$S/N$ 是信噪比。这个公式的深刻之处在于它宣判了两件事:

香农只告诉你“好码存在”,却没告诉你怎么构造。此后近半个世纪,编码学界做的事情就是追着这个天花板跑。1950年代到1980年代,人们构造的码距离天花板越来越远(码越长,好码越难找);直到1993年Turbo码出现,人类才第一次“摸到”天花板(距极限约0.5 dB以内);而今天的主角LDPC和Polar,则分别从两个不同的方向把这件事做到了极致。

一个贯穿全文的关键直觉:现代纠错码几乎都放弃了“代数解码”(像纠单错海明码那样直接算出错误位置),转而采用“概率推理”——接收端不再问“这个比特是0还是1”,而是问“这个比特是0的概率有多大”。这就是软信息(Soft Information)思想,是理解后面一切译码算法的地基。

用对数似然比(LLR)来度量一个比特的“可信程度”:

$$\lambda = \ln \frac{P(x=0 \mid y)}{P(x=1 \mid y)}$$

其中 $y$ 是接收到的信号。$\lambda > 0$ 说明更像0,$\lambda$ 越大越确信;$\lambda$ 接近0说明这个比特“飘忽不定”。后面的所有译码算法,本质上都是在LLR上做文章。


二、LDPC:被埋没40年的“随机瀑布”

2.1 一个精妙的想法:用“稀疏”换“可解”

LDPC(Low-Density Parity-Check Code,低密度奇偶校验码)由麻省理工学院的Robert Gallager在1960年的博士论文中提出,1962年正式发表。它生前寂寞,被人遗忘了三十多年,直到1995年前后David MacKay和Radford Neal用计算机仿真重新发现它,才惊艳了整个学界——这个四十年前提出的码,性能竟与1993年的Turbo码不相上下。

Gallager的核心洞察是:一个校验矩阵 $H$,如果它足够“稀疏”(大部分元素是0,只有极少数1),那么虽然码本身是随机感构造的(性能好),但它对应的图结构却是局部简单的(译码可行)。

校验矩阵是编码的“规则书”:每一行是一个校验方程,规定“某些比特模2加起来必须等于0”。例如:

$$H = \begin{bmatrix} 1 & 1 & 0 & 1 \ 0 & 1 & 1 & 0 \ 1 & 0 & 0 & 1 \end{bmatrix}$$

把 $H$ 画成图,就得到著名的Tanner图:每个信息比特是一个变量节点(圆圈),每个校验方程是一个校验节点(方块),$H$ 里的每个"1"连接对应的一条边。“低密度”意味着每个节点只连少数几条边——这个“局部简单性”,正是译码可以高效进行的全部秘密。

flowchart TB
    v1["变量节点 v1"] --- c1["校验节点 c1"]
    v4["变量节点 v4"] --- c1
    v2["变量节点 v2"] --- c1
    v2 --- c2["校验节点 c2"]
    v3["变量节点 v3"] --- c2
    v3 --- c3["校验节点 c3"]
    v4 --- c3

2.2 置信传播:一场“传八卦”式的群体推理

LDPC的译码算法叫置信传播(Belief Propagation,也叫和积算法 Sum-Product),它的工作方式很像一场群体讨论:

  1. 每个变量节点先带着自己的“初步判断”(解调器给出的信道LLR);
  2. 变量节点把判断告诉与自己相连的所有校验节点;
  3. 每个校验节点核对:“我管的这几个比特加起来应该是偶数(校验方程成立)”,发现矛盾后,向每个变量节点反馈“基于其他邻居的意见,我觉得你应该是几”的外信息;
  4. 变量节点把信道信息和各方外信息综合起来,更新判断,进入下一轮;
  5. 如此迭代若干轮,直到所有校验方程都满足,或达到最大迭代次数。

用序列图看一轮迭代中的消息流动:

sequenceDiagram
    participant V as 变量节点
    participant C as 校验节点
    V->>C: 发送信道LLR作为初始置信度
    C->>V: 校验失败节点收到强纠偏外信息
    Note over V: 综合信道信息与外信息后更新判断
    V->>C: 携带更新后判断发起第二轮消息
    C->>V: 外信息更精准矛盾逐步消解
    Note over V,C: 数轮迭代后全部校验通过则译码成功

数学上,硬件中广泛使用的近似版本是归一化最小和(Normalized Min-Sum)算法,校验节点更新外信息时只需比较幅度而不做完整乘法:

$$\lambda_{\text{out}} = \alpha \cdot \prod_{v \in N(c)} \operatorname{sgn}(\lambda_v) \times \min_{v \in N(c)} \left| \lambda_v \right|$$

其中 $\alpha$ 是缩放因子(补偿近似损失),$N(c)$ 是与校验节点 $c$ 相连的变量节点集合。你看,一次更新只需要“取最小值+乘符号”——这就是LDPC译码器可以用极低硬件成本、极高时钟频率实现的原因。

2.3 为什么LDPC能撑起5G的吞吐量

关键在Tanner图的“局部性”带来并行性:

反观Turbo码,其交织器导致译码过程中的数据依赖是全局性的,并行度天然受限。在“每秒几百Gb”的5G吞吐目标面前,这是决定性差距。

5G NR中的LDPC还做了两项关键的工程化设计:

5G为不同包长准备了两张基图:一张面向大码块(下行大流量场景),一张面向短码块(小包、低时延场景),本质上就是“大图高并行、小图低开销”的取舍。


三、Polar:用数学“极化”噪声的新物种

3.1 与众不同的思路:不改信道,就挑信道

LDPC的哲学是“用图上反复迭代消化噪声”。Polar码(极化码)的哲学截然不同——它是迄今唯一能从数学上被证明、在渐近意义下达到香农容量的编码构造,由土耳其毕尔肯大学的Erdal Arıkan教授提出,2009年完整发表于IEEE Transactions on Information Theory。

Arıkan的天才想法可以用一个比喻理解:与其辛辛苦苦在一条嘈杂信道上硬扛,不如把很多条一样的嘈杂信道“合并”起来,再“分裂”开——分裂之后的子信道会自发地走向两个极端:一部分变得完美无噪,一部分变得完全无用。这个两极分化的过程,就是“信道极化”。

最简单的情形是 $N=2$:把两条相同信道 $W$ 通过一个异或操作合并,再逐比特分裂,得到两个子信道:

flowchart LR
    u1["u1 传真实数据"] --> x1["x1 = u1 ⊕ u2"]
    u2["u2 传冻结比特"] --> x1
    u2 --> x2["x2 = u2"]
    x1 --> G1["子信道1 效果变差"]
    x2 --> G2["子信道2 效果变好"]
    G1 --> R["极化方向<br/>一半更差一半更好"]
    G2 --> R

为什么会这样?直觉解释:如果接收端已经可靠地知道了 $u_2$,那么在译 $u_1$ 时可以先把 $u_2$ 的贡献从 $x_1$ 中“减掉”(异或的可逆性),相当于 $u_1$ 独享了一条更干净的信道;反过来,如果 $u_2$ 本身不可靠,$x_1$ 里混杂的两个不确定比特互相“污染”,$u_1$ 的处境就比原来更糟。

关键在于:两者的平均容量保持不变(信息守恒),但分布走向两极。把 $N = 2^n$ 条信道反复做这个合并-分裂操作,编码矩阵是基本核矩阵的 $n$ 次Kronecker积:

$$G_N = \begin{bmatrix} 1 & 0 \ 1 & 1 \end{bmatrix}^{\otimes n}$$

极化定理保证:当 $N \to \infty$ 时,趋于完美的子信道占比恰好收敛到原信道容量 $C$。也就是说,只要挑出占比为 $C$ 的好信道放数据,其余子信道统统传约定好的“冻结比特”(通常是0,接收端反正不需要译它们),整个系统就逼近了香农极限。

flowchart TB
    W["N条相同的一般信道"] --> P["合并再分裂的递归变换"]
    P --> H["坏子信道<br/>不可靠 传冻结比特"]
    P --> L["好子信道<br/>趋近无噪 传真实数据"]
    H --> S["占比约 1-C"]
    L --> S2["占比约 C 恰为信道容量"]

3.2 代价:串行抵消译码的“连环套”

极化的魔法有一个绕不开的代价:译码必须串行。

经典的SC(Successive Cancellation,串行抵消)译码器按固定顺序逐个译比特:先译 $u_1$,用 $u_1$ 的结果辅助译 $u_2$,再用 $u_1, u_2$ 的结果译 $u_3$……每个比特的判决都建立在前面所有比特已定之上。这就像多米诺骨牌——因为 $u_1$ 的“减噪”必须先知道 $u_2$ 是什么,依赖链无法斩断。

串行导致两个后果:

第一个问题的解法是SCL(Successive Cancellation List,列表)译码:译每个比特时不武断地二选一,而是同时保留 $L$ 条候选路径(比如 $L=8$),最后统一挑选总概率最大的一条。这大幅缓解了错误传播,代价是计算量乘以 $L$。第二个问题的解法更加精巧:在信息比特中额外埋入一层CRC校验(所谓“分布式CRC”),候选路径出来后用CRC当裁判——错得多的路径会被CRC当场识破。这套“CA-SCL”(CRC辅助SCL)组合拳,让Polar码在短码长下反超了所有对手。

顺带一提:Polar的这种“递归蝶形”结构还有个红利——编码器极简,就是一连串异或门,编码本身的开销小到可以忽略,这对时延敏感的控制信道非常友好。

3.3 短码之王,长码之殇

极化依赖 $N \to \infty$ 才能充分发挥,这意味着:码越长,好信道比例越精准地收敛到容量值;码越短,极化不充分,好信道质量参差。因此Polar的舒适区是几十到几百比特的短码块——而控制信令恰恰就是这种尺寸。反过来,数千比特的长块LDPC更从容。这不是谁更好的问题,而是数学特性的适用域不同。


四、5G的分工逻辑:一张岗位说明书

把两种码的特性放在一起,5G的设计选择就一目了然了:

维度 LDPC码 Polar码 Turbo码(4G数据)
提出者与年代 Gallager,1962 Arıkan,2009 Berrou等,1993
核心思想 稀疏图上概率迭代 信道合并分裂、极化选信道 两个卷积码软信息交织互馈
译码方式 置信传播/最小和,全并行 SC/SCL,本质串行+列表修正 BCJR迭代,全局交织依赖
并行度 极高(吞吐可几十Gbps) 低(依赖链串行) 中低
擅长码长 长(百~千比特级) 短(几十~几百比特) 中长
有限码长表现 良好 短码下最优(CA-SCL) 中等
5G中的岗位 PDSCH/PUSCH(数据信道) PDCCH/PUCCH/PBCH(控制与广播) 退场(仍用于旧网络)

再看移动通信的编码换代史,规律同样清晰——每一代都在逼近香农极限,同时每一代都对吞吐量与时延提出了更苛刻的要求:

代际 信道编码 距香农极限 决定性驱动力
2G(GSM) 卷积码+Viterbi译码 数dB 话音为主,复杂度受限
3G/4G(HSPA/LTE) Turbo码 约0.5dB内 高速数据,性能优先
5G(NR) LDPC(数据)+Polar(控制) 逼近极限且支持超高吞吐 Gbps级速率+短时延控制面

为什么控制信道不也用LDPC?因为控制信息块太短(几十比特),LDPC的稀疏图在如此短的块上铺不开,迭代增益有限;而Polar正是短码之王,加上其编码简单、译码确定性好(时延可预期),与控制信令的需求严丝合缝。这不是“性能内卷”的胜负,而是按码长、吞吐、时延三个维度做的分工排班。


五、现网连接:工程师在哪里会碰到这些原理

常见调试陷阱:

  1. 把误平层(Error Floor)当干扰:LDPC在极低BLER区间可能出现误码率突然“跌不动”的平层,多与Tanner图中的短环有关。若现网某场景误码率卡在某个值不再下降,换MCS不奏效,值得往这个方向想。
  2. 忽视SCL列表大小与CRC配置的关系:Polar译码性能强依赖CRC辅助,若在仿真中给控制信道去掉CRC去测性能,结果会显著偏差——这不是bug,是算法设计使然。
  3. 以为码率匹配是简单打孔:5G LDPC的速率匹配是循环缓冲器读取,凿孔(punching)与缩短(shortening)对译码器的影响不同(前者信息被丢弃、后者信息被置为强先验),排解调门限问题时别混为一谈。

常见问题

Q: LDPC和Polar既然都逼近香农极限,为什么5G不统一用一种? A: 因为它们的优势区间不重叠。数据包长(数百到数千比特)且要求几十Gbps吞吐,LDPC的全并行迭代译码不可替代;控制信令块短(几十到几百比特)且要求译码时延确定,Polar的短码性能与简洁编码器更合适。统一用LDPC则短码吃亏,统一用Polar则长码吞吐上不去——分工是最优解。

Q: 4G的Turbo码性能也很好,为什么5G数据信道换成了LDPC? A: 三个原因:一是并行度,Turbo的全局交织依赖限制了译码并行化,达不到5G的吞吐目标;二是HARQ友好性,LDPC的循环缓冲结构让增量冗余重传的实现天然顺滑,Turbo做IR要额外的打孔图样设计;三是Polar崛起后,Turbo“短码还行、长码不是最强、并行又不是最好”,任何一维都不再是不可替代。

Q: Polar译码为什么必须串行?SCL不是并行了吗? A: SC译码的依赖链是数学结构决定的——译第 $i$ 个比特前必须先“抵消”掉前 $i-1$ 个比特的影响,这条依赖链斩不断。SCL并行的不是这条链,而是同一步判决上的 $L$ 条假设路径;相当于把串行的多米诺骨牌每一步都分叉出多个平行世界,最后挑最可信的世界。所以它是“串行骨架+并行血肉”。

Q: 什么是“冻结比特”?为什么不直接不传它们? A: 冻结比特占据坏子信道,必须发——因为接收端极化译码的递归计算需要完整的接收向量才能算出每个子信道的LLR,缺一位整个蝶形结构就断了。冻结比特的值双方预先约定(通常是0),接收端根本不需要译它,但物理上它必须占着那条“注定译不准”的信道,否则极化结构不成立。

Q: 工程师如何直观验证两种码的差别? A: 用仿真工具对同一信噪比画BLER曲线:长码块(如1000比特)下LDPC曲线更低更平;短码块(如64比特)下开启CA-SCL的Polar反超。现网侧则体现为:控制信道几乎从不成为瓶颈(Polar的确定性译码),而数据吞吐波动几乎全部由LDPC链路的MCS/HARQ行为决定。


参考来源

  1. E. Arıkan, "Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels," IEEE Transactions on Information Theory, vol. 55, no. 7, 2009 — 极化定理的原始论文(可在IEEE Xplore检索)
  2. R. G. Gallager, Low-Density Parity-Check Codes, MIT Press, 1963 — LDPC开山之作,稀疏校验与迭代译码思想的源头
  3. D. J. C. MacKay, R. M. Neal, "Near Shannon Limit Performance of Low Density Parity Check Codes," Electronics Letters, 1996 — LDPC重新发现的标志性论文(可在Google Scholar检索)

注:本文撰写环境的联网检索权限受限,以上文献信息为编码理论领域公认的经典文献,读者可通过 IEEE Xplore、Google Scholar 及 Wikipedia 复核。文中涉及的会议时间节点(2016年11月RAN1编码决议)为业内公开广泛报道的事实。


本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入