最通俗的语言讲解卷积码、码树图、状态图以及维特比译码

什么是卷积码?

卷积码是由伊利亚斯发明的一种非分组码,它更加倾向于纠错,对于实际的性能优于分组码,运算较为简单。
将卷积码记为(n,k,N),码率定义为k/n

n是n个比特
k是k个信息位
N是N个信息段

卷积码编码器

组成:Nk级移位寄存器,n个模二加法器,一个旋转开关

题目:画出 ( 5 , 6 , 7 ) 8 (5,6,7)_8 (5,6,7)8的卷积码译码器框图
如果这一步你画不出来 to 输入与输出的序列关系写不出来 to后面的码树图你就画不出来 to 状态图画不出来 to 维特比译码图画不出来

解题步骤:

  1. 不管几进制的你都要先转化成二进制: ( 101110111 ) 2 (101 110 111)_2 (101110111)2
  2. 然后 ( 5 , 6 , 7 ) 8 (5,6,7)_8 (5,6,7)8有三个数,写三个多项式,多项式的指数从左到右从0开始依次递增,它们的系数就是转化成为二进制之后的数字,每个式子有三个系数,刚好把上面9个数字用完,如下:
    G 1 ( D ) = 1 + D 2 G_1(D)=1+D^2 G1(D)=1+D2 ----- X 1 , j = m j ⨁ X_{1,j}=m_j\bigoplus X1,j=mj m j − 2 m_{j-2} mj2
    后面几个式子就上图了,懒得打公式:
    在这里插入图片描述
    注意译码器的排布,它的序号是从左往右依次递减的
码数图

得到输入与输出的关系后,就可以画码树图了,我们这里以 ( 3 , 1 , 3 ) (3,1,3) (3,1,3)卷积码的码树图为例,只要它没有标下标,就是默认十进制,把它转化成二进制就OK了。
步骤:

  1. 咱们前面不是说了吗,寄存器它的序号是从左到右依次递减的,这里的寄存器要以 M 3 M 2 M 1 M_3M_2M_1 M3M2M1的方式来进行,它的初始状态是000,从左到右进来的时候好比就是把最右边的那个0挤出去,于是乎变成了 M 3 M 2 M 1 M_3M_2M_1 M3M2M1= 100 100 100,到这里我们就可以使用前面得到的输入与输出关系了,就那个异或的式子,后面码树图上的数字,全靠咱们这个输入与输出关系来填补
  2. 码树图的起始点有两个一上一下的箭头,一般是0在上,1在下,我看一些教材在画这个码树图的时候,还会在每个数的子节点用a,b,c,d来代表四个状态,为此在码树图底下专门列了一张表,这个好像没有强制要求,你画这个东西后期看起来好像更加清晰,不画也可以
  3. 码树图枝干上填写的数字就是它给的输入序列利用咱们的多项式计算后得到的输出序列,你移位寄存器每次移动一位,你就得进行一次异或计算,并把你异或计算的到的数字(有几个多项式就得到几个数字)写在码树图的枝干上
  4. 码树图原则上可以用于解码,就是搜索解码,比较相邻支路的汉明距离,选出最短的,依次连接,但这样子不实用,码树图支路按照指数规律增长,计算量巨大无比
    敲公式实在是太麻烦,我写纸上拍照展示给大家,以(3,1,3)卷积码为例
    在这里插入图片描述
    写出状态的abcd的好处就是后面你画状态图的时候方便一些

维特比译码

画码树图的时候记得选取两个寄存器来表示状态(a,b,c,d),这样你后面画维特比译码的时候比较方便,维特比译码实线表示输入的是0,虚线表示输入的是1,每一次译码的累加汉明距离要写在最右端,最右端画两个圆,把数值写里面,每推进一次,就要舍去数值较大的那一个路线,依次累积。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值