专利名称:一种Turbo码译码方法和装置的制作方法
技术领域:
本发明涉及通信系统技术,特别是涉及一种Turbo码译码方法和装置。
背景技术:
由于Turbo码的近Shannon界的突出纠错能力,长期演进(LTE,Long Term Evolution)系统选用Turbo码作为高速数据业务的信道编码方案。
图1是现有的LTE系统中的Turbo编码器的示意图。如图1所示,LTE采用传统的由两个并行的分量编码器和一个内交织器组成的Turbo编码器。两个分量编码器分别为分量编码器1和分量编码器2。其中,每个分量编码器与WCDMA系统采用相同的结构,包括三个寄存器,状态数目为8。而内交织器采用了二次置换多项式(QPP,Quadratic Permutation Polynomial)交织器。假设输入内交织器的比特流ck的长度为K,即该比特流为c0,c1,...,cK-1,经过交织后输出的比特流是c′0,c′1,...,c′K-1,那么它们满足对应关系c′i=c∏(i),交织前后的元素序号的对应关系满足二次多项式∏(i)=(f1i+f2i2)mod K,i=0,1,...,K-1。现有的标准中以列表的形式给出了各种交织长度下,二次多项式参数f1和f2所对应的数值。图1所示的编码器的码率为1/3,输出3个分量(xk、zk、z′k),其中,xk为输入信道的数据,zk和z′k为校验序列,由于受到Turbo码总共12个尾比特的影响,每个分量码的长度为D=K+4。
Turbo码译码采用软输入软输出(SISO)的最大后验概率(MAP,Maximum A Posteriori)算法,该算法是在给定信道观察序列的情况下计算马尔科夫过程的每个状态转移、消息比特和编码符号的后验概率,只要计算出这些量的所有可能的后验概率,即可以通过硬判决取具有最大后验概率的值为估计值。MAP算法是实现Turbo迭代译码的最优算法。
对数域最大后验概率(Log-MAP)算法是MAP算法的对数域实现。Log-MAP算法的计算步骤如下 (a)从k=0开始,根据以下的式(1)计算分支度量值Dki,m 式(1) 其中,称γ为分支度量参数,k为时间下标,m为状态下标,σ为常数,xk为信道观测序列,yk为校验序列,p为Dki,m的先验信息,初始时p的值可以取0,之后取上一次迭代过程中的外信息。
(b)在k=0时,初始化前向路径度量A,并根据以下的式(2)利用Dki,m从k=0到k=N-1计算并存储前向路径度量Akm 式(2) 这里,称α为前向路径度量参数。
(c)在k=N-1时,初始化后向路径度量B,并根据以下的式(3)利用Dki,m从k=N-2到k=0计算并存储后向路径度量Bkm 式(3) 这里,称β为前向路径度量参数。
(d)根据以下的式(4)从k=0到k=N-1计算信息比特对数似然比LLR 式(4) 根据LLR计算外信息Le Le(dk)=L(dk|Y1N)-[La(dk)+lcxk)式(5) (e)将外信息作为下一次迭代时计算的Dki,m先验信息,循环迭代运算上述过程,直至达到最大的迭代次数It,并根据最后一次迭代过程中的LLR做出相应的判决输出。
其中,max*(x,y)=ln(ex+ey)=max(x,y)+ln(1+e-|x-y|),包含求最大值运算和修正函数f(x)=ln(1+e-x)运算,函数f(x)可以采用查找表实现。
基于上述Log-MAP算法实现的Turbo译码器的基本结构如图2所示。
图2是现有的Turbo译码器的基本结构图。如图2所示,实现Turbo译码器的软输入软输出(SISO)译码器由两个分量译码器级联组成,分别为分量译码器1和分量译码器2,交织器与图1中的Turbo编码器中所使用的交织器相同,即为QPP交织器。分量译码器1的输入为信道观测序列的对数似然比yks,图1中的分量编码器1输出的校验序列的对数似然比yk1p,以及由分量译码器2的输出提取出的先验信息La1(dk)。分量译码器1的输出是对数似然比Le1(x)。Le1(x)减去信道观测序列的对数似然比yks以及输入分量译码器1的先验信息La1(dk),得到分量译码器1输出的外信息L1e(dk)。对L1e(dk)进行交织得到La2(dk)。分量译码器2的输入为信道观测序列的对数似然比yks进行交织后的序列,图1中的分量编码器2输出的检验序列的对数似然比yk2p,以及由分量译码器1的输出提取出的先验信息La2(dk)。分量译码器2的输出是对数似然比Le2(x)。Le2(x)减去交织后的信道观测序列对数似然比以及输入分量译码器2的先验信息La2(dk),得到分量译码器2输出的外信息L2e(dk)。L2e(dk)经过反交织得到下一次迭代输入分量译码器1的先验信息。这样,经过多次迭代,分量译码器1和分量译码器2所产生的外信息趋于稳定,后验概率比值逐渐逼近于对整个码的最大似然译码。
现有的通信系统,如通用移动通信系统(UMTS,UniversalMobile Telecommunication system)中,选用Turbo码作为高速数据业务的信道编码方案,其要求的数据速率约为2Mbit/s。即现有的Turbo译码器的译码速度在2Mbit/s左右。
但LTE系统的具体设计指标要求峰值速率达到上行50Mbit/s、下行100Mbit/s。这意味着LTE系统中的Turbo译码器的译码速度必须满足译码输出速率大于100Mbit/s。
因此,现有的Turbo译码器的译码速度有待提高。
发明内容
本发明提供了一种Turbo码译码方法,该方法能够提高Turbo码译码速度。
本发明还提供了一种Turbo码译码装置,该装置提高了Turbo码译码速度。
为达到上述目的,本发明的技术方案是这样实现的 本发明公开了一种Turbo码译码方法,该方法包括 对于输入序列中的每个码块,将该码块划分成M个码段,M为大于1的自然数,将M个码段分别输入至M个译码单元,由M个译码单元根据对数域最大后验概率Log-MAP算法对各自的输入码段并行进行译码,并输出译码后的码段; 其中,将任意前后相邻的两个码段所对应的两个译码单元分别称为第一译码单元和第二译码单元,则在译码过程中,第一译码单元向第二译码单元传递自身码段的结尾边界点的前向路径度量参数,以便第二译码单元计算出自身码段的起始边界点的前向路径度量参数;而第二译码单元向第一译码单元传递自身码段的起始边界点的后向路径度量参数,以便第一译码单元计算出自身码段的结尾边界点的后向路径度量参数。
本发明还公开了一种Turbo码译码装置,该装置包括M个译码单元,M为大于1的自然数; 输入序列中的每个码块被划分成为M个码段后分别输入至所述M个译码单元; 每个译码单元,用于接收输入的码段,根据对数域最大后验概率Log-MAP算法对输入码段进行译码,将译码后的码段输出; 其中,将任意前后相邻的两个码段所对应的两个译码单元分别称为第一译码单元和第二译码单元,则在译码过程中,第一译码单元向第二译码单元传递自身码段的结尾边界点的前向路径度量参数,以便第二译码单元计算出自身码段的起始边界点的前向路径度量参数;而第二译码单元向第一译码单元传递自身码段的起始边界点的后向路径度量参数,以便第一译码单元计算出自身码段的结尾边界点的后向路径度量参数。
由上述技术方案可见,本发明这种将输入序列中的每个码块划分成多个码段后分别输入至多个译码单元,由多个译码单元根据Log-MAP算法对各自输入的码段并行进行译码,其中,在译码过程中,相邻码段所对应的译码单元之间传递对应码段的边界的前向路径度量参数和后向路径度量参数的技术方案,由于有多个译码单元并行进行译码,因此大大提高了译码速度,并且译码单元的数量越多,译码速度越快。
图1是现有的LTE系统中的Turbo编码器的示意图; 图2是现有的Turbo译码器的基本结构图; 图3是本发明实施例中的Turbo码译码装置的组成结构框图; 图4是本发明实施例中的Turbo译码器中的相邻译码单元之间边界状态值的传递示意图; 图5是本发明实施例中的包含多级流水线子译码器的译码装置的组成结构示意图; 图6是本发明实施例中的SISO译码器的部分内部结构示意图; 图7是本发明实施例中的Turbo译码装置的总体时序操作图。
具体实施例方式 由于现有的Turbo码译码装置只包括一个包含图2所示基本结构的译码单元,由该唯一的译码单元对输入序列(即待译码的序列)的每个码块进行译码,译码速度受限于该唯一的译码单元的译码效率,因此译码速度低,不能满足LTE等系统的高速数据业务需求。
基于此,本发明的核心思想是由多个译码单元采用Log-MAP算法对输入序列中的每个码块的不同码段并行进行Turbo码译码,并且根据Log-MAP算法的需要,在译码过程中,相邻的译码单元之间需要传递各自对应码段的边界的前向路径度量参数和后向路径度量参数。
这种多个译码单元并行进行译码的方案可以成倍地提高Turbo码译码的速度,且并行进行译码的译码单元数量越多,译码速度越快。因此,在实际当中可以根据实际的译码速度需求设定译码单元的个数。
图3是本发明实施例中的Turbo码译码装置的组成结构框图。如图3所示,本实施例中的Turbo码译码装置包括输入缓存、输出缓存、交织/解交织存储器以及M个并行的译码单元,M为大于1的任意自然数,例如4、8、16等。
在图3中,输入缓存和输出缓存用于串并与并串转换,输入缓存还实现乒乓操作以提高吞吐量。这里的乒乓操作是指输入缓存将输入数据选择性地输出给不同的译码单元,例如,将某一码块的第一个码段发送给译码单元1,将该码块的第二个码段发送给译码单元2,以此类推。交织/解交织存储器用于存储各译码单元进行Turbo码译码运算的过程中进行交织或解交织运算的数据。M个译码单元,用于根据Log-MAP算法对输入码段(输入码段中包括信道观测序列和校验序列)进行译码,并将译码后的码段输出到输出缓存。这里的每一个译码单元都完成图2所示的基本结构所完成的译码算法功能,即每一个译码单元都包括级联的两个分量译码器和相应交织器以及解交织器。
根据背景技术中介绍的log-MAP算法中的式(2)和式(3)可知,对应于某个点的前向路径度量参数α的计算依赖于其前一个点的前向路径度量参数,而其后向路径度量参数β的计算依赖于其后一个点的后向路径度量参数。因此,由于Log-MAP算法的计算需要,图3所示的译码装置在译码过程中,各相邻码段所对应的译码单元之间传递各自对应码段的边界的前向路径度量参数和后向路径度量参数,具体为将任意前后相邻的两个码段所对应的两个译码单元分别称为第一译码单元和第二译码单元,则在译码过程中,第一译码单元向第二译码单元传递自身码段的结尾边界点的前向路径度量参数,以便第二译码单元计算出自身码段的起始边界点的前向路径度量参数;而第二译码单元向第一译码单元传递自身码段的起始边界点的后向路径度量参数,以便第一译码单元计算出自身码段的结尾边界点的后向路径度量参数。
例如,当一个80000点的输入序列需要进行Turbo码译码时,首先将该80000点划分成多个码块(将输入序列划分成多个码块的方式与现有技术相同,本发明中不做限定,例如可以根据输入缓存的大小进行划分等),这里假设划分成10个码块,即每个码块8000点;对于每个码块,将该码块划分成M个码段,这里设M等于8,较佳地划分成长度相等的M=8个码段,即每个码段1000点,将该8个码段分别输入至8个译码单元并行进行译码,即译码单元1对该码块中的1~1000点进行译码,译码单元2对1001~2000点进行译码,......,译码单元8对7001~8000点进行译码。前面提到,根据背景技术中介绍的log-MAP算法中的式(2)和式(3)可知,对应于某个点的前向路径度量参数α的计算依赖于其前一个点的前向路径度量参数,而其后向路径度量参数β的计算依赖于其后一个点的后向路径度量参数。因此译码单元1需要将第1000个点的前向路径度量参数传递给译码单元2,以便译码单元2计算第1001个点的前向路径度量参数;相应地,译码单元2需要将第1001个点的后向路径度量参数传递给译码单元1,以便译码单元1计算第1000个点的后向路径度量参数。同样其他的相邻译码单元之间,如译码单元2和译码单元3之间、译码单元3和译码单元4之间等,都在译码过程中传递对应码段的边界的前向路径度量参数和后向路径度量参数。
图4是本发明实施例中的Turbo译码器中的相邻译码单元之间边界状态值的传递示意图。这里的边界状态值指的是各译码单元所对应的码段的边界点的前向路径度量参数α值或后向路径度量参数β值。参见图4,各相邻译码单元中的对应的分量译码器之间相互传递对应码段边界点的α值或β值,例如对于相邻的译码单元1和译码单元2,其各自的分量译码器1之间传递对应码段边界点的α值或β值,其各自的分量译码器2之间传递对应码段边界点的α值或β值。
在本发明中,Turbo码译码装置中包含的译码单元的个数M可以根据实际情况而定,例如在LTE系统中,根据实际的LTE译码速率需求确定译码单元的个数。因此这种将码块划分成多个码段,由多个译码单元并行进行译码的方案,大大提高了Turbo码译码装置的吞吐量并降低了译码延迟。根据LTE系统中的Turbo码交织器的设计准则,可以保证译码装置在交织和解交织期间,各译码单元之间不会发生存储器访问冲突问题,从而保证了上述并行结构设计的可靠性。
为了进一步提高Turbo码译码装置的译码速度,本发明的一个实施例中,将Turbo码译码装置中的每个译码单元都设计为多级流水线子译码器的结构,即每个译码单元包括顺序级联的多个子译码器,该多个子译码器共同完成It次迭代运算(It为根据Log-MAP算法对输入码段进行译码所需要完成的总迭代次数),且每个子译码器完成其中的It/R次迭代运算,It和It/R均为自然数。例如,总迭代次数12,如果每个译码单元包含两级子译码器,则第一级子译码器完成一个码段的前6次迭代运算,第二级子译码器完成该码段的后6次迭代运算;这样当第一级子译码器完成某一码块中的相应码段的前6次迭代运算后,由第二级子译码器来继续进行该码段的第7次迭代,而此时第一子译码器可以对下一个码块中的相应码段进行第1次迭代运算,因此译码速率相当于提高了一倍。又例如,总迭代次数仍为12时,如果每个译码单元包含三级子译码器,则第一级子译码器完成一个码段前4次迭代运算,第二级子译码器完成该码段的中间的4次迭代运算,第三级子译码器完成该码段的后4次迭代运算;这种情况下,译码速率相当于提高了两倍。以此类推,译码单元中设置的级联子译码器的个数越多,即流水线级数越多,译码速率越快。
图5是本发明实施例中的包含多级流水线子译码器的译码装置的组成结构示意图。如图5所示,在本实施例中以M个译码单元,R级流水线子译码器为例进行说明,这里R为大于1的任意自然数,M个译码单元中的所有一级子译码器构成第一级流水线,M个译码单元中的所有二级子译码器构成第二级流水线,......,M个译码单元中的所有R级子译码器构成第R级流水线。
在图5中示意出了第一级流水线和第二级流水线的内部结构,之后的各级流水线(从第三级到第R级,R大于或等于3时)的结构与第二级流水线的结构相同,故省略。
在图5中,用MUX表示数据选择器,用SISO表示软输入软输出的SISO译码器,用RAM表示外信息存储器,用Le表示外信息。则MUX11、SISO11、RAM11、MUX21、SISO21、RAM21以及后续流水线中的相应的MUX、SISO和RAM器件构成译码单元1,其中,MUX11、SISO11、RAM11构成译码单元1中的一级子译码器,MUX21、SISO21和RAM21构成译码单元1中的二级子译码器,以此类推。同样,MUX12、SISO12、RAM12、MUX22、SISO22、RAM22以及后续流水线中的相应的MUX、SISO和RAM器件构成译码单元2,其中,MUX21、SISO21、RAM21构成译码单元2中的一级子译码器,MUX22、SISO22和RAM22构成译码单元2中的二级子译码器,以此类推。后续译码单元的构成也以此类推。在每个子译码器中,SISO译码器通过数据开关总线对相应的RAM进行读写。
在图5中,每一个数据选择器MUX,用于在首次迭代运算时将初始外信息输出给对应的SISO译码器,在之后的迭代运算时将从对应的RAM获得的外信息输出给对应的SISO译码器;其中,一级子译码器中的MUX将0作为初始外信息,其他除一级子译码器以外的各子译码器中的MUX,将其上一级子译码器最后一次迭代运算得到的外信息作为初始外信息。每个SISO译码器,利用MUX输出的数据以及输入码段进行It/R次迭代运算,并将每次迭代运算得到的外信息发送到对应的RAM;每个RAM用于存储SISO译码器每次迭代运算所产生的外信息,并向对应的MUX提供该外信息,以便MUX将该外信息发送给SISO单元进行下一次的迭代运算。
在图5中,将任意前后相邻的两个码段所对应的两个译码单元分别称为第一译码单元和第二译码单元,则在译码过程中第一译码单元中的每个子译码器向第二译码单元中的对应子译码器传递自身码段的结尾边界点的前向路径度量参数,以便第二译码单元中的对应子译码器计算出自身码段的起始边界点的前向路径度量参数;第二译码单元中的每个子译码器向第一译码单元中的对应子译码器传递自身码段的起始边界点的后向路径度量参数,以便第一译码单元中的对应子译码器计算出自身码段的结尾边界点的后向路径度量参数。例如,在译码单元1中的子译码器1中的SISO11和译码单元2中的子译码器1中的SISO12之间、译码单元2中的子译码器1中SISO12和译码单元3中的子译码器1中的SISO13之间、译码单元1中的子译码器2中的SISO21和译码单元2中的子译码器2中的SISO22之间等,都需要传递各自对应输入码段的边界的前向路径度量参数和后向路径度量参数。
在图5中,输入缓存用于存储输入序列,该输入序列包括信道信息和校验序列,由RAM片选逻辑根据需求将不同的码块输入到不同流水线中,并将输入一个流水线的码块分成多个码段后分别输入到该流水线中的多个译码单元中。每个译码单元将译码后的码段输出到硬判决单元;硬判决单元,用于接收M个译码单元输出的译码后的码段,对译码后码段进行硬判决后输出到输出缓存中。这里的硬判决方式与现有技术相同,是指对每一位信息都进行如下的判决如果该信息大于或等于0,则判决相应位的输出为1;如果该信息小于0,则判决相应位的输出为0。
在图5所示的结构中,关键问题在于,如何将上一级流水线产生的外信息作为其下一级流水线的先验信息传递给其下一级流水线。下面以R=2,即两级流水线的译码装置为例对该问题予以说明以总迭代次数为12次为例,第一级流水线在处理第n-1码块的第6次迭代远算中的分量译码器2运算时,仍然按照交织后的地址读写RAM;此后第二级流水线开始第n-1码块的第7次迭代运算,而第一级流水线开始下一个码块,即第n码块的第1次迭代运算。第二级流水线开始进行第n-1码块的第7次迭代运算时,先进行分量译码器1运算,需要按照顺序递增的地址从第一级流水线中的RAM中读取外信息Le;此时,第一级流水线正在处理第n码块的第1次迭代运算中的分量译码器1运算过程,需要从上述的RAM地址顺序读写Le。但是写总是慢于读,因此,第二级流水线中的子译码器有足够的时间从第一级流水线的RAM中取得Le信息(实际上与第一级流水线同步读取Le)。由于前后两级子译码器都是按照顺序递增的地址读Le信息,且一级子译码器写回的Le信息总是慢于读取过程,因此,可以保证第一级流水线中的Le信息能够正确地传递给第二级流水线。图5中的第二级流水线中的数据选择器MUX前的Le表示从第一级流水线传递来的外信息。
图5中的每一个SISO译码器都包括图2所示的基本结构,即每个SISO译码器都包括两个分量译码器以及相应的交织器和解交织器。这两个分量译码器用分量译码器1和分量译码器2表示,分量译码器1和分量译码器2共同完成一次迭代运算,且其各自执行的算法功能与图2中的两个分量译码器相同。此外每个SISO译码器中还包括相应的地址计算模块。在分量译码器1运算期间,地址计算模块按照顺序递增的地址通过数据存取开关总线读写对应的RAM;在分量译码器2运算期间,地址计算模块按照交织后的地址通过数据存取开关总线读写对应的RAM。
图6是本发明实施例中的SISO译码器的部分内部结构示意图。如图6所示,示意出了SISO译码器中的一个分量译码器以及地址计算模块的结构示意图。这里,由于SISO译码器中的两个分量译码器的内部结构相同,因此只示意出了其中的一个分量译码器的内部结构。
如图6所示,SISO译码器中的一个分量译码器包括分支度量计算模块、状态更新模块、存储模块、控制模块和外信息计算模块; 其中,分支度量计算模块,用于根据输入信息计算分支度量参数,并发送给状态更新模块和外信息计算模块;这里的输入信息包括信道信息和先验信息,而信道信息包括信道观测序列和校验序列; 状态更新模块,用于根据接收的分支度量参数计算出前向路径度量参数,并发送到存储模块进行保存,根据接收的分支度量参数计算出后向路径度量参数,并发送给外信息计算模块; 存储模块,用于保存来自状态更新模块的前向路径度量参数; 外信息计算模块,用于根据输入信息、来自分支度量计算模块的分支度量参数、来自状态更新模块的后向路径度量参数以及来自存储模块的前向路径度量参数,计算外信息并输出; 控制模块,用于对分支度量计算模块、状态更新模块、存储模块和外信息计算模块进行时序控制。
如图6所示,地址计算模块包括一个数据选择器MUX和一个交织地址计算单元;其中,MUX的第一个输入为顺序递增的原始地址信息,第二个输入为原始地址信息经过交织地址计算单元进行交织计算后的地址信息;当SISO译码器中的分量译码器1进行运算时,地址计算模块选择将第一输入作为输出地址,当分量译码器2进行运算时,地址计算模块选择将第二输入作为输出地址。
SISO单元中每个分量译码器用Log-MAP算法计算各个状态量γ、α、β以及信息比特对数似然比LLR和外信息Le。对于计算γ、α、β、LLR和Le的过程,需要分为两步先后完成,即前向递推过程和后向递推过程。前向递推过程需要消耗L/M(L为码块的长度,M为译码单元的个数)个周期计算γ和α,并存储α值。接着进行后向递推运算,消耗L/M个周期计算γ、β、LLR和Le。上述的前向递推和后向递推的过程是先后进行的,因为α和β的递推都需要用到γ值,而γ值在一次计算中只能选择前向或后向运算。为了进一步说明本发明的技术方案,下面给出本发明实施例中的Turbo译码装置的总体时序操作图。
图7是本发明实施例中的Turbo译码装置的总体时序操作图。如图7所示,以R级流水线子译码器结构为例,R为任意自然数,即每个译码单元由一级子译码器、二级子译码器、......、R级子译码器构成时,构成第一级流水线的所有一级子译码器完成每个码块的前It/R次迭代远算,构成第二级流水线的所有二级子译码器完成每个码块的第二个It/R次迭代远算,......,构成第R级流水线的所有R级子译码器完成每个码块的最后的It/R次迭代运算。这里,It为总迭代次数。每次迭代远算包括分量译码器1运算和分量译码器2运算,每个分量译码器运算又包含前向递推γ和α运算和后先递推γ、β、LLR和Le运算。
综上所述,本发明这种将输入序列划分成多个码块,将每个码块划分成为长度相等的多个码段后分别输入至多个译码单元,由多个译码单元根据Log-MAP算法对各自输入的码段并行进行译码,其中,在译码过程中,相邻的译码单元之间传递各应码段的边界的前向路径度量参数和后向路径度量参数的技术方案,由于有多个译码单元并行进行译码,因此大大提高了译码速度,并且译码单元的数量越多,译码速度越快。此外,本发明中还进一步将译码单元设计成多级流水线的结构,进一步提高了译码速度,并且流水线的级数越多,译码速度越快。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种Turbo码译码方法,其特征在于,该方法包括
对于输入序列中的每个码块,将该码块划分成为M个码段,将M个码段分别输入至M个译码单元,由M个译码单元根据对数域最大后验概率Log-MAP算法对各自的输入码段并行进行译码,并输出译码后的码段;
其中,将任意前后相邻的两个码段所对应的两个译码单元分别称为第一译码单元和第二译码单元,则在译码过程中,第一译码单元向第二译码单元传递自身码段的结尾边界点的前向路径度量参数,以便第二译码单元计算出自身码段的起始边界点的前向路径度量参数;而第二译码单元向第一译码单元传递自身码段的起始边界点的后向路径度量参数,以便第一译码单元计算出自身码段的结尾边界点的后向路径度量参数。
2.根据权利要求1所述的方法,其特征在于,每个译码单元包括R个子译码器,R为自然数;
所述M个译码单元根据Log-MAP算法对各自输入的码段并行进行译码包括对于每个译码单元,由该译码单元中的R个子译码器共同完成根据Log-MAP算法对输入码段进行译码所需要完成的It次迭代运算,且每个子译码器完成其中的It/R次迭代运算;其中,It和It/R均为自然数;
所述第一译码单元向第二译码单元传递自身码段的结尾边界点的前向路径度量参数,以便第二译码单元计算出自身码段的起始边界点的前向路径度量参数为第一译码单元中的每个子译码器向第二译码单元中的对应子译码器传递自身码段的结尾边界点的前向路径度量参数,以便第二译码单元中的对应子译码器计算出自身码段的起始边界点的前向路径度量参数;
所述第二译码单元向第一译码单元传递自身码段的起始边界点的后向路径度量参数,以便第一译码单元计算出自身码段的结尾边界点的后向路径度量参数为第二译码单元中的每个子译码器向第一译码单元中的对应子译码器传递自身码段的起始边界点的后向路径度量参数,以便第一译码单元中的对应子译码器计算出自身码段的结尾边界点的后向路径度量参数。
3.根据权利要求1或2所述的方法,其特征在于,划分出的所述M个码段的长度相等;
和/或,
该方法进一步包括对译码后的码段进行硬判决。
4.一种Turbo码译码装置,其特征在于,该装置包括M个译码单元,M为大于1的自然数;
输入序列中的每个码块被划分成M个码段后分别输入至所述M个译码单元;
每个译码单元,用于接收输入的码段,根据Log-MAP算法对输入码段进行译码,将译码后的码段输出;
其中,将任意前后相邻的两个码段所对应的两个译码单元分别称为第一译码单元和第二译码单元,则在译码过程中第一译码单元向第二译码单元传递自身码段的结尾边界点的前向路径度量参数,以便第二译码单元计算出自身码段的起始边界点的前向路径度量参数;而第二译码单元向第一译码单元传递自身码段的起始边界点的后向路径度量参数,以便第一译码单元计算出自身码段的结尾边界点的后向路径度量参数。
5.根据权利要求4所述的装置,其特征在于,每个译码单元包括顺序级联的R个子译码器,依次为一级子译码器、二级子译码器、......、R级子译码器;其中,R为自然数;
由该R个子译码器共同完成根据Log-MAP算法对输入码段进行译码所需要完成的It次迭代运算,且每个子译码器完成其中的It/R次迭代运算;It和It/R均为自然数。
其中,在译码过程中第一译码单元中的每个子译码器向第二译码单元中的对应子译码器传递自身码段的结尾边界点的前向路径度量参数,以便第二译码单元中的对应子译码器计算出自身码段的起始边界点的前向路径度量参数;第二译码单元中的每个子译码器向第一译码单元中的对应子译码器传递自身码段的起始边界点的后向路径度量参数,以便第一译码单元中的对应子译码器计算出自身码段的结尾边界点的后向路径度量参数。
6.根据权利要求4或5所述的装置,其特征在于,该装置进一步包括硬判决单元;
所述每个译码单元,用于将译码后的码段输出到硬判决单元;
所述硬判决单元,用于接收M个译码单元输出的译码后的码段,对译码后码段进行硬判决后输出。
7.根据权利要求5所述的装置,其特征在于,每个子译码器包括数据选择器、软输入软输出SIS O译码器和外信息存储器;
数据选择器,用于在首次迭代运算时将初始外信息输出给SISO译码器,在之后的迭代运算时将从外信息存储器获得的外信息输出给SISO译码器;其中,一级子译码器中的数据选择器将0作为初始外信息,其他子译码器中的数据选择器将上一级子译码器最后一次迭代运算得到的外信息作为初始外信息;
SISO译码器,利用数据选择器输出的数据以及输入码段进行It/R次迭代运算,并将每次迭代运算得到的外信息发送到外信息存储器;
外信息存储器,用于存储SISO译码器每次迭代运算所产生的外信息,并向数据选择器提供该外信息,以便数据选择器将该外信息发送给SISO单元进行下一次的迭代运算;
其中,在译码过程中第一译码单元中的每个子译码器中的SISO译码器向第二译码单元中的对应子译码器中的SISO译码器传递自身码段的结尾边界点的前向路径度量参数,以便第二译码单元中的对应子译码器中的SISO译码器计算出自身码段的起始边界点的前向路径度量参数;第二译码单元中的每个子译码器中的SISO译码器向第一译码单元中的对应子译码器中的SISO译码器传递自身码段的起始边界点的后向路径度量参数,以便第一译码单元中的对应子译码器中SISO译码器计算出自身码段的结尾边界点的后向路径度量参数。
8.根据权利要求7所述的装置,其特征在于,在每个子译码器进一步包括数据存取开关总线;
在每个子译码器中,SISO译码器通过数据开关总线对外信息存储器进行读写。
9.根据权利要求7所述的装置,其特征在于,每个SISO译码器包括地址计算模块和两个级联的分量译码器;所述两个级联的分量译码器为第一分量译码器和第二分量译码器;
第一分量译码器和第二分量译码器共同完成一次迭代运算;
在第一分量译码器运算期间,地址计算模块按照顺序递增的地址读写对应的外信息存储器;
在第二分量译码器运算期间,地址计算模块按照交织后的地址读写对应的外信息存储器。
10.根据权利要求9所述的装置,其特征在于,每个分量译码器包括分支度量计算模块、状态更新模块、存储模块、控制模块和外信息计算模块;
分支度量计算模块,用于根据输入信息计算分支度量参数,并发送给状态更新模块和外信息计算模块;
状态更新模块,用于根据接收的分支度量参数计算出前向路径度量参数,并发送到存储模块进行保存,根据接收的分支度量参数计算出后向路径度量参数,并发送给外信息计算模块;
存储模块,用于保存来自状态更新模块的前向路径度量参数;
外信息计算模块,用于根据输入信息、来自分支度量计算模块的分支度量参数、来自状态更新模块的后向路径度量参数以及来自存储模块的前向路径度量参数,计算外信息并输出;
控制模块,用于对分支度量计算模块、状态更新模块、存储模块和外信息计算模块进行时序控制。
全文摘要
本发明公开了一种Turbo码译码方法和装置。所述方法包括对于输入序列中的每个码块,将该码块划分成为M个码段,M为大于1的自然数,将M个码段分别输入至M个译码单元,由M个译码单元根据对数域最大后验概率Log-MAP算法对各自输入的码段并行进行译码,并输出译码后的码段;其中,在译码过程中,相邻码段所对应的译码单元之间传递各自对应码段的边界的前向路径度量参数和后向路径度量参数。本发明的技术方案能够提高Turbo码译码速度。
文档编号H03M13/27GK101777924SQ201010003408
公开日2010年7月14日 申请日期2010年1月11日 优先权日2010年1月11日
发明者赵训威 申请人:新邮通信设备有限公司