数据链理论与系统
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.4 差错控制技术

在无线通信的很多场合,最首要的是要求数据的无误传输。例如,两个数字计算机之间的数字传输、多址卫星通信中各站的站址编码信息,以及各种遥控式武器的信息传输等,都必须是无误的。

但数字信号在传输过程中,由于受到干扰的影响,信号码元波形会变坏,传输到接收端后可能发生错误判决。由乘性干扰(例如信道线形畸变等)引起的码间干扰,通常可以采用均衡的办法来基本消除,而加性干扰的影响则需从其他途径来解决。通常,在设计航空通信系统时,首先应从合理地选择调制解调方法、加大发送功率、扩展信道频带等方面考虑,使加性干扰的影响尽可能小,使信道误比特率在允许范围之内。若不能满足这一要求时,就需采用差错控制。

近年来,由于数字通信的迅速发展,促进了差错控制编码在航空通信系统中的研究。差错控制编码又称信道编码,是提高数字传输可靠性的一种技术。基本思想是通过对信息序列做某种变换,使原来彼此独立、相关性极小的信息码元产生某种相关性,在接收端就可利用这种规律性来检查并纠正信息码元在信道传输中所造成的差错。

从差错控制角度看,按加性干扰引起的错码分布规率的不同,信道可以分为三类,即随机信道、突发信道和混合信道。在随机信道中,错码的出现是随机的,且错码之间是统计独立的。例如,由高斯白噪声引起的错码就具有这种性质。因此,当信道中加性干扰主要是这种噪声时,就称这种信道为随机信道。在突发信道中,错码是成串集中出现的,也就是说,在一些短促的时间区内会出现大量错码,而在这些短促的时间区间之间却又存在较长的无错码区间,这种成串出现的错码称为突发错码。产生突发错码的主要原因是脉冲干扰和信道中的衰落现象。当信道中的加性干扰主要是脉冲干扰时,便称这种信道为突发信道。把既存在随机错码又存在突发错码的信道,称为混合信道。对于不同类型的信道,应采用不同的差错控制技术。

3.4.1 差错控制方法

常用的差错控制方法有前向纠错(FEC)、自动请求重传(ARQ)、信息反馈(IRQ)和混合纠错(HEC)等。

1)前向纠错(FEC)

这种方法在发送端发送能够纠错的码,接收端在收到的信码中不仅能对接收的码字自动检测错误,而且还能够纠正信道传输引入的错误,如图3.48所示。对于二进制系统,如果能够确定错码的位置,就能够纠正它。这种方法的优点是不需要反馈信道,能进行一个用户对多个用户的同时通信,特别适合于移动通信。这种方法译码实时性较好,控制电路也比较简单,但是译码设备比较复杂,同时纠错码的选择还应该考虑到信道的干扰情况。为达到一定的误码率要求,通常编码效率都比较低。

图3.48 FEC前向纠错方式

Link-16数据链在检错编码的基础上,采用强纠错能力的RS码对消息进行前向纠错编码(见图3.49)。对于35bit报头,5bit一组(称为一个码元)分为7组,对7个码元进行(16,7)RS编码。对于75bit消息字,也是5bit一组,分为15组,对15个码元进行(31,15)RS编码。

根据RS码的纠错能力,可以分析得到Link-16的RS编码的纠错能力:(16,7)RS编码纠正错误比特数n≤4,(31,15)RS编码纠正错误比特数n≤8。可见,Link-16采用RS编码,在信道条件较差的情况下,即使一半的传输信息发生误码,接收端仍能恢复原始信息。

2)自动请求重传(ARQ)

这种方法在发端发出具有检错能力的码,接收端则根据编码规则将收到的信码进行判决,若认为有错,即设法通知发送端重发,直到正确收到为止,如图3.50所示。所谓检测出错码,是指在若干接收码元中知道有一个或一些是错的,但不一定知道错码的准确位置。虽然在ARQ方式下相同冗余码字的检错能力要远高于其编码的纠错能力,因此采用比较简单的检错码可以提高编码效率,但ARQ差错控制方式需要有反馈信道,控制电路比较复杂,并且译码的实时性较差。

图3.49 Link-16前向纠错编码流程

自动请求重传可分为三种,即停等式ARQ、回退n帧ARQ以及选择性重传ARQ。后两种协议是滑动窗口技术与请求重发技术的结合,优于窗口尺寸开到足够大时,帧在线路上可连续地流动,因此又称为连续ARQ协议。三者的区别在于对于出错的数据报文的处理机制不同。

图3.50 ARQ自动请求重传方式

在停等式ARQ中,数据报文发送完成后,发送方等待接收方的状态报告,如果状态报告报文发送成功,发送后续的数据报文,否则重传该报文。停等式ARQ的发送窗口和接收窗口大小均为1,发送方每发送一帧之后就必须停下来等待接收方的确认返回,仅当接收方确认正确接收后再继续发送下一帧。该方法所需的缓冲存储空间最小,缺点是信道效率很低。

在回退n帧ARQ中,当发送方接收到接收方的状态报告指示报文出错后,发送方将重传过去的n个报文。回退n帧ARQ的发送窗口大于1,接收窗口等于1。允许发送方可以连续发送信息帧,但一旦某帧发生错误,必须重新发送该帧及其后的n帧。这种方式提高了信道的利用率,但允许已发送有待于确认的帧越多,可能要退回来重发的帧越多。

