第 12 章 信道解码¶
本章预计学习时间: 6 小时
前置知识: 第 1 章(概率论)、第 5 章(检测理论)、第 11 章(解调与软信息)
前置技能: 了解信道编码基础(如卷积码、LDPC、Turbo 码)
📌 本章目标¶
学完本章后,你将能够:
- 理解 信道解码的基本原理
- 推导 最大后验概率(MAP)解码
- 掌握 BCJR 算法的完整推导
- 理解 置信传播算法(LDPC 解码)
- 应用 软输入解码器分析系统性能
12.1 信道解码问题描述¶
🎯 基础概念(零基础友好)¶
为什么要信道解码?¶
问题: 传输过程中会有错误
解决方案: 添加冗余(信道编码)
解码器输入¶
硬输入: 比特值(0 或 1)
软输入: LLR 值(可靠性信息)
优势: 软输入解码性能优于硬输入约 2-3 dB!
📐 问题形式化¶
系统模型¶
发送端:
信息比特 \(\mathbf{u} = [u_0, u_1, ..., u_{K-1}]\)
编码器:\(\mathbf{c} = \text{Encode}(\mathbf{u})\)(码长 \(N > K\))
调制:\(\mathbf{x} = \text{Modulate}(\mathbf{c})\)
信道:
接收端:
解调:\(\text{LLR}(\mathbf{c}) = \text{Demodulate}(\mathbf{y})\)
解码:\(\hat{\mathbf{u}} = \text{Decode}(\text{LLR}(\mathbf{c}))\)
解码准则¶
最大后验概率(MAP):
最大似然(ML):
关系: 若 \(P(\mathbf{u})\) 均匀分布,MAP = ML
✏️ 练习题 12.1¶
基础题 12-1:
为什么软输入解码优于硬输入?
答案:
12.2 最大后验概率解码 ⭐⭐⭐¶
🎯 基础概念¶
MAP 准则¶
目标: 最小化比特错误概率
用 LLR 表示:
判决: - \(LLR(u_k) > 0\) → \(\hat{u}_k = 0\) - \(LLR(u_k) < 0\) → \(\hat{u}_k = 1\)
📐 卷积码的 MAP 解码¶
卷积码基础¶
编码器:
状态转移:
时刻 \(k\) 的状态 \(S_k\) 由移位寄存器内容决定。
输入 \(u_k\),状态从 \(S_k\) 转移到 \(S_{k+1}\),输出 \(c_k\)。
网格图(Trellis):
📐 MAP 解码推导¶
后验概率¶
目标: 计算 \(P(u_k=0|\mathbf{y})\) 和 \(P(u_k=1|\mathbf{y})\)
全概率公式:
其中求和遍历所有满足 \(u_k\) 的状态转移。
用贝叶斯公式:
分解:
定义:
- 前向概率:\(\alpha_k(S_k) = P(\mathbf{y}_{1:k}, S_k)\)
- 后向概率:\(\beta_k(S_k) = P(\mathbf{y}_{k+1:N}|S_k)\)
- 转移概率:\(\gamma_k(S_k, S_{k+1}) = P(y_k, S_{k+1}|S_k)\)
后验概率:
📊 BCJR 算法¶
算法名称¶
BCJR: Bahl, Cocke, Jelinek, Raviv(1974 年提出)
别名: MAP 算法、前向 - 后向算法
算法步骤¶
步骤 1:初始化
(假设终止状态为 0)
步骤 2:前向递归
步骤 3:后向递归
步骤 4:计算 LLR
📐 转移概率计算¶
高斯信道模型¶
接收: \(y_k = x_k + n_k\),\(n_k \sim \mathcal{CN}(0, \sigma^2)\)
转移概率:
其中 \(c_k\) 是由 \((S_k, S_{k+1})\) 决定的输出比特。
高斯 PDF:
用 LLR 表示:
📝 数值例子¶
例子 12-1:BCJR 算法(简化)¶
参数: - 码率 ½ 卷积码,约束长度 K=3 - 状态数:4(00, 01, 10, 11) - 输入序列:u = [1, 0, 1] - 接收 LLR:[+2.5, -1.8, +3.2, -0.5, +4.1, -2.3]
步骤 1:初始化
步骤 2:前向递归(简化计算)
(具体计算略,需要状态转移表)
步骤 3:后向递归
步骤 4:计算 LLR
输出: \(\hat{\mathbf{u}} = [1, 0, 1]\)(正确解码)
⚠️ 常见误区¶
误区 1: "BCJR 算法太复杂,无法实现"
纠正: 实际中用 Log-MAP 近似,复杂度可接受。
误区 2: "BCJR 只适用于卷积码"
纠正: BCJR 是通用框架,可用于 Turbo 码等。
误区 3: "BCJR 总是最优的"
纠正: BCJR 是最优的 MAP 解码,但复杂度高。实际中常用次优算法(如 Viterbi)。
✏️ 练习题 12.2¶
基础题 12-2:
BCJR 算法中,前向概率 \(\alpha_k\) 和后向概率 \(\beta_k\) 的含义是什么?
答案:
进阶题 12-3:
推导 Log-MAP 近似公式。
提示:
12.3 置信传播算法(LDPC) ⭐⭐⭐⭐¶
🎯 基础概念¶
LDPC 码基础¶
定义: 低密度奇偶校验码(Low-Density Parity-Check)
特点: - 稀疏校验矩阵 - 可用置信传播高效解码 - 性能接近香农限
校验矩阵:
码字条件:
Tanner 图¶
定义: LDPC 码的图表示
节点: - 变量节点(Variable Nodes):对应编码比特 \(c_i\) - 校验节点(Check Nodes):对应校验方程 \(h_j\)
边: 若 \(H_{ji} = 1\),则变量节点 \(i\) 与校验节点 \(j\) 相连。
例子:
📐 置信传播算法¶
算法思想¶
核心: 在 Tanner 图上传递概率消息
消息类型: - 变量节点 → 校验节点:\(Q_{ij}\)(比特 \(i\) 满足校验 \(j\) 的概率) - 校验节点 → 变量节点:\(R_{ji}\)(基于校验 \(j\),比特 \(i\) 的概率)
算法步骤¶
步骤 1:初始化
变量节点 \(i\) 的初始 LLR(来自解调器):
步骤 2:校验节点更新
校验节点 \(j\) 到变量节点 \(i\) 的消息:
其中 \(M(j)\) 是与校验节点 \(j\) 相连的变量节点集合。
Min-Sum 近似:
步骤 3:变量节点更新
变量节点 \(i\) 到校验节点 \(j\) 的消息:
其中 \(N(i)\) 是与变量节点 \(i\) 相连的校验节点集合。
步骤 4:后验 LLR 计算
变量节点 \(i\) 的后验 LLR:
步骤 5:判决
步骤 6:校验子检查
若 \(\mathbf{s} = \mathbf{0}\),解码成功;否则返回步骤 2,继续迭代。
📊 算法收敛性¶
收敛条件¶
理想情况: 无环图(树),BP 算法精确收敛到 MAP
实际情况: 有环图,BP 是近似算法
典型迭代次数:
| 码型 | 典型迭代次数 |
|---|---|
| LDPC | 10-50 |
| Turbo | 6-8 |
| Polar (SCL) | 1(但列表大小 L=8-32) |
停止准则¶
准则 1:校验子为零
准则 2:达到最大迭代次数
防止无限循环。
📝 数值例子¶
例子 12-2:Min-Sum 解码(简化)¶
参数: - (3, 6)-LDPC 码 - 接收 LLR:[+2.5, -1.8, +3.2, -0.5, +4.1]
迭代 1:
校验节点更新(Min-Sum):
(具体计算需要 Tanner 图结构)
变量节点更新:
后验 LLR:
判决: \(\hat{\mathbf{c}} = [0, 1, 0, 1, 0]\)
校验子检查: 若 \(\mathbf{H}\hat{\mathbf{c}}^T \neq \mathbf{0}\),继续迭代。
⚠️ 常见误区¶
误区 1: "置信传播总是收敛"
纠正: 有环图可能不收敛,需要最大迭代次数限制。
误区 2: "Min-Sum 近似性能损失很大"
纠正: Min-Sum 性能损失约 0.5-1 dB,复杂度大幅降低。
误区 3: "LDPC 解码复杂度太高"
纠正: Min-Sum 近似后,主要是加减法和比较,硬件友好。
✏️ 练习题 12.3¶
基础题 12-4:
Min-Sum 近似中,若输入消息为 [+3, -2, +4],输出是多少?
答案:
进阶题 12-5:
推导校验节点更新的精确公式(不用 Min-Sum 近似)。
提示:
12.4 收敛性分析 ⭐⭐¶
🎯 基础概念¶
密度演化¶
定义: 跟踪 LLR 分布的演化
思想: 假设 LLR 服从高斯分布,跟踪均值和方差的变化。
高斯近似:
对于 AWGN 信道:\(\sigma^2 = 2\mu\)
密度演化方程:
其中 \(l\) 是迭代次数。
收敛条件¶
稳定固定点:
若 \(\mu^* \to \infty\),解码收敛(错误概率 → 0)
收敛阈值:
存在 SNR 阈值 \(\text{SNR}_{th}\): - \(\text{SNR} > \text{SNR}_{th}\):收敛 - \(\text{SNR} < \text{SNR}_{th}\):不收敛
📊 性能分析¶
误码率曲线¶
典型 LDPC 误码率曲线:
错误平台(Error Floor):
高 SNR 时误码率不再下降。
原因: - 小环结构 - 最小码距限制
✏️ 练习题 12.4¶
基础题 12-6:
为什么 LDPC 码有错误平台?
答案:
📌 本章小结¶
关键公式速查¶
| 算法 | 公式 |
|---|---|
| MAP 准则 | $\hat{\mathbf{u}} = \arg\max_{\mathbf{u}} P(\mathbf{u} |
| BCJR 前向 | \(\alpha_{k+1}(S_{k+1}) = \sum_{S_k} \alpha_k(S_k) \gamma_k(S_k, S_{k+1})\) |
| BCJR 后向 | \(\beta_k(S_k) = \sum_{S_{k+1}} \gamma_k(S_k, S_{k+1}) \beta_{k+1}(S_{k+1})\) |
| BCJR LLR | \(LLR(u_k) = \log \frac{\sum_{u_k=0} \alpha_k \gamma_k \beta_{k+1}}{\sum_{u_k=1} \alpha_k \gamma_k \beta_{k+1}}\) |
| BP 校验更新 | \(R_{ji} = 2 \tanh^{-1}\left( \prod_{k} \tanh\left(\frac{Q_{kj}}{2}\right) \right)\) |
| Min-Sum | $R_{ji} \approx (\prod \text{sign}) \cdot \min( |
| BP 变量更新 | \(Q_{ij} = L(c_i) + \sum_{k} R_{ki}\) |
解码器比较¶
| 解码器 | 复杂度 | 性能 | 应用 |
|---|---|---|---|
| Viterbi (ML) | 中 | 好 | 卷积码 |
| BCJR (MAP) | 高 | 最优 | Turbo 码 |
| 置信传播 | 中 | 接近最优 | LDPC |
| Min-Sum | 低 | 次优(-0.5 dB) | LDPC |
🎓 本章完成检查¶
完成本章后,确保你能:
- 解释 MAP 解码与 ML 解码的区别
- 说明 BCJR 算法的前向 - 后向思想
- 推导 BCJR 的递归公式
- 解释 Tanner 图的结构
- 推导置信传播的消息更新公式
- 说明 Min-Sum 近似的原理
- 解释密度演化的思想
- 说明错误平台的成因
🎉 教程完成!¶
恭喜!你已经完成了**4G/5G 下行解码数学原理**的完整学习!
知识体系回顾¶
下一步建议¶
- 实践练习: 用 MATLAB/Python 实现 LMMSE 信道估计
- 深入阅读: 3GPP 规范(TS 36.211, TS 38.211)
- 系统学习: MIMO-OFDM 系统完整架构
- 前沿追踪: 6G 通信技术(太赫兹、智能超表面等)
反馈与改进¶
欢迎提出: - 内容错误 - 推导不清 - 需要补充的话题
联系方式: 在工作区创建 issue 或在学习笔记中记录
第 12 章 结束 · 教程完成