Turbo译码器及其实现方法

文档序号:7538655阅读:752来源:国知局
专利名称:Turbo译码器及其实现方法
技术领域
本发明涉及一种高速数据信道上的纠错编码方式,尤其涉及码分多路通讯系统(CDMA)中turbo译码器及其实现方法的改进。
自从Shannon(香农)在1948年提出信息论以来,人们在不懈地努力企图逼近信道容量的极限(Shannon限)。经众多学者五十年的努力,提出了各种纠错码方案,但距Shannon限的实现还有一定的距离。从信息论的角度看,只要传输的信息速率小于信道容量,总存在使得错误概率任意小的编码方法。
Turbo码自1993年由C.Berrou等人提出后,通信学界掀起了研究Turbo码的热潮,当交织长度足够长时,Turbo码具有接近Shannon限的优越性能。大量的计算机仿真和不同码结构研究表明,虽然Turbo码译码复杂度要大于传统的卷积码并具有较大的时延,但在无线信道信噪比较低的情况下,Turbo码具有优异的性能,所以在第三代移动通信系统的开发中,Turbo码被普遍用于话音和控制信道,其误码率可达到10-6,而传统的卷积编码误码率一般在10-3。
目前国内外对Turbo码译码的研究,主要集中在简化MAP算法上,MAP算法使单个比特错误最小,其目的在于一、降低算法复杂度,减小Turbo码固有的时间迟延;二、减小硬件实现时所需的资源,降低成本。其方法基本集中于定义MAP算法中的前、后向状态度量,从而简化MAP算法,但对Turbo译码器结构则研究较少,如S.Pietrobon,“Implementation and Performance of a Turbo/MAP Decoder”,International Journal of Satellite Communications,21 February1997。又如美国专利US6,014,411(Repetitive turbo codingcommunication method)提出的一种重复Turbo码编码方案,均侧重Turbo编码方案的研究。
在CDMA2000通讯系统中需要对码率为1/2、1/3和1/4的并行级联卷积码进行译码。现有技术对码率为1/2、1/3和1/4的Turbo码采用不同结构的译码器,需要较高的硬件实现成本。