在选择性重传ARQ中,当发送方接收到接收方的状态报告指示报文出错后,发送方只发送传送发生错误的报文。选择性重传协议的发送窗口和接收窗口都大于1。发送方仅重新传输发生错误的帧,并缓存错误帧之后发送的帧。与回退n协议相比,减少了帧出错之后正确帧都要重传的开销。

三种ARQ协议的复杂性递增,效率也递增。

无线信道存在大量的随机和突发干扰,需要采用差错控制技术对源信息进行纠检错编码。航空数据链对信息传输的实时性要求较高,纠错编码方式应优先选择前向纠错编码,在纠错能力不足时再选择检错进行ARQ。在Link-16中采用奇偶校验和强纠错能力的RS编码实现冗余编码,获得高处理增益,提供可靠的无线传输。

按照J系列固定格式消息标准,战术数据系统生成战术信息,即70bit/每个消息字。消息字首先进行检错编码,生成5bit/每个消息字的奇偶校验码,构成每个消息字75bit的检错编码信息。

图3.51 Link-16消息检错编码流程

奇偶校验码生成流程如图3.51所示。3个消息字210bit(70bit×3)与消息报头中的15bit(源航迹号,报头中4~18位数据)共计225bit数据,采用生成多项式G(x)=1+x12,进行(237,225)检错编码,生成12bit的奇偶校验码。将其分为3组,每组4bit,然后在每组的高位添加“0”数据形成每组5bit的奇偶校验码,分别与3个消息字组合形成75bit检错编码信息(见图3.52)。

图3.52 Link-16检错编码消息格式

3)信息反馈(IRQ)

该方法是接收端将收到的信码原封不动地转发回发送端,并与原发送信码相比较,如果发现错误,则发送端再进行重发,如图3.53所示。这种方法原理和设备都比较简单,但需要有双向信道。因为每一信码都相当于至少传送了两次,所以传输效率较低。

4)混合纠错(HEC)

该方法是前向纠错和自动请求重传的结合。发送端发送的码不仅能够检测错误,而且还具有一定的纠错能力。接收端译码器收到信码后,如果错误是在码的纠错能力以内,则接收端自动进行纠错,如果错误很多,超过了码的纠错能力但尚能检测时,接收端则通过反馈信道给发送端发送要求重发的指令,发送端把错误的信码再次重传,如图3.54所示。这种方法能使通信系统的误比特率达到很低,因此,近几年来得到广泛应用。

图3.53 IRQ信息反馈方式

图3.54 HEC混合纠错方式

在无线信道这种复杂干扰的环境中,传输信号会发生随机差错和突发性差错,这就需要利用差错控制的方法来发现并纠正错误,在实际应用中就是通过差错控制编码来实现的。差错控制编码的类型很多,大致可以分为检错码、线性分组码和卷积码。近些年还出现了一些新的高效的编码技术,如Turbo码。

3.4.2 纠错编码的基本原理

纠错编码是用来改善航空信道通信可靠性的一种信号处理技术,它所以能够检错和纠错是因为在信息码元之外加入了多余的码元,这种多余的码元不载荷信息,只是用来校验信息码元在传输中是否出现差错。

一般说来,信源发出的消息,均可用二进制信号表示。例如,要传送的消息为A和B,我们可以用0代表A,1代表B。若在信道传输的过程中产生了错误,0错成了1,或由1错成了0,接收端都无法发现,因此这种码没有抗干扰能力。如果在0或1的后面加一位监督位(也称校验位),如以00代表A,11代表B。大家知道,长度为2的二进制序列共有22(=4)种组合,即11、01、10、00。11与00是从这四种组合中挑出来的。01与10为禁用码。当干扰只使其中一位码发生错误时,例如11错成01(或10),译码器就认为是误码,但这时译码器不能判断是哪一位错了,因而不能自动纠错。如果在传输中两位码都发生了错误,例如由11错成了00,译码器会将它判为A,这就造成了差错,所以按这种1位信息1位监督位的编码方式,只能发现1位错误码。从上面的分析中,可以得知如果不要求检(纠)错,为了传输两种不同的信息,只用1位码就够了,我们把代表所传信息的这位码称为信息位。如果采用上面的方案,使用2位码编码,多增加的码位数称为监督位。纠错编码的实质就是在传输的信息码元之外加入监督码元,使码元之间具有某种相关性。如这种相关性仅局限在每个码组内,即每个码组的监督码元仅与该码组的信息码元有关,而与其他码组的信息码元无关,这类码就称为分组码。如果分组码的规律性可以用线性方程来描述,则该分组码称为线性分组码,例如:循环码。否则就是非线性分组码。

如果采用的规则是使若干个相邻的码组具有一定的相关性,也就是说本码组附加的监督位不仅取决于本码组中的信息序列,还取决于相邻若干码组中的信息序列,这种码称为卷积码。

下面先介绍抗干扰编码中的一个重要分类——分组码。

3.4.3 循环码

