一种实现Turbo码译码的方法和装置的制作方法

文档序号:7539564阅读:181来源:国知局
专利名称:一种实现Turbo码译码的方法和装置的制作方法
技术领域
本发明涉及一种用于通信系统中信道编译码领域的Turbo码译码方法和装置。
在诸多信道编码中,Turbo码的纠错能力较强,能够满足高可靠性数据传输的需求。Turbo编码一般是并行的,通过在多个并行级连的递归式卷积编码器中间插入内交织器进行编码,译码时仅使用若干相同的译码器反复进行迭代,最终获得译码输出,因此,Turbo编码/译码器的结构较简单。由于Turbo码的纠错性能远比其它编码的纠错性能优越,而且译码迭代的次数越多,则译码纠错的性能越好,所以,Turbo码是目前公认的一种最好的前向纠错码,通常多被建议在可靠性要求很高的数据传输场合使用。例如,第三代移动通信系统就采用了一个8状态1/3码率的Turbo码作为信道编码的标准。
自从Turbo码被提出以来,人们一直在研究Turbo编码/译码的性能,试图完善Turbo码的理论。目前,在并行级连的递归式卷积编码器中间插入内交织器的Turbo码编码结构已获得普遍认可,而译码算法和译码器结构则尚未有统一的定论。现在主要有两种Turbo码译码算法,即最大后验概率译码(MAP)算法和软判决输出维特比译码(SOVA)算法。这两种算法各有优缺点,前者可使数据比特的错误最小,但译码计算较复杂,且由于存储空间与比特序列长度成正比,因此存储空间需求较大;后者虽然计算简单、存储空间需求较小,然而其译码性能却低于MAP算法。所以,MAP算法是Turbo码译码算法研究的主流方向。
MAP译码算法主要是以对数算法(log-MAP)为主,Turbo译码器的研究也主要是围绕用硬件实现对数算法或者其简化实现形式进行。由于log-MAP译码算法特性,用硬件实现该算法较为困难,同时也存在如何根据应用情况最佳地确定译码器各子单元输入输出的比特量化取值范围、如何高效地利用译码所需的E函数来保证Turbo译码的性能等实现上的难点,因此,目前国内外都还没有提出用硬件实现Turbo译码的更好解决办法。目前公开的很多研究Turbo编译码的专利文献,例如专利号为US6023783、名称为“混合串联编码及迭代译码”(Divsalar,et al.,“Hybrid concatenated codesand iterative decoding,”United States Patent,Patent Number6023783,Date of PatentFebruary 8,2000)的文献,亦只是描述了Turbo编译码的一般理论方法,并没有涉及实际硬件实现方面的内容。
本发明的目的在于提供一种结构简单,运算速度快,易于实现的Turbo码译码方法以及实现上述方法的装置。
为达到上述目的,本发明提供的Turbo码译码方法,包括(1)设置译码反馈信号的初始值zi2=0和迭代次数M,i=0;(2)将接收到的信息信号Axi与译码反馈信号zi2相加,并将相加结果与第一校验信号Ayi1进行译码计算;
(3)将上述步骤(2)的译码计算结果与经过延迟的译码反馈信号zi2进行减法操作;(4)从上述步骤(3)的减法操作结果中提取出信息信号,对该信息进行交织操作,对交织后的信息进行块扩充,并在交织后的信息后面添加对应尾比特数个0;(5)对经过上述步骤(4)块扩充后的信息分别进行译码计算和延迟,将延迟后的结果与译码计算的结果进行减法操作,从减法操作结果中提取出信息信号,对该信息信号进行去交织恢复原数据流的次序,再经过块扩充操作,以在交织后的信息后面添加对应尾比特数个0,以块扩充操作后的信号作为译码反馈信号zi+12;(6)i=i+1,当i<M时,返回上述步骤(2)继续操作;(7)对从上述步骤(5)得到的译码计算结果进行判决,将该判决结果进行去交织,得到最终译码结果。
上述译码计算由下述步骤完成(1)对每一接收数据按下式计算分支度量 其中ij是模2和,u(w)是单位步长函数,N为接收数据长度;(2)分别计算前向状态度量和反向状态度量,其中前向状态度量A按下式递推计算 上述k的取值从1到N-1;反向状态度量B按下式递推计算
上述k的取值从N-2到0;(3)按下式进行似然比计算 其中,k=0,1,2,……,N-1。
为实现上述方法,本发明还提供了该装置包括第一至第二两个译码器,第一至第二两个减法器,第一至第二两个延迟器,第一至第三3个块提取器,第一至第二两个块扩充器,第一至第二两个去交织器,以及加法器、交织器和判决器;所述加法器12接收所述第二块扩充器116的反馈信号zk2和信息信号Axk,相加结果输出到所述第一译码器11,与第一校验数据Ayk1同时进行译码,译码结果与经所述第一延迟器13延迟后的反馈信号zk2送到所述第一减法器15进行减法操作,相减结果送入所述第一块提取器16,然后再送给所述交织器17,所述交织器17将其输出送入所述第一块扩充器18,其输出结果被送到所述第二译码器110;所述第二译码器110同时还接收第二校验数据Ayk2,其输出送入所述第二减法器111和所述判决器110,所述第一块扩充器18的输出结果经所述第二延迟器19延迟后同时送入所述第二减法器111,相减结果被送入所述第二块提取器113,然后送给所述第二去交织器115恢复原数据次序,再经所述第二块扩充器116,反馈给所述加法器12;所述第二译码器110的输出经所述第三块提取器提取信息信号112,其结果送判决器114判决后,送入所述第一去交织器115恢复原有数据的次序,并将其作为整个Turbo译码装置的输出。
所述第一译码器和所述第二译码器按照最大后验概率译码(MAP)算法的对数形式(log-MAP)配置。
所述第一译码器11和所述第二译码器110包括分支度量模块1101、前向状态度量模块1102、反向状态度量模块1103和似然比计算模块1104;所述分支度量模块1101计算各分支度量,然后将结果先后送到所述前向状态度量模块1102和所述反向状态度量模块1103,再送给所述似然比计算模块1104进行似然比计算。
上述分支度量模块1101、前向状态度量模块1102和反向状态度量模块1103使用本发明提供的蝶形结构模块装置代替,所述蝶形结构模块装置包括状态度量存储器、第一至第二状态度量寄存器、分支度量寄存器、第一至第六加法器、第一至第二减法器、第一至第二比较器,以及E-数表存储器;所述状态度量存储器21存储的是前一时刻或后一时刻的各状态度量,在计算当前状态度量时,从中取出为计算当前状态度量所需的前一时刻或后一时刻的状态度量,放入所述第一至第二状态度量寄存器22、23中,所述分支度量存储器26存储经计算得到的当前时刻的各分支度量;所述第一状态度量寄存器22的输出分别送给所述第一加法器24和所述第四加法器27,第二状态度量寄存器23的输出分别送给所述第二加法器25和所述第五加法器28,所述分支度量寄存器26的输出也分别送给所述第一、二、四、五加法器24、25、26、27,所述第一加法器24的输出分别送所述第一比较器29和所述第一减法器210,所述第二加法器25的输出也同时送给所述第一比较器29和所述第一减法器210,所述第一比较器29的输出送入所述第三加法器213,所述第一减法器210的输出送所述E-数表存储器214取值,然后,送至所述第三加法器213相加后,结果反馈到所述状态度量存储器21并输出;所述第四加法器27和所述第五加法器28的输出同时送给所述第二比较器212和所述第二减法器211,所述第二比较器212的输出送入所述第六加法器215,所述第二减法器211的输出送给所述E-数表存储器214取值,然后,送至所述第六加法器215相加,结果反馈到所述状态度量存储器21并输出。
由于本发明的方法采用硬件方法实现,译码器的蝶形结构模块装置主要由存储器、寄存器和运算器等组成,而且配置多个所述蝶形结构模块装置能够并行进行译码计算,所以,这不仅使整个Turbo译码装置结构简单,运算速度快,易于实现,还因为采用在E-数表存储器中迅速查找E-函数计算数值的方法,巧妙地解决了简化log-MAP算法中要求实现E-函数复杂运算的问题,使得译码速度更快、译码性能更高。通过使用专用软件仿真和实际测试本发明所述的Turbo译码装置,表明它具有达到或接近Turbo码译码算法理论值的能力。
下面结合附图和实施例对本发明作进一步说明。