图1至图3分别展示码率为1/2、1/3和1/4Turbo码的译码器结构。在图1中,编码信号分别输入两个MAP译码器。原始信息比特和先验信息比特输入第一MAP译码器。第一MAP译码器将更新后的外部信息比特经过Turbo交织器后,作为第二个MAP译码器的先验信息,送入第二个MAP译码器。第二个MAP译码器接收更新过的原始信息比特。第二个MAP译码器软判决输出更新过的外部信息比特,作为第一个MAP译码器的先验信息,反馈到第一个MAP译码器,此过程重复进行。1/3Turbo码译码器和1/4Turbo码译码器的工作原理与1/2Turbo码译码器相同,但具体实现结构不同。图2是1/3Turbo码译码器示意图,它与1/2Turbo码译码器的区别在于输入不同。图3是1/4Turbo码译码器示意图,需要四个MAP译码器。
本发明的目的在于提出一种Turbo译码器及其实现方法,以相同的译码器结构实现对码率为1/2、1/3和1/4的并行级联卷积码的译码。
本发明的目的通过以下技术方案实现一种Turbo译码器,包括MAP译码器、交织器和去交织器,尤其还包括解复用模块,译码器的输入信号,即码率为1/2、1/3或1/4的并行级联卷积码通过解复用模块输出五路信息比特,分别为未编码信息比特Xk和编码校验比特Y0k、Y1k、Y0k’、Y1k’;所述未编码信息比特、编码校验比特Y0k、Y1k输入第一MAP译码器;第一MAP译码器将更新后外部信息比特Zk’经过第二交织器后,作为第二MAP译码器的先验信息,送入第二MAP译码器;第二MAP译码器还接收经第一交织器模块更新过的未编码信息比特Xk’和编码校验比特Y0k’、Y1k’;从第二MAP译码器的软判决输出经去第一去交织器更新的外部信息比特Zk,作为第一MAP译码器的先验信息,反馈到第一MAP译码器,此过程可重复三至八次,最后从第二MAP译码器输出λk经第二去交织器更新后,输入最后一级硬判决模块输出译码信号。
MAP译码器的输入信号为四个未编码信息比特Xk、编码校验比特Y0k、Y1k、先验信息比特Zk。
一种Turbo译码方法,包括以下步骤
①译码器的输入,即码率为1/2、1/3或1/4的并行级联卷积码通过解复用方法分解输出五路信息比特,分别为未编码信息比特Xk和编码校验比特Y0k、Y1k、Y0k’、Y1k’;②所述未编码信息比特Xk、编码校验比特Y0k、Y1k和从第二MAP译码器的软判决输出经去第一去交织器)更新的外部信息比特Zk,作为第一MAP译码器的先验信息,输入第一MAP译码器译码,第一MAP译码器更新后的外部信息比特Zk’经第二交织器后,作为第二个MAP译码器的先验信息,送入第二个MAP译码器;③所述未编码信息比特Xk和编码校验比特Y0k’、Y1k’也输入第二MAP译码器,经第二MAP译码器译码的软判决输出并经第一去交织器更新过的外部信息比特Zk,作为第一MAP译码器的先验信息,反馈到第一MAP译码器;④重复上述步骤②③共三至八次,最后第二MAP译码器输出λk送到去交织器,经硬判决模块输出。
上述步骤②中MAP译码器的译码包括以下步骤第一步设置初始值,迭代开始时,先验信息取为零。以后为前一次译码器的外部信息输出,输入为四个Xk、Y0k、Y1k、Zk,而不是传统的三个Xk、Yk、Zk。
第二步对每一接收符号,计算分支度量,在计算分支度量时需利用两个编码比特C0k、C1k,而不是传统的一个编码比特Ck。
分支度量计算公式为δki,m=χkξkiexp(Lc(xki+y1kc1i,m+y2kc2i,m))其中(xk,y1k,y2k)为时刻k的接收符号,定义为xk=(2dk-1)+pky1k=(2c1k-1)+qky2k=(2c2k-1)+okχk是一常数,Lc=2/σ2ci,m是已知dk=i,Sk=m时的编码比特,ξki=Pr(dk=i)。
第三步在全部N个符号序列接收后,对每一接收符号和所有状态,利用第二步计算出的分支度量值,计算反向分支度量。
第四步对每一接收符号和所有状态,利用第二步计算出的分支度量值,计算前向分支度量。
第五步计算传递给下一译码器的外部信息。
第六步最后,利用计算出的分支度量值、反向分支度量值、前向分支度量值,计算似然比,进行判决。
本发明利用改进的MAP译码器,实现了改进的MAP译码算法,从而减少了Turbo译码器中MAP译码器的数量,在Turbo译码器的输入端增加解复用模块,以相同的译码器结构实现对码率为1/2、1/3和1/4的并行级联卷积码的译码,节省了硬件实现资源,降低了成本下面结合附图对本发明的最佳实施例作进一步详细说明图1是1/2码率Turbo译码器结构图;图2是1/3码率Turbo译码器结构图;图3是1/4码率Turbo译码器结构图;图4是本发明所提出的Turbo译码器结构框图;图5 Turbo编码删减图案;图6 Turbo编码尾码删减和重复图案;图7解复用模块设计框图。
在CDMA2000通讯系统中,Turbo编码器包含两个并行的递归卷积编码器(Constituent Encoder)。设输入Turbo编码器的信息Bit长度为Nturbo,对于编码器1,Nturbo个信息Bit直接输入;对于编码器2,Nturbo个信息Bit要经过一个Turbo交织器进行交织后再输入。两个递归的编码器分别输出码X、Y0、Y1和X’、Y0’、Y1’,它们在作为编码符号输出之前要经过既定的图案进行符号删减或符号重复,使输出符号的长度满足Nturbo/R,其中R是该Turbo编码器的编码效率,R=1/2或1/3或1/4。在Nturbo/R个Turbo码之后,Turbo编码器还生成6/R个尾符号,一起构成(Nturbo+6)/R个完整的编码符号输出。
本发明所提出的Turbo译码器内部功能模块框图如图4所示,包括解复用模块10、第一MAP译码器21、第二MAP译码器22、第一交织器模块31、第二交织器模块32和去交织器模块(41、42)。从图4可以看出只需两个MAP译码器,即可实现对码率为1/2、1/3和1/4Turbo码的译码。
在图4中,输入信号首先送入解复用模块10,该模块实现解复用、解删减算法,把译码器的输入信号解复用、解删减后分别送给两个MAP译码器21、22。未编码信息比特Xk和编码校验比特Y0k和Y1k输入到第一MAP译码器21。第一MAP译码器21将更新后的外部信息比特Zk经过第二Turbo交织器32后,作为第二个MAP译码器22的先验信息,送入第二个MAP译码器22。第二个MAP译码器22还接收经第一交织器模块31更新过的未编码信息比特Xk’。经去交织器模块41更新过的外部信息比特λk,从第二个MAP译码器22的软判决输出,作为第一个MAP译码器21的先验信息,反馈到第一个MAP译码器21,重复此过程。此过程可重复3~8次,过多的迭代会造成输出饱和,最后一级为硬判决输出。
解复用模块10实现解复用和解删减算法,解删减是删减的逆过程。编码器的删减模式可以按照相应的系统标准如CDMA2000标准的规定。在输出Nturbo/R个数据符号阶段,用到符号删减。符号删减器将来自两个编码器的数据BitX、Y0、Y1和X’、Y0’、Y1’按照删减图案(Puncturing Patterns)进行删除,删减图案如图5所示,其中‘0’代表删除;‘1’代表通过。读出时先从上到下再从左到右。
对于R=1/2,输出X、Y0;X、Y0’;……对于R=1/3,输出X、Y0、Y0’;X、Y0、Y0’;……对于R=1/4,输出X、Y0、Y1、Y1’;X、Y0、Y0’、Y1’;……在Turbo编码器输出6/R个尾符号阶段,用到符号删减和符号重复。将来自编码器1和编码器2的尾Bit(先X、Y0、Y1,后X’、Y0’、Y1’)按照图6所示的删减和重复图案进行删减或重复。读出时,对R=1/2先从上到下再从左到右,前3次输出X、Y0;X、Y0;X、Y0,后3次输出X’、Y0’;X’、Y0’;X’、Y0’。
对于R=1/3和R=1/4,读出时,从上到下再从左到右,但X和X’需重复一次,分别输出如下R=1/3前3次X、X、Y0;X、X、Y0;X、X、Y0,后3次X’、X’、Y0’;X’、X’、Y0’;X’、X’、Y0’。
R=1/4前3次X、X、Y0、Y1;X、X、Y0、Y1;X、X、Y0、Y1,后3次X’、X’、Y0’、Y1’;X’、X’、Y0’、Y1’;X’、X’、Y0’、Y1’。
解删减是删减的逆过程。图7是解复用模块10的结构框图。在解复用模块10中,输入缓存于第二变换模块14中。通过第一变换模块12和第一计数器11查找删减图案相应位置上是0或是1,若为1,则从第二变换模块14中取一个值,经复用模块13输出,同时第二计数器15加1。若删减图案相应位置上是0,则复用模块13输出0。这样采用补零的做法实现了解删减,把被删减的比特补回去。
交织器模块31、32是Turbo译码器的一个重要模块,其主要作用是将原始信息序列置乱,使得交织前后的信息序列的相关性减小,这样可使突发错误随机化。交织器越大,突发错误修正得越好。去交织是交织的逆过程。去交织器模块41、42的主要作用是使信息序列以交织前的顺序输出。
MAP译码器21、22实现MAP译码算法。本发明提出一种新Turbo译码器结构,为了实现这种译码器结构,对MAP算法做了改进,根据本发明的MAP算法,MAP译码器的输入信号为时刻k、输入dk的编码比特c1k和c2k,增加了一路输入信号,从而减少MAP译码器的数量,简化了Turbo译码器结构。设v编码器存储单元数;Sk时刻k的编码器状态;dk时刻k的信息比特,与从时刻k到时刻k+1的转移有关,引起编码器状态从Sk到Sk+1转变。信息比特序列{dk}由N-ν个独立的比特dk组成,取值0或1,具有先验概率(APrP)ξk0和ξk1(ξk0+ξk1=1);c1k时刻k、输入dk的编码比特1;c2k时刻k、输入dk的编码比特2;S1编码器初始状态,为0;SN+1最后时刻N+1的状态,为0,输入序列最后的v个信息比特(dN-v+1到dN)将使其为0;R1N=(R1,A,Rk,A,RN)接收到的序列,其中Rk=(xk,y1k,y2k)为时刻k的接收符号,定义为xk=(2dk-1)+pky1k=(2c1k-1)+qky2k=(2c2k-1)+ok其中pk、qk和ok是三个独立的服从正态分布的随机变量,方差为σ2。
在本算法中,比特dk的似然比λk定义为λk=Pr(dk=0|R1N)Pr(dk=1|R1N)---(1)]]>其中Pr(dk=i|R1N),i=0,1是数据比特dk的后验概率(APoP)。
定义联合概率λki,m=Pr(dk=i,Sk=m|R1N)(2)因此,译码数据比特dk的APoP等于Pr(dk=i|R1N)=Σmλki,m---(3)]]>其中i=0,1,求和在所有的2v个状态上进行。(1)式可重写为λk=Σmλk0,mΣmλk1,m---(4)]]>译码器根据上式λk做出译码判决d^k={1,λk<10,λk≥1---(5)]]>α、β和δ的定义利用Bayes原理,(2)式的联合概率可重写为λki,m=Pr(dk=i,Sk=m,R1N)/Pr(R1N)=Pr(R1k-1|dk=i,Sk=m,RkN)Pr(Rk+1N|dk=i,Sk=m,Rk)(6)×Pr(dk=i,Sk=m,Rk)/Pr(R1N)前向状态度量、后向状态度量定义为Pr(R1k-1|dk=i,Sk=m,RkN)=Pr(R1k-1|Sk=m)=αkm(7)
Pr(Rk+1N|dk=i,Sk=m,Rk)=Pr(Rk+1N|Sk+1=f(i,m))=βkf(i,m)(8)其中f(i,m)是已知输入i和状态m时的下一状态。分支度量定义为δki,m=Pr(dk=i,Sk=m,Rk)(9)则联合概率(6)式变为λki,m=αkm·δki,m·βk+1f(i,m)/Pr(R1N)因此,似然比变为λk=Σmαkm·δk0,m·βk+1f(0,m)Σmαkm·δk1,m·βk+1f(1,m)---(10)]]>其中求和在所有的2v个状态上进行。α、β和δ的计算这里,α,β可如下简单地递推计算αkm=Σj=01αk-1b(j,m)·δk-1j,b(j,m)---(11)]]>其中b(j,m)是在对应输入为j的分支上从状态m回溯到达的状态。类似地,有βkm=Σj=01δkj,m·βk+1f(j,m)---(12)]]>对于零均值,方差为σ2的AWGN信道,则δki,m=χkξkiexp(Lc(xki+y1kc1i,m+y2kc2i,m))(13)其中χk是一常数,Lc=2/σ2,ci,m是已知dk=i,Sk=m时的编码比特,ξki=Pr(dk=i)。因为上式中的χk并不影响(10)式中的λk,通常忽略。
似然比为λk=ξk0ξk1exp(-Lcxk)Σmαkmexp(Lc(y1kc10,m+y2kc20,m))βk+1f(0,m)Σmαkmexp(Lc(y1kc10,m+y2kc20,m))βk+1f(1,m)---(14)]]>=ξkexp(-Lcxk)ξk″其中ξk=ξk0/ξk1是输入的APrP比,ξk″是输出外部信息。初始条件α10=1,α1m=0 m≠0(15a)βN+10=1,βN+1m=0 m≠0(15b)迭代译码算法步骤第一步对i=0,1,初始化下列概率α10=1;α1m=0,m≠0βN+10=1;βN+1m=0,m≠0迭代开始时,外部输入信息ξk″=1。以后为前一次译码器的外部信息输出。
第二步从k=1开始,对每一接收符号Rk,由(13)式计算分支度量δki,m。
第三步在全部N个符号序列接收后,从k=N开始,对每一接收符号Rk和所有状态m,由(12)式计算反向分支度量βkm。
第四步对每一接收符号Rk和所有状态m,从k=1开始,由(11)式计算前向分支度量αkm。
第五步计算传递给下一译码器的外部信息。ξk′=Σmαkmexp(Lcykc0,m)βk+1f(0,m)Σmαkmexp(Lcykc1,m)βk+1f(1,m)]]>第六步最后,由(14)式计算似然比,进行判决。λk=ξk0ξk1exp(-Lcxk)Σmαkmexp(Lc(y1kc10,m+y2kc20,m))βk+1f(0,m)Σmαkmexp(Lc(y1kc10,m+y2kc20,m))βk+1f(1,m)]]>=ξkexp(-Lcxk)ξk″
权利要求
1.一种Turbo译码器,包括MAP译码器、交织器和去交织器,其特征在于还包括解复用模块(10),译码器的输入信号,即码率为1/2、1/3或1/4的并行级联卷积码通过解复用模块(10)输出五路信息比特,分别为未编码信息比特Xk和编码校验比特Y0k、Y1k、Y0k’、Y1k’;所述未编码信息比特、编码校验比特Y0k、Y1k输入第一MAP译码器(21);第一MAP译码器将更新后外部信息比特Zk’经过第二交织器(32)后,作为第二MAP译码器的先验信息(22),送入第二MAP译码器(22);第二MAP译码器(22)还接收经第一交织器模块(31)更新过的未编码信息比特Xk’和编码校验比特Y0k’、Y1k’;从第二MAP译码器(22)的软判决输出经去第一交织器(41)更新的外部信息比特Zk,作为第一MAP译码器(21)的先验信息,反馈到第一MAP译码器(21),此过程可重复三至八次,最后从第二MAP译码器(22)输出λk经第二去交织器更新后,输入最后一级硬判决模块输出译码信号。
2.根据权利要求1所述的Turbo译码器,其特征在于所述解复用模块(10)包括第一计数器(11)和第二计数器(15)、第一变换模块(12)和第二变换模块(14)以及复用模块(13),第一计数器(11)、第一变换模块(12)和复用模块(13)顺序相联,第二计数器(15)和第二变换模块(14)相联后再输入复用模块(13),译码器的输入信号缓存于第二变换模块(14)中,通过第一变换模块(12)和第一计数器(11)查找删减图案相应位置上是0或是1,若为1,则从第二变换模块14中取一个值,经复用模块13输出,同时第二计数器15加1。若删减图案相应位置上是0,则复用模块13输出0。
3.如权利要求2所述的Turbo译码器,其特征在于所述MAP译码器(21、22)的输入信号为四个未编码信息比特Xk、编码校验比特Y0k、Y1k、先验信息比特Zk。
4.一种Turbo译码方法,其特征在于包括以下步骤①译码器的输入,即码率为1/2、1/3或1/4的并行级联卷积码通过解复用方法分解输出五路信息比特,分别为未编码信息比特Xk和编码校验比特Y0k、Y1k、Y0k’、Y1k’;②所述未编码信息比特Xk、编码校验比特Y0k、Y1k和从第二MAP译码器(22)的软判决输出经去第一去交织器(41)更新的外部信息比特Zk,作为第一MAP译码器(21)的先验信息,输入第一MAP译码器(21)译码,第一MAP译码器更新后的外部信息比特Zk’经第二交织器(32)后,作为第二个MAP译码器(22)的先验信息,送入第二个MAP译码器(22);③所述未编码信息比特Xk和编码校验比特Y0k’、Y1k’也输入第二MAP译码器(22),经第二MAP译码器译码的软判决输出并经第一去交织器(41)更新过的外部信息比特Zk,作为作为第一MAP译码器(21)的先验信息,反馈到第一MAP译码器(21);④重复上述步骤2、3共三至八次,最后第二MAP译码器(22)的输出λk送到去交织器(42),然后经硬判决模块输出。
5.如权利要求4所述的Turbo译码方法,其特征在于所述步骤②中MAP译码器的译码包括以下步骤第一步设置初始值,迭代开始时,外部输入信息取为零。以后为前一次译码器的外部信息输出,输入为四个Xk、Y0k、Y1k、Zk,而不是传统的三个Xk、Yk、Zk。第二步对每一接收符号,计算分支度量,在计算分支度量时需利用两个编码比特C0k、C1k,而不是传统的一个编码比特Ck,分支度量计算公式为δki,m=χkξkiexp(Lc(xki+y1kc1i,m+y2kc2i,m))其中(xk,y1k,y2k)为时刻k的接收符号,定义为xk=(2dk-1)+pky1k=(2c1k-1)+qky2k=(2c2k-1)+okχk是一常数,Lc=2/σ2,ci,m是已知dk=i,Sk=m时的编码比特,ξk1=Pr(dk=i)。第三步在全部N个符号序列接收后,对每一接收符号和所有状态,利用第二步计算出的分支度量值,计算反向分支度量。第四步对每一接收符号和所有状态,利用第二步计算出的分支度量值,计算前向分支度量。第五步计算传递给下一译码器的外部信息。第六步最后,利用计算出的分支度量值、反向分支度量值、前向分支度量值,计算似然比,进行判决。
全文摘要
一种Turbo译码器,包括改进的MAP译码器、交织器和去交织器,还包括解复用模块,将码率为1/2、1/3或1/4的并行级联卷积码分解输出五路信息比特,未编码信息比特、编码校验比特Y
文档编号H03M13/23GK1328384SQ0110746
公开日2001年12月26日 申请日期2001年1月18日 优先权日2001年1月18日
发明者王锦山 申请人:深圳市中兴集成电路设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1