循环码是线性分组码中最重要的一种子类,是分组码中的典型代表,是目前研究的比较成熟的一类码。它是在严密的代数学理论基础上建立起来的,它的编码和译码设备都不太复杂,且检(纠)错的能力较强,目前它在理论上和实践上都有了较大的发展。循环码除了具有线性码的一般性质外,还具有循环性,即循环码中任一码组循环1位(将最右端的码元移至左端,或反之)以后,仍为该码中的一个码组。

循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。符合这个特点的有多种方案,但循环码只能是表中的那种。循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其他一些数码形式,称它们为瞬时错误。这在某些航空系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。循环码就是这样一种编码,它可以在卡诺图中依次循环得到。循环码又称格雷码(Grey Code)。

循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。正是由于循环码具有码的代数结构清晰、性能较好、编译码简单和易于实现的特点,因此在目前的计算机纠错系统中所使用的线性分组码几乎都是循环码。它不仅可以用于纠正独立的随机错误,而且也可以用于纠正突发错误。常用的BCH码、RM码以及Golay码都可以归纳或变换为循环码的形式。

在描述循环码之前,先看以下例子。设(7,4)汉明码C的生成矩阵和校验矩阵为:

于是可以得到相应的16个码组:

(1000101)(0001011)(0010110)(0101100)(1011000)(0110001)(1100010)(0100111)(1001110)(0011101)(0111010)(1110100)(1101001)(1010011)(1111111)(0000000)

由上述这些码组可以看到,如果Ci是C的码组,则它的左右移位都是C的码组,具有这种特性的线性分组码称为循环码。循环码具有以下一些性质:

(1)封闭性(线性):任何许用码组的线性和还是许用码组。由此性质可以知:线性码都包含全零码,且最小码重就是最小码距。

(2)循环性:任何许用的码组循环移位后的码组还是许用码组。

虽然分组码在理论分析和数学描述方面已经非常成熟,并且在实际的航空通信系统中也已经得到了广泛的应用,但分组码固有的缺陷大大限制了它的进一步发展。首先,由于分组码是面向数据块的,因此,在译码过程中必须等待整个码字全部接收到之后才能开始进行译码。在数据块长度较大时,引入的系统延时是非常大的。分组码的第二个缺陷是它要求精确的帧同步,即需要对接收码字或帧的起始符号时间和相位精确同步。另外,大多数基于代数的分组码的译码算法都是硬判决算法,而不是对解调器输出未量化信息的软译码,从而造成了一定程度的增益损失。对于硬判决译码而言,信道输出可以是二元的或者离散的,而对于软判决译码,信道输出必须是连续的。为进一步提高译码性能,要求连续值的信道输出。因此分组码的译码错误概率相对来说是比较大的,尤其是在信噪比值比较小的情况下,分组码的纠错能力很差。可以说,在低信噪比条件下,分组码的性能由码字本身的特性和硬判决译码的性能共同决定。虽然也可以实现分组码的软判决译码,但译码的复杂性通常都是比较大的,基本上是随着码字长度的增加而呈指数形式的增长。

分组码所存在的固有缺点可以通过采用其他的编码方法来改善。这种编码方法就是卷积码。

3.4.4 卷积码

在一个二进制分组码(n0,k0)当中,包含k0个信息位,码组长度为n0,每个码组的(n0-k0)个校验位仅与本码组的k0个信息位有关,而与其他码组无关。为了达到一定的纠错能力和编码效率(k0/n0),分组码的码组长度n0通常都比较大。编译码时必须把整个信息码组存储起来,由此产生的延迟随着n0的增加而线性增加。为了减少这个延迟,人们提出了各种解决方案,其中卷积码就是一种较好的信道编码方式。

卷积码是1955年由麻省理工学院的伊莱亚斯(Elias)提出的。卷积码与分组码的不同在于分组码在编码之前先将信息序列按照一定的数据块长度分组,然后对每一组信息进行独立编码,即对于(n0,k0)的分组码来说,码字中的n0-k0个校验码元仅与本码字的k0个信息码元有关,而与其他码字的信息元无关。同样在分组码译码时,也是针对每一个接收码字进行独立译码的,在一个接收码字内部提取译码相关信息,而与其他码字无关。而在卷积编码中则充分利用了各个信息块之间的相关性。通常卷积码记为(n,k)码。其中n为码长,k为信息元个数。卷积码的编码过程是连续进行的,依次连续将每k个信息元输入编码器,得到n个码元,得到的码元中的n-k个校验码元不仅与本组的k个信息码元有关,而且还与以前(N-1)个时刻输入到编码器的信息码有关,编码过程中相互关联的码元为nN个。因此,这N时间内的码元数目nN通常被称为这种码的约束长度,卷积码的纠错能力随着N的增加而增大。同样,在卷积码的译码过程中,不仅要从此刻收到的码组中提取译码信息,而且还要充分利用以前或以后各时刻收到的码组,从这些码组中提取译码信息,而且译码也是可以连续进行的。此外,卷积码中每组的信息位(k)和码长(n)通常也比分组码的信息位(k0)和码长(n0)要小,特别适宜于以串行形式传输信息,减小了编码延时。因此,在系统条件相同的情况下,在达到相同译码性能时,卷积码的信息块长度和码字长度小,相应译码复杂性也小一些。

