MATLAB实现卷积码编译码(4)

2019-04-21 14:34

聊城大学本科毕业论文(设计)

图2-1 (2,1,7)卷积码编码器

若输入序列为

u=(u0u1u2u3??),则对应两个码字序列

C1=(ca0ca1ca2ca3??)和C2=(cb0cb1cb2cb3??)相应的编码方程可写为 P1=u?C1,P2=u?C2,P=(P1,P2)。“?”符号表示卷积运算,P1,P2表示编码器的两个冲激响应,即编码器的输出可以由输入序列和编码器的两个冲击响应卷积而得到,故称为卷积码。这里的冲激响应指:当输入为[1 0 0 0 0 ? ? ]序列时,所观察到的两个输出序列值。由于上图N值为7,故冲激响应至多可持续到第7位,可写为P1=[1 1 1 1 0 0 1],P2=[1 0 1 1 0 1 1]然后将两个输出端的码字序列合并为一个码字序列为C=(ca0cb0ca1cb1ca2cb2??)。若输入信息序列为[1 1 0 1];则P1=[1 0 0 1 0 1 0 1 0 1],P2=[1 1 1 1 1 0 1 1 1 1],C=[1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 1]。

如图3-2所示为(2,1,3)卷积码的编码器,也是本次课程设计所研究的卷积码编码器,由于其生成冲激响应分别为[1 1 1]和[1 0 1],故被称为(7,5) 码。

图2-2 (2,1,3)卷积码编码器

+ Z-1 Z-1 + 2.2.2 卷积码图形表示法

除了用解析法描述卷积码的编码外,还可以使用比较形象的图形法来表示卷

11

聊城大学本科毕业论文(设计)

积码。比较常用的有状态图法,树图法和网格图法。

状态图法:

由于卷积码编码器在下一时刻的输出取决于编码器的当前状态和下一时刻的输入,而编码器当前状态取决于编码器当前各移位寄存器的存储内容。称编码器当前各移位寄存器存储内容(0或1)为编码器在该时刻的状态(此状态代表记忆以前的输入信息)。随着信息序列的不断输入,编码器不断从一个状态转移到另外一个状态,并且输出相应的编码序列。编码器的总可能状态数为2mk个。对(7,5)码的编码器来说,n=2,k=1,N=3,m=2。共有四个可能状态,其状态图如图2-3所示:

0/00

00 1/00 0/11 0/10 1/01 1/11 10 01 0/01 11 1/10

图2-3 卷积码状态图

图中四个方块表示状态,状态间的连线与箭头表示转移方向,连线上的数字表示是状态发生转移的到来比特,斜杠后的数字由一个状态到另一个状态转移时的输出码字。如当前状态为11,输入信息为0,则转移到01状态并输出01码字,若输入信息为1,则依然为11状态,并输出10码字。

树图法

描述卷积码的编码过程除了用它的生成矩阵错误!未找到引用源。外,还可以用半无限码树图。卷积码的树图表示是一种形象的表示卷积码编码过程的方法。卷积码的各种距离度量与树图有密切关系。

以(2,1,3)卷积码为例,它的生成多项式矩阵和生成矩阵分别为:

G?D??1?D?D2,1?D2错误!未找到引用源。 (2-1)

12

??聊城大学本科毕业论文(设计)

?111011??g0???111011???G???111011?????????????????g1g0g2g1g0??g2?g1g2? (2-2)

??????若输入编码器的信息序列M(D)=(m0,m1,m2?..)=(1 1 0 1 1 ?..),则

由编码器输出码序列C为C = M =(11,01,01,00,01,01, )=( C0,Cl,C2,

C3,?) (2-3)

可以把这个编码过程用如图3-4所示的半无限码树图来说明。设编码器的初始状态为0,码树中每个节点的下一级的上面的分支表示输入为0,下面的分支表示输入为l。每个分支上面的数字表示对应次分支的输出。因此输入不同的信息序列,编码器就走不同的路径,输出不同的码序列。按照上面的例子,则编码过程对应码树中粗线表示的一条路径。对该码序列来说,树图上的这条路径就是它的正确路径。对于一般的二进制(n,k,N)编码器来说,每次输入的是k个信息元,有2k个可能的信息组,这对应于从码树每一个节点上分出的分支树有2k条,相应于2k错误!未找到引用源。个不同信息组的输入,并且每条都有n个码元,作为与此相应的输出子码。

