卷积码的概率译码
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 1 (0) 1 (0)
Viterbi算法 R=10, 10, d M’ 00 10 01 11 1 2 2 (00) 2 (01) 1 (10) 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 2 (000) 1 (101) 3 (010) 3 (011)
Viterbi算法 R=10, 10, 00, 01 d M’ 00 10 01 11 1 2 3 4 3 (0000) 3 (0001) 3 (1010) 1 (1011)
Viterbi算法 R=10, 10, 00, 01, 11 d M’ 00 10 01 11 1 2 3 4 5 3 (10100) 3 (00001) 2 (10110) 2 (10111)
Viterbi算法 R=10, 10, 00, 01, 11, 01 d M’ 00 10 01 11 1 2 3 4 5 6 3 (101100) 2 (101110)
Viterbi算法 R=10, 10, 00, 01, 11, 01 d M’ 00 10 01 11 1 2 3 4 5 6 7 3 (1011100)
Viterbi算法 (n,k,m)卷积码编码器: 2km个状态,每个状态需存储路径信息(信息序列),还有度量值 每个路径存储器存储路径长度为nL,L是需要存储的码序列的总长度。 截尾译码:路径存储器长度为nt,t<<L, t=(5-10)m
如何判决输出第一段信息元 任选一条留选路径的寄存器,把它的第一段作为译码器输出 把所有的2km个路径寄存器的第一段信息元取出,按大数准则输出第一段信息元 在2km个路径寄存器中,挑选一个具有最大路径度量的路径,以它的路径寄存器的第一段信息元作为译码器的输出 对路径的度量值定出一个门限,当某一路径的门限超过此值,输出此路径的第一段信息元
软判决Viterbi译码 充分利用信道输出信号信息,提高译码可靠性,把信道输出的信号进行Q电平量化,输入VB译码器。 用最小软判决距离代替汉明距离
Viterbi译码算法的性能 无论是软判决还是硬判决,PME主要由码的自由距离df决定,随着df的增加,PME指数下降。 适用于VB算法的码须有尽可能大的自由距离,其次要有较小的Adf和Bdf。
是关于uk的先验信息, 是关于uk的对数似然比。 卷积码的逐比特概率译码——BCJR译码 是关于uk的先验信息, 是关于uk的对数似然比。
卷积码的逐比特概率译码——BCJR译码 为前向递推 为后向递推 为s’和s之间的分支转移概率
卷积码的逐比特概率译码——BCJR译码
序列译码——Fano译码算法 m大 译码器的计算量能随信道干扰情况变化