viterbi译码算法简介

viterbi译码算法是一种卷积码的解码算法。优点不说了。缺点就是随着约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。  (2<<(N-1))。所以viterbi译码一般应用在约束长度小于10的场合中。
   先说编码(举例约束长度为7):编码器7个延迟器的状态(0,1)组成了整个编码器的64个状态。每个状态在编码器输入0或1时,会跳转到另一个之中。比如110100输入1时,变成101001(其实就是移位寄存器)。并且输出也是随之而改变的。
   这样解码的过程就是逆过程。算法规定t时刻收到的数据都要进行64次比较,就是64个状态每条路有两条分支(因为输入0或1),同时,跳传到不同的两个状态中去,将两条相应的输出和实际接收到的输出比较,量度值大的抛弃(也就是比较结果相差大的),留下来的就叫做幸存路径,将幸存路径加上上一时刻幸存路径的量度然后保存,这样64条幸存路径就增加了一步。在译码结束的时候,从64条幸存路径中选出一条量度最小的,反推出这条幸存路径(叫做回溯),得出相应的译码输出。
   说的不是很清楚。要画图才可能比较清楚。我做过相应的dsp程序,发现这样的算法再54x的dsp上用100M跑,都不能达到我们数传速度的要求,主要的时间消耗在每条路经需要比较两次,两次比较的时候一共需要从内存中取3个数(上一时刻幸存路径的量度,两个状态跳转相应的输出值),比较结束以后,还需要对内存写入2个数(幸存路径新的总量度,下一个跳转的状态),这样,每个时钟节拍需要比较的次数就是64*2次,每次存取数就要5次。一个数据包是256byte,这样可以知道解码一包所大概需要的时间。加上一下其他的开销,最后实验出来的结果是大概0.06m,但是我们用64k速率传输的时候只要0.03m就可以传完。

viterbi译码算法简介相关推荐

  1. 卷积码Viterbi译码算法基本原理及C语言实现

    配套代码:https://download.csdn.net/download/wlwdecs_dn/14463620 界面 (3, 1, 3)卷积码状态转移框图 源文件 编码文件: 译码文件:

  2. viterbi matlab,Matlab实现Viterbi译码

    viterbi译码算法是一种卷积码的解码算法.优点不说了.缺点就是随着约束长度的增加算法的复杂度增加很快.约束长度N为7时要比较的路径就有64条,为8时路径变为128条. (2< 先说编码(举例 ...

  3. CRC辅助的Turbo码增强译码算法(PLVA)

    为了提高传统迭代译码的Turbo译码算法,本文把Turbo码和CRC看成一个级联码,研究利用CRC的冗余来增强Turbo译码性能.由于Turbo码的分量码是卷积码,所以采用基于List Viterbi ...

  4. LDPC译码算法代码概述

    程序说明 V0.0 2015/1/24 LDPC译码算法代码概述 概述 本文介绍了包括LDPC_Simulation.m, ldpcdecoderbp1.m,ldpcdecoderminsum.m, ...

  5. LDPC的两种常用译码算法

    LDPC码简介 LDPC码(低密度检验码)是1962年Gallager提出的一种通信编码方式,也是当前最接近香农极限的编码,在信息传输速率高速增长的今天,LDPC码有着广阔的应用前景.目前5G通信领域 ...

  6. Viterbi译码及其matlab和FPGA实现

    Viterbi译码由美国科学家Viterbi在1967年提出1,是卷积码的译码算法,是一种最大似然译码算法,其通过寻找距离最短的译码路径来实现.这篇文章侧重实现,具体原理就不说明了. matlab实现 ...

  7. viterbi matlab仿真,通信系统中Viterbi译码的Matlab仿真与实现

    2 维特比译码原理 Viterbi译码是卷积码的最大似然译码算法,是一种实用化的概率算法.它的基本思想是把已接收序列与所有可能的发送序列作比较,选择其中码距最小的一个序列作为发送序列.从图2的卷积码网 ...

  8. 卷积码编码及维特比译码(Viterbi)算法的原理及其FPGA实现

    引言       卷积码是一种信道纠错编码,在通信中具有广泛的应用.在发送端根据生成多项式进行卷积码编码,在接收端根据维特比(Viterbi)译码算法进行译码,能够有效抵抗信道噪声的影响,在误码率门限 ...

  9. 数据结构与算法:算法简介

    数据结构与算法:算法简介 雪柯 大工生物信息 提笔为写给奋进之人 已关注 你说呢 . shenwei356 等 70 人赞同了该文章 引用自算法图解,作者[美] Aditya Bhargava 译袁国 ...

最新文章

  1. 产品经理欲哭无泪的瞬间2(太真实了)
  2. 【SpringBoot】开启热部署(jsp 页面热部署、devtools 全局热部署)
  3. 天梯— A-B(C语言)
  4. leetcode练习--字符串中第一个唯一字符
  5. CentOS桥接网卡配置
  6. 理解Python中的with…as…语法
  7. 登录图片滑动验证实现
  8. 有趣的计算机黑科技,6个让你欲罢不能的电脑黑科技软件,我一定要分享出来!...
  9. VC++2010Express下载
  10. 手写HashMap排序
  11. 如何做好公司固定资产管理?如何管理企业的固定资产
  12. JS对象定义和基本方法
  13. SSD目标检测网络tensorRT推理【附代码】
  14. Windows上免费轻量好用的软件(不定期更新)
  15. 计算机win10无法打开小键盘,win10数字小键盘开机不启动解决方法
  16. 元数据编码和传输标准(METS)
  17. 利用vim编辑器创建和编辑正文文件
  18. node.js版本问题
  19. ​争夺00后社交,QQ、B站、快手谁能赢?
  20. vs如何设置在Release下进行调试

热门文章

  1. C++详细学习笔记(二)
  2. QGC 地面站中获取电压完整教程(QGC中无法获取APM电压)
  3. 开源的WebVR直播播放器
  4. linux 防火墙 阻止ip_linux iptables防火墙如何禁止指定IP访问
  5. 微信小程序 keyboard-accessory组件
  6. 机器视觉领域专业词汇中英对照
  7. Winows注册minio为服务器
  8. 《计算机应用基础》在线作业一
  9. Substance Painter:常用快捷键
  10. ubuntu火狐浏览器安装flash_player插件