移动通信系统中8比特运算字长Turbo码的译码方法
【专利摘要】一种移动通信系统中8比特运算字长Turbo译码的实现方法,包括下列步骤:(1)初始化设置进入Turbo译码器的三个输入数据,以使其平均幅度都调整到Turbo译码的安全范围内,避免因数据过大或过小而增大溢出可能性。(2)执行具有溢出保护机制的8bit-RSC的递归系统卷积编码RSC译码算法,获得译码输出E1。(3)按照协议规定,对译码输出E1和数组s分别执行交织算法。(4)执行具有溢出保护机制的8bit-RSC的递归系统卷积编码RSC译码算法,获得译码输出E2。(5)执行解交织算法,判断是否终止迭代操作,并得到最终译码结果。本发明是在传统Turbo译码基础上进行改进的方法,在无明显损失译码性能前提下,大大降低Turbo译码的数据存储空间的开销,并提升了译码的运行效率和速度。
【专利说明】移动通信系统中8比特运算字长Turbo码的译码方法
【技术领域】
[0001]本发明涉及一种移动通信系统中8比特运算字长Turbo码的译码方法,属于无线移动通信的【技术领域】。
【背景技术】
[0002]Turbo (拓扑)码最早是在1993年的ICC国际会议上,由两位法国不列颠通信大学的教授Glavieux A、Thitimajshiwa P和他们的緬甸籍博士生Berrou C在论文《NearShannon limit error-correcting coding and decoding:Turbo-codes〉〉中首次提出的。仿真结果表明,在使用容量为65536的随机交织器,进行18次译码迭代、且信噪比小于0.7dB时,码率为1/2的Turbo码在AWGN信道中的误比特率小于10_5,接近了香农限(1/2码率的香农限为OdB)。由于其优异性能,Turbo码成为第三代以及后续移动通信系统中高速数据业务的重要编码方式。
[0003]Turbo码的译码比其编码更为复杂,其核心部分是2个“软输入软输出(SIS0)”译码器,通过多次迭代译码,可以显著提升误码性能。具体误码算法有:最大后验概率算法MAP及其改进算法Log-MAP算法等 等。由于需要进行大量的乘法运算和指数运算,MAP算法并不适宜用硬件实现之。故有学者提出了 MAP算法在对数域的简化版本=Log-MAP算法。其是通过转换到对数域运算来避免指数运算,同时将乘法转换为加法,而加法则变成Max,即取最大值运算。
[0004]在定点数字信号处理器上,实现Turbo码译码极具挑战性,除了算法本身复杂度较高以外,还有一个重要原因是译码迭代计算过程中数据值不断累加、增大定点数溢出风险,从而使得译码性能显著恶化。
[0005]为了防止算法迭代过程中发生定点数溢出,Turbo译码通常选择8比特以上的运算字长。以16比特字长为例,数据的取值范围在-32768~32767之间,而8bit字长的数据取值在-128~127之间,范围极小。因此8比特运算字长的Turbo译码的主要问题是:随着迭代运算的不断深入,数据值会不断增加,更容易发生溢出。
[0006]然而使用8比特运算字长可以减小Turbo译码算法的数据存储空间,同时算法将更有利于并行处理、使得算法执行效率和速度也将大大优于8比特以上运算字长的译码算法,尤其随着移动通信系统对实时信号处理的速率和效率要求越来越高,8比特运算字长的Turbo译码具有很大的吸引力。
[0007]参见图1,介绍该图中各个字符的涵义:Ik为第k时刻从信道中获取的待译码数据中的系统比特,自然数k下标为时间序列号,Pl为第k时刻从信道中获取的待译码数据中
的第一校验比特,K为第k时刻从信道中获取的待译码数据中的第二校验比特,Rk为第k时刻从信道获取的待译码数据,该待译码数据包括上述三种数据:Ik P1和g。E1是第一译码器输出的外信息数据,£「是第一译码器输出的外信息数据、再经过交织后的数据,E2是第二译码器输出的外信息数据,是第二译码器输出的外信息数据、再经过解交织后的数据。
[0008]参见图2,再介绍图2所示的一种典型Turbo码译码器结构及其译码方法:首先将接收到的待译码数据yk:即输入的信息比特Ik,第一校验比特P —同送入第一译码器。将
Ik经过交织后的数据和第二校验比特A —同送入第二译码器。第一译码器输出的外信息
数据E1经过交织后也送入第二译码器用于译码,第二译码器输出的外信息数据E2经过解交织后,送到第一译码器进行译码。Turbo码译码是一个迭代的过程,通常的迭代次数为3~8次,最后一次迭代时第二译码器将会输出对数似然比LLR (Loglikelihood Ratio),再经过解交织后,进行硬判决,就作为最终的译码结果。译码过程中,各个变量的取值均为有符号整数,在16bit字长的译码运算中的取值在-32768~32767之间,在8bit字长的译码运算中的取值在-128~127之间。
[0009]译码的最后结果是要计算对数似然比LLR,对数似然比的计算公式为:
【权利要求】
1.一种移动通信系统中8比特运算字长Turbo译码的实现方法,是基于传统的Turbo译码MAX-Log-MAP前后向度量计算方法实现的;Turbo译码有三个分别为I XK维数组的输入数据:系统比特Rs、第一校验比特RpjP第二校验比特Rp2,其中,K为信息比特的总数,即译码输出的数据长度,3个数组Rs,Rp1, Rp2的元素都是8比特字长;其特征在于:所述方法包括下列操作步骤: 步骤1,对准备进入Turbo译码器的数据进行初始化设置,以使该三个输入数据的平均幅度都调整到Turbo译码的安全范围内,避免因数据过大或过小而增大溢出可能性; 步骤2,执行具有溢出保护机制的8bit-RSC的递归系统卷积编码RSC (RecursiveSystematic Convolutional code)译码算法,获得译码输出 E1 ; 步骤3,按照协议规定,对译码输出E1和数组s分别执行交织算法; 步骤4,再次执行具有溢出保护机制的Sbit-RSC的递归系统卷积编码RSC译码算法,获得译码输出E2 ; 步骤5,执行解交织算法,判断是否终止迭代操作,并得到最终译码结果。
2.根据权利要求1所述的方法,其特征在于:所述步骤I包括下列操作内容: (11)定义三个IXK维数组S,P1,P2,并分别初始化设置该三个数组s=Rs, P1=RP1和P2=RP2 ;其中,数组s用于临时存储系统比特、P1用于临时存储第一校验比特,p2用于临时存储第二校验比特; (12)定义五个IXK维数组As,E1,AE11E2, Λ E2,并将该五个数组的所有元素的初始值都设为零;其中,Λ s是s交织后的数组,E1是输入为s,Pl,AE2时递归系统卷积编码RSC译码算法的输出,Λ E1是E1交织后的数组,E2是输入为s,p2,AE1时RSC译码算法的输出,AE2是E2解交织后的数组; (13)设置八个数组s,Δ s, P1, P2, E1, AE1, E2, Δ E2的元素字长都为8比特; (14)计算经过步骤(11)初始化设置后的三个数组s,P1,P2中的所有元素平均幅度,所述平均幅度的计算方法是:先对三个数组元素分别计算其幅度和,再除以数组元素个数所得到的商;然后,按照下述公式j =P1=P1X^-, /?对三个数组Sj^p2
/m分别进行幅度缩放,使得S,P1, P2中的所有元素的平均幅度变为32。
3.根据权利要求1所述的方法,其特征在于:所述步骤2包括下列操作内容: (21)判断数组AE2的元素中的绝对值是否超过门限值N,该门限值的数值能够灵活调整;如是,则在译码前执行除性归一化操作:将各个数组s,Pl,p2,AE2中的所有元素都除以归一化系数μ , μ >1 ;如否,则不作任何处理; (22)以S,P1,AE2作为输入参数,执行以传统的MAX-Log-MAP前后向度量计算方法为基础并改进的8bit-RSC译码算法,获得译码输出Ep
4.根据权利要求3所述的方法,其特征在于:所述改进的Sbit-RSC译码算法中的关键操作是前后向度量的计算,其改进之处是:计算过程中存储的内部数据都设定为8比特字长,并在译码过程中新增减法归一化操作;该步骤(22)包括下列具体操作内容: (22a)先设定计算过程中存储的内部数据都为8比特字长; (22b)采用传统的MAX-Log-MAP前向度量计算方法计算前向度量值:因译码第i个信息比特对应有8个前向度量值,并用数组a [i] [m]分别表示之;其中,α表示数组,自然数i和m分别为信息比特和前向度量值的序号,且其最大值分别为K和8 ;可m]为临时数组;数组Y [i] [η]为第i个信息比特的4个分支度量,式中,自然数i和η分别为另一信息比特和另一前向度量值的序号,且其最大值分别为K和4 ; 改进的MAX-Log-MAP前向度量的计算方法是:按照传统的MAX-Log-MAP后向度量计算方法,先对a [1-1] [m]和Y [1-1] [η]进行累加、比较和选择的操作,计算得到可〃/1后,再利用公式《[/?可叫-可O]进行减法归一化操作,得到a [i] [m]; (22c)采用改进的MAX-Log-MAP后向度量计算方法计算后向度量值:因译码第j个信息比特对应有8个后向度量值,并用数组β [j] [q]分别表示之;其中,β表示数组,自然数j和q分别为信息比特和后向度量值的序号,且其最大值分别为K和8 为临时数组; 改进的MAX-Log-MAP后向度量计算方法是:先按照加法操作对β [j] [q]和Y [j] [η]进行累加、比较和选择的操作,再按照传统的MAX-Log-MAP计算方法从β [j] [q]计算得到卢M后,再利用公式-两I]进行减法归一化操作,得到β [j-1] [q]; (22d)根据获得的前后向度量值按照传统方法计算译码输出,并赋值给Ep
5.根据权利要求1所述的方法,其特征在于:所述步骤3包括下列操作内容: (31)以步骤(2)的译码输出E1作为交织输入,按照3GPP协议规定调用交织算法,并将交织输出赋值给AE1 ; (32)以数组s作为交织输入,再次执行与步骤(31)相同的交织算法后,将交织输出赋值给Δ s。
6.根据权利要求1所述的`方法,其特征在于:所述步骤4包括下列操作内容: (41)判断数组AE1的元素中的绝对值是否超过门限值N,如果有,则在译码前执行除性归一化操作:四个数组s, P1, P2, AE1中的所有元素都除以归一化系数μ ; (42)以s,p2,AE1作为输入,执行基于传统的MAX-Log-MAP前后向度量计算方法、并进行下述改进:作出新约定和引入新功能的Sbit-RSC译码算法:计算过程中存储的内部数据都是8比特字长、并在译码过程中新增减法归一化操作: 具体计算方法为:先设定内部数据存储为8比特字长,再按照步骤(22)的描述分别计算前向度量值和后向度量值,然后根据获得的前后向度量值和传统方法计算得到译码输出值,并赋值给E2。
7.根据权利要求1所述的方法,其特征在于:所述步骤2和步骤4中的门限值N设置为96,归一化系数μ要大于1,设置为2。
8.根据权利要求1所述的方法,其特征在于:所述步骤5包括下列操作内容: (51)以步骤4的输出&作为输入,调用3GPP协议规定的解交织算法,执行解交织运算,并将输出赋值给AE2 ; (52)根据传统的Turbo译码终止策略判断是否已经满足迭代终止条件;若满足条件,则依据E2计算得到最终译码结果,并结束整个Turbo译码算法;否则,返回步骤2,重新继续执行。
【文档编号】H03M13/27GK103701475SQ201310722093
【公开日】2014年4月2日 申请日期:2013年12月24日 优先权日:2013年12月24日
【发明者】钱荣荣, 王胤鑫, 漆渊, 彭涛, 王文博 申请人:北京邮电大学