图1是本发明所述方法实施例的流程图;图2是本发明提出的Turbo码译码装置的实施例框图;图3是图2所示装置采用的译码器框图;图4是图3所示的译码器采用的蝶形模块结构装置框图;图5是本发明提出的Turbo码译码装置的数值实验仿真结果图。
首先参考图1,本发明所述方法的步骤1,设置译码反馈信号的初始值zi2=0和迭代次数M,i=0;然后进行步骤2,将接收到的信息信号Axi与译码反馈信号zi2相加,并将相加结果与第一校验信号Ayi1进行译码计算;在步骤3,将上述步骤2的译码计算结果与经过延迟的译码反馈信号zi2进行减法操作;在步骤4,从上述步骤3的减法操作结果中提取出信息信号,对该信息进行交织操作,对交织后的信息进行块扩充,以在交织后的信息后面添加对应尾比特数个0;在步骤5,对经过上述步骤4块扩充后的信息分别进行译码计算和延迟,将延迟后的结果与译码计算的结果进行减法操作,从减法操作结果中提取出信息信号,对该信息信号进行去交织恢复原数据流的次序,再经过块扩充操作,以在交织后的信息后面添加对应尾比特数个0,以块扩充操作后的信号作为译码反馈信号zi+12;在步骤6,计算i=i+1,判断i是否小于M时,如果是,返回上述步骤2继续操作,否则进行步骤7,对从上述步骤5得到的译码计算结果进行判决,将该判决结果进行去交织,得到最终译码结果。
上述译码计算由下述步骤完成首先设置计算前、反向状态度量的初始值,然后进行第一步,对每一接收数据按下式计算分支度量 其中ij是模2和,u(w)是单位步长函数,N为接收数据长度;第二步,分别计算前向状态度量和反向状态度量,其中前向状态度量A按下式递推计算 上述k的取值从1到N-1;反向状态度量B按下式递推计算 上述k的取值从N-2到0;第三步,按下式进行似然比计算 其中,k=0,1,2,……,N-1。
为实现上述方法,本发明还提供了一种Turbo码译码装置,参考图2,该装置包括第一至第二两个译码器,第一至第二两个减法器,第一至第二两个延迟器,第一至第三3个块提取器,第一至第二两个块扩充器,第一至第二两个去交织器,以及加法器、交织器和判决器。所述第一译码器和所述第二译码器按照最大后验概率译码(MAP)算法的对数形式(log-MAP)配置,该算法具体包括以下内容(1)初始化前、反向状态度量 迭代开始时,外部信息取zk=0。以后为前一次译码器的外部信息输出。
(2)从k=0到N-1,对每一接收符号计算分支度量 其中ij是模2和,u(w)是单位步长函数,Kk是前面最小的状态度量,在实际计算时忽略。
(3)在全部N个符号序列接收后,从k=N-2到k=0,对每一接收符号和所有状态m,反向递推计算反向状态度量B (4)对每一接收符号和所有状态m,从k=1到N-1,前向递推计算前向状态度量A (5)从k=0到N-1,计算似然比L 若是最后迭代,进行译码判决 (6)从k=0到N-1,计算传递给下一译码器的外部信息zk2zk2=zk+Axk+zk’ (7)(7)重复以上过程。
其中,k=0,1,…N-1, 式中,E函数的定义为aEb=-logε(ε-a+ε-b)=min(a-b)-logε(1+ε-|a-b|)(8)所述第一译码器11和所述第二译码器110包括分支度量模块1101、前向状态度量模块1102、反向状态度量模块1103和似然比计算模块1104。参考图3。
在本实施例中,所述加法器12接收所述第二块扩充器116的反馈信号zk2和信息信号Axk,zk2作为外部信息,在迭代开始时为0。所述加法器12相加得Axk+zk2,相加结果与第一校验数据Ayk1同时输出到所述第一译码器11的分支度量模块1101计算分支度量,其结果限制于9比特数值范围从0~511,分支度量模块1101的结果输入到前向状态度量计算模块1102和反向状态度量计算模块1103,它们再分别递推进行前向状态度量和反向状态度量的计算,其结果限制于10比特,数值范围从0~1023。之后,前向状态度量计算模块1102和反向状态度量计算模块1103的结果输入似然比计算模块1104计算似然比,其结果限制于10比特,数值范围从-511~511。似然比计算模块1104所得的似然比λj1作为译码结果与经所述第一延迟器13延迟后的外部信号zk2送到所述输入到第一减法器15进行减法操作,其结果Axj+zj1限制于10比特,数值范围从-511~511,并整个作为外部信息传递给第二译码器110,在输入给第二译码器110之前,由所述第一译码器11所得的外部信息Axj+zj1需经过所述第一块提取模块16提取信息数据,去除对应尾比特的数据,然后送入所述交织器17置乱数据,交织器17的输出经过第一块扩充模块18,在数据后面添加对应尾比特个数的0,其结果与第二校验数据Ayk2一起进入所述第二译码器110,所述第二译码器110重复进行与所述第一译码器11同样的计算,输出结果为似然比λi2。所述第二译码器110的输出,一路给迭代译码硬判决器112做0和1比特判断,其结果再进入第一去交织器114,恢复原比特数据流次序以获得译码结果;另一路送入第二减法器111进行与第三延迟器19的输出Axi+zi2相减运算,结果不超过9比特,数值范围从-255~255。然后,这个结果经过第二块提取器113的提取信息数据处理,再经过第二去交织器115恢复原数据流的次序,最后,第二块扩充模块116在数据流后添加零,其个数与尾比特数相同。第二块扩充模块116的输出又作为外部信息反馈给加法器12,供下次迭代计算使用。以上完成了一次迭代译码运算的完整过程;需要说明,实际的迭代次数需根据应用确定。
图4是图3所示的译码器采用的蝶形模块结构装置框图。也就是说,在本实施例中,图3所示的分支度量模块1101、前向状态度量模块1102和反向状态度量模块1103使用图4所示的蝶形结构模块装置代替,所述蝶形结构模块装置包括状态度量存储器、第一至第二状态度量寄存器、分支度量表寄存器、第一至第六加法器、第一至第二减法器、第一至第二比较器和E-数表存储器,所述E-数表存储器存储按照E-函数选定的数值,所述E-函数的定义参见前述(8)式。
所述状态度量存储器21事先存储前一时刻的各状态度量,当前时刻的各分支度量按前面(2)式计算并存储在分支度量表寄存器26中。另一方面,从所述状态度量存储器21中取出当前状态度量放入到第一状态度量寄存器22和第二状态度量寄存器23。所述第一状态度量寄存器22对应于蝶形结构的上半部;所述第二状态度量寄存器23对应于蝶形结构的下半部。假若按前面(3)式现在计算的是反向状态度量,并进一步假设上半部分先对应编码器输入0时的情况,下半部分先对应编码器输入1时的情况,那么,按照(3)式,此时上半部分对应编码器0输入的后一时刻反向状态度量和所需的当前分支度量分别从第一状态度量寄存器22和分支度量表寄存器26中取出送至所述第一加法器24中相加,同时,下半部分对应编码器1输入的后一时刻反向状态度量和所需的当前分支度量分别从所述第二状态度量寄存器23和分支度量表寄存器26中取出送至第二加法器25中相加。所述第一加法器24和所述第二加法器25的输出分两路,一路进入所述第一比较器29求最小值,一路进入所述第一运算器210相减并求绝对值。根据所述第一运算器210的输出值查找E-数表存储器214中的E-数表,将结果与第一比较器29的输出值用第三加法器213相加,即可获得当前时刻的一反向状态度量,并输出。对于下半部分,同样过程被进行。下半部分对应编码器0输入的后一时刻反向状态度量和所需的当前分支度量分别从所述第二状态度量寄存器23和分支度量表寄存器26送至第五加法器28中相加。同时,上半部分对应编码器1输入的后一时刻反向状态度量和所需的当前分支度量分别从第一状态度量寄存器22和分支度量表寄存器26中取出送至第四加法器27中相加。所述第四加法器27和所述第五加法器28的输出均分两路,一路进入所述第二比较器212求最小值,一路进入所述第二运算器211相减并求绝对值。根据所述第二运算器211输出值查找E-数表存储器214中的E-数表,将结果与所述第二比较器212的输出值用所述第六加法器215相加,即可获得当前时刻的一反向状态度量,并输出。
实际中可用使用多个上述蝶形结构模块装置并行运行,一次完成所有当前反向状态度量计算。
前向状态度量的计算与上述过程相同。所述蝶形结构模块装置除了用于实现前、反向状态度量的计算外,亦可用于似然比计算。如果去掉蝶形结构中的E-数表存储器214,采用该蝶形模块结构的译码器就实现了次最优的log-MAP译码算法,即sub-log-MAP译码算法。
图5是本发明的Turbo码译码装置在高斯白噪声信道下的数值实验仿真结果图,迭代6次,其中为了减少系统实现中对存储器的过大要求,引入了重叠分组方法。从实验仿真结果来看,在Eb/NO在1dB之后,Turbo码log-MAP译码算法理论值与本发明相应提出的译码装置的性能效果之间的误差在0.3dB之内。
权利要求
1.一种Turbo码译码方法,包括(1)设置译码反馈信号的初始值zi2=0和迭代次数M,i=0;(2)将接收到的信息信号Axi与译码反馈信号zi2相加,并将相加结果与第一校验信号Ayi1进行译码计算;(3)将上述步骤(2)的译码计算结果与经过延迟的译码反馈信号zi2进行减法操作;(4)从上述步骤(3)的减法操作结果中提取出信息信号,对该信息进行交织操作,对交织后的信息进行块扩充,并在交织后的信息后面添加对应尾比特数个0;(5)对经过上述步骤(4)块扩充后的信息分别进行译码计算和延迟,将延迟后的结果与译码计算的结果进行减法操作,从减法操作结果中提取出信息信号,对该信息信号进行去交织恢复原数据流的次序,再经过块扩充操作,以在交织后的信息后面添加对应尾比特数个0,以块扩充操作后的信号作为译码反馈信号zi+12;(6)i=i+1,当i<M时,返回上述步骤(2)继续操作;(7)对从上述步骤(5)得到的译码计算结果进行判决,将该判决结果进行去交织,得到最终译码结果。
2.根据权利要求1所述的译码方法,其特征在于所述译码计算由下述步骤完成(1)对每一接收数据按下式计算分支度量 其中ij是模2和,u(w)是单位步长函数,N为接收数据长度;(2)分别计算前向状态度量和反向状态度量,其中前向状态度量A按下式递推计算 上述k的取值从1到N-1;反向状态度量B按下式递推计算 上述k的取值从N-2到0;(3)按下式进行似然比计算 其中,k=0,1,2,……,N-1。
3.根据权利要求2所述的译码方法,其特征在于该方法还包括一个初始化步骤,设置计算前、反向状态度量的初始值。
4.一种Turbo码译码装置,其特征在于该装置包括第一至第二两个译码器,第一至第二两个减法器,第一至第二两个延迟器,第一至第三3个块提取器,第一至第二两个块扩充器,第一至第二两个去交织器,以及加法器、交织器和判决器;所述加法器(12)接收所述第二块扩充器(116)的反馈信号zk2和信息信号Axk,相加结果输出到所述第一译码器(11),与第一校验数据Ayk1同时进行译码,译码结果与经所述第一延迟器(13)延迟后的反馈信号zk2送到所述第一减法器(15)进行减法操作,相减结果送入所述第一块提取器16,然后再送给所述交织器(17),所述交织器(17)将其输出送入所述第一块扩充器(18),其输出结果被送到所述第二译码器(110);所述第二译码器(110)同时还接收第二校验数据Ayk2,其输出送入所述第二减法器(111)和所述判决器(110),所述第一块扩充器(18)的输出结果经所述第二延迟器(19)延迟后同时送入所述第二减法器(111),相减结果被送入所述第二块提取器(113),然后送给所述第二去交织器(115)恢复原数据次序,再经所述第二块扩充器(116),反馈给所述加法器(12);在最后迭代中,所述第二译码器(110)的输出经所述第三块提取器提取信息信号(112),其结果送所述判决器(114)判决后,送入所述第一去交织器(115)恢复原有数据的次序,并将其作为整个Turbo译码装置的输出。
5.根据权利要求4所述的Turbo码译码装置,其特征在于所述第一译码器和所述第二译码器按照最大后验概率译码(MAP)算法的对数形式(log-MAP)配置。
6.根据权利要求4或5所述的Turbo码译码装置,其特征在于所述第一译码器(11)和所述第二译码器(110)包括分支度量模块(1101)、前向状态度量模块(1102)、反向状态度量模块(1103)和似然比计算模块(1104);所述分支度量模块(1101)计算各分支度量,然后将结果先后送到所述前向状态度量模块(1102)和所述反向状态度量模块(1103),再送给所述似然比计算模块(1104)进行似然比计算。
7.根据权利要求6所述的Turbo码译码装置,其特征在于所述分支度量模块(1101)、前向状态度量模块(1102)和反向状态度量模块(1103)使用蝶形结构模块装置代替,所述蝶形结构模块装置包括状态度量存储器、第一至第二状态度量寄存器、分支度量寄存器、第一至第六加法器、第一至第二减法器、第一至第二比较器,以及E-数表存储器;所述状态度量存储器(21)存储的是前一时刻或后一时刻的各状态度量,在计算当前状态度量时,从中取出为计算当前状态度量所需的前一时刻或后一时刻的状态度量,放入所述第一至第二状态度量寄存器(22)、(23)中,所述分支度量存储器(26)存储经计算得到的当前时刻的各分支度量;所述第一状态度量寄存器(22)的输出分别送给所述第一加法器(24)和所述第四加法器(27),第二状态度量寄存器(23)的输出分别送给所述第二加法器(25)和所述第五加法器(28),所述分支度量寄存器(26)的输出也分别送给所述第一、二、四、五加法器(24)、(25)、(26)、(27),所述第一加法器(24)的输出分别送所述第一比较器(29)和所述第一减法器(210),所述第二加法器(25)的输出也同时送给所述第一比较器(29)和所述第一减法器(210),所述第一比较器(29)的输出送入所述第三加法器(213),所述第一减法器(210)的输出送所述E-数表存储器(214)取值,然后,送至所述第三加法器(213)相加后,结果反馈到所述状态度量存储器(21)并输出;所述第四加法器(27)和所述第五加法器(28)的输出同时送给所述第二比较器(212)和所述第二减法器(211),所述第二比较器(212)的输出送入所述第六加法器(215),所述第二减法器(211)的输出送给所述E-数表存储器(214)取值,然后,送至所述第六加法器(215)相加,结果反馈到所述状态度量存储器(21)并输出。
8.根据权利要求7所述的Turbo码译码装置,其特征在于所述E-数表存储器存储按照E-函数计算的数值,所述E-函数的定义为aEb=-logε(ε-a+ε-b)=min(a-b)-logε(l+ε-|a-b|)
全文摘要
本发明公开了一种Turbo码译码装置,该装置包括译码器,减法器,延迟器,块提取器,块扩充器,去交织器,加法器、交织器和判决器;所述译码器采用蝶形结构模块装置,按照log-MAP算法配置,所述蝶形结构模块装置主要包括存储器、寄存器、加法器和存储按照E-函数选定数值的E-数表存储器,采用该E-数表存储器简化了log-MAP算法中要求实现E-函数的复杂运算,这样使得整个译码装置结构简单,运算速度快,易于实现。
文档编号H03M13/37GK1391370SQ0111345
公开日2003年1月15日 申请日期2001年6月13日 优先权日2001年6月13日
发明者彭志威, 段晓明 申请人:深圳市中兴通讯股份有限公司上海第二研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1