这段简介可以描述为:本项目提供了一套基于MATLAB实现的卷积编码与解码算法源代码。适用于通信系统中纠错编码的学习和研究。 这段文字简明扼要地介绍了项目的主题、功能以及应用场景,长度适中,符合要求。
卷积码是在信息序列通过有限状态移位寄存器的过程中产生的。通常情况下,该移存器包含N级(每级A比特),并对应基于生成多项式的m个线性代数方程。输入数据每次以A位(比特)的形式进入移位寄存器,在此同时有n位(比特)的数据作为编码序列输出,其效率为A/n。参数N被称为约束长度,它表明了当前的输出数据与多少输入数据有关,并决定着编码的复杂度。
译码器的任务是运用一种可以将错误的发生减到最低程度的方法或规则从已编码的码字中解出原始信息。在信息序列和码序列之间存在一对一的关系;此外,任何信息序列和码序列都将对应于网格图中的唯一路径。因此,卷积译码器的工作就是找到这条唯一的路径。
Viterbi算法可以被描述如下:
1. 在时刻i,状态s对应的网格图节点记作N(i, s)。
2. 每个网相节点被分配一个值d(N(i, s))。
3. 节点值按以下方式计算:
- 设初始条件为d(N(0, 0)) = 0,其余为无穷大;
- 在时刻i,对于进入每个节点的所有路径计算其不完全路径的长度;
- 让D(i, s)表示在第i时刻到达与状态s对应的节点N(i, s)的最小不完全路径长度。通过从前一节点随机选择一条路径可以生成新的结果。
4. 非存留支路将从网格图中删除,从而可以在每个节点处获得一组最小路径集合;
5. 当L表示输入编码段的数量(每段为k比特),m是编码器中的最大存储长度时,如果i < L,则令 i = i + 1,并返回步骤2。
一旦计算出所有节点值后,在时刻L、状态s的起点开始沿网格图中的存留支路反向追踪。这样定义的路径与解码输出是一一对应的。对于不完全路径长度而言,硬判决解码采用的是Hamming距离,而软判决解码则使用Euclidean距离。