卷积码是将发送的信息序列通过一个线性的、有限状态的移位寄存器而产生的码。通常,该移位寄存器由K级(每级k比特)和n个线性的代数函数生成器组成,如图3.55所示。二进制数据移位输入到编码器,沿着移位寄存器每次移动k比特位。每一个k比特长的输入序列对应一个n比特长的输出序列。

图3.55 卷积编码器

卷积码是一类非常有前途的编码方法,虽然卷积码没有像分组码那样完善严密的数学分析工具,但可以通过计算机搜索来得到性能较好的卷积码。由于在满足一定性能要求的前提下,卷积码的码组长度要比分组码的码组长度小一些,因此卷积码的译码要相对容易一些。而且卷积码的译码可以充分利用解调器输出的软判决信息。

在Viterbi译码算法提出之后,卷积码在通信系统中得到了极为广泛的应用。其中约束长度为7,码率为1/2和1/3的Odenwalder卷积码已经成为商业卫星通信系统中的标准编码方法。在“航海家”以及“先驱者”等太空探测器上也都采用了卷积码作为其差错控制编码方法。

3.4.5 CRC码

循环冗余校验码(Cyclic Redundancy Check,CRC)是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。

1)生成CRC码的基本原理

任意一个由二进制位串组成的代码都可以和一个系数仅为“0”和“1”取值的多项式一一对应。

2)CRC码集选择的原则

若设码字长度为N,信息字段为K位,校验字段为R位(N=K+R),则对于CRC码集中的任一码字,存在且仅存在一个R次多项式g(x),使得

V(x)=A(x)g(x)=xRm(x)+r(x)

其中,m(x)为K-1次信息多项式,r(x)为R-1次校验多项式,g(x)称为生成多项式:

g(x)=g0+g1*1+g2*2+…+g(R-1)*(R-1)+gR*R

发送方通过指定的g(x)产生CRC码字,接收方则通过该g(x)来验证收到的CRC码字。

3)CRC校验码软件生成方法

借助于多项式除法,其余数为校验字段。例如,信息字段代码为1011001,对应m(x)=x6+x4+x3+1,假设生成多项式为g(x)=x4+x3+1,则对应g(x)的代码为11001,x4m(x)=x10+x8+x7+x4对应的代码记为10110010000。

采用多项式除法,得余数为1010(即校验字段为1010)。

发送方发出的传输字段为:1 0 1 1 0 0 1  1010

            信息字段    校验字段

接收方使用相同的生成码进行校验。接收到的字段/生成码(二进制除法)如果能够除尽,则正确,给出余数(1010)的计算步骤:除法没有数学上的含义,而是采用计算机的模二除法,即除数和被除数做异或运算。进行异或运算时除数和被除数最高位对齐,按位异或。

(10110010000)⊕(11001)=01111010000

(1111010000 )⊕(11001)=0011110000

(11110000  )⊕(11001)=00111000

(111000   )⊕(11001)=001010

利用CRC进行检错的过程可简单描述为:在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的r位监督码(CRC码),附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则,在差错控制理论中称为“生成多项式”。

3.4.6 RS码

RS(Reed-Solomon)码是一类有很强纠错能力的多进制BCH码,20世纪以来信道纠错码编码技术中应用最为广泛的一种码型,它能同时用于纠正随机差错和突发差错,尤其是对后者的纠正有很突出的成效。1960年,麻省理工学院林肯实验室的I.S.Reed和G.Solomon提出RS码。由于其优越的纠错能力,RS码被广泛应用于工程实践中。如数字电视、数字音频、数字图像等,以及数字通信系统中如卫星通信、深空探测、AT-SC、DAB、DVB等应用。

研究者在数字通信中都希望使纠错码的译码性能尽可能地提高,同时降低译码算法的计算复杂度,且带来较少的译码延时等。然而,RS码所具有的优越性能却是建立在增加译码延时的基础之上,鉴于此,对译码延时进行改进的译码算法将起重要的作用。例如在需要较高传输实时性的深空通信中将RS码作为外码,译码延时能得到很好的改善,使得通信的实时性更强,通信质量更高。

众所周知,(n,k)RS码有时域编码和频域编码两种,其中信息多项式m(x)和剩余多项式R(x)分别表示如下:

m(x)=m0+m1x+m2x2+…+mk-1xk-1 (3.32)

r(x)=Q0+Q1x+…+Qn-k-1xn-k-1 (3.33)

RS码的编码过程首先是由生成多项式g(x)得到系统生成矩阵G(x),时域编码可由基本的编码公式C(x)=m(x)G(x)得到码字,图3.56为RS码时域编码原理框图。而频域编码相对较复杂,码字多项式C(x)的xn-1至xn-k项的系数对应于序列的信息位,而其余位则代表校验位。

m(x)xn-k+r(x)≡0[modg(x)](3.34)

求解由式(3.33)和式(3.34)构成的方程组,求得n-k个未知数Q0,Q1,…,Qn-k-1,即编码后的校验位。最后,将生成的校验码追加到信息码后得到编码码字:

C(x)=m(x)xn-k+r(x) (3.35)

图3.56 RS码时域编码结构图

