CN1147169C - 用于Turbo码的解码方法和解码器 - Google Patents
用于Turbo码的解码方法和解码器 Download PDFInfo
- Publication number
- CN1147169C CN1147169C CNB001016776A CN00101677A CN1147169C CN 1147169 C CN1147169 C CN 1147169C CN B001016776 A CNB001016776 A CN B001016776A CN 00101677 A CN00101677 A CN 00101677A CN 1147169 C CN1147169 C CN 1147169C
- Authority
- CN
- China
- Prior art keywords
- soft
- path
- information
- value
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
一种用于Turbo码的解码方法。该方法对一窗所有节点的每个状态计算分支度量值、状态度量值及其差值;计算维特比回溯起点具有最大状态度量值的状态;从起点开始维特比回溯和多条并行路径的同时并行回溯,找到幸存路径、并行路径及两种路径上各节点的硬判决;在对一节点的软信息回溯结束后,按需要更新n个软信息寄存器内的信息,如此反复至窗尾;在对输出的软信息进行硬判决调制后,获得软输出。
Description
技术领域
本发明涉及无线移动通信系统中的Turbo码解码器,尤其涉及一种基于软输入软输出的维特比算法的解码器。
背景技术
在无线通信系统中,传输信号会因传输介质不均匀和不稳定而受到时间扩散、衰落等因素的干扰,致使接收到的比特发生随机性的差错。为了防止信道噪声的干扰,必须采用一定的方式来提高信息的传送可靠性和有效性。实践证明,通过增加冗余度来降低误码率的纠错编码方法是一类很有效的手段。尤其,在移动通信和卫星通信系统中,纠错编码方法得到广泛的应用。
Turbo码是一种纠错能力很强的码。其编码器可以由两个或多个子编码器通过串联或并联的级联方式构成,较普遍的是使两个卷积码编码器并联。
图1是一种Turbo码编码器的结构示意图。它是cdma 2000和WCDMA提案中建议的Turbo码编码器。在该图中,Turbo码编码器10包括两个上下并联的回归系统卷积码(RSC)子编码器14和16。输入信息位一路直接输入第一子编码器14,另一路通过交织器12,输入第二子编码器16。交织器的作用是对输入数据重新排序,调整权重的分布。因此,输入第二子编码器16的比特流的权重分布与第一子编码器14的不同。第一子编码器14和第二子编码器16分别对数据编码,然后将经编码的数据输入打孔器18。打孔器18对两个子编码器14和16输出的多路比特打孔抽样和并串转换,将数据调制到合适的码率(诸如1/2、1/3、或1/4码率等)输出。
图2例示了图1中子编码器14和16的结构。卷积码编码器通常用(n0,k0,m)来表征。其中n0是编码器的输出比特;k0是编码器的输入比特;而m为编码器中移位寄存器的个数,也称为寄存器长度。编码器还可以用约束长度K来表示其特性,它等于卷积码编码器内部移位寄存器的个数m加1,用来确定区段信息比特影响的范围。图2示出的是一个(3,1,3)卷积码编码器。其约束长度为4,码率为1/3。它是cdma2000提案中的结构。如果采用WCDMA提案中的结构,那么编码器为(2,1,3),没有Y1输出。
由图2可见,编码器包括三个相互串联连接的移位寄存器20。每当输入端输入一位时,各移位寄存器中的内容依次向右传递。编码器还包括多个模2加法器22,它们按照一定的编码规则对输入信号和各级移位寄存器的输出信号作加法处理。在该图中,对应于一个比特的信息输入,编码器将输出三个比特,即X,Y0和Y1。X是与输入信息相同的信息位,Y0和Y1是两个校验比特。当X因信道干扰而发生误码时,Y0和Y1可用来纠错。另外,编码器还包括一个尾比特控制器24。当一帧数据输入完毕时,需要对移位寄存器20清零。这时,可以将尾比特控制器24的开关切换到下方,通过三个节拍,将三个移位寄存器20内的比特作为输入依次清零。
Turbo码的解码采用递归迭代方式。根据不同的译码算法,主要分为最大后验概率(MAP)译码算法和最大似然法(SOVA)译码算法。图3例示了一种Turbo码解码器30的结构。它使用SOVA译码算法。首先,解打孔装置31对接收信号解打孔,它相当于图1所示Turbo编码器10中打孔器18的逆操作。例如,对于(3,1,3)子编码器的情况,解打孔装置31要对接收信息进行串并转换,并通过对打孔器18打掉的信息位补零,将三路信息恢复成六路。在解打孔装置31输出的信号中,对应于第一子编码器14之编码结果的三路信息X、Y0和Y1输入第一软输入软输出(SISO)解码器32,对应于第二子编码器16之编码结果的三路信息X′、Y0′和Y1′输入第二软输入软输出解码器。除此之外,为了提高增加SISO解码器的解码精度,每个解码器32和33还需要输入一个先验信息Z或Z′。先验信息Z的初始值可以设置为零。具体地说,第一SISO解码器32对第一子编码器14的编码结果解码,除输出软信息之外,还输出一附加的外赋信息。这些输出信息经交织器34交织后,作为先验信息Z′输入第二SISO解码器33。第二SISO解码器33对第二子编码器16的编码结果解码,输出相应的软信息和外赋信息。然后,这些输出信息经解交织器36解交织,还原到交织前的顺序,并作为先验信息Z输入第一SISO解码器32。如此反复迭代,解码精度越来越高,误码率越来越低。经过多次迭代后,如果认为达到了精度要求,则输入解交织器37进行解交织,还原交织前的顺序。由于解交织器的输出是一些表示概率的带符号的数(例如,0.8、-1.2、5.5等等),所以需要用判决器38对解交织后的信息作硬判决。当信息大于0时,判决器输出1;当信息小于0时,判决器输出0。经解码后得到的信息不会等于0。最后,判决器输出解码结果,恢复原来的信息X。
美国专利第5,406,570号介绍了一种软输出维特比算法(即,SOVA)解码器的结构(对应于图3中SISO 32,33)。该专利的发明名称为“通过判决加权对卷积码进行最大似然解码的方法,及相应的解码器(Method for a MaximumLikelihood Decoding of a Convolutional Code with Decision Weighting,andCorresponding Decoder)”。根据该发明,在长度为L的第一个网格图和长度为L′的第二个网格图的维特比回溯的基础上,从L点开始寻找L点的并行回溯路径。在第二个网格图内,当幸存路径的硬判决Sk和并行路径的硬判决Sk′不相等时,做如下计算:
llr=min(llr′,Mdiffk) (1)
其中,k表示节点,llr是当前更新后的软信息值,llr′是前一时刻保留的软信息值,而Mdiffk是节点k处幸存路径上硬判决Sk之累计路径度量值与判决1-Sk之累计路径度量值的差。为了使并行回溯的时间不至于太长,通常要求L′=0.5L。
上述SOVA解码器存在三个缺点:
第一,L′长度不够大。众所周知,维特比译码时,回溯长度必须达到寄存器个数m的5~10倍。SOVA译码也一样,L′必须足够大才能保证经译码的软信息正确。
第二,在第二个网格图里只进行一次并行路径回溯,对路径上的每个节点,按公式(1)比较后将结果存放在移位寄存器组内,然后通过一次次滑动比较输出结果。这种方法假设当窗口滑动一个节点,输出一个老数据,并接收一个新的数据时,原来的第一网格图和第二网格图里的幸存路径仍未变化。但是,这种假设只有在一窗的长度等于帧长时才能保证100%的正确,或者在窗长很长和信道情况比较好的情况下才能有比较高的可靠性。然而,实际情况往往无法满足这两点。
第三,在第二个网格图,虽然每次滑动窗只需要解出一个节点的硬判决Sk和相应的软信息,但是需要用一组长度等于第二网格图的寄存器组来保留中间软信息。由于软信息的精度要求通常比较高,所以需要消耗大量的寄存器资源。
为此,在1999年12月23日提交的、发明名称为“用于Turbo码的解码方法及其解码器”的专利申请(申请号为99125740.5)中,本发明的申请人提出了一种能够克服上述缺点的SOVA解码器,其内容通过引用包括在此。该发明的解码器采用多次回溯和增大L′的方法,提高了解码精度。同时通过一窗内多点输出,提高了解码速度。但是在此发明中,由于SOVA解码器对多条并行路径采用串行回溯的方式,所以时间花费比较大。根据cdma 2000和WCDMA提案对Turbo码实施的要求,Turbo码解码器中的SISO不仅要有高精度,而且必须满足高速率的要求。
因此,需要对并行路径的回溯部分进行改进,以便提高速度。
发明内容
本发明的一个目的是,提供一种具有较高解码速度的解码方法。
本发明的另一个目的是,提供一种具有较高的解码速度且电路规模较小的解码器。
依照本发明的第一方面,提供了一种用于Turbo码的的解码方法,该方法基于软输出维特比算法,对多条并行路径同时并行回溯,它包括下述步骤:
a.对于一窗内的所有节点的每个状态都计算分支度量值、每个状态的累计度量值和累计度量值之差;
b.通过加比选计算出维特比回溯起点的具有最大累计度量值的状态;
c.从所述状态开始进行维特比回溯和并行路径的回溯,找到幸存路径和幸存路径上各节点的硬判决,以及并行路径和并行路径上各个节点的硬判决;
d.在对某节点的软信息回溯结束后,按公式llr=min(llr′,Mdiffk),更新n个软信息寄存器内的信息,然后再从下个节点开始软信息回溯,如此重复直至窗尾L′;
e.输出软信息和硬判决;以及
f.对输出的软信息进行硬判决调制,获得软输出。
在上述方法中,可以使维特比回溯和多条并行路径的同时并行回溯同时进行,致使整个解码的回溯时间就是维特比的回溯时间。
在上述方法中,输出软信息的步骤包括在回溯到L′-n点时,在L′-n到L′这段长度内输出软信息和硬判决,其中L′是软回溯长度,n是软信息寄存器的个数,n≥1的整数。
上述方法还可以包括下述步骤:对经硬判决调制的所述软输出进行归一化,作为下一级迭代输入的外赋信息。
依照本发明的第二方面,提供了一种用于Turbo码的解码器,它包括:
分支度量计算单元,用于计算从某个节点的某个状态到下个节点的某个状态的分支路径度量值;
加比选计算单元,用于计算所述分支路径度量值与先前路径上的累计路径度量值之和,计算出当前状态的两个累计路径度量值及其差的绝对值,对计算得到的两个累计路径度量值进行比较,从中选择较大的累计路径度量值及其相应的路径;
路径存储单元,用于存储所述加比选计算单元选择的所述路径;
状态度量存储单元,用于存储所述加比选计算单元选择的所述累计路径度量值;
差值存储单元,用于存储所述加比选计算单元计算得到的当前状态的两个累计路径度量值之差的绝对值;
回溯处理单元,它根据来自路径存储器的路径信息以及来自差值存储器的累计路径度量值之差,进行维特比回溯运算以及多条并行路径同时并行回溯的运算,输出软信息和硬判决;
符号调制电路,用于对所述回溯处理器输出的软信息进行硬判决调制,输出软信息;以及
控制电路,它与上述各单元相连,用于控制这些单元之间的联络;
其中,所述回溯处理单元包括:
有限状态机,它与路径存储器和差值存储器相连,用于产生回溯时幸存路径上的状态和并行路径上的状态,并将幸存路径上的状态提供给路径存储器和差值存储器;
软回溯功能单元,它与路径存储器、差值存储器以及有限状态机相连,用于进行维特比回溯,以及多条并行路径的同时并行回溯。
在上述解码器中,软回溯功能单元可以同时进行维特比回溯和多条并行路径的同时并行回溯,致使整个解码的回溯时间就是维特比的回溯时间。
由于本发明采用并行回溯方法,并且软回溯长度L′等于L+L′,所以整个回溯时间就是维特比回溯时间。既提高了解码速度,又获得了Turbo码解码所需的精度。例如,在cdma 2000和WCDMA提案下的实例中,同等条件下本发明的解码速率比上述中国专利申请的解码方法快约38倍,并且电路规模亦有所减小。
附图说明
图1是一种Turbo码编码器的结构;
图2是Turbo码编码器中RSC子编码器的结构图;
图3是Turbo码解码器的结构图;
图4是图3所示Turbo码解码器中软输入软输出解码器的结构图。
图5是依照本发明同时进行维特比回溯和软信息并行回溯的原理示意图。
图6是有限状态机的结构图。
图7是有限状态机的状态转移网格图。
图8a是结构图,示出了与软回溯功能单元中软回溯部分的多条路径对应的处理器。
图8b是流程图,示出了图8a所示处理器的工作过程。
图9示出了软回溯功能单元中输出部分的并行回溯多点输出结构。
图10示出了多点输出时选择器的结构。
具体实施方式
以下结合附图,描述本发明较佳实施例。
首先,描述本发明用于软输入软输出解码器的解码方法。
如前所述,本发明是对发明专利申请第99125740.5号的改进,因此本发明的解码方法仍具有以下特点:
第一,并行回溯路径的长度L′足够大;
第二,进行多条并行路径回溯,其方法在第二个网格图内的幸存路径上,对每一节点都进行并行路径的回溯,在并行路径回溯到L+L′点时,如果并行回溯的硬判决S′L+L′与幸存路径的硬判决SL+L′不同,就做公式(1)的更新;
第三,通过增加有限规模存储器的开销,在基于第一网格图和第二网格图的一次窗口回溯中,输出n个软信息值和硬判决。
为了提高解码速率,本发明提出在上述第二项所述的软信息回溯过程中,采用2m条路径同时回溯的方法。
在本发明的一个较佳实施例中,软输入软输出解码方法基于软输出维特比算法,它同时进行维特比回溯和多条并行路径的回溯,即软回溯的长度L′等于L′+L,L=0。具体地说:首先,对一窗内所有节点的每个状态计算分支度量值、每个状态的累计度量值以及累计度量值之差。然后,通过加比选单元,计算出维特比回溯起点的具有最大累计度量值的状态。从该状态开始同时进行维特比回溯和多条并行路径的并行回溯,找到幸存路径和幸存路径上各节点的硬判决,以及并行路径和并行路径上各个节点的硬判决。当回溯到L′-n点时,在L′-n到L′这段长度内输出n个软信息和硬判决,其中窗长L′减去n约等于Turbo码编码器内卷积码子编码器的移位寄存器个数m的10倍。当对节点k的软信息回溯结束后,根据公式llr=min(llr′,Mdiffk),更新n个软信息寄存器内的信息,其中llr是当前更新后的软信息值,llr′是前一时刻保留的软信息值,而Mdiffk是节点k处幸存路径上硬判决Sk之累计路径度量值与判决1-Sk之累计路径度量值的差。然后从节点k-1开始软信息回溯。当对节点k-1的软信息回溯结束后,再次根据公式llr=min(llr′,Mdiffk-1),对n个软信息寄存器内的信息更新。如此反复,一直回溯到L′,最后输出软信息和硬判决。对输出的软信息进行硬判决调制,获得软输出,即计算:
Soft_Output=(2*Hard_Output-1)*llr,
其中Soft_Output是软输出;Hard_Output是硬判决,取+1或0;而llr是输出的软信息。当硬判决Hard_Output=0时,Soft_Output=-llr,而当硬判决Hard_Output=1时,Soft_Output=+llr。
如果需要,可进行归一化计算,即计算Z=Soft_Output-X-Z′,作为下一次迭代输入的外赋信息,其中Soft_Output是软输出,X是输入信息,Z′是先验信息。
图4示出了实施本发明的软输入软输出解码器的结构图。如该图所示,分支路径度量计算单元(BMU)41计算从某个节点的某个状态到达下个节点两种可能状态的路径度量值,并将计算结果送入加比选计算单元(ACS)42。加比选计算单元42将分支路径度量值与先前路径上的累计路径度量值相加,计算出当前状态的两个累计路径度量值及其差的绝对值,对计算得到的两个累计路径度量值进行比较,从中选择较大的累计路径度量值及其相应的路径,然后将选择结果分别输入状态度量存储器(SMM)45和路径存储器43,并将当前状态上计算得到的两个累计路径度量值之差的绝对值输入差值存储器46中。回溯处理器47依照本发明,根据路径存储器43提供的路径PB[k]以及差值存储器46提供的累计路径度量值之差Mdiff[k+1],同时进行维特比回溯运算和多条并行路径之并行回溯的运算,输出软信息llr和硬判决。符号调制48对回溯处理器47输出的软信息进行硬判决调制,也称符号调制。具体地说,若硬判决输入为1,则对软信息乘正号,若硬判决输入为0,则对软信息乘负号。由此获得软输出。这时,如果解码还未达到预定的精度,则要作归一化49计算,作为下一级迭代输入的外赋信息。
另外,在该软输入软输出解码器中,还包括控制器44,它用于控制上述各部件之间的联络。
下面参照图5,举例描述软输入软输出解码器32和33中回溯处理器47的结构。
图5是依照本发明同时进行维特比回溯和软信息并行回溯的原理示意图。由图可见,回溯处理器47包括有限状态机(FSM)51和软回溯功能单元52。有限状态机用来产生回溯时幸存路径上的状态S[k]和并行路径上的状态C[k](k是节点号),并将幸存路径上的状态S[k]提供给差值存储器46和路径存储器43,而将并行路径上的状态C[k]提供给软回溯功能单元52。差值存储器46根据输入的状态号S[k]向软回溯功能单元52提供k节点至k+1节点的累计度量值之差的绝对值Mdiff[k+1]。路径存储器43根据输入的状态号S[k]向软回溯功能单元52提供路径信息PB[k]。软回溯功能单元52根据有限状态机51的输入C[k]、路径存储器43的输入PB[k]以及差值存储器46的输入Mdiff[k+1],进行节点k至节点k-1的幸存路径回溯和并存路径回溯。
图6例示了有限状态机51的电路结构。在图6中,有限状态机51包括多个移位寄存器61,其中移位寄存器S0、S1和S2用于存储幸存路径的状态,移位寄存器C0、C1和C2用于存储并行路径的状态。在Load-Mlstate起始信号作用下,选通器62a、62b和62c首先选择第一输入端s0、s1和s2输入的初始值,并将其分别提供给相应的寄存器S0、S1和S2。然后,在系统时钟信号Sys_Clk的控制下,三个移位寄存器S0、S1和S2进行移位。在移位过程中,路径信息prev_bit与寄存器S0和S1的输出作模2加法,然后将结果输入选通器62a的第二输入端。这时,选通器62a、62b和62c将选通其第二输入端的信号,并且将它们提供给相应的移位寄存器S0、S1和S2。移位寄存器S0、S1和S2的移位过程即是幸存路径的状态回溯过程。
图7示出了回溯过程中的状态转移规律。在该图中,用数字0-7表示三个移位寄存器的8个二进制状态000-111。这里,图6中S0移位寄存器的内容对应低位,S2的内容对应高位。图7中,实线表示路径信息prev_bit输入为1时对应的转移,虚线表示路径信息prev_bit输入为0时对应的转移。
另一方面,在图6中,输入选通器62a第二输入端的信号还经非门63提供给移位寄存器C0,而移位寄存器C1和C2的输入信号与移位寄存器S1和S2中的相同。由图可见,上下两排移位寄存器所表示的状态只有S0与C0是不同,所以移位寄存器C0、C1和C2的移位过程是并行路径的状态回溯过程。
接下来,描述软回溯功能单元52的组成结构。由图5可见,软回溯功能单元52由处理部分522、反馈部分524和输出部分526组成。图5画出了8条路径同时进行从节点k到节点k-1的软回溯。
图8a示出了与图5中8条路径Path 0-Path 7对应的八路处理器。由于八路处理器具有相同的结构和功能,所以这里仅以对应Path 7的处理通路为例进行描述。比较器81具有三个输入端,分别输入来自差值存储器46的累计路径度量差值Mdiff[k+1][S(k+1)],前一时刻计算出的、由MUX反馈回来的值Tmp_q37和Tmp_q77,以及状态号C[k]。其中状态号C[K]用作置位使能信号。比较器81对C[k]值进行判断。如果C[k]=7,表明该路径上有一条并行路径刚刚参与进来,于是将Mdiff[k+1][7]值与Tmp_q37和Tmp_q77比较,选择最小值,送入锁存器82。如果C[k]≠7,表明该路径上没有并行路径参与,因此将Mdiff置位为最大值0x3F,使比较时忽略Mdiff[k+1][7]的作用,然后将Tmp_q37和Tmp_q77的较小值送入锁存器82。锁存器82的输出端分别与二个选通器83的第一输入端相连。选通器83的第二输入端输入常数0x3F,该值表示此种情况下的最大值。选通器83的选通控制信号是来自路径存储器的路径信息PB[k][7]。选通器83根据PB[k][7]的值输出相应的Tmp_q76和Tmp_q77。具体地说,如果PB[k][7]=0,参照图7的状态转移关系可知,回溯的前一时刻对应于状态6。于是,将锁存器82中的值传递给状态6,即赋值予Tmp_q76。同时,将与状态7对应的Tmp_q77置位为最大值。如果PB[k][7]=1,则表示回溯的前一时刻对应于状态7。于是,将锁存器82中的值传递给状态7,即赋值予Tmp_q77。同时,将与状态6对应的Tmp_q76置位为最大值。选通器83的输出Tmp_q76和Tmp_q77通过软回溯功能单元52中的MUX,分别反馈到处理通路Path 6之比较器的输入端,和处理通路Path 7之比较器的输入端。
图8b示出上述处理器的工作流程。仍以处理通路Path 7为例。在步骤S1,输入前一时刻计算出的值Tmp_q37和Tmp_q77,以及来自差值存储器的Mdiff[k+1][7]。在步骤S2,对C[k]进行判断。如果C[k]=7,则进至步骤S3,比较Mdiff、Tmp_q37和Tmp_q77。如果C[k]≠7,则先将Mdiff置位为最大值0x3F(步骤S3),然后再进行步骤S4的比较。在步骤S5,比较器81将最小值提供给PMdiff_q7锁存器。在步骤S6,对路径信息PB[k][7]进行判断。如果PB[k][7]=0,则将Tmp_q76置为PMdiff_q7,将Tmp_q77置为0x3F(步骤S7)。如果PB[k][7]=1,则将Tmp_q77置为PMdiff_q7,将Tmp_q76置为0x3F。最后,选通器的输出Tmp_q76和Tmp_q77通过软回溯功能单元52中的MUX,分别反馈到处理通路Path 6和Path7之比较器的输入端。
软回溯功能单元52中其它处理通路Path 0-Path 6具有同样的处理器结构和功能。它们与Path 7的处理器一起,同时完成从节点k到节点k-1的软回溯。
接下来,描述软回溯功能单元52中的输出部分526。由于在处理部分524中采用并行回溯,所以很容易实现多点输出。图9给出了多点输出的结构。输出部分526包括选择器91和比较器92。选择器91的输入信息包括最大值0x3F、来自处理部分522中Path 0-Path 7锁存器的值,当前的Mdiff值,幸存路径状态号S[k]和路径信息PB[k],用于判定并行路径在输出点的硬判决否与幸存路径的硬判决相同,以便决定是否执行公式llr=min(llr′,Mdiffk)的替换。选择器91将k节点下并行回溯产生的各状态下的Mdiff值提供给比较器92。比较器92比较这八个输入值,输出最小值。运用多点输出时,如果节点已在输出范围内,则使能信号Output_en发出指令,输出该节点对应的软信息值llr。
图10例示了选择器91的详细结构。选通器101是八选一的选通器,其输入是PB[k][0]-PB[k][7],分别表示k节点上路径信息PB[k]的8个比特。幸存路径上的状态号S[k]对选通器101进行选通,使对应第S[k]个状态的路径信息PB[k][S[k]]选通。被选通的路径信息用PBS表示。3-8的地址解码器102,将对应于S[k]的DS[S[k]]设置为1,其他的DS设置为0,用以表示S[k]状态在幸存路径上。选择器91还包括八路选择线路,它们的结构和功能是类似的。选通器103是二选一选通器。第一输入信号是处理通路Path 0-Path 7锁存器相应的值PMdiff_q0-PMdiff_q7,第二输入信号是最大值0x3F。异或门104对PB[k]和PBS进行异或运算,并将运算结果作为控制信号输入选通器103。当PBS与PB[k]不等时,表明该节点上并行路径的硬判决与幸存路径的硬判决不同,需要执行公式(1)的替换。于是,异或门104输出高电平,选通器103选通第一输入信号,它对应于Path[k]里回溯后存储的软信息值。当PBS与PB[k]相等时,表明该节点上并行路径的硬判决与幸存路径的硬判决相同,不需要进行公式(1)的替换。于是,异或门104输出低电平,选通器103选通第一输入信号,即最大值0x3F。选通器105也是二选一选通器。其第一输入信号是回溯过来的Mdiff[k],第二输入信号是选通器103的输出。选通器105的控制信号是DS[k]。当DS[k]为1时,表明该节点在幸存路径上,因此将回溯过来的Mdiff[k]选通到Outk。如果DS[k]为0,则输出来自前一级的值(0x3F或Path[k]的软信息值)。
本发明用于Turbo码的解码方法是基于一种并行算法的思想而实现的。该方法在软信息回溯过程中,采用2m条路径同时回溯,并且使得维特比回溯和并行路径回溯的总回溯时间只相当于原来维特比回溯的时间。从而大大缩短了解码的时间。使用这种方法的解码器,可以达到和单纯维特比译码同样的回溯时间,同时又获得了Turbo码解码所需要的精度。
在本发明中,由于并行路径和幸存路径回溯是同时进行的,所以基于该并行结构下的第二网格图长度L′可以达到最大值,即L′=L′+L,L=0,并且不增加回溯的时间和整个解码的时延。
为了使电路规模的增加与所节约的时间之比更为合理,本发明要求2m的数值相比L′+n来说较小,这里m是RSC移位寄存器的个数,L′是软回溯长度,n是软信息寄存器的个数。例如,在cdma2000和WCDMA提案中2m=8。虽然与串行回溯的一窗单点输出相比,本发明回溯处理单元的电路规模约增加4-8倍,但与串行回溯的一窗多点输出相比,本发明回溯处理单元的电路规模大大缩小。另一方面,串行回溯约需要进行70×71/2=2485次软信息回溯,但同等条件下本发明并行结构的运算量可以减少约38倍。
当然,如果上述条件2m<L′+n不满足,为了增加解码速度,亦可以采用本发明的并行回溯方法。对本领域的熟练技术人员来说,L′<L′+L以及其它衍生变化都未脱离本发明之核心精神范围。
在具体的应用中,考虑具体电路实施器件的资源,可以选取合适的n。对于基于以上思想方法的其它器件的相同或类似设计,亦包含在本发明之权利范围内。
Claims (11)
1.一种用于Turbo码的解码方法,该方法基于软输出维特比算法,特征在于,对多条并行路径同时并行回溯,所述方法包括以下步骤:
a.对于一窗内的所有节点的每个状态都计算分支度量值、每个状态的累计度量值,以及累计度量值之差;
b.通过加比选计算出维特比回溯起点的具有最大累计度量值的状态;
c.从所述起点状态开始维特比回溯和并行路径的回溯,找到幸存路径和幸存路径上各节点的硬判决、以及并行路径和并行路径上各节点的硬判决;
d.在对某节点的软信息回溯结束后,按公式llr=min(llr′,Mdiffk),更新n个软信息寄存器内的信息,然后再从下个节点开始软信息回溯,如此重复直至窗尾L′;
e.输出软信息和硬判决;以及
f.对输出的软信息进行硬判决调制,获得软输出。
2.如权利要求1所述的方法,其特征在于,所述维特比回溯和所述多条并行路径的同时并行回溯同时进行,致使整个解码的回溯时间就是维特比的回溯时间。
3.如权利要求1或2所述的方法,其特征在于,所述输出软信息的步骤包括在回溯到L′-n点时,在L′-n到L′这段长度内输出软信息和硬判决,其中L′是软回溯长度,n是软信息寄存器的个数,n≥1的整数;
4.如权利要求3所述的方法,其特征在于,窗长L′+L减去n约等于Turbo码编码器内子编码器中寄存器个数的10倍,n是软信息寄存器的个数。
5.如权利要求1或2所述的方法,其特征在于,在所述解码方法中,接收和输出的都是软信息。
6.如权利要1或2所述的方法,其特征在于,还包括下述步骤:对经硬判决调制的所述软输出进行归一化,作为下一级迭代输入的外赋信息。
7.一种用于Turbo码的解码器,它包括:
分支度量计算单元,用于计算从某个节点的某个状态到下个节点的某个状态的分支路径度量值;
加比选计算单元,用于计算所述分支路径度量值与先前路径上的累计路径度量值之和,计算出当前状态的两个累计路径度量值及其差的绝对值,对计算得到的两个累计路径度量值进行比较,从中选择较大的累计路径度量值及其相应的路径;
路径存储单元,用于存储所述加比选计算单元选择的所述路径;
状态度量存储单元,用于存储所述加比选计算单元选择的所述累计路径度量值;
差值存储单元,用于存储所述加比选计算单元计算得到的当前状态的两个累计路径度量值之差的绝对值;
回溯处理单元,它根据来自路径存储器的路径信息以及来自差值存储器的累计路径度量值之差,进行维特比回溯运算以及多条并行路径同时并行回溯的运算,并输出软信息和硬判决;
符号调制电路,用于对所述回溯处理器输出的软信息进行硬判决调制,输出软输出;以及
控制电路,它与上述各单元相连,用于控制这些单元之间的联络;
其特征在于,所述回溯处理单元包括:
有限状态机,它与路径存储器和差值存储器相连,用于产生回溯时幸存路径上的状态和并行路径上的状态,并将幸存路径上的状态提供给路径存储器和差值存储器;
软回溯功能单元,它与路径存储器、差值存储器以及有限状态机相连,用于进行维特比回溯,以及多条并行路径的同时并行回溯。
8.如权利要求7所述的解码器,其特征在于,所述维特比回溯和所述多条并行路径的同时并行回溯同时进行,致使整个解码的回溯时间就是维特比的回溯时间。
9.如权利要求7或8所述的解码器,其特征在于,所述解码器还包括归一化单元,用于将所述软输出归一化,作为下一级迭代输入的外赋信息。
10.如权利要求7或8所述的解码器,其特征在于,所述软回溯功能单元包括:
处理部分,它包括多路处理器,分别对某个节点的多条路径进行并行软回溯;
反馈部分,它与所述处理部分相连,将所述处理部分的软回溯输出反馈到其输入端;
输出部分,它与所述处理部分相连,并包括选择器和比较器,其中所述选择器用于判断并行路径的硬判决在输出点是否与幸存路径的硬判决相同,以便决定是否进行llr=min(llr′,Mdiffk)更新,其中llr是当前更新后的软信息值,llr′是前一时刻保留的软信息值,而Mdiffk是累计路径度量值之差,并且输出对某节点并行回溯产生的各状态下的Mdiff值;所述比较器用于比较各状态的Mdiff值,将最小值作为软信息llr输出。
11.如权利要求10所述的解码器,其特征在于,所述选择器包括:
选通器,它根据幸存路径上的状态号从多个路径信息中选通与其对应的一个路径信息;
地址译码器,它根据幸存路径上的状态号将相应的DS信号设置为1,其他的DS信号设置为0;
多路选择线路,每路选择线路包括;
异或门,它对相应的路径信息和所述选通器选通的路径信息进行异或运算;
第一选通器,它根据所述异或门的运算结果,对相应的所述处理通路锁存器中的值和预定最大值进行选通,以便当并行路径的硬判决与幸存路径的硬判决不同时,第一选通器输出相应处理通路回溯后存储的软信息值;
第二选通器,它根据所述地址译码器输出的相应的DS值,对上一节点回溯获得的Mdiff值和第一选通器输出的值进行选通,以便当节点处于幸存路径上时,选通所述Mdiff值,否则选通第一选通器的输出值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB001016776A CN1147169C (zh) | 2000-01-24 | 2000-01-24 | 用于Turbo码的解码方法和解码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB001016776A CN1147169C (zh) | 2000-01-24 | 2000-01-24 | 用于Turbo码的解码方法和解码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1307432A CN1307432A (zh) | 2001-08-08 |
CN1147169C true CN1147169C (zh) | 2004-04-21 |
Family
ID=4576099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB001016776A Expired - Fee Related CN1147169C (zh) | 2000-01-24 | 2000-01-24 | 用于Turbo码的解码方法和解码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1147169C (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100426681C (zh) * | 2005-05-10 | 2008-10-15 | 华为技术有限公司 | Turbo编码方法及编码装置 |
CN1988431B (zh) * | 2005-12-21 | 2010-12-08 | 美国博通公司 | 信号处理的方法及系统 |
CN101390293B (zh) * | 2005-12-22 | 2011-06-08 | 创达特(苏州)科技有限责任公司 | 基于四阶段并行处理的vdsl2维特比代码解码器 |
US8045447B2 (en) * | 2006-02-09 | 2011-10-25 | Altair Semiconductor Ltd. | Low peak-to-average power ratio transmission in frequency-division multiple access systems |
CN101521556B (zh) * | 2008-02-28 | 2012-05-09 | 重庆无线绿洲通信技术有限公司 | 一种低复杂度的均衡方法 |
CN102404011B (zh) * | 2010-09-15 | 2015-05-20 | 中兴通讯股份有限公司 | 维特比解码实现方法及装置 |
CN102468909A (zh) * | 2010-11-09 | 2012-05-23 | 中兴通讯股份有限公司 | 一种进行软信息更新的方法及解调装置 |
CN103973319B (zh) * | 2013-02-06 | 2017-04-19 | 联想(北京)有限公司 | 全整数Turbo码迭代译码的方法和系统 |
CN106341136B (zh) * | 2015-07-08 | 2021-05-25 | 北京忆芯科技有限公司 | Ldpc解码方法及其装置 |
-
2000
- 2000-01-24 CN CNB001016776A patent/CN1147169C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1307432A (zh) | 2001-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1210872C (zh) | 减小的搜索符号估值算法 | |
CN1178399C (zh) | 高度并行最大后验概率(map)解码器 | |
CN1154236C (zh) | 纠错编码型的数字传输方法 | |
CN1155160C (zh) | 发送和接收链接码数据的方法和装置 | |
CN1168237C (zh) | 移动通信系统中的分量解码器及其方法 | |
CN1236507A (zh) | 对经卷积编码的码字解码的软判定输出解码器 | |
CN101047472A (zh) | 使用搜索深度维特比算法对咬尾卷积码的解码方法 | |
US6879267B2 (en) | Soft-output decoder with computation decision unit | |
CN1728563A (zh) | Turbo译码装置和Turbo译码方法 | |
CN1853350A (zh) | 用于移动通信系统的维特比/涡轮联合译码器 | |
CN1147169C (zh) | 用于Turbo码的解码方法和解码器 | |
CN1534879A (zh) | 级联卷积和分组编码信号的解码装置和方法 | |
CN1568577A (zh) | 特播解码装置和方法 | |
CN1731686A (zh) | 一种维特比译码器及用于维特比译码器的加比选单元电路 | |
CN1830151A (zh) | 维特比解码器 | |
CN1254121C (zh) | 特博码的解码方法 | |
CN1466818A (zh) | 基于格子的信道编码所用的解码器 | |
CN1328384A (zh) | Turbo译码器及其实现方法 | |
CN1157883C (zh) | 实现并行滑动窗最大后验概率算法的高速Turbo码译码器 | |
CN1129257C (zh) | 串行回溯的最大似然解码方法及其使用该方法的解码器 | |
CN1155161C (zh) | 用于特博码的解码器及其解码方法 | |
CN1183687C (zh) | Turbo码编码器及编码方法 | |
CN1142629C (zh) | 用于特博码的解码方法及其解码器 | |
CN1741614A (zh) | 使用冗余对视/音频和语音数据进行解码的方法和系统 | |
CN1172448C (zh) | 解码数据信号的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20040421 Termination date: 20140124 |