一种译码的方法、译码器以及Turbo码译码器的制作方法

文档序号:7514416阅读:207来源:国知局

专利名称::一种译码的方法、译码器以及Turbo码译码器的制作方法
技术领域
:本发明涉及通信领域,尤其涉及一种译码的方法、一种译码器以及一种Turbo码译码器。Turbo(特博)码是一种有效且常用的信道编码方法,Turbo码具有接近香农(Shannon)理论极限的性能。除了在深空通信、卫星通信以及多媒体通信等领域的应用外,Turbo码在无线移动通信系统中的应用也越来越广泛。然而由于Turbo码的译码算法所需的迭代译码计算量较大,给Turbo码的译码造成了很大的时延,如何尽可能地减少Turbo码的译码时延是人们一直研究的热点问题。Turbo码又称为并4亍级联巻积码(PCCC,ParallelConcatenatedConvolutionalCode),它巧妙地将分量码编码器和随机交织器结合在一起,其中分量码的最佳选择是递归系统巻积码,在实现随机编码思想的同时,通过交织器实现由短码(分量码)构造长码(Turbo码)的方法,并采用软输出迭代译码来逼近最大似然译码,通过分量码译码器之间外信息或软信息的交换来提高译码性能,下面通过典型的Turbo码编码和译码的过程进行详细的说明。请参阅图1示出的现有技术的Turbo码编码的原理示意图,编码器由两个相同的1Z2码率分量码编码器,具体为上层分量码编码器和下层分量码编码器并联而成,分量码为递归系统巻积码,传输函数为-没编码码块长为K,编码输入序列为C=[经过内部交织器交织后得到的序列为C'=[《《,...,《」。分量码的状态集合为S=^,"2,…,;/w),其中W为总状态数且AT-2M,M为编码器中移位寄存器的个数。寄存器初始值均为O。假设分量码编码器一次输入l比特数据,编码器时延为l。如比特q和c;(取值O或l)在时刻《=&分别送入上下两层分量码编码器(yt=0,l,...,K_l),这样在h/t+l时刻,比特q和c:的编码完成并且比特cw和d分别送入分量码编码器。编码采皆景技术用格形终止(trellistermination)方式,具体可参考3GPPTS36.212(V8.3.0),图中输出编码^为系统位,Zyt和分别为第一校验位和第二校验位。经过Turbo编码及格形终止后得到的码字序列写成向量形式为D二[c/r,《(。),…,4K),…,《),"尸,…,"^]。经过映射0—-1,1—l后的发射序列为(发射能量为1):其经过加成性高斯白噪声(AWGN,AdditivewhiteGaussiannoise)信道后得到的接收数据序列为Yy^,讨),…,3f),乂2),…,3^3],满足乂'')=^+《),其中《)为独立噪声,满足期望为0方差为一的实Gauss分布。下面结合图2示出的现有技术的Turbo码译码的原理示意图,详细说明Turbo码的迭代译码原理,典型的Turbo码译码器由两个软输入软输出(SISO,SoftInputSoftOutput)译码器DEC1和DEC2串联组成,即两个分量码译码器DEC1和分量码i奪码器DEC2串i[关组成,Turbo码译码器中的交织器与Turbo码编码时所使用的交织器相同。分量码译码器DEC1对上层的分量码进行译码,产生关于信息序列C中每一比特的似然信息,并将其中的外信息经过交织后送给分量码译码器DEC2,分量码译码器DEC2将此信息作为先验信息,对下层的分量码进^"泽码,产生关于交织后的信息序列c中每一比特的似然比信息,然后将其中的外信息经过解交织送给分量码译码器DECl,进行下一次译码。经过多次迭代,分量码译码器DEC1与分量码译码器DEC2的外信息趋于稳定,最后对似然比进行硬判决,即可得到信息序列C的每一比特的最佳估值^。实际中通常用最大后验概率(MAP,MaximumAPosteriori)算法或对数域上的Max-Log-MAP算法作为分量码的SISO译码方法。下面介绍现有技术中的分量码的不同译码方法。1、分量码的串行译码算法。请参阅图3示出的分量码的串行译码算法的原理示意图,在目前的Max-Log-MAP算法中,分量码译码器接收到数据序列后,先反向计算后向状态度量y3,即从所述数据序列的末端由初值;^依次计反向算^-,、PL........A、《,再正向计算前向状态度量"和支路度量y,即从所述数据序列的首端由初值《依次计算(or1)、........(^,《),并同时输出所述数据序列中相应比特的对数似然比()和外信息()("0,1,…,《-1)。因此,现有技术的串行译码算法对译码块长为K的序列进行译码,时延为(2倍的码块长度)个时钟周期(不计算"初始值所用的时延),给译码时延造成很大的影响。2、分量码的并行译码算法。请参阅图4示出的分量码的并行译码算法的原理示意图,设并行分支长为《p,并且《=〖尸><尸,即并行分支数为尸。当并行接收到数据序列后,并行地计算各分支内各比特的对数似然比,直到计算出所有比特的对数似然比Z(cJ,此时并行进行外信息的交织或解交织操作(此时需要Turbo编码器中的内部交织器满足内存访问无竟争(contentionfree)特性)。在每一个并行分支的计算中,为了给<"和/^设定初始值,需要在分支前后额外各增加4和、个比特作为训练序列(第一分支《的初值和最后一个分支/r的初值例外)。对于第一个并行分支"r的初始值以及最后一个分支的《'的初始值按照前面的叙述设定。其他各分支的训练序列的《和^的初始值设为i(当用对数域算法时初始值为o)。由于并行译码算法中每个分支的译码过程相当于串行译码,现有的并行译码算法对每个分支的译码块长为《p的序列进行译码,那么在每次分量码译码时所有比特的外信息产生需要2i^(2倍的并行分支长度)个时钟周期,同样给译码时延造成很大的影响。
发明内容本发明实施例在于提供一种译码的方法、一种译码器以及一种Turbo码译码器,通过改进译码过程中计算外信息的算法,从而提高Turbo码译码的速度,减少Turbo码译码的时延,并且保证Turbo码的译码的可靠性。为了达到上述技术效果,本发明实施例提出了一种译码的方法,包括以下步骤接收到数据序列;从所述数据序列的末端依次反向计算后向状态度量和支路度量;在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。相应地,本发明实施例还公开了一种译码器,其包括度量计算模块,用于当接收到数据序列后,从所述数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;信息计算模块,用于由所述度量计算模块计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。相应地,本发明实施例还公开了一种Turbo码译码器,包括上述的译码器。实施本发明实施例,通过改进i奪码过程中计算外信息的算法,将原来计算输出外信息的顺序由从左到右(即从首端到末端)改变为从中间到两边,从而提高Turbo码译码的速度,减少Turbo码译码的时延,并且保证Turbo码的译码的可靠性。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作筒单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是现有技术的Turbo码编码的原理示意图2是现有技术的Turbo码译码的原理示意图3是分量码的串行译码算法的原理示意图4是分量码的并行译码算法的原理示意图5是本发明的辞,码的方法的第一实施例流程图6是本发明的分量码的译码原理的第一实施例示意图7是本发明的分量码的译码原理的第二实施例示意图8是本发明的译码器的第一实施例结构示意图9是本发明实施例的第一信息计算模块的结构示意图IO是本发明实施例的第一信息计算输出单元的结构示意图;图ll是本发明的译码器的第二实施例结构示意图;图12是本发明实施例的第二信息计算模块的结构示意图;图13是本发明实施例的第二信息计算输出单元的结构示意图。具体实施例方式本发明实施例提供了一种译码的方法、一种译码器以及一种Turbo码译码器,通过改进译码过程中计算外信息的算法,从而提高Turbo码译码的速度,减少Turbo码译码的时延,并且保证Turbo码的译码的可靠性。下面结合附图详细说明本发明的优选实施例。结合图2,对分量码的译码算法进行分析。对于上层的分量码译码器DECl,输入为系统位接收序列乂°)和第一校验位接收序列W,A:=O,l,...,(《+4)-1,输入序列记为R^R。;R,;…;Ra;…;R^],其中=[)],R:=[R"R,;…;^—,],R2-[R^;R^;…;R"3]。令在时刻,=A时编码器状态记为&,输入比特q,此时编码器状态变为。下层的分量码译码器DEC2的表示与上层的分量码译码器DEC1的类似,这里以上层的分量码i奪码器DECl为例,以MAP算法描述比特的对数似然比(LLR,LogLikelihoodRatio)的计算过程。比特q(&=0,1,...,K-1)的对数似然比LLR定义为^)=lnPr"=1|R)Pr(c,OIR)4^^''=Pr(ct=""=w|R),前向状态度量<=pr(R:l&=m),支路度量=Pr(&=m,q=,.,RJ,后向状态度量a,'0=Pr(R;I=/(附,!')),其中=/(m力表示f=*时刻在&=m状态处输入比特q=!'后到达的f=&+1时刻的状态。则有《,/C",')有如下递推公式《r+1=l>"w,a附=i>/,'v:/=0,1i'-O,l其中^=&(m,!)表示,=&时刻在状态^=/)处输入比特q=/后到达f=&+1时刻的4犬态&+,=附。《i经过简化可得rr=G.<.exp其中G为只与时刻*有关的常数,<=Pr(q=0为先验概率,由以上各式可得<formula>formulaseeoriginaldocumentpage10</formula>)其中A(q)为先验信息,i^(q)为信道信息,A(cJ为外信息并且它是迭代译码中两个分量码译码器之间传递的信息。<的初始值设为a00=1,《=0—0)。/^+1的初始值有如下两种等价的设定方法(1)设定(X+3)时刻各状态的初值如下《+3=1,=0(m#0)。(2)设定K时刻各状态的初值。由于Turbo码采用才各形终止方法,即序列C编码后再输入3个尾比特0。于是Turbo编码网格图中相应于尾比特的三段时间内的状态转移只由比特0产生。这样可以由/的递推公式和相应于最后3个尾比特的网格图,由^+3=1,y^+3=0(附*0)计算出各个^作为初始值。以下按照方法(2)得到的初始值。各比特的先验信息初始值为0。(72取为1。由于信道信息;(cj是已知的,由迭代译码原理可得,为了得到外信息,需要计算出比特的对数似然比丄(cj=ln-进而必须最先计算各个时刻;《f的参数"r,Mr力和rr'。前面介绍的MAP算法中需要计算大量的指数运算,在对数域进行各个参数的计算,令<formula>formulaseeoriginaldocumentpage10</formula>在Max-Log-MAP算法中,作如下近似ln(Z+^max(x,W。结合c^和AT的定义可计算出S7和^"。现有技术中在每次分量码译码时,先反向计算后向状态度量y9,再正向计算前向状态度量"和支路度量y,因此外信息全部产生需要正反向各计算一遍,即从数据序列的首末两端各计算一遍。下面结合图5示出的本发明的译码的方法的第一实施例流程图,详细说明译码过程中计算外信息的算法,包括如下步骤步骤S501:接收到数据序列;从所述数据序列的末端依次反向计算后向状态度量和支路度量;在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;步骤S502:由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。需要说明的是,上述实施例为改进后的分量码的串行译码的方法,具体地,下面结合图6示出的本发明的分量码的译码原理的第一实施例示意图,详细说明本发明的分量码的译码方法。从对数似然比的计算公式(1)中可以得知,计算丄(q)时只需要已知当前时刻A的前向状态度量《、下一时刻Jt+l的后向状态度量y^以及时刻A和时刻A+l两个时刻之间的支^各度量W,因此,本发明实施例从接收的数据序列的末端依次反向计算后向状态度量和支路度量,即从接收到数据序列后的最后时刻到第1时刻分别计算各个时刻的后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量,即从接收到数据序列后的第1时刻到最后时刻分别计算各个时刻的前向状态度量和支路度量,最优地,从接收数据的首末两端同时相向计算(,r',o(其中"o,u…)和0^'i,《')(其中yt=K-1,^-2,…),即从所述数据序列的末端依次反向计算后向状态度量和支路度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当两个方向的计算"相交"后,即反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述分支的数据序列的码长个数后,由计算出的后向状态度量y^+,、前向状态度量<"以及支路度量^',结合公式(l)能够计算当前时刻的丄(q),然后由丄(cj结合公式(2)计算出外信息,即可以计算输出两个比特的对数似然比和外信息,当计算出所有比特的对数似然比和外信息后,将所述外信息作为先验信息,进行下一次的分量码的译码,经过多次迭代直到外信息趋于稳定后,才对似然比进行硬判决,得出最佳估值。具体地,在相向计算"相交"后,当块长个数为奇数《=27+1时,其中j为预设的固定的整数值,首先会计算所述数据序列中第j+l个比特的LLR值和外信息,即比特c,的LLR值和外信息,之后依次可以计算第j+l-q个和第j+l+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到j,即之后依次可以计算两个比特。i和。+。的LLR值和外信息,其中q的取值依次从1到j;当块长个数为偶数K二2_/时,其中j为预设的固定的整数值,首先会计算所述数据序列中第j个和第j+l个两个比特的对数似然比信息和外信息,即比特c^和。的LLR值和外信息,之后依次可以计算所述数据序列中第j-q个和第j+l+q个两个比特的对lt似然比信息和外信息,其中q的取值依次从l到j-l,即之后依次可以计算两个比特。+《和。w的LLR值和外信息,其中q的取值依次从1到j-l。需要说明的是,每次译码过程中的j可以为不同的整数值,即每次译码过程中的数据序列的码长个数可以不同,因此,本发明实施例的译码方法适用于不同码块长度的译码。通过上述实施例,加速的串行译码算法将原来计算输出LLR值和外信息的顺序由从左到右(即从首端到末端)改变为从中间到两边,改进了译码过程中计算外信息的算法,达到了译码提速的目的,而且计算是准确的,不会有性能损失,保证了Turbo码译码的可靠性。可以理解,本实施例步骤S501和结合图6的具体描述中,"从所述数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量",也可以理解为"数据序列具有两端点,从所述数据序列的一端向内依次计算该数据序列的后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的相对另一端向内依次计算该数据序列的前向状态度量和支路度量"。末端和首端是可以互换的。末端可以代表所接收到的数据序列的起始端,也可以代表数据序列的终止端。本发明实施例中,首端和末端可用来表示数据序列两端于相反方向的意义。需要说明的是,上述实施例为改进后的分量码的串行译码的方法,具体地,当上述实施例接收到的数据序列为并行接收到的至少两个分支的数据序列时,需要进行分量码的并行译码,下面结合图7示出的本发明的分量码的译码原理的第二实施例示意图,详细说明分量码的并行-泽码的方法。泽码器并行接收到至少两个分支的数据序列后,本实施例假设为P个分支的数据序列,其中P^2,每个分支的译码过程与上述改进的串行译码类似,本实施例从各个分支的数据序列的末端依次反向计算后向状态度量和支路度量,即从接收到各个分支的数据序列后的最后时刻到第1时刻分别计算各个时刻的后向状态度量和支路度量,并在计算完所述各个分支的后向状态度量和支路度量之前从各个分支的数据序列的首端依次正向计算前向状态度量和支路度量,即从接收到各个分支的数据序列后的第1时刻到最后时刻分别计算各个时刻的前向状态度量和支路度量,最优地,各个分支从接收数据的首末两端同时相向计算(w',"r+,)(其中*=0,1,2广.)和(W,yC)(其中A二《p-l,Kp-2,…),即从各个分支的数据序列的末端依次反向计算后向状态度量和支路度量的同时,从各个分支的数据序列的首端依次正向计算前向状态度量和支路度量,当两个方向的计算"相交"后,即当所述分支的反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述分支的数据序列的码长个数后,由计算出的后向状态度量y9二、前向状态度量a;"以及支路度量^',结合公式(1)能够计算当前时刻的丄(cj,然后由Z(q)结合公式(2)计算出外信息,即可以计算输出两个比特的对数似然比和外信息,当计算出所有比特的对数似然比和外信息后,将所述外信息作为先验信息,进行下一次的分量码的译码,经过多次迭代直到外信息趋于稳定后,才对似然比进行硬判决,得出最佳估值。具体地,在相向计算"相交"后,当所述分支数据序列块长个数为奇数^=2;'+1时,其中j为预设的固定的整数值,首先会计算产生所述分支数据序列中第j+l个比特的LLR值和外信息,即比特。的LLR值和外信息,之后依次可以计算第j+l-q个和第j+l+q个两个比特的对数似然比信息和外信息,其中q的取值依次从l到j,即之后依次可以计算两个比特。_。和。+。的LLR值和外信息,其中q的取值依次从1到j;当所述分支数据序列块长个数为偶数^=2_/时,其中j为预设的固定的整婆:值,首先会计算所述分支数据序列中第j个和第j+l个两个比特的对数似然比信息和外信息,即比特c^和。的LLR值和外信息,之后依次可以计算所述数据序列中第j-q个和第j+l+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到j-l,即之后依次可以计算两个比特。+《和。+,的LLR值和外信息,其中q的取值依次义人1到j-l。需要说明的是,每次译码过程中的j可以为不同的整数值,即每次译码过程中的数据序列的码长个数可以不同,因此,本发明实施例的译码方法适用于不同码块长度的译码。通过上述实施例,加速的并行译码算法将原来每个分支计算输出LLR值和外信息的顺序由从左到右(即从首端到末端)改变为从中间到两边,达到了译码提速的目的,而且计算是准确的,不会有性能损失,保证了Turbo码译码的可靠性。需要说明的是,典型的Turbo码译码过程为2维的译码过程,即只有两层分量码译码器,相应地,从迭代的译码结构可以推广到多维的译码,即有多层分量码译码器,该分量码译码器的译码过程与典型i,码过程中的分量码译码器的译码过程相似,因此,本发明实施例的译码的方法除了可以应用在典型的Turbo码译码过程中外,即除了可以应用在2维的i奪码过程中外,还可以应用到M维的Turbo码i奪码过程中,其中M>2。需要说明的是,本发明的译码方法适用于所有以Turbo码作为信道编码的通信系统以及一般的Turbo码译码器。下面结合图8示出的本发明的译码器的第一实施例结构示意图,说明本发明实施例的译码器的结构,包括第一度量计算模块81,用于当接收到数据序列后,从所述数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;第一信息计算模块82,用于由第一度量计算模块81计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。具体地,本实施例对应上述的改进的串行译码方法,译码器为分量码串行译码器。如图9示出的本发明实施例的第一信息计算模块的结构示意图,第一信息计算模块82包括第一信息计算输出单元821。最优地,第一度量计算模块81从接收数据的首末两端同时相向计算(7r',《J(其中*=0,1,2,...)和0^',A")(其中*=《-1,尤-2,…),即从所述数据序列的末端依次反向计算后向状态度量和支路度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当两个方向的计算"相交"后,即反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述分支的数据序列的码长个数后,第一信息计算输出单元821由计算出的后向状态度量;d、前向状态度量《以及支路度量rr'',结合公式(1)能够计算当前时刻的i:(q),然后由z(q)结合公式(2)计算出外信息,即可以计算输出两个比特的对数似然比和外信息,当计算出所有比特的对数似然比和外信息后,将所述外信息作为先验信息,传送到下一分量码译码器进行下一次的分量码的译码,经过多次迭代直到外信息趋于稳定后,才对似然比进行硬判决,得出最佳估值。具体地,如图IO示出的本发明实施例的第一信息计算输出单元的结构示意图,第一信息计算输出单元821包括第一信息计算子单元8211和第二信息计算子单元8212,在相向计算"相交"后,当块长个数为奇数《=27+1时,其中j为预设的固定的整数值,第一信息计算子单元8211首先会计算所述数据序列中第j+l个比特的LLR值和外信息,即比特。的LLR值和外信息,之后依次可以计算第j+l-q个和第j+l+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到j,即之后依次可以计算两个比特。_。和。+《的LLR值和外信息,其中q的取值依次从1到j;当块长个数为偶数K-2_/时,其中j为预i殳的固定的整数值,第二信息计算子单元8212首先会计算所述数据序列中第j个和第j+l个两个比特的对数似然比信息和外信息,即比特。_,和。的LLR值和外信息,之后依次可以计算所述数据序列中第j-q个和第j+l+q个两个比特的对数似然比信息和外信息,其中q的取值依次从l到j-l,即之后依次可以计算两个比特c,,—9和。+9的LLR值和外信息,其中q的取值依次从1到j-l。需要说明的是,每次译码过程中的j可以为不同的整数值,即每次译码过程中的数据序列的码长个数可以不同,因此,本发明实施例的译码方法适用于不同码块长度的译码。需要说明的是,上述实施例为改进后的分量码串行译码器的结构,具体地,当上述接收到的数据序列为并行接收到的至少两个分支的数据序列时,需要进行分量码的并行译码,下面结合图11示出的本发明的译码器的第二实施例结构示意图,说明本发明实施例的译码器的结构,包括第二度量计算模块lll,用于当并行接收到至少两个分支的数据序列后,从各个分支的数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述各个分支的后向状态度量和支路度量之前从各个分支的数据序列的首端依次正向计算前向状态度量和支路度量;第二信息计算模块112,用于由第二度量计算模块111计算出的后向状态度量、前向状态度量以及支路度量计算输出所述分支的数据序列中的比特的外信台具体地,本实施例对应上述的改进的并行译码方法,本实施例的译码器为分量码并行译码器。如图12示出的本发明实施例的第二信息计算模块的结构示意图,第二信息计算模块112包括第二信息计算输出单元1121。第二度量计算模块111在并行接收到至少两个分支的数据序列后,本实施例4艮i殳为P个分支的数据序列,其中P》2,每个分支的译码过程与上述改进的串行译码类似,最优地,第二度量计算模块111从各个分支的接收数据的首末两端同时相向计算(W,cC)(其中"0,1,2,…)和(^',/f)(其中)t-《p—1,KP—2,…),即从各个分支的数据序列的末端依次反向计算后向状态度量和支路度量的同时,从各个分支的数据序列的首端依次正向计算前向状态度量和支路度量,当两个方向的计算"相交',后,即当所述分支的反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述分支的数据序列的码长个数后,第二信息计算输出单元1121由计算出的后向状态度量y9:、前向状态度量c^以及支路度量yr',结合公式(1)能够计算当前时刻的丄(cj,然后由"^)结合公式(2)计算出外信息,即可以计算输出两个比特的对数似然比和外信息,当计算出所有比特的对数似然比和外信息后,将所述外信息作为先验信息,传送到下一分量码译码器进行下一次的分量码的译码,经过多次迭代直到外信息趋于稳定后,才对似然比进行硬判决,得出最佳估值。具体地,如图13示出的本发明实施例的第二信息计算输出单元的结构示意图,第二信息计算输出单元1121包括第三信息计算子单元11211和第四信息计算子单元11212,在相向计算"相交"后,当所述分支数据序列块长个数为奇数《,2J+1时,第三信息计算子单元11211首先会计算产生所述分支数据序列中第j+l个比特的LLR值和外信息,即比特。的LLR值和外信息,之后依次可以计算第j+l-q个和第j+l+q个两个比特的对lt似然比信息和外信息,其中q的取值依次从1到j,即之后依次可以计算两个比特c,《和。+。的LLR值和外信息,其中q的取值依次从l到j;当所述分支数据序列块长个数为偶数^=2_/时,第四信息计算子单元11212首先会计算所述分支数据序列中第j个和第j+l个两个比特的对数似然比信息和外信息,即比特c^和。的LLR值和外信息,之后依次可以计算所述数据序列中第j-q个和第j+l+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到即之后依次可以计算两个比特。,《和。+《的LLR值和外信息,其中q的取值依次从1到j-l。需要说明的是,每次译码过程中的j可以为不同的整数值,即每次译码过程中的数据序列的码长个数可以不同,因此,本发明实施例的译码方法适用于不同码块长度的译码。本发明实施例的Turbo码译码器除了包括交织器、解交织器、判决器外,还包括上述实施例的译码器,所述译码器可以为分量码串行译码器,也可以为分量码并行译码器。通过改进的分量码译码器,将原来计算输出LLR值和外信息的顺序由从左到右(即从首端到末端)改变为从中间到两边,达到了译码提速的目的,而且计算是准确的,不会有性能损失,保证了Turbo码译码的可靠性。需要说明的是,典型的Turbo码译码器为2维的译码过程,即只有两层分量码译码器,相应地,从迭代的译码结构可以推广到多维的译码,即有多层分量码译码器,该分量码译码器的译码过程与典型译码过程中的分量码译码器的译码过程相似,因此,本发明的译码器以及Turbo码译码器除了可以应用在典型的Turbo码译码过程中外,即除了可以应用在2维的译码过程中外,还可以应用到M维的Turbo码译码过程中,其中M>2。需要说明的是,本发明的译码器以及Turbo码译码器适用于所有以Turbo码作为信道编码的通信系统。下面通过数学理论来比较原算法和本发明的加速算法的译码速度。设Turbo编码块长为K。由尾比特计算得到各状态的y^作为初始值。芯片的时钟频率为fMHz。假设每个时钟周期(cycle)可以将一个系统位软比特和相应的两个校验位软比特写入到Turbo译码器内部的输入数据緩存中。译码迭代次数为A"。一般的串行算法的译码速度为<formula>formulaseeoriginaldocumentpage17</formula>本发明的加速的串行算法的译码速度为<formula>formulaseeoriginaldocumentpage17</formula>在并行译码算法中,设并行分支数为P,则每个分支长度为%,分支两端a和/的训练序列长度都为L(第一分支的"和最后一分支的;0不需要训练)。在译码之前先用£个cycle(此时需要双端口RAM:RandomAccessMemory,如果用单端口RAM,则需要2丄个cycle)计算出每个分支的a和"的初始值,一般的并行算法译码速度为<formula>formulaseeoriginaldocumentpage18</formula>本发明的加速的并行算法译码速度为:<formula>formulaseeoriginaldocumentpage18</formula>由前面的公式可以看出,采用串行译码装置时,本发明的加速算法比原算法的译码速度几乎翻倍,可以有效的减少译码时延。釆用并行译码装置时,如果译码速度相同,则本发明的加速算法所需的并行分支数是原算法的一半,由于分支数减半,训练序列也相应的减半,性能会有提升。如果分支数相同,则本发明的加速算法与原算法相比,性能相同,但可以达到更高的译码速度。下表给出了不同并行分支数时原算法和本发明的加速算法所能达到的译码速度。以F=100,编码块长《=6144为例计算译码速度。<table>tableseeoriginaldocumentpage18</column></row><table>从上表Turbo码并行译码的峰值速度可得,并行分支数为16的加速并行算法比并行分支数为16的一般并行算法提高速度在40%以上。下表给出了不同编码块长度时并^f1^奪码相对于串行译码的浮点性能损失。块<table>tableseeoriginaldocumentpage19</column></row><table>高译码速度的百分比为、《72/ter,此时没有性能损失,但可以显著的减少译码时延。在并行译码时,如果要达到相同的译码速度,则本发明的加速译码算法所需的并行分支数是原译码算法的一半,此时训练序列也减少一半,性能会有较大的提高。需要说明的是,通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对
背景技术
做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。以上所揭露的仅为本发明实施例中的一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。权利要求1、一种译码的方法,其特征在于,包括以下步骤接收到数据序列;从所述数据序列的末端依次反向计算后向状态度量和支路度量;在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。2、如权利要求1所述的方法,其特征在于,所述由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息包括当反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述数据序列的码长个数后,由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述凝:据序列中的比特的外信息。3、如权利要求2所述的方法,其特征在于,从所述数据序列的末端依次反向计算后向状态度量和支路度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当所述数据序列的码长个数为奇数K二2j+l时,其中j为预设的固定的整数值,所述由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息包括由计算出的后向状态度量、前向状态度量以及支路度量计算所述数据序列中第j+l个比特的外信息,之后依次计算第j+l-q个和第j+l+q个两个比特的外信息,其中q的取值依次从1到j。4、如权利要求2所述的方法,其特征在于,从所述数据序列的末端依次反向计算后向状态度量和支路度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当所述数据序列的码长个数为偶数K^2j时,其中j为预设的固定的整数值,所述由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息包括由计算出的后向状态度量、前向状态度量以及支路度量计算所述数据序列中第j个和第j+l个两个比特的外信息,之后依次计算第j-q个和第j+l+q个两个比特的外信息,其中q的取值依次从1到j-1。5、如权利要求1至4任意一项所述的方法,其特征在于,所述接收到的数据序列为并行接收到的至少两个分支的数据序列。6、一种译码器,其特征在于,包括度量计算模块,用于当接收到数据序列后,从所述数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;信息计算模块,用于由所述度量计算模块计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。7、如权利要求6所述的译码器,其特征在于,所述信息计算模块包括信息计算输出单元,用于当所述度量计算模块反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述数据序列的码长个数后,由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。8、如权利要求7所述的译码器,其特征在于,所述度量计算模块从所述数据序列的末端依次反向计算后向状态度量和支3各度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当所述数据序列的码长个数为奇数K^2j+l时,其中j为预设的固定的整数值,所述信息计算输出单元包括第一信息计算子单元,用于由所述度量计算模块计算出的后向状态度量、前向状态度量以及支路度量计算所述数据序列中第j+l个比特的外信息,之后依次计算第j+l-q个和第j+l+q个两个比特的外信息,其中q的取值依次从1到j。9、如权利要求7所述的译码器,其特征在于,所述度量计算模块从所述数据序列的末端依次反向计算后向状态度量和支路度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当所述数据序列的码长个数为偶数K-2j时,其中j为预设的固定的整数值,所述信息计算输出单元包括第二信息计算子单元,用于由所述度量计算模块计算出的后向状态度量、前向状态度量以及支路度量计算所述数据序列中第j个和第j+l个两个比特的外信息,之后依次计算第j-q个和第j+l+q个两个比特的外信息,其中q的取值依次从1到j-l。10、如权利要求6至9任意一项所述的译码器,其特征在于,所述接收到的数据序列为并行接收到的至少两个分支的数据序列。11、一种Turbo码译码器,其特征在于,所述Turbo码译码器包括如权利要求6至10任意一项所述的i奪码器。全文摘要本发明实施例公开了一种译码的方法,包括以下步骤接收到数据序列;从所述数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。相应地,本发明实施例还公开了一种译码器和一种Turbo码译码器,实施本发明实施例,通过改进译码过程中计算外信息的算法,从而提高Turbo码译码的速度,减少Turbo码译码的时延,并且保证Turbo码的译码的可靠性。文档编号H03M13/29GK101388674SQ20081021859公开日2009年3月18日申请日期2008年10月23日优先权日2008年10月23日发明者魏璟鑫申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1