IT
Information Theory
信道编码课程大作业,实现卷积码与 Turbo 码在 AWGN 信道下的 BER 仿真。
项目背景
这是研究生《信息论与信道编码》课程的期末大作业。核心目标是通过编程仿真,理解不同信道编码方案在加性高斯白噪声(AWGN)信道下的误码率(BER)性能差异。
仿真内容
项目覆盖了信道编码中三种核心译码算法:
- 硬判决 Viterbi:基于汉明距离,实现简单但损失了信道软信息。
- 软判决 Viterbi:利用接收符号的可靠性信息,相比硬判决有约 2dB 的增益。
- BCJR (MAP):最大后验概率译码,输出比特级的 LLR 软信息,是 Turbo 码迭代译码的核心组件。
- Turbo 码:通过并行/串行级联卷积码和迭代译码逼近 Shannon 极限,具有陡峭的”瀑布区”。
实验从**约束长度、码长、迭代次数、级联结构(PCCC vs SCCC)**等多个维度进行了对比,直观展示了编码增益、交织器增益和误平层等现象。
技术实现
编码和译码算法用 C/C++ 实现以保证仿真效率,仿真结果输出为 CSV 数据文件,再由 Python(Matplotlib)统一绘制性能对比图。项目中还包含 GitHub Actions 自动化仿真流水线。源码和完整结果图可查看下方仓库。
它试图解决什么?
不同编码方案的增益来源与适用边界在理论学习中难以直观感知。
采用的方法
用 C/C++ 实现多种编码与译码算法,Python 统一绘图,在统一仿真框架下进行 AWGN 信道对比实验。
核心设计
01硬/软判决对比
02BCJR 软输出算法
03Turbo 迭代译码
04交织器增益分析