卷积码及其在通信中的应用
摘要:分组码是将序列切割成分组后孤立的进行编译码,分组与分组之间没有任何联系。从信息论角度看,这样做丧失了一部分相关信息,且信息序列切割的越碎,丧失的信息就越多。于是在诸多线性分组码的缺点下,Elias于1995年提出了卷积码。本文主要介绍了卷积码的基本概念、卷积码的编码原理、译码原理、表示方法。并以现实中的例子(在GSM系统和CDMA/IS-95系统中的应用)充分的说明了卷积码的优点,在同样的码率和设备的复杂性条件下,无论理论上还是实践上都证明:卷积码的性能优于分组码。
关键词:卷积码;编码;译码;表示;GSM、CDMA/IS-95 一、卷积码的基本概念
卷积码是一种性能优越的信道编码。(n,k,N)表示把k个信息比特编程n个比特,N为编码约束长度,说明编码过程中互相约束的码段个数。卷积码编码后的n个码元不仅与当前组的k个信息比特有关,而且与前N-1个输入组的信息比特有关。编码过程中相互关联的码元有N乘以n个。R/n是卷积码的码率,码率和约束长度是衡量卷积码的两个重要参数。 二、编码原理
以二元码为例,编码器如图。输入信息序列为u=(u0,u1,…),其多项式表示为u(x)=u0+u1x+…+ulxl+…。编码器的连接可用多项式表示为g(1,1)(x)=1+x+x2和g(1,2)(x)=1+x2,称为码的子生成多
项式。它们的系数矢量g(1,1)=(111)和g(1,2)=(101)称作码的子生成元。以子生成多项式为阵元构成的多项式矩阵G(x)=[g(1,1)(x),g(1,2)(x)],称为码的生成多项式矩阵。由生成元构成的半无限矩阵
称
为码的生成矩阵。其中(11,10,11)是由g(1,1)和g(1,2)交叉连接构成。编码器输出序列为c=u·G,称为码序列,其多项式表示为c(x),它可看作是两个子码序列c(1)(x)和c(2)(x)经过合路开关S合成的,其中c(1)(x)=u(x)g(1,1)(x)和c(2)(x)=u(x)g(1,2)(x),它们分别是信息序列和相应子生成元的卷积,卷积码由此得名。在一般情况下,输入信息序列经过一个时分开关被分成k0个子序列,分别以u(x)表示,其中i=1,2,…k0,即u(x)=[u(x),…,u(x)]。编码器的结构由k0×n0阶生成多项式矩阵给定。输出码序列由n0个子序列组成,即c(x)=[c(x),c(x),…,c(x)],且c(x)=u(x)·G(x)。若m是所有子生成多项式g
每次输入 k比特(x)中最高次式的次数,称这种码为(n0,k0,m)卷积码。
… 2k … 3k 1 … k 1 … k 1 … k 1… k… … … … … … … 1…k Nk Nk级 移存器 1 2 … … … … nn个模2 加法器 每输入k比特 旋转1周 编码输出 三、 译码方法及原理
对卷积码的研究中,其中编码器较简单,模式也很统一。主要是
研究提高卷积码的译码速度和可靠度。
(1)代数译码
代数译码是将卷积码的一个编码约束长度的码段看作是[n0(m+1),k0(m+1)]线性分组码,每次根据(m+1)分支长接收数字,对相应的最早的那个分支上的信息数字进行估计,然后向前推进一个分支.若信息序列=(10111),相应的码序列 c=(11100001100111)。若R=(10100001110111),先根据R的前三个分支(101000)和码树中前三个分支长的所有
可能的 路径 (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)维特比译码
图1-3 维特比译码图
维特比译码是根据接收序列在码的格图上找出一条与接收序列距离(或其他量度)为最小的一种算法。它和运筹学中求最短路径的算法相类似。若接收序列为R=(10100101100111),译码器从某个状态,例如从状态ɑ出发,每次向右延伸一个分支(对于l<L,从每个节点出发都有2=2种可能的延伸,其中L是信息序列段数,对l≥L,只有一种可能),并与接收数字相应分支进行比较,计算它们之间的距离,然后将计算所得距离加到被延伸路径的累积距离值中。对到达每个状态的各
条路径(有2=2条)的距离累积值进行比较,保留距离值最小的一条路径,称为幸存路径(当有两条以上取最小值时,可任取其中之一),译码过程如图。图中标出到达各级节点的幸存路径的距离累积值。对给定 R的估值序列为=(10111)。这种算法所保留的路径与接收序列之间的似然概率为最大,所以又称为最大似然译码。这种译码的译码约束长度常为编码约束长度的数倍,因而可以纠正不多于(df/2)个错误。 维特比译码器的复杂性随m呈指数增大。实用中m不大于10。它在卫星和深空通信中有广泛的应用。在解决码间串扰和数据压缩中也可应用。 (3)序贯译码
序贯译码是根据接收序列和编码规则,在整个码树中搜索(既可以前进,也可以后退)出一条与接收序列距离(或其他量度)最小的一种算法。由于它的译码器的复杂性随m值增大而线性增长,在实用中可以选用较大的m值(如20~40)以保证更高的可靠性。许多深空和海事通信系统都采用序贯译码。 四、表示方法
描述卷积码编码器过程的方法有很多,如矩阵法、多项式、码树和网格图等,这里我们主要介绍和卷积码编码器结构密切相关的多项式法,以及与卷积码译码密切相关的网格图法。 (1) 多项式法
多项式法就是由卷积码的生成多项式直接得出其编码器的结构图。如(2,1,2)卷积码的生成多项式矩阵为:G(D)=[1 D D2,1 D2]。
其中,D是延迟算子,生成多项式的第一项为1 D D2,表示输出编码的第一个码元等于输入码元x(n)与前两个时刻输入的码元x(n-1)、x(n-2)的模2和,同理第二项类似。 (2)状态图法
图1-5 维特比译码图
将编码器寄存器中的内容组合(x(n-1)、x(n-2))定义为编码器状态。如以(2,1,2)为例,则该编码器的状态有四种:00,10,01和11,下面分别用a,b,c,d来代替。编码器在每一个时钟沿打入一个输入信息x(n),因此图示寄存器组合内容就变为(x(n),x(n-1))即状态发生了转移,并同时输出G0(n)、G1(n)。由此我们可以将图所示编码过程用右图所示的状态图表示。
由图所示,随着信息序列不断输入,编码器就不断从一个状态转移到另一个状态并同时输出相应的码序列,所以图所示状态图可以简单直观的描述编码器的编码过程。因此通过状态图很容易给出输入信息序列的编码结果,假定输入序列为110100,首先从零状态开始即图示a状态,由于输入信息为“1”,所以下一状态为b并输出“11”,继续输入信息“1”,由图知下一状态为d、输出“01”……其它输入
信息依次类推,按照状态转移路径a->b->d->c->b->c->a输出其对应的编码结果“110101001011”。 (3)网格图法
状态图可以完整的描述编码器的工作过程,但是其只能显示状态转移的过程而不能显示状态转移发生的时刻,由此引出用来表示卷积码的另一种常用方法——网格图。网格图就是时间与对应状态的转移图(如图),在网格图中每一个点表示该时刻的状态,状态之间的连线表示状态转移。通过观察网格图可以发现在网格图中输入信息x(n)并没有标出,但如观察到转移后的状态表示(x(n),x(n-1))就可以发现输入信息已经隐含在转移后的状态中。在图中还可以发现两个网格图不同主要集中在转移后状态位置不同。重新排序结构(即所谓蝶型结构)是为了优化运算而设计的,因为其中蝶型与蝶型之间是相互的。
图1-6网格图
下面就让我们来看看网格图是如何描述卷积编码过程的:仍以(2,1,2)为例,假定输入序列为1011010100,起始状态(零时刻)为状态a(零状态)。第一个有效时钟沿来临后,编码器接收到输入信息“1”,根据图所示网格图知该时刻(即时刻1)状态为b,并输出其对应的编码结果“11”, 同样在下一个时刻(时刻2)接收到输入信
息“0”,状态变为c并输出“10”,接下来的输入数据依次类推……,由此我们可以用网格图作出该例子的卷积编码过程,如图所示,其中两个状态连线之间的信息为输出结果。 五、 在科技领域中的应用
卷积码是一种性能优越的信道编码,它的编码器和译码器都比较容易实现,同时也具有较强的纠错能力,随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。 (一)GSM系统中的应用
GSM系统话音卷积编码器在全速率业务信道和控制信道就采用了(2,1,4)卷积编码。其连接矢量为G1=(10011)→(23),G2=(11011)→(33)。在GSM系统中,话音编码采用规则脉冲激励-长期预测编码(RPE-LTP)。它以20ms为一帧,共260bit,分为3类,其中Ⅰa50bit类对误码最为敏感,信道编码首先对它进行CRC编码,得到53bit的码字。这53比特和Ⅰb的78比特一起共185比特,它们再经过按规定的次序重新排列后,在其后面加上4个尾比特0000,形成卷积码编码器的输入序列,所以卷积编码器输出有2×(185+4)=378bit。卷积编码是按帧进行的,尾比特的作用就是在每帧编码后使编码器回到零状态,准备下一帧的编码。卷积编码器的输出和Ⅱ类的比特串接在一起,形成每帧378+78=456bit话音编码块器,速率为456bit/20ms=22.8kbit/s。
(二) 在卷积码在CDMA/IS-95系统中的应用
在前向和方向信道,系统都使用了约束长度K=9的编码器。其中前向信道编码率r=1/2,连接矢量为,G1=(111101011)→(753) ;G2=(101110001) →(561),自由距离为df=12。反向为信道编码率为r=1/3,编码器的连接矢量为G1=(101101111)→(557);G2=(110110011)→(663);G3=(111001001)→(711)。自由距离df=18。由于反向信道编码的自由距离大于正向信道的自由距离,因此反向信道有更强的抗噪声干扰能力。事实上,由于前向信道是一点对多点的传输,基站可以向移动台发射导频信号,移动台利用导频信号进行相干解调,而反向信道是多点对一点的传输,采用导频是不现实的,基站只能采用非相干解调。因此,很难保证基站接收各移动台发来的信号都是正交的。所以在反向信道采取许多措施提高抗干扰能力,加大编码码距就是其中之一。对反向全速率业务信道,系统首先对数据帧(172bit/20ms)进行CRC编码,得到184bit/20ms编码块,接着在其后加上K-1=8位尾比特,再进行卷积编码。信道编码的结果输出速率为3×(184+8)/20ms=28.8kbit/s的编码符号。
结论:本文主要介绍了卷积码的基础知识以及在现代通信领域的应
用。结果表明,在同样的码率和设备的复杂性条件下,无论理论上还是实践上都证明:卷积码的性能优于分组码。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。卷积码在信息通信里的举足轻重的作用,所以学好卷积码的知识是我们新一代青年尤其是信号处理方面的学生学习的重点之一。本文只是大概介绍了一下有关知识,所以仍需我们进一步的研究,为进一步的发展打下扎实的基础。
参考文献:
[1] 华力,雍玲,雷菁. 基于 FPGA 的 DVB-S2 通用 LDPC 编码器设计与实现[J].通信技术, 2008,41(01):12-14.
[2] 汪晓岩,胡庆生,孙荣久等. Viterbi译码器的硬件实现[J]. 微电子学,2002(32):6-8
[3] 曹雪虹,张宗橙.信息论与编码[M].北京邮电大学出版社.2008,12:120-130