从BEC信道到5G标准:手把手图解Polar码的‘信道极化’核心思想
在通信技术飞速发展的今天,编码理论作为信息传输的基石,始终扮演着关键角色。2009年,Erdal Arikan教授提出的Polar码以其独特的"信道极化"思想,彻底改变了信道编码的格局,并最终成为5G eMBB场景的控制信道编码标准。本文将从一个最简单的二元擦除信道(BEC)出发,通过直观的图解和类比,逐步揭示Polar码如何通过"创造好信道与坏信道"来实现接近香农极限的性能。
1. 信道极化的直观理解
想象你面前有两条质量不稳定的通信通道:有时能完美传递信息,有时则会完全丢失数据。这就是二元擦除信道(BEC)的基本特性——它以概率Pe"擦除"传输的比特,而不是像其他信道那样产生错误比特。这种简单的信道模型恰好是理解极化现象的最佳起点。
信道极化的本质是通过巧妙的编码结构,将一组相同的独立信道转化为两类极端不同的子信道:
- "好信道":容量趋近于1,几乎能无差错传输信息
- "坏信道":容量趋近于0,几乎无法传递任何有效信息
关键发现:随着编码长度的增加,好信道的数量会趋近于原始信道的容量,这正是Polar码能达到香农极限的理论基础。
让我们用最简单的2通道结构来说明这一过程:
U1 ──⊕── Channel1 ── Y1 │ U2 ──┴── Channel2 ── Y2在这个结构中,U1和U2是原始信息比特,Y1和Y2是接收端观测值。通过数学分析可以发现:
- U1的传输质量变差:需要两个信道都正确传输才能解码
- U2的传输质量改善:只要任一信道正确传输就能解码
具体到BEC信道(设Pe=0.5):
- U1的成功率:(1-Pe)² = 0.25
- U2的成功率:1-Pe² = 0.75
这就是最基本的"极化"现象——一个信道变差的同时,另一个信道变好了。
2. 从2通道到N通道的极化扩展
单一极化步骤产生的效果有限,但通过递归应用这一过程,就能产生显著的极化效果。Arikan提出的核心创新正是这种递归结构——通过克罗内克积(Kronecker product)将极化操作扩展到N个信道。
2.1 4通道极化结构
当我们将2通道结构递归应用到4个信道时,极化效果更加明显:
Stage 1 Stage 2 U1 ──⊕──⊕──⊕── Channel1 │ │ │ U2 ──┴──⊕──⊕── Channel2 │ │ U3 ─────┴──⊕── Channel3 │ U4 ────────┴── Channel4对于Pe=0.5的BEC信道,计算各Ui的成功概率:
- U1: 0.0625 (极差)
- U2: 0.4375
- U3: 0.5625
- U4: 0.9375 (极好)
可以看到,U4已经成为一个非常可靠的传输通道,而U1则几乎无法使用。
2.2 极化效果的数学规律
随着信道数量N的增加,极化现象遵循以下规律:
| 信道数量N | 最好信道成功率 | 最差信道成功率 |
|---|---|---|
| 2 | 0.75 | 0.25 |
| 4 | 0.9375 | 0.0625 |
| 8 | 0.9961 | 0.0039 |
| 16 | 0.9999 | 0.0001 |
这个表格清晰地展示了:当N趋近于无穷大时,部分信道的成功率趋近于1(完美信道),而另一部分趋近于0(完全无用信道)。
3. Polar码的编码策略
理解了信道极化现象后,Polar码的编码策略就变得直观了:
信道可靠性估计:计算每个极化后子信道的传输可靠性
- 常用方法:巴氏参数、密度进化、高斯近似
- 华为贡献:β-expansion方法,兼顾精度与复杂度
比特分配原则:
- 在可靠性最高的K个子信道上传输信息比特
- 在其余子信道上传输固定的"冻结比特"(通常为0)
生成矩阵构造: 极化码的生成矩阵可以表示为:
G_N = B_N F^{\otimes n}其中:
- $F^{\otimes n}$表示基本矩阵F的n次克罗内克积
- $B_N$是比特反序排列矩阵
实际应用提示:在5G标准中,冻结比特的位置和值是收发双方预先约定好的,这大大简化了译码过程。
4. SC译码算法与LLR计算
串行抵消(SC)译码是Polar码的基础译码算法,其核心思想是逐步解码和似然比计算。
4.1 SC译码的基本步骤
初始化:计算接收序列的对数似然比(LLR)
# Python伪代码示例:BEC信道的LLR初始化 def init_llr(y, pe): if y == 0: return log((1-pe)/pe) # 更可能是0 elif y == 1: return log(pe/(1-pe)) # 更可能是1 else: # 擦除 return 0 # 完全不确定递归计算:通过f函数和g函数在因子图上传递LLR值
- f函数:
f(a,b) = sign(a)sign(b) min(|a|,|b|) - g函数:
g(a,b,u) = (-1)^u * a + b
- f函数:
串行判决:从U1到UN依次做出硬判决
# 硬判决示例 def hard_decision(llr): return 0 if llr >= 0 else 1
4.2 译码过程的图解示例
考虑一个简单的2比特Polar码译码过程:
接收值: y1=0, y2=1 (假设Pe=0.2) 冻结比特: u1=0 (已知) 步骤1: 计算u1的LLR LLR(u1) = f(LLR(y1), LLR(y2)) = f(log(0.8/0.2), log(0.2/0.8)) = f(1.386, -1.386) = -1.386 步骤2: 判决u1 已知u1=0 (冻结比特),无需判决 步骤3: 计算u2的LLR LLR(u2) = g(LLR(y1), LLR(y2), u1) = (-1)^0 * 1.386 + (-1.386) = 0 步骤4: 判决u2 u2 = 0 (因为LLR=0时默认判0)虽然SC译码算法简单直观,但它存在错误传播的问题——一旦某个比特判决错误,会影响后续所有比特的译码。这也是后来发展出SCL(列表译码)、CA-SCL(CRC辅助列表译码)等改进算法的主要原因。
5. Polar码在5G中的应用实践
在5G标准中,Polar码被采用为eMBB场景下控制信道的编码方案,这主要基于以下优势:
- 理论最优性:当码长足够大时,Polar码可以逼近香农极限
- 低复杂度:编码和SC译码的复杂度均为O(N log N)
- 灵活性:通过调整冻结比特的位置,可以轻松实现不同码率
- 确定性结构:给定码长和码率,Polar码的结构完全确定,无需像LDPC那样设计校验矩阵
实际5G系统中的Polar码实现还包含多项优化:
- 速率匹配:通过打孔或重复适应不同传输块大小
- 交织设计:提高在衰落信道下的性能
- CRC辅助:提升短码性能,减少错误传播
在华为的5G基站和终端芯片中,Polar码的实现进一步采用了:
- 并行处理架构:加速SC译码过程
- 近似计算:在LLR计算中引入量化简化
- 早期终止:根据LLR置信度提前结束译码迭代
从BEC信道这个最简单的模型出发,我们一步步揭示了Polar码如何通过"信道极化"这一天才构想,将不可靠的物理信道转化为近乎完美的逻辑信道。这种从理论到实践的跨越,正是信息论最激动人心的魅力所在。在实际工程中,理解极化现象的本质比掌握复杂的数学推导更为重要——它让我们能够针对具体应用场景,灵活调整Polar码的参数和结构,在性能和复杂度之间找到最佳平衡点。