← 返回项目
项目 通信编码 Archive 2026-01-12
IT

Information Theory

信道编码课程大作业,实现卷积码与 Turbo 码在 AWGN 信道下的 BER 仿真。

GitHub 仓库 ↗

项目背景

这是研究生《信息论与信道编码》课程的期末大作业。核心目标是通过编程仿真,理解不同信道编码方案在加性高斯白噪声(AWGN)信道下的误码率(BER)性能差异。

仿真内容

项目覆盖了信道编码中三种核心译码算法:

  • 硬判决 Viterbi:基于汉明距离,实现简单但损失了信道软信息。
  • 软判决 Viterbi:利用接收符号的可靠性信息,相比硬判决有约 2dB 的增益。
  • BCJR (MAP):最大后验概率译码,输出比特级的 LLR 软信息,是 Turbo 码迭代译码的核心组件。
  • Turbo 码:通过并行/串行级联卷积码和迭代译码逼近 Shannon 极限,具有陡峭的”瀑布区”。

实验从**约束长度、码长、迭代次数、级联结构(PCCC vs SCCC)**等多个维度进行了对比,直观展示了编码增益、交织器增益和误平层等现象。

技术实现

编码和译码算法用 C/C++ 实现以保证仿真效率,仿真结果输出为 CSV 数据文件,再由 Python(Matplotlib)统一绘制性能对比图。项目中还包含 GitHub Actions 自动化仿真流水线。源码和完整结果图可查看下方仓库。

01 / Problem

它试图解决什么?

不同编码方案的增益来源与适用边界在理论学习中难以直观感知。

02 / Approach

采用的方法

用 C/C++ 实现多种编码与译码算法,Python 统一绘图,在统一仿真框架下进行 AWGN 信道对比实验。

03 / Highlights

核心设计

01硬/软判决对比
02BCJR 软输出算法
03Turbo 迭代译码
04交织器增益分析
返回探索地图