← 返回文章

信道编码仿真实验:从卷积码到Turbo码

研究生信息论课程大作业,用C/C++实现卷积码和Turbo码的译码算法,在AWGN信道下对比BER性能。

本文是《信息论与信道编码》课程的综合仿真实验记录。项目覆盖了卷积码Turbo 码的核心译码算法,通过不同码型、判决方式、迭代次数和码长的对比实验,直观理解 AWGN 信道下各编码方案的 BER 性能差异。

综合性能对比

下图展示了四种主要编码/译码方案的性能阶梯:

BER Comparison

  • Uncoded:未编码 BPSK,作为性能基准。
  • Hard Viterbi:卷积码硬判决译码,提供基础编码增益。
  • Soft Viterbi:卷积码软判决译码,相比硬判决有约 2dB 的显著增益。
  • BCJR (MAP):最大后验概率译码,理论最优的软输出算法。
  • Turbo Code:采用迭代译码,在低信噪比下表现出极其陡峭的瀑布区。

卷积码性能分析

实验对比了不同约束长度 K 和不同码结构(系统码/非系统码)在不同译码算法下的表现。

硬判决 Viterbi

对比 K=3 的 (7,5)、K=4 的 (15,13) 以及 RSC 递归系统码在硬判决下的性能。

Hard Decision Viterbi

随着约束长度 K 从 3 增加到 4,编码器的记忆深度增加,纠错能力增强,BER 曲线整体左移。

软判决 Viterbi

Soft Decision Viterbi

软判决充分利用了接收端的信道可靠性信息。与硬判决相比,所有码型的性能均有大幅提升,且 K=4 的优势在软判决下依然保持。

BCJR (MAP) 算法

BCJR Soft Decision

BCJR 算法输出比特级的软信息(LLR),是 Turbo 码迭代译码的核心组件。图中展示了其作为独立译码器时的优异性能。


Turbo 码性能分析

Turbo 码的核心在于迭代译码结构。实验重点探究了交织长度迭代次数以及级联结构对性能的影响。

码长与交织增益

对比了从短帧(N=256)到长帧(N=16384)的性能变化。

Turbo Length Comparison

交织器增益现象极其明显。随着码长 N 增加,交织器打散突发错误的能力增强,BER 曲线的”瀑布区”变得更加陡峭,误平层显著降低。

迭代次数的影响

观察 Turbo 码在 1 到 8 次迭代过程中的性能收敛情况。

Turbo Iterations Comparison

随着迭代次数增加,译码器之间交换的外部信息逐渐精确。通常在 4-8 次迭代后性能趋于饱和,继续增加迭代带来的增益逐渐减小。

SCCC vs PCCC

对比了两种经典的 Turbo 码级联架构。

Turbo Codes Structure

  • PCCC(并行级联):经典 Turbo 码结构,瀑布区出现较早(收敛快),但存在较高的误平层。
  • SCCC(串行级联):通常具有更低的误平层,适合对误码率要求极高的场景。

项目信息

返回探索地图