RS码具有最大的汉明距离,所以对于纠突发错误特别有效。因此与其他类型的纠错码相比,在冗余符号相同的情况下,RS码的纠错能力最强。为此在战术数据链的通信系统中,我们采用了RS码纠错编码方法。

3.4.7 Turbo码

虽然软判决译码、级联码和编码调制技术都对信道码的设计和发展产生了重大影响,但是其增益与香农理论极限始终都存在2~3dB的差距。因此,在Turbo码提出以前,信道截止速率R0一直被认为是差错控制码性能的实际极限,香农极限仅仅是理论上的极限,是不可能达到的。

在1993年于瑞士日内瓦召开的国际通信会议上,两位任教于法国不列颠通信大学的教授C.Berrou、A.Glavieux和他们的缅甸籍博士生P.Thitimajshima首次提出了一种新型信道编码方案—Turbo码,由于它很好地应用了香农信道编码定理中的随机性编、译码条件,从而获得了几乎接近香农理论极限的译码性能。仿真结果表明,在采用长度为65535的随机交织器,并且进行18次迭代译码的情况下,在信噪比Eb/N0≥0.7dB并采用二元相移键控(BPSK)调制时,码率为1/2的Turbo码在加性高斯白噪声信道上的误比特率(BER,Bit Error Rate)≤10-5,达到了与香农极限仅相差0.7dB的性能。这一优异性能,立即引起编码理论界的轰动。

Turbo码又称为并行级联卷积码,它巧妙的将卷积码和随机交织器结合在一起,在实现随机编码思想的同时,通过交织器实现了由短码构造长码的方法,并采用软输出迭代译码来逼近最大似然译码。可见,Turbo码充分利用了香农信道编码定理的基本条件,因此得到了接近香农极限的性能。

到目前为止,Turbo码在现有信道编码方案中是最好的,尚未有任何一种编码方案能与其相比拟。Turbo码一出现,就在编码理论界引起了轰动,成为自信息论提出以来重大的研究进展。但由于几位发明者仅给出了一定参数下的计算机仿真结果,而没有严格的理论分析和解释,所以近些年在编码界掀起了Turbo码的研究热潮。Turbo码的出现为编码理论和实践带来了一场革命,标志着长期将信道截止速率R0作为实际容量的历史的结束,同时Turbo码还改变了人们设计信道码的传统观点,使信道编码理论与技术的研究进入了一个崭新的阶段。由于C.Berrou等人主要从事通信集成电路研究,所以他们将采用软输出Viterbi算法(SOVA,Soft Output Viterbi Algorithm)的译码器看做信噪比放大器,从而将电子放大器中的反馈技术应用于串行级联的软输出译码器,并且为了使两个译码器在相同的时钟频率下工作,以简化时钟电路设计,就提出了并行级联方式,进而发明了Turbo码。

Turbo码以其优异的性能,促进了ECC技术水平的提高,引起了理论界与实际工作者广泛的关注。由于Turbo码的这种巨大前景,它已经成为通信研究的前沿。Turbo码的优良性能在宇航和卫星通信领域中的体现是:它能使宇航飞行器和卫星发射信号的功率大大降低,同时又使接收性能提高。这样可以减少宇航飞行器和卫星用电量,使它们的寿命得到很大提高,降低成本。在对时延要求不高的深空通信系统中,也广泛使用Turbo码进行差错控制。如美国发射的“火星探路者”、“火星极地登陆者”等使用的都是Turbo码。

现今Turbo码除了在无线移动通信系统中的应用外,Turbo码在深空通信、卫星通信等领域的应用也是目前研究的热点。

国内外已有相关领域的学者在研究OFDM系统中Turbo码的性能。Hoshyar、Jamali和Bahai研究分组无线系统,用Turbo码代替IEEE 802.11a中的卷积编码,在衰落信道中,与卷积码相比,误帧率性能提高2dB。Torabi和Soleymani研究了Turbo编码的OFDM系统在无线局域网中的应用,采用Turbo编码的OFDM系统大大提高了误码率性能,有效克服了符号间干扰(ISI)和子载波间干扰(ICI),从而缩短了循环前缀的长度,提高频带利用率。王强等人研究了差分Turbo-OFDM在短波航空通信中的应用,该系统具有较高的频率利用率,有效的抑制短波信道中多径时延、频率选择性衰落、人为干扰与噪声带来的影响,研究结果显示该体制提高了短波信道上航空通信的误码性能。

1)Turbo码编码

Turbo编码在AWGN(A White Gauss Noise)信道中具有与香农限制相近似的性能。一个标准二进制Turbo码编码器是由两个反馈的分量编码器通过一个随机交织器并行连接而成的,编码后的校验位经过删余阵,从而产生不同码率的码字。

分量码一般选择为递归系统卷积码(RSC,Recursion System Convolution),当然也可以是分组码、非递归卷积码以及非系统卷积码,经过分析可知,分量码的最佳选择是递归系统卷积码。通常两个分量码采用相同的生成矩阵,当然分量码也可以是不同的。典型的编码结构见图3.57。

图3.57 Turbo码编码器结构图

2)Turbo码译码