由以上讨论可知,卷积码编码过程的实质,是在输入信息序列的控制下,编码器沿码树通过某一特定路径的过程。显然,译码过程就是根据接收序列和信道干扰的统计特性,译码器在原码树上力图恢复原来编码器所走的路径,即寻找正确路径的过程。其过程如图2-4所示。

13

聊城大学本科毕业论文(设计)

00 1 11 S1 S3

00 S0 00 S0 11 S2 00 S0 11 10 S2 S2 01 S3 01 11 00 10 01 00 0 S0 10 S2 11 S0 11 10 01 11 S2 01 10 S3

00 000 01 10 图2-4 ( 2,1,3)卷积码的树图

网格图法:

网格图可以描述卷积码的状态随时间推移而转移的情况。该图纵坐标表示所有状态,横坐标表示时间。网格图在卷积码的概率译码,特别是Viterbi译码中非常重要,它综合了状态图法直观简单和树图法时序关系清晰的特点。 如图2-5所示

t1 t2 t3 t4 t5 t6

2 1 1 1 1 0 1 1 1 1 1 1 1 1 2 01 11

2 图2-5 译码器网格图

状态 00

10

1 2 0 2 2 0 0 2 0 1 2 0 0 0

14

聊城大学本科毕业论文(设计)

图中实线表示输入0时所走分支,虚线表示输入1时所走分支,编码时只需从起始状态开始依次选择路线并读出输出即可。假设从a状态开始,输入为[1 0 1 1],则可由图中读出输出为[11 10 10 01]。

2.3 卷积码译码原理 2.3.1 卷积码三种译码方式 (1)代数译码

代数译码是将卷积码的一个编码约束长度的码段看作是[n0(m+1),k0(m+1)]线性分组码,每次根据(m+1)分支长接收数字,对相应的最早的那个分支上的信息数字进行估计,然后向前推进一个分支。如果假设输入的信息序列为=(10111),相应的编码输出序列为 c=(11100001100111)。在未超出编码约束长度的情况下,可以通过译码时将接受序列与所有可能的输出编码序列进行比较,通过比较可以得到最小距离,进而可以得到可能的最大概率。按同样方法判决,将每一位进行比较,进行纠错。若此时接收序列R=(10100001110111),先根据R的前三个分支(101000)和码树中前三个分支长的所有可能的 8条路径(000000?)、(000011?)、(001110?)、(001101?)、(111011?)、(111000?)、(110101?)和(110110?)进行比较,可知(111001)与接收序列(101000)的距离最小,于是判定第 0分支的信息数字为 0。然后以R的第 1~3分支数字(100001)按同样方法判决,依此类推下去,最后得到信息序列的估值为=(10111),遂实现了纠错。这种译码法,译码时采用的接收数字长度或译码约束长度为(m+1)n0,所以只能纠正不多于(dmin-1)/2个错误(n长上的)。实用中多采用反馈择多逻辑译码法实现。

(2)维特比译码

维特比译码是根据接收序列在码的格图上找出一条与接收序列距离(或其他量度)为最小的一种算法。它和运筹学中求最短路径的算法相类似。若接收序列为R=(10100101100111),译码器从某个状态,例如从状态ɑ出发,每次向右延伸一个分支(对于l<L,从每个节点出发都有2种可能的延伸,其中L是信息序列段数,对l≥L,只有一种可能),并与接收数字相应分支进行比较,计算它们之间的距离,然后将计算所得距离加到被延伸路径的累积距离值中。对到达每个状态的各条路径(有2条)的距离累积值进行比较,保留距离值最小的一条路径,称为幸存路径(当有两条以上取最小值时,可任取其中之一),译码过程如图。图中标出到达各级节点的幸存路径的距离累积值。对给定 R的估值序列为=(10111)。这种算法

15


MATLAB实现卷积码编译码(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《培养小学生数学阅读能力的实践与研究》总报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: