这个过程与小强填字或者数独类似。可以这么理解,两个不同的人(译码器)拿到同一个小强填字,但是他们采用不同的方式来解决填字的问题,一个只看横/竖方向,另一个只看斜>线方向。当然,他们独立做出来的结果不能保证完全正确,于是他们在填字的同时记下他们对于该结论的确定度,比如某些字他们敢保证绝不会出错,某些字吃不准,某些是胡乱猜的。。。然后他们对比各自的结果及相应的确定度,通过参考对方的结果,双方都可以根据差异得到一些启示,然后他们根据这些启示再次尝试填字,重复以上过程直至两人的结果完全相符(但还是不能确保和正确答案一样,只能保证差不离)。是概率译码算法,也就是最大后验概率算法(MAP)。但在Turbo码出现之前,信道编码使用的概率译码算法是最大似然算法(ML)。ML算法是MAP算法的简化,即假设信源符号等概率出现,因此是次优的译码算法。Turbo码的译码算法采用了MAP算法,在译码的结构上又做了改进,再次引入反馈的概念,取得了性能和复杂度之间的折衷。同时,Turbo 码的译码采用的是迭代译码,这与经典的代数译码是完全不同的。
Turbo 码的译码算法是最早在BCJR 算法的基础上改进的,我们称以MAP算法,后来又形成Log-MAP算法、Max-Log-MAP以及软输入软输出(SOVA)算法。Turbo 码的译码结构图
⒈Turbo 码的译码结构如图所示. Turbo 译码器有以下的特点:
1) 串行级联
2) 迭代译码
3) 在迭代译码过程中交换的是外部信息
⒉ 概率译码译码原理及结构
译码时首先对接收信息进行处理,两个成员译码器之间外部信息的传递就形成了一个循环迭代的结构。由于外部信息的作用,一定信噪比下的误比特率将随着循环次数的增加而降低。但同时外部信息与接受序列间的相关性也随着译码次数的增加而逐渐增加,外部信息所提供的纠错能力也随之减弱,在一定的循环次数之后,译码性能将不再提高。
Turbo 码最先是由C. Beηou等提出的。它实际上是一种并行级联卷积码(Parallel Concatenated Convolutional Codes)。Turbo 码编码器是由两个反馈的系统卷积编码器通过一个交织器并行连接而成,编码后的校验位经过删余阵,从而产生不同的码率的码字。如图所示:信息序列u={u1,u2,……,uN}经过交织器形成一个新序列u'={u1',u2',……,uN'}(长度与内容没变,但比特位经过重新排列),u 和u'分别传送到两个分量编码器(RSC1与RSC2) ,一般情况下,这两个分量编码器结构相同,生成序列X和X,为了提高码率,序列X和X需要经过删余器,采用删余(puncturing)技术从这两个校验序列中周期的删除一些校验位,形成校验序列X,X,与未编码序列X'经过复用调制后,生成了Turbo码序列X. Turbo 码的一个重要特点是它的分量码采用递归系统卷积码(RSC,Recursive Systematic Convolutional code) ,这也是它性能优越的一个重要原因。之所以选择RSC编码器作为Turbo码的子码主要有以下原因:
首先,RSC码具有系统码的优点。这一特性使用户在译码时无需变换码字而直接对接收的码字进行译码,所以,递归系统卷积码(RSC)对于非系统卷积码(NSC)而言译码简单、快速。
其次,从差错控制编码的相关文献中可知,非系统卷积码(NSC)的BER性能在高信噪比时比约束长度相同的非递归系统码要好,而在低信噪比时情况却正好相反。递归系统卷积码综合了NSC码和非递归系统卷积码的特性,且然它与NSC码具有相同的trellis结构和自由距离,但是在高码率(R≥2/3)的情况下,对任何信噪比,它的性能均比等效的NSC码要好。由于系统递归卷积码具有以上特点,并且能改善误码率,所以通常选择RSC码作为Turbo码的子编码器。
递归系统卷积码(RSC)不同于一般的卷积码器在于其结构中不仅有向前结构,还有向后反馈结构,在下图中可以看出。RSC 编码器一般有2-5 级移位寄存器, 用生成多项式表示为:
式中,1表示系统比特,gl 和g2分别表示编码器的前馈多项式和反馈多项式。用RSC码构成Turbo码的分量码的码率R为:
式中:R1,R2为构成Turbo 码的分量码的码率,在经删余后,分量RSC1和RSC2的码率可以不同。
Turbo 码的最大似然译码性能分析出,Turbo 码在高信噪比下的性能主要由它的自由距离所决定。因为Turbo码的自由距离主要由重量为2的输入信息序列所产生的码字间的最小距离所决定,用本原多项式作为反馈连接多项式的分量编码器所产生的码字的最小重量为最大,因此当Turbo码交织器的大小给定后,如果分量码的反馈连接多项式采用本原多项式,则Turbo码的自由距离会增加,从而Turbo码在高斯信噪比情况下的“错误平层(errorfloor)”会降低。错误平层效应指的是在中高信噪比情况下,误码曲线变平。也就是说,即使是再增大信噪比,无码率也降不下来(一般的系统,比如说是BPSK的误码曲线,误码率随着信噪比的增大是单调下降的)。 交织器是影响Turbo码性能的一个关键因素,它可以便Turbo码的距离谱细化,即码重分布更为集中。它的特性的好坏直接关系着Turbo码的性能。
编码器中交织器的使用是实现Turbo码近似随机编码的关键。交织器实际上是一个一一映射函数,作用是将输入信息序列中的比特位置进行重置,以减小分量编码器输出校验序列的相关性和提高码重。通常在输入信息序列较长时可以采用近似随机的映射方式,相应的交织器称为伪随机交织器。由于在具体的通信系统中采用Turbo码时交织器必须具有固定的结构,同时是基于信息序列的,因此在一定条件下可以把Turbo码看成一类特殊的分组码来简化分析。交织是对信息序列加以重新排列的一个过程。如果定义一个集合A , A={1,2,…,N}。则交织器可以定义为一个一一对应的映射函数π(A-->A):J=π(i),(i,j属于A) 这里的i ,j 分别是未交织序列C 和交织序列C' 中的元素标号。映射函数可以表示为πN = (π⑴,π⑵,π⑶,…,π(N))。其原理如图在交织器的设计中,基本上是遵循下列原则:
1)最大程度的置乱原来的数据排列顺序,避免置换前相距较近的数据在置换后仍然相距较近,特别是要避免相邻的数据在置换后仍然相邻。2) 尽量提高最小码重码字的重量和减小低码重码字的数量。
3) 尽可能避免与同一信息位直接相关的两个分量编码器中的校验位均被删除;
4) 对于不归零的编码器,交织器设计时要避兔出现尾效应 图案。
在设计交织器时,应考虑具体应用系统的数据的大小,使交织深度在满足时延要求的前提下,与数据大小一致,或是数据帧长度的整数倍。
交织器和分量码的结合可以确保Turbo码编码输出码字都具有较高的汉明重量。在Turbo编码器中交织器的作用是将信息序列中的比特顺序重置。当信息序列经过第一个分量编码器后输出的码字重量较低时,交织器可以使交织后的信息序列经过第二个分量编码器编码后以很大的概率输出较高重码字,从而提高码字的汉明重量:同时好的交织器还可以奇效地降低校验序列间的相关性。因此,交织器设计的好坏在很大程度上影响着Turbo码的性能。
交织器的类型可以分为两大类,一是规则交织器,也称确定性交织器,其交织器的映射函数可以由一个确定的解析函数给出。二是随机交织器,其映射函数不能由-个确定的解析表达式给出。
Turbo 码常用的交织器包括以下几种:分组交织器、随机交织器、s-随机交织器等等。 对于数字通信领域日益紧张的带宽资源,提高码率就意味着节省带宽和降低通信费用。删余(Puncturing)是目前提高Turbo码码率的主要方法。
Turbo 码中,删余器通常比较简单,因为在一般的应用中,码率都是在1/2 或者1/3 ,因此即使有删余器,它一般也只是周期性的从两个分量编码器中选择校验比特输出即可。其具体做法是:从两个RSC编码生成的校验序列中周期地删除一些校验位,然后再与未编码的信息序列复用重组成最后的编码输出序列,调制后进入信道传输。若信息序列为d1 =(C11) ,长度为N ,那么两个RSC分量编码器的输出为:图3. 6 所示示为采用了删余技术的编码结构,若取RSC1输出的奇比特和RSC2的偶比特,即采用删余矩阵P= [ 10,01] , 那么编码输出长度为2N,码率提高为1/2的序列为Cp.两个分量码编码器的输出经过删余得到的序列被称为奇偶序列,是校验序列。一个好的删余算法应该符合以下几点要求:
1) 不能删除信息位.删除信息位会造成较大的信息损失,从而使误码率有较大的损失;
2) 删余应该在时间域上均匀进行,删余同一时刻所有的比特位会造成此时刻信息损失较大,影响误码率;
3) 删余应该对于各分量码均匀进行,从而使信息的损失均匀分布在各分量码上,避免由于信息损失不均匀导致分量码译码性能下降。 典型的Turbo码编码器由两个递归系统卷积码(RSC,Recursive Systematic Convolutional codes)并行级联而成,因此Turbo码又被称为并行级联卷积码(PCC,Parallel Concatenated Convolutional codes)。
Turbo码编码器的基本结构如图3-33所示。
Turbo码编码器一般包括两个结构相同的递归系统卷积编码器和一个随机交织器。长度为N的信息序列u一方面直接进入第1个分量编码器RSC1,另一方面经过随机交织器处理后送入第2个分量编码器RSC2。随机交织器的处理是输入序号至输出序号的一映射,它的输出为长度相同,但比特位置经随机排列的交织序列。两个分量编码器RSC1和RSC2分别产生两个不同的校验比特序列x和x。为了提高Turbo码的码率,除可以选用高码率的分量码外,还可以采用打孔(Puncturing)技术从这两个校验序列中删除一些校验位,然后再与信息序列x复用在一起输出。例如,假定图3-33中两个分量编码器的码率均是1/2,为了得到1/2码率的Turbo码,可以采用打孔矩阵,即删去来自RSC1的校验序列x的偶数位置比特与来自RSC2的校验序列x的奇数位置比特。为了处理更加简单,在TD-LTE中采用了循环缓存速率匹配技术(CBRM,Circular Buffer Rate Matching),具体内容见3.5.2.2节相关描述。
Turbo码的两个分量编码器结构为递归形式,而卷积码一般都采用非系统、非递归形式。从相关文献中可知,RSC码与非系统卷积码(NSC,Non-Systematic Convolutional codes)具有相同的Trellis结构和自由距离,但是在低码率时,NSC码的误码性能在高信噪比时比RSC码更好;而在低信噪比时情况却正好相反。另外,在高码率的情况下,对任何信噪比,RSC码的性能往往优于NSC码。因此,Turbo码编码器采用RSC码作为分量码。例如,(37,21)Turbo码的分量编码器的生成多项式包括反馈多项式g0=37和前馈多项式g1=21,如图3-34所示。
Turbo码的译码复杂度一般随分量编码器的寄存器个数呈现指数级增长。例如,(37,21)Turbo码使用4个寄存器,译码复杂度一般是16的倍数。在TD-LTE系统中,Turbo的分量编码器的生成多项式为(g0=13,g1=15),使用了3个寄存器,因此译码复杂度较小。 Turbo码内置的交织器是在第2个分量编码器RSC2编码处理之前将信息序列的N个比特的位置进行随机排列,它起着关键的作用,很大程度上影响着Turbo码的性能。通过随机交织,使得编码由简单的短码得到了近似长码。当交织器充分大时,Turbo码就具有近似于随机长码的特性。
在E-UTRA系统中,Turbo码的交织器采用二次置换多项式函数(QPP,Quadratic Permutation Polynomials),即
其中,x代表交织后的序号,f(x)代表交织器输入的序号,f1和f2为设计参数。这个交织器,又称QPP交织器,它的主要优点是无冲突交织处理,能够支持并行译码,提高译码速度。
Turbo码译码器采用迭代译码方法,其中使用两个分量译码器,并在第一分量译码器与第二分量译码器之间传递软译码信息,如图3-35所示。无冲突交织器支持并行译码的主要原理是:在进行迭代译码时,第一分量译码器将信息序列进行分段,每个分段使用单独的一个专用的译码处理单元独立地进行译码,各分段译码过程可以并行进行,提高译码速度。但是第二分量译码器也需要采用相同的、并行的分段译码方法,这就要求第二分量译码器的每个独立专用的译码处理单元同一时刻访问不同的分段,这样才能避免信息序列分段地访问冲突,从而实现第二分量译码器的并行分段译码,提高整个迭代译码的速度。图3-36所示为无冲突交织器的示意图,4个窗口(Windows)A、B、C、D分别代表独立的分段译码,它们需要通过交织器获取各自的原始数据,此时4个窗口A、B、C、D在读取原始数据时,不会出现在同一时刻访问同一分段,不会发生资源访问冲突的问题,这样保证了4个窗口A、B、C、D可以并行地分段译码。
为了支持灵活的系统结构,同时保证鲁棒的系统性能,在TD-LTE系统中优化设计了188种QPP交织器长度,可以支持相应的188种Turbo编码块大小。这里,列举其中的3种交织器。
例1:当N=40时,则f1=3,f2=10。
例2:当N=1008时,则f1=55,f2=84。
例3:当N=6144时,则 f1=263,f2=480。
TD-LTE Turbo码的QPP交织器长度N的每个因子都可以作为分段大小和并行度,比如例3中,N=6144=8×768,对应的Turbo译码器可以使用8个并行的分段译码器,每个分段译码器的译码长度是768bit。
QPP交织器除了支持并行译码,还有其他的优点,例如计算复杂度较小,实现非常简单等,因此被应用于TD-LTE系统中。 为了便于分析Turbo码的理论性能的上界(Upper Bound),一般使用误比特率(BER)来统计性能,并假设最大似然译码(ML)、BPSK调制和加性高斯白噪声信道(AWGN)。Turbo码的性能上界就可以使用联合界(Union Bound)来确定,即
(3-19)
其中,是首一输入序列对应的所有重量为的码字中信息位的全部重量之和。
式(3-19)还可以进一步写成
(3-20)
其中,wd代表码字重量为d的每个码字的平均信息位重量,Nd代表码字重量为d的码字数目,即码字多样性(Multiplicity)。另外,还定义一个等效的多样性(Effective Multiplicity),即
(3-21)
当信噪比较高时,式(3-20)可以进一步简化,获得Turbo码的渐近性能(Asymptotic Performance),即
(3-22)
式(3-22)说明,Turbo码的渐近性能主要是由自由距离()决定的。
为了进一步解释Turbo的性能界,以上述(37,21)Turbo码为例,交织器大小为65536,它的码率R=1/2,自由距离dfree=6,平均重量wfree=2,等效的多样性为
(3-23)
Turbo码的渐近性能为
(3-24)
图3-37给出了这个式(3-24)对应的渐近性能曲线,同时给出了(2,1,14)卷积码的渐近性能曲线作为对比。Turbo码性能界出现的平坦特征主要由较小的自由距离决定,而卷积码的性能界出现陡峭特征主要由较大的自由距离决定。Turbo码的性能优势主要出现在较低的信噪比范围,此时渐近性能曲线位置相对较低,其原因是Turbo码具有很小的等效多样性,这在很大程度上决定了Turbo码的优异性能。显然,交织器长度越大,对应的信息比特长度N越大,Turbo码的性能增益就越大。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)