分享

Viterbi译码

 爱傻妞 2010-11-08

Viterbi译码

  

接收到的符号首先经过解调器判决,输出01 码,然后再送往译码器的形式,称为硬判决译码。即编码信道的输出是01 的硬判决信息。

基本解释

  我们选择似然概率( m P RC)的对数作为似然函数。容易看出,硬判决的最大似然译码实际上是寻找与接收序列Hamming距离最小的编码序列。对于网格图描述Viterbi 算法,整个Viterbi 译码算法可以简单概括为相加-比较-保留,译码器运行是前向的、无反馈的,实现过程并不复杂。

Viterbi 算法的复杂度

  我们来分析Viterbi 算法的复杂度: (n, k, N) 卷积码的状态数为2k (N1) ,对每一时刻要做2k (N1) 加-比-存操作,每一操作包括2k 次加法和2k 1 次比较,同时要保留2k (N1)条幸存路径。由此可见,Viterbi 算法的复杂度与信道质量无关,其计算量和存储量都随约束长度N 和信息元分组k 呈指数增长。因此,在约束长度和信息元分组较大时并不适用。为了充分利用信道信息,提高卷积码译码的可靠性,可以采用软判决Viterbi 译码算法。此时解调器不进行判决而是直接输出模拟量,或是将解调器输出波形进行多电平量化,而不是简单的 01 两电平量化,然后送往译码器。即编码信道的输出是没有经过判决的软信息

硬判决算法

  与硬判决算法相比,软判决译码算法的路径度量采用软距离而不是汉明距离。最常采用的是欧几里德距离,也就是接收波形与可能的发送波形之间的几何距离。在采用软距离的情况下,路径度量的值是模拟量,需要经过一些处理以便于相加和比较。因此,使计算复杂度有所提高。除了路径度量以外,软判决算法与硬判决算法在结构和过程上完全相同。 一般而言,由于硬判决译码的判决过程损失了信道信息,软判决译码比硬判决译码性能上要好约2 dB 。不管采用软判决还是硬判决,由于Viterbi 算法是基于序列的译码,其译码错误往往具有突发性 。

viterbi译码算法简介

  viterbi译码算法是一种卷积码的解码算法。优点不说了。缺点就是随着约束长度的增加算法的复杂度增加很快。约束长度N7时要比较的路径就有64条,为8时路径变为128条。  (2<<(N-1))。所以viterbi译码一般应用在约束长度小于10的场合中。

  先说编码(举例约束长度为7):编码器7个延迟器的状态(01)组成了整个编码器的64个状态。每个状态在编码器输入01时,会跳转到另一个之中。比如110100输入1时,变成101001(其实就是移位寄存器)。并且输出也是随之而改变的。

  这样解码的过程就是逆过程。算法规定t时刻收到的数据都要进行64次比较,就是64个状态每条路有两条分支(因为输入01),同时,跳传到不同的两个状态中去,将两条相应的输出和实际接收到的输出比较,量度值大的抛弃(也就是比较结果相差大的),留下来的就叫做幸存路径,将幸存路径加上上一时刻幸存路径的量度然后保存,这样64条幸存路径就增加了一步。在译码结束的时候,从64条幸存路径中选出一条量度最小的,反推出这条幸存路径(叫做回溯),得出相应的译码输出。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多