卷积码译码-超级简单易懂版

译码问题描述

  • 接收到比特含有错误,如何纠错?
  • 直观来看:从所有可能的状态中找出与接收序列最相似的(汉明距离最小)
    在这里插入图片描述

网格图描述

  • 垂直方向:列出编码器状态
  • 水平方向:时间演进方向
  • 分支:连接不同时刻的状态
    在这里插入图片描述

网格图:发送方视角

  • 发送比特,唯一确定一条网格图上的路径
  • 恢复发送比特 等效为 恢复路径
    在这里插入图片描述

Viterbi算法

  • 出发点:找到最可能(最相似)的发送比特序列
  • 通过网格图计算最相似路径
  • 硬判决Viterbi:接收信号为01比特
  • 软判决Viterbi:接收信号为比特似然比,e.g. 比特有90%概率为1

在这里插入图片描述

概述

  • 分支度量 Branch metric,对每一条网格分支的似然程度 “打分”
  • 在任何时刻,有 2 K − 1 2^{K-1} 2K1 个最能的消息(每一个对应一个状态)
    • 1 个消息-确定 1条网格路径
    • 路径度量-对每一条网格路径的似然程度 “打分”
    • 最相似的消息:产生最小路径度量的消息
      在这里插入图片描述

硬判决-分支度量

  • 输入:接收的比特
  • 对每一条分支进行标记,接收比特与发送比特之间的汉明距离
  • e.g. 接收00,分别在4种状态对应的8条路径上计算汉明距离
    在这里插入图片描述
  • 假设已知编码器在状态00,接收00
    在这里插入图片描述
  • 路径度量:对汉明距离进行相加
    在这里插入图片描述
  • 进行2次后,可以发现目前,每一个状态都有唯一1个前序状态
  • 路径度量:在当前状态,沿着路径将全部的汉明距离进行累加
  • 路径度量:前序状态的路径度量+分支度量
  • e.g. 途中绿框中的数字表示Path metric

在这里插入图片描述

  • 目前,每个状态有2个前序的状态,2条前序路径,那么该使用哪一条?
  • 幸存路径:选择具有更少路径度量(更少比特错误),对 舍弃路径 losing branch进行剪枝(Prune)
  • e.g. 如从00 ->0->0->0,累积路径度量是 0+2+1=3,从00->1->0->0,累积路径度量是 2+1+1 = 4,因此舍弃4的路径,留下3的路径
    在这里插入图片描述
  • 网格上对舍弃路径进行剪枝
  • 如果不同路径对应的度量相同?
    在这里插入图片描述

对非幸存路径剪枝

  • 从每一个状态开始的幸存路径,确定唯一的1条路径,追溯到网格图起始时刻
  • 一些分支不是任何幸存路径的部分:剪掉它们
    在这里插入图片描述

进行比特判决

  • 当只有一条分支留存时,可以判定分支输入比特
  • e.g. 可判决输入比特是0
    在这里插入图片描述

接收数据末端

  • 对具有最小路径度量的幸存路径回溯,得到判决的比特
    在这里插入图片描述

终止编码

  • 发送方传输 2个0 比特
  • 结束时,仅有1条网格幸存路径保留
    在这里插入图片描述

打孔码的Viterbi译码

  • 打孔比特从未被传输
  • 分支度量仅仅计算接收比特与发送的未打孔的比特之间的距离
  • 同样的路径度量,相同的Viterbi算法
  • 损失部分纠错能力
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/917e3204789245c88e9ac4b2d5638a4e.jpeg#pic_center =600px)

能纠多少比特错误?

在这里插入图片描述

在这里插入图片描述

  • 16
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值