由于Turbo码是由两个或多个分量码经过不同交织器后对同一个信息序列进行编码,对任何单个传统编码,通常是在译码器的最后得到硬判决译码比特,然而Turbo码译码算法不应局限于在译码器中通过的是硬判决信息。为了更好地利用译码器之间的信息,译码算法所用的应当是软判决信息而不是硬判决。Turbo码译码器是由与分量码对应的译码单元、交织器和解交织器组成的,它将一个译码单元的软输出信息作为下一个译码单元的输入;为了获得更好的译码性能,将此过程迭代数次。

采用迭代译码结构的Turbo码译码器的基本结构如图3.58所示。它由两个软输入软输出(SISO,Soft-in and Soft-out)译码器DEC1和DEC2串行级联组成,它们之间通过码内交织器与码内解交织器连接,交织规则与编码器中所使用的交织器相同。

图3.58 Turbo码译码器的结构

ys——校验序列;yp——信息符号序列;y2p——输入的信息符号序列;Le21——译码单元2向译码单元1提供的信息比特改进的外信息

3)Turbo码与卷积码的性能比较

由图3.59可见,在信噪比Eb/N0≥0.5dB的仿真范围内,Turbo码的性能要比卷积码的性能好得多。特别地,当信噪比Eb/N0大于0.7dB以后,Turbo码的误比特率BER≤10-5。与带限AWGN信道的Shannon极限相比,相差不到1dB。但当信噪比Eb/N0大于0.7dB以后,Turbo码的误比特率性能随信噪比增加的变化是非常小的,即出现了所谓的错误平层,这主要是因为在信噪比较大时,Turbo码的性能主要由码字自由距离决定,而Turbo码的自由距离又比较小,从而造成了错误平层的出现。

图3.59 Turbo码与卷积码的性能比较

为了更好地说明Turbo码在误比特率性能方面的优越性,我们利用Matlab仿真在同一坐标系中画出Turbo码和卷积码的性能曲线,以进行比较。

图3.60给出了复杂性相当的卷积码和Turbo码在AWGN信道上的误比特率性能比较。从图中我们可以很直观地看出Turbo码的性能要明显优越于卷积码。

图3.60 卷积码与Turbo码的误比特率曲线

3.4.8 LDPC码

LDPC码是麻省理工学院Robert Gallager于1962年在博士论文中提出的一种具有稀疏校验矩阵的分组纠错码。随着Turbo码的深入研究,人们重新发现Gallager早在1962年提出的低密度校验码(LDPC码)是一种具有渐进特性的非常好码,它的译码性能同样可以逼近Shannon信道容量限。由于LDPC码具有在中长码长时超过Turbo码的性能,并且具有译码复杂度更低,能够并行译码及译码错误可以检测等特点,成为目前信道编码理论的研究热点。研究表明Turbo码只是LDPC码的一个特例,两者都是基于图构造的低密度码,译码算法具有等价性,从而使两者在基于图模型的编译码研究中得到了统一。

LDPC码几乎适用于所有的信道,因此成为编码界近年来的研究热点。它的性能逼近香农限,且描述和实现简单,易于进行理论分析和研究,译码简单且可实行并行操作,适合硬件实现。

1)LDPC码简介

任何一个(n,k)分组码,如果其信息元与监督元之间的关系是线性的,即能用一个线性方程来描述,就称为线性分组码。LDPC码本质上是一种线形分组码,它通过一个生成矩阵G将信息序列映射成发送序列,也就是码字序列。对于生成矩阵G,完全等效地存在一个奇偶校验矩阵H,所有的码字序列C构成了H的零空间(null space),即HCT=0。

2)LDPC码发展现状

LDPC码在1962年提出,然而在接下来的30年里由于计算能力的不足,一直被人们忽视。一直到1993年,D.Mackay、M.Neal等人对它重新进行了研究,发现LDPC码具有逼近香农限的优异性能。并且具有译码复杂度低、可并行译码以及译码错误的可检测性等特点,从而成为了信道编码理论新的研究热点。

Mckay,Luby提出的非正则LDPC码将LDPC码的概念推广。非正则LDPC码的性能不仅优于正则LDPC码,甚至还优于Turbo码的性能,是目前已知的最接近香农限的码。

Richardson和Urbank也为LDPC码的发展作出了巨大的贡献。首先,他们提出了一种新的编码算法,在很大程度上减轻了随机构造的LDPC码在编码上的巨大运算量需求和存储量需求。其次,他们发明了密度演进理论,能够有效地分析出一大类LDPC译码算法的译码门限。仿真结果表明,这是一个紧致的译码门限。最后,密度演进理论还可以用于指导非正则LDPC码的设计,以获得尽可能优秀的性能。

LDPC码具有巨大的应用潜力,将在深空通信、光纤通信、卫星数字视频、数字水印、临近空间通信、移动和固定无线通信中得到广泛应用。M.Chiain等对LDPC码用于有记忆衰落信道时的性能进行了评估。B.Myher提出一种速率自适应LDPC编码调制的方案用于慢变化平坦衰落信道,经推广还可用于FEC-ARQ系统。

3)LDPC码优势和劣势

和另一种近Shannon限的码——Turbo码相比较,LDPC码主要有以下优势:

(1)LDPC码的译码算法是一种基于稀疏矩阵的并行迭代译码算法,运算量要低于Turbo码译码算法,并且由于结构并行的特点,在硬件实现上比较容易。因此在大容量通信应用中,LDPC码更具有优势。

