在深空通信中,由于接收信号功率极低,为了提高通信可靠性,需要加入低损耗高增益编译码。根据国际现行标准及发展趋势,本工程采用了CCSDS推荐的Turbo码。

Turbo码概述

Turbo码,又称并行级联卷积码(PCCC),是1993年由C. Berrou等在国际通信会议上提出的,它可以很好地综合利用级联、交织、反馈迭代译码等,有效地降低码字数量。Turbo码的最大特点在于,它通过在编译码器中引入交织器和解交织器,有效地实现了随机性编译码的思想,通过短码有效结合而达到构造长码的目的,使之具有接近香农理论极限的性能。

深空通信中往往采用高编码率的编译码方式来达到高增益的目的,由图5-87可看出,在编码率为1/2的情况下,实现无误码通信的极限为0.2dB,而编码率为1/6的情况下该值为-1.1dB,高编码率具有较高的编码增益,当然高编码率的设计和实现也存在一定的难度。

不同编码率下的香农容限

图5-87 不同编码率下的香农容限

CCSDS标准中Turbo码及实现

Turbo编码

Turbo编码器主要是由两个递归系统卷积码编码器通过一个随机交织器并行连接而成的,编码后的校验位经过删余矩阵,从而产生不同编码率的码字。CCSDS标准定义的编码器结构如图5-88所示。

CCSDS定义的Turbo码编码结构

图5-88 CCSDS定义的Turbo码编码结构

编码过程为:

  • 产生由k个信息位构成的1帧数据,并将该帧数据存放在帧缓存器中。
  • 以两种不同的顺序分别送到两个分量编码器中,其中送到in a中的顺序不变,送到in b中的数据为经过交织器交织后的数据。

分量编码器的初始状态均为0,并且都用了k+4个比特周期的时间编码,输出的码块长度为(k+4)/r。开始的k个比特周期中,输入开关在下面的触点闭合,编码器完成数据接收及相应部分的编码。最后4个比特周期中,开关移动到上面的触点,编码器接收移位寄存器的反馈数据。反馈数据在输出的同时进行自身异或将寄存器置零,恢复至初始状态。其中,输出符号根据码率不同由上至下选择不同的输出位置。图5-88中实心节点表示始终输出,空心节点表示和其他位置数据轮流输出。

分量编码器的生成多项式为

在Turbo码编码器中,连接两个子编码器的交织器起着非常重要的作用,它可以增加码字的自由距离,改善码字的距离谱特性,使得Turbo码编码输出的码字中重量很重或很轻的码字数量减少,从而使得码字距离谱窄化。而从迭代译码的角度来看,交织器的主要作用是降低外信息的相关性,从而可以更好地实现迭代译码。

交织器实际上是一个映射函数,将输入的待编码信息序列的数据位置进行重置。CCSDS标准交织设计方法为:

1)将信息帧长k表示为k=k1k2,其中k1k2的值如表5-6所示。

表5-6 交织参数表

交织参数表

2)从s=1至s=k按式(5-69)得到其置换数πs)。在以下等式中,[x]表示小于或等于x的最大整数,pq是以下8个整数之一:p1=31,p2=37,p3=43,p4=47,p5=53,p6=59,p7=61,p8=67。

对应于Turbo编码器框图,按顺序输出序列的第πi)个数据,即是置换后序列的第i个数据,如图5-89所示。

交织映射关系

图5-89 交织映射关系

CCSDS标准中的编码器共有4种编码速率,分别为1/2、1/3、1/4和1/6,其中1/2编码率通过凿孔方式产生。凿孔时,out 1a和out 1b支路的数据被轮流选取,和out 0a支路的数据共同组成数据帧,4种编码率的数据传输顺序如图5-90所示。

Turbo码不同编码率数据传输顺序

图5-90 Turbo码不同编码率数据传输顺序

CCSDS标准中支持的信息块长度和编码率如表5-7所示。

表5-7 码块长度和编码率的关系

Turbo译码

Turbo译码

Turbo码译码采用迭代译码,其基本结构如图5-91所示,它由两个软输入软输出(SISO)译码器DEC1和DEC2串行级联组成,它的交织器与编码器中所使用的交织器相同。译码器通过两个分量译码器DEC1和DEC2之间的软信息的交换来提高译码性能。

Turbo码的反馈迭代译码结构

图5-91 Turbo码的反馈迭代译码结构

Turbo码的迭代的过程采用串行级联迭代结构,DEC1与DEC2之间通过交织器或解交织器交换译码信息。xkyk为解调器输出的受噪声污染的信息比特与校验比特,zkzn)表示从另一个分量译码器经过解交织(交织)后得到的外信息。每个分量译码器有两个输出端口,分别输出信息比特的对数似然比(L1ak)、L2ak))及被另一个分量译码器使用的外信息w1kw2k,经过若干次迭代和两个分量译码器的外信息交换,将信息比特的对数似然比进行硬判决即可完成Turbo码的译码。

图5-91中,第一个分量译码器DEC1输出的外信息经交织后送入第二个分量译码器DEC2,将DEC1输出的外信息作为DEC2译码器的先验概率,因为DEC1改善了信噪比,从而最终使dk的误码率降低。应用交织器是为了将突发错误扩散为随机错误,便于分量译码器进行纠正错误,交织长度越长,突发错误扩散后的随机性就越强。由于经过DEC1的译码使得输出信息的信噪比得到了改善,所以DEC2可以纠正更多错误,然后DEC2输出的外信息作为DEC1的先验概率。解交织器在这里的作用是使从DEC2输出的突发错误尽可能地随机化。如此经过反复迭代,使得译码性能得到很大的改善。

Turbo码译码原理可概括为:采用Turbo反馈结构的伪随机译码器,内、外码可以交替互不影响地进行译码,并且通过系统码信息位的软判决输出相互传递信息,进行递推式译码。对内码进行软输出译码而为外码提供软判决输入,同时,对外码也进行软输出译码反馈到内码译码,为内码提供软判决输入。内码与外码经过交织处理,使内、外码之间的相关性降低。通过多次迭代使信息序列的每个码元都可以得到来自同一序列中其他所有码元的信息,即通过迭代中反复交织、去交织来实现译码的伪随机化。

1)SISO译码器

在译码过程中,SISO译码器是整个译码器的核心部分,其结构如图5-92所示。两个分量译码器在译码过程中,相互交换软信息,而最好的软信息就是信息的后验概率,即已知接收信号情况下信息序列的概率分布。

SISO译码器结构

图5-92 SISO译码器结构

一个SISO译码单元的输入分为两部分:反映信道特性的似然比和反映信息位的先验信息的似然比。而输出得到的信息位后验信息分为三部分,即

其中Lc与信道特性有关,对时不变信道而言,Lc是常数,y是接收序列;Lu)反映了信息位的先验信息。Lcy+Lu)输入译码器之后,得到信息位的后验Lu)比输入多了一个附加信息Leu),这是由接收序列码元之间的相互制约引起的,这种制约来自发端编码器带来的码元关系。译码器要完成的任务是:根据经过编码和信道得到的接收序列y,估计信息矢量u的每个码元uk。可以用逐位软判决最大后验译码算法计算似然比,即用迭代方法计算每位码元的最大后验概率(MAP),这种后验概率可为后续迭代处理所用。

2)迭代译码算法流程

根据以上的分析,Turbo码的迭代译码算法流程如图5-93所示。

Turbo码迭代译码流程

图5-93 Turbo码迭代译码流程