通信原理板块——卷积码(原理、代数和几何表示、编码和解码)

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等
在这里插入图片描述
1、卷积码定义
卷积码(convolutional code)是一种线性非分组码,适用于前向纠错。
卷积码在编码是,把k比特的信息段变成n个比特的码组,但是监督码元不仅仅和当前的k比特信息段有关系,而且还跟前面m=(N-1)个信息段有关。
一个码组中的监督码元监督着N个信息段,N称为编码约束度,nN称为编码约束长度。将卷积码记作(n,k,N)。码率为k/n。
2、卷积码的基本原理
卷积码编码器由三种主要元件构成,包括Nk级移存器、n个模2加法器和一个旋转开关。
模2加法器的输入端连接到一些移存器的输出端,数目可以不同。
模2加法器的输出端均接到旋转开关上。
将时间分成等间隔的时隙,在每个时隙中k比特从左端进入移存器,并且移存器各级暂存的信息向右移k位。
旋转开关每时隙旋转一周,输出n比特(n>k)。
在这里插入图片描述
常用的卷积码,k=1。移存器共有N级,每个时隙中,只有1b输入信息进入移存器,并且移存器各级暂存的内容向右移1位,开关旋转一周输出n比特。码率为1/n。
一个(n,k,N)=(3,1,3)的卷积码编译器
在这里插入图片描述
输入信息比特序列为…b(i-2) b(i-1) b(i) b(i+1)…
当输入b(i)时,编码器输出ci,di,ei与b(i-2) b(i-1) b(i)的关系
在这里插入图片描述
3、卷积码的代数表示
卷积码是一种线性码,故可以由一个监督矩阵H或生成矩阵G所确定。
①监督矩阵
在第一个信息位b1进入编码器之前,各级移存器均处于“0”状态,监督位di、ei和信息位bi之间的关系
注意:“+”表示的是异或“⊕”
在这里插入图片描述
在这里插入图片描述
用矩阵表示为
在这里插入图片描述
故监督矩阵为
在这里插入图片描述
监督矩阵是一种截短监督矩阵,矩阵的最左边n列、(n-k)N行的一个子矩阵,且向右的每n行均相对于前n列降低(n-k)行。
在这里插入图片描述
卷积码的截短监督矩阵的一般形式:
在这里插入图片描述
②生成矩阵G
在这里插入图片描述
截短生成矩阵
在这里插入图片描述
一般截短生成矩阵
在这里插入图片描述
4、卷积码的几何表述
①码树图
一个(3,1,3)卷积码的码树图
移存器M1,M2,M3的初始状态000作为码树的起点。
输入信息位为“0”,状态支路向上移动;
输入信息位为“1”,状态支路向下移动。
在这里插入图片描述
②状态图
将码树改进为状态机,M2和M3的四种状态表示符号a,b,c,d
当前输入信息位、移存器前一状态、移存器下一状态和输出码元之间关系
在这里插入图片描述
卷积码状态图
在这里插入图片描述
③网格图
将状态图在时间上展开,即可得到网格图
在这里插入图片描述
5、卷积码的解码
卷积码的解码方法有两种:代数解码和概率解码。
代数解码是利用编码本身的代数结构进行解码,不考虑信道的统计特性。
大数逻辑解码,或门限解码,是卷积码代数解码的最主要一种方法,也应用于循环码的解码。适应于约束长度较短的卷积码。
概率解码,或最大似然解码,基于信道的统计特性和卷积码的特点进行计算。一是序贯解码,二是维特比(Viterbi)算法。
①大数逻辑解码
卷积码的大数逻辑解码是基于卷积码的代数表述运算的。
在这里插入图片描述
具体的操作步骤:
将接收信息位暂存于移存器,并从接收码元的信息位和监督位计算校正子。
将计算得出的校正子暂存,用来检测错码的位置。
在信息位移存器输出端,接一个模2加电路,当检测输出的信息位有错时,在输出的信息位上加“1”,从而纠正。
②维特比解码算法
维特比解码算法原理是将接收到的信号序列和所有可能的发送信号序列比较,选择其中汉明码距最小的序列认为是当前发送信号序列。
维特比解码算法,常用于卫星通信和蜂窝网通信系统中。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
卷积码是在信息序列通过有限状态移位寄存器的过程中产生的。通常,移存器包含N级(每级A比特),并对应有基于生成多项式的m个线性代数方程,输入数据每次以A位(比特)移入移位寄存器,在此同时有n位(比特)数据作为己编码序列输出,编码效率为A/n。参数N被称作约束长度,它指明了当前的输出数据与多少输入数据有关。它决定了编码的复杂度。 译码器的功能就是,运用一种可以将错误的发生减小到最低程度的规则或方法,从已编码的码字中解出原始信息。在信息序列和码序列之间有一对一的关系。此外,任何信息序列和码序列将与网格图中的唯一一条路径相联系。因而,卷积译码器的工作就是找到网格图中的这一条路径。 Viterbi算法可被描述如下; 把在时刻i,状态 所对应的网格图节点记作 ,每个网相节点被分配一个值 。节点值按如下方式计算: (1)设 , 。 (2)在时刻i,对于进入每个节点的所有路径计算其不完全路径的长度。 (3)令 为在i时刻,到达与状态 。相对应的节点 的最小不完全路径长度。通过在前一节点随机选择一条路径就可产生新的结果。非存留支胳将从网格图中删除。以这种方式,可以从 。处生成一组最小路径。 (4)当L表示输入编码段的数目,其中每段为k比特,m为编码器中的最大穆存器的长度,如果 ,那么令 ,返回第二步。 一旦计算出所有节点值,则从 时刻,状态 。开始,沿网格图中的存留支路反向追寻即可。这样被定义的支路与解码输出将是一一对应的。关于不完全路径长度,硬判决解码将采用Hamming距离,而软判决解码将采用Euclidean距离。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小灰灰的FPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值