(2)LDPC码的码率可以任意构造,有更大的灵活性。而Turbo码只能通过打孔来达到高码率,这样打孔图案的选择就需要十分慎重地考虑,否则会造成性能上较大的损失。

(3)LDPC码具有更低的错误平层,可以应用于有线通信、临近空间通信以及磁盘存储工业等对误码率要求更加苛刻的场合。而Turbo码的错误平层在10-6量级上,应用于类似场合中,一般需要和外码级联才能达到要求。

(4)LDPC码是20世纪60年代发明的,现在,在理论和概念上不再有什么秘密,因此在知识产权和专利上不再有麻烦。这一点给进入通信领域较晚的国家和公司,提供了一个很好的发展机会。

而LDPC码的劣势在于:

(1)硬件资源需求比较大。全并行的译码结构对计算单元和存储单元的需求都很大。

(2)编码比较复杂,更好的编码算法还有待研究。同时,由于需要在码长比较长的情况才能充分体现性能上的优势,所以编码时延也比较大。

(3)相对而言出现比较晚,工业界支持还不够。

4)LDPC码译码算法

LDPC码编码是在通信系统的发送端进行的,在接收端进行相应的译码,这样才能实现编码的纠错。LDPC码由于其奇偶校验矩阵的稀疏性,使其存在高效的译码算法,其复杂度与码长成线性关系,克服了分组码在码长很大时,所面临的巨大译码算法复杂度问题,使长码分组的应用成为可能。而且由于校验矩阵稀疏,使得在长码时,相距很远的信息比特参与统一校验,这使得连续的突发差错对译码的影响不大,编码本身就具有抗突发错误的特性。LDPC码的译码算法种类很多,其中大部分可以被归结到信息传递(MP)算法集中。这一类译码算法由于具有良好的性能和严格的数学结构,使得译码性能的定量分析成为可能,因此特别受到关注。MP算法集中的置信传播(BP)算法是Gallager提出的一种软输入迭代译码算法,具有最好的性能。同时,通过一些常用的数学手段,我们可以对BP译码算法作一些简化,从而在一定的性能损失内获得对运算量和存储量需求的降低。

5)LDPC码发展前景

LDPC码由于更接近香农限的误码率性能,完全并行的迭代译码算法使其比Turho码在部分场合的应用前景更为广阔。在许多需要高可靠性的通信系统中,LDPC码成了Turbo码的有力竞争者。

(1)LDPC码在UWB系统中的应用:UWB(超宽带)信号的特点是低信噪比、抗多径能力强、高数据速率和信号的频谱宽、功率低,因此其信道编码应该具有较强的纠错能力和较低的编译码复杂度。LDPC码同时具有以上两个方面的特性。在构造应用于UWB系统的LDPC码时,需要满足下面3个条件:采用中短长度的码;尽量避免二分图中短长度圈的个数;尽量优化检验矩阵H的结构。

(2)LDPC码在CDMA系统中的应用:将LDPC码应用于CDMA系统将大大提高通信系统容量。使用LDPC码的CDMA系统的容量是使用正交卷积码的CDMA系统容量的2倍,是未使用纠错码的CDMA系统容量的5倍。随着移动通信用户的日益增多,LDPC码将在未来的移动通信扩容中发挥重要作用。

此外,LDPC码在有记忆衰落信道、压缩图像传输和磁记录信道等方面也有重要应用。

表3.6给出几种常用重要码型的指标比较。表中第2列为码率等于1/2的码型,第3列为不同类型码在1/2码率时,为实现通信错误译码概率Pe<10-5所需要增加的信噪比。可见,BCH码和卷积码与最优解还有很大距离。Turbo码和LDPC码的性能指标十分接近香农干扰信道编码定理的最优解。LDPC码是目前最逼近香农限的一类纠错码。

表3.6 几种重要编码的指标比较

综上所述,LDPC码具有良好的译码性能,与Turbo码相比更易于硬件实现,并能得到更高的译码速度。将LDPC码应用于临近空间通信,是一个很好的选择。我们下一步的研究将集中在如何设计出码长更长的LDPC译码器,进一步提高传输速率,降低误码率,以使LDPC码在未来临近空间通信技术中得到更加广泛的应用。

3.4.9 交织

在实际应用中,比特差错经常成串发生,这是由于持续时间较长的衰落谷点会影响到几个连续的比特,而信道编码仅在检测和校正单个差错和不太长的差错串时才最有效(如RS只能纠正8个字节的错误)。为了纠正这些成串发生的比特差错及一些突发错误,可以运用交织技术来分散这些误差,使长串的比特差错变成短串差错,从而可以用前向码对其纠错,例如:在DVB-C系统中,RS(204,188)的纠错能力是8个字节,交织深度为12,那么纠可抗长度为8×12=96个字节的突发错误。实现交织和解交织一般使用卷积方式。

交织技术对已编码的信号按一定规则重新排列,解交织后突发性错误在时间上被分散,使其类似于独立发生的随机错误,从而前向纠错编码可以有效地进行纠错,前向纠错码加交织的作用可以理解为扩展了前向纠错的可抗长度字节。纠错能力强的编码一般要求的交织深度相对较低。纠错能力弱的则要求更深的交织深度。一般来说,对数据进行传输时,在发端先对数据进行FEC编码,然后再进行交织处理。在收端,次序和发端相反,先做去交织处理完成误差分散,再用FEC解码实现数据纠错。另外,交织本身不会增加信道的数据码元。

