卷积码的Viterbi 译码是根据接收码字序列寻找编码时通过网格图最佳路径的过程,找到最佳路径即完成了译码过程,并可以纠正接收码字中的错误比特。Viterbi 译码算法步骤如下描述
①根据接收码符号R ,计算出相应的分支量度值BM( R/ Cj) , j = 1 、2 ;
②进入某一状态的2 条分支量度BM ( R/ Cj)与其前状态路径量度PM累加求和;
③比较到达当前状态的2 条新的路径量度PM的大小,选择最大者作为新的状态路径量度存储起来,并保存与此路径对应的码字;
④对所有的256 个状态都实施上述加、比、选(ACS) 运算;
⑤在每一译码时刻,满足延时就从256 条留存路径中,选择路径量度最大的一条路径作为译码数据输出;
⑥进入下一译码时刻,重复以上步骤,直至译码结束。⑥进入下一译码时刻,重复以上步骤,直至译码结束。
3.2.3 序贯译码
序贯译码是根据接收序列和编码规则,在整个码树中搜索(既可以前进,也可以后退)出一条与接收序列距离(或其他量度)最小的一种算法。由于它的译码器的复杂性随 m 值增大而线性增长,在实用中可以选用较大的 m 值(如 20~40)以保证更高的可靠性。许多深空和海事通信系统都采用序贯译码。卷积码概率译码的基本思路是:以接收码流为基础,逐个计算它与其他所有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。概率最大在大多数场合可解释为距离最小,这种最小距离译码体现的正是最大似然的准则。卷积码的最大似然译码与分组码的最大似然译码在原理上是一样的,但实现方法上略有不同。主要区别在于:分组码是孤立地求解单个码组的相似度,而卷积码是求码字序列之间的相似度。基于网格图搜索的译码是实现最大似然判决的重要方法和途径。用格图描述时,由于路径的汇聚消除了树状图中的多余度,译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。 如果在某一点上发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径中重新选择路径。这样一直进行到最后第 L 级(L 为发送序列的长度)。由于这种方法较早地丢弃了那些不可能的路径,从而减轻了译码的工作量,Viterbi 译码正是基于这种想法[20]。 对于(n, k, N)卷积码,其网格图中共 2kL 种状态。由网格图的前 N-1 条连续支路 构成的路径互不相交,即最初 2k_1条路径各不相同,当接收到第 N 条支路时,每条路径都有2条支路延伸到第 N 级上,而第 N 级上的每两条支路又都汇聚在一个节点上。在 Viterbi 译码算法中,把汇聚在每个节点上的两条路径的对数似然函数累加值进行比较,然后把具有较大对数似然函数累加值的路径保存下来,而丢弃另一条路径,经挑选后第 N 级只留下 2N 条幸存路径。 选出的路径同它们的对数似然函数的累加值将一起被存储起来。由于每个节点引出两条支路,因此以后各级中路径的延伸都增大一倍,但比较它们的似然函数累加值后,丢弃一半,结果留存下来的路径总数保持常数。由此可见,上述译码过程中的基本操作是,“加-比-选”,即每级求出对数似然函数的累加值,然后两两比较后作出选择。有时会出现两条路径的对数似然函数累加值相等的情形,在这种情况下可以任意选择其中一条作为“幸存”路径。卷积码的编码器从全零状态出发,最后又回到全零状态时所输出的码序列,称为结尾卷积码。因此,当序列发送完毕后,要在网格图的终结处加上(N-1)个己知的信息 作为结束信息。在结束信息到来时,由于每一状态中只有与已知发送信息相符的那条支 路被延伸,因而在每级比较后,幸存路径减少一半。因此,在接收到(N-1)个己知信 息后,在整个网格图中就只有唯一的一条幸存路径保留下来,这就是译码所得的路径。也就是说,在己知接收到的序列的情况下,这条译码路径和发送序列是最相似的。对于(n,k,N)卷积码,其编码存储度(移位寄存器单元的数量)为 N,幸存路径有 2N 条。每条幸存路径(或信息序列)存储器单元数是 n*D,其中,n 是卷积码码组宽度,D 是需要存储的码组的个数。D 的取值一般考虑取 m 的整倍数,称 D 为幸存路径长度。编码存储度和幸存路径长度的取值问题关系到芯片规格 、传输时延等问题。若 D 很大,则译码器的存储量太大而难以实用。一般情况下,当译码进行到第 5 级(每级包括 m 个时 刻)以后,每个状态幸存路径的前几个分支已基本重合在一起,这就是说每个路径存储 器不必存储本文来自优%文,论'文.网,
毕业论文 www.youerw.com 加7位QQ324~9114找原文 D 个很大的码序列。译码时,当译码器接收并处理完第 D 个码组后,译码器中的幸存路径存储器已全部存满,当译码器开始处理第 D+1 个码组时,他就对幸存路径存储器中的最顶端的码组做出判决并输出。 1) 适当增加幸存路径的长度可以提高译码器的纠错能力。 2) 幸存路径的长度在增加到一定值时,译码器纠错能力趋于稳定。当 N 值增加到 6 以 上,误比特率降低幅度大为减小,曲线有合二为一的趋势。因此,可以认为幸存路径长度 D 取编码存储度的6倍以上就可以取得比较好的译码性能。 3) 选择合适的延时。路径量度(似然度)的累加选取和码字延时判决输出提高了译码的准确性,D 越大越有利于判决的正确性,但是这又和通信的实时性背道而驰,一般 D 为卷积码约束长度 N 的 5~10 倍即可,本文算法 D 取 50。 4) 留存路径的更新的描述。每个状态的留存路径选择实际上是从当前时刻往前推的, 例如,在时刻 t,又假设到达状态 s2 的路径有两个,分别为 s4 和 s5,对应的输出 码字分别是 00 和 11,我们分别计算出两条路经的分支量度BM,并累加它们对应的前状态路径量度 PM_l,发现累加后 s5- s2 的 PM 值比 s4- s2 的大,所以保留 s5 所对应的留存路径,并更新状态 s2 所对应的留存路径存储器。对每一状态都做如此 比较,保存大的分支量度 BM,然后再累加前一状态路径量度 PM_l,最后完成所有状态的选择,比较当前所有状态的路经量度 PM,选择最大路径,如果延时超过 D 就判决输出码字。显然此处判决的码字要延时 D 时刻才能移位输出。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
MATLAB卷积码译码在不同信道中的误码率仿真 第3页下载如图片无法显示或论文不完整,请联系qq752018766