卷积码的概率译码
Viterbi译码算法的基本原理和实现 网格图(Trellis):能够表示出编码器状态转移与时间的关系 00 10 01 11 1 2 3 1 2 3 4 5 6 7 (2,1,2)码L=5时的篱笆图
网格图 状态数:2km 进入每一个状态分支数:2k 离开每一个状态分支数:2k 归零处理后,输入信息长度为Lk+mk 路径数:2kL
Viterbi算法 从某一时间单位开始,对进入每一状态的所有长为j段分支的部分路径,计算部分路径度量。对每一状态,挑选并存储一条有最大度量的部分路径及其部分度量值,为留选路径 j增加1,把此时刻进入每一状态的所有分支度量和与这些分支相连的前一时刻的留选路径的度量相加,得到了此时刻进入每一状态的留选路径,存储之 若j<L+m,重复以上各步,否则,停止,译码器得到了有最大路径度量的路径。
Viterbi算法 R=10 d M’ 00 10 01 11 1 00 1 (0) 11 1 (0)
Viterbi算法 R=10, 10, d M’ 00 10 01 11 1 2 2 (00) 2 (01) 1 (10) 3 (11) 1 2 00 00 2 (00) 11 11 2 (01) 10 1 (10) 01 3 (11)
Viterbi算法 R=10, 10, 00 d M’ 00 10 01 11 1 2 3 2 (000) 1 (101) 3 (010) 1 2 3 00 00 00 2 (000) 11 11 1 (101) 00 10 10 3 (010) 01 01 3 (011)
Viterbi算法 R=10, 10, 00, 01 d M’ 00 10 01 11 1 2 3 4 00 00 00 00 3 (0000) 11 11 11 00 3 (0001) 10 10 10 3 (1010) 01 01 1 (1011)
Viterbi算法 R=10, 10, 00, 01, 11 d M’ 00 10 01 11 1 2 3 4 5 00 00 00 00 3 (10100) 11 11 11 00 3 (00001) 10 10 01 2 (10110) 01 10 2 (10111)
Viterbi算法 R=10, 10, 00, 01, 11, 01 d M’ 00 10 01 11 1 2 3 4 5 6 3 (101100) 11 11 00 10 01 2 (101110) 01 01 10
Viterbi算法 R=10, 10, 00, 01, 11, 01,11 d M’ 00 10 01 11 1 2 3 4 5 6 7 2 (1011100) 11 11 00 10 01 01 10
Viterbi算法 (n,k,m)卷积码编码器: 2km个状态,每个状态需存储路径信息(信息序列),还有度量值 每个路径存储器存储路径长度为nL,L是需要存储的码序列的总段数。 截尾译码:路径存储器长度为nt,t<<L, t=(5~10)m
如何判决输出第一段信息元 留选路径度量相同时,任选一条的寄存器,把它的第一段k0作为译码器输出 把所有的2km个路径寄存器的第一段信息元取出,按大数准则输出第一段信息元 在2km个路径寄存器中,挑选一个具有最大路径度量的路径,以它的路径寄存器的第一段信息元作为译码器的输出 对路径的度量值定出一个门限,当某一路径的门限超过此值,输出此路径的第一段信息元
软判决Viterbi译码 充分利用信道输出信号信息,提高译码可靠性,把信道输出的信号进行Q电平量化,输入VB译码器。 用最小软判决距离代替汉明距离