如前所述,交织技术在很早以前就已应用于通信系统中。典型的应用是当随机化传输序列中出现错误时,可以采用纠随机错误的信道纠错码来纠正突发形式的错误。另外一个应用是在级联码系统的内码和外码之间。其中外译码器的输出可能包含突发错误,因此交织器设计的关键是如何选择参数使其尽可能地分散突发错误,使进入内码译码器的错误基本上是随机的。

此外根据信道的情况不同,信道编码方案也有所不同,在DVB-T里由于是无线信道且存在多径干扰和其他的干扰,所以信道很“脏”,为此它的信道编码是:RS+外交织+卷积码+内交织。采用了两次交织处理的级联编码,增强其纠错的能力。RS作为外编码,其编码效率是188/204(又称外码率),卷积码作为内编码,其编码效率有1/2、2/3、3/4、5/6、7/8五种(又称内码率)选择,信道的总编码效率是两种编码效率的级联叠加。设信道带宽8MHz,符号率为6.8966Msps,内码率选2/3,16QAM调制,其总传输率是27.586Mbps,有效传输率是27.586×(188/204)×(2/3)=16.948Mbps,如果加上保护间隔的插入所造成的开销,有效码率将更低。

在DVB-C里,由于是有线信道,信道比较“干净”,所以它的信道编码是:RS+交积。一般DVB-C的信道物理带宽是8MHz,在符号率为6.8966Msps,调制方式为64QAM的系统,其总传输率是41.379Mbps,由于其编码效率为188/204,所以其有效传输率是41.379Mbps×188/204=38.134Mbps。

在DVB-S里,由于它是无线信道,所以它的信道编码是:RS+交织+卷积码。也是级联编码。

近些年,交织器也成为Turbo码构造中极其重要的一个组成部分,而且交织算法对于Turbo码的性能影响也是至关重要的。传统的级联码是在信道传输时加入交织以均化噪声、化突发差错为随机差错,而Turbo码的交织主要是为了防止信息的不良反馈,使轻码经过交织后成为重码,让不可纠错差错变为可纠错模式(噪声均化)。Turbo码的性能在很大程度上依赖于所使用的交织器的类型和长度,因为交织器影响输出的Turbo码的距离和重量分布。

从编码增益的方面来说,交织器的阶数N不能过小,应该尽可能大一些,这样才能更接近随机码形态,获得良好的编码性能。但是从实时性和简化复杂性方面来说,交织器不能过大,这之间存在一个相互均衡的折中考虑。交织器的具体操作就是把一帧输入的比特数据顺序读入,再按照预先定义的地址顺序把整帧数据重新排序,然后输出。

目前常用的几种交织算法如下。

(1)行列交织器:信息比特逐行写入、逐列读出,用变换公式可表示为x=i,y=j。行列交织器的优点是简单,但缺点也很明显,主要问题在于其自身的周期性特征使之对于周期性差错抵御能力低,最坏情况下甚至使编译码性能下降。此外,行列交织对于大量存在的矩形对失去了交织作用,导致性能下降。

(2)非均匀交织器:按照一定的规律(通常结合模运算或固定映射)实现元素位置的变换。

(3)随机交织器:设交织块的长度为N,随机交织器是将输入的序列按照1/(N!)的概率映射为1/(N!)种可能的输出序列的组合(其中包括与输入序列相同的输出序列)。从理论上讲,随机交织器除了统计意义上的规律外没有具体的映射规律,它可以使序列彻底随机化,因此是最好的交织方法。但是如果真的实施随机交织,势必要将每次交织的每一个位置信息也通过信道传输给接收方,否则无法进行解交织运算,这样一来实际传送的信息量可能比用户信息本身还大。因此可行的办法是采用伪随机交织,只要少数几个参数就可以确定一个伪随机序列。

伪随机交织的关键是伪随机序列的选取以及生成参数,具体实现的方法可以采取每一帧都随机产生0~N-1个不重复的N个序号,作为交织器的地址表来决定读出的顺序,也可以采用固定参数或者固定轮换次序的方式。

(4)比特翻转交织器:比特翻转交织器要求交织块长度为2的幂次,或者是2的幂次的整数倍。其交织规律是让行(和/或列)满足比特翻转关系。

交织器的设计对于Turbo码性能的影响是非常显著的,已成为人们研究的目标。1995年Svirid分析了交织器设计与Turbo码性能的关系,给出了BER的联合上限。交织器的目的在于使Turbo码字C的最小重量尽可能大,Perez等从距离谱的观点分析了Turbo码在低信噪比时的优异性能,在Turbo码编码器中,交织器起着“谱窄化”的作用,使得Turbo码中重量小的码字数目减少,这正是影响Turbo码性能的主要因素之一。

交织在提高信息传输可靠性的同时,提高了消息的保密性和抗干扰能力。Link-16对纠错编码后的16码元报头和3个31码元消息字进行交织如图3.61所示。

图3.61 Link-16交织编码流程