//本文均属原创,转载请注明出处。

//本课程以36.212 v10.4.0为教材,请自行到3GPP网站下载。

//由于保密的原因,暂不提供代码查看。

 

模块作用:对控制信息和广播信道进行信道编码,增强鲁棒性。

相关模块:速率匹配

咬尾卷积码优缺点:克服了码率损失的问题,并且适合迭代译码,但是译码复杂度增加了。

 

本文主要介绍咬尾卷积码,协议上(v10.4.0)写的很简单,我一句句来分析下:

A tail biting convolutional code with constraint length 7 and coding rate 1/3 is defined.

这里有两个概念,constraint length-约束长度;coding rate-编码速率。

约束长度百度上搜下,介绍为:

1,约束长度(constraint length)= 寄存器个数(N)+1;
上面是通解,在Lin Shu 的《error control coding》书里是这么表达的。

2,但是在sklar的《digital comm》一书里面,约束长度=N

以上2种写法之所以不同,是因为他们寄存器的意义不同,但是实际上是表达的是一个意思。约束长度就是,能输出信号到加法器的点的和。

很好理解。

编码速率和卷积码有关,介绍如下:

若以(k,n,m)来描述卷积码,其中k为每次输入到卷积编码器的bit数,n为每个k元组码字对应的卷积码输出n元组码字,m称为约束长度,编码速率k/n。

也很好理解。

 

下面是标准中的卷积码生成图:

【零基础学会LTE】【3】LTE 36.212 咬尾卷积码详解

其中D从左到右分别对应标准上的S0,S1,。。。S5。

初始化时,S0=Ck-1,S1=Ck-2,。。。S5=Ck-6。  //initialization

 

输入第一个比特C0,d0=C0^Ck-2^Ck-3^Ck-5^Ck-6,  //^代表异或

d1,d2也是依样画葫芦生成。                 //

 

当输入第二个比特C1时,寄存器右移一位,最末位抛弃,即S5抛弃,第一位变为输入位,即S0=C0。  //registered update

 

当最后的比特Ck-1进行编码完成后,寄存器又回到了初始状态,就像一条蛇咬住了自己的尾巴,这就是tailbiting的由来。因此,这个卷积码也叫做咬尾卷积码。

 

G0,G1,G2是生成公式,与输入比特异或的寄存器为1,不异或的寄存器为0,因此,第一个输出d0的生成公式是011011,同CRC的生成公式一样,最高位要置1,因此生成公式为1011011,写成八进制就是133.

 

编码代码如下: