专利名称:用于特博码的解码器及其解码方法
技术领域:
本发明涉及无线移动通信系统中的特博(Turbo)码解码器,尤其涉及一种基于软输入软输出的维特比算法的解码器,及其解码方法。
在无线通信系统中,传输信号会因传输介质不均匀和不稳定而受到时间扩散、衰落等因素的干扰,致使接收到的比特发生随机性的差错。为此,需要通过一些纠错方法对原始信号进行编码,提高信息的传送可靠性和有效性。
卷积码是一种常用的纠错码。常见的卷积码形式是回归系统码,简称RSC码。卷积码编码器通常用(n0,k0,m)来表征。其中n0是编码器的输出比特;k0是编码器的输入比特;而m为编码器中移位寄存器的个数。编码器还可以用约束长度K来表示其特性,它等于卷积码编码器内部移位寄存器的个数m加1,用来确定区段信息比特影响的范围。图2示出的是一个(3,1,3)卷积码编码器。其约束长度为4,码率为1/3。它是cdma2000提案中的结构。如果采用WCDMA提案中的结构,那么编码器为(2,1,3),没有Y1输出,码率为1/2。
与卷积码相比,Turbo码是一种纠错能力很强的码。其编码器可以由两个或多个子编码器通过串联或并联的级联方式构成,较普遍的是使两个卷积码编码器并联。
图1是一种Turbo码编码器的结构示意图。它是cdma2000中建议的Turbo码编码器。在该图中,Turbo码编码器10包括两个上下并联的回归系统卷积码(RSC)子编码器14和16。输入信息位一路直接输入第一子编码器14,另一路通过交织器12,输入第二子编码器16。交织器的作用是对输入数据重新排序,调整权重的分布。因此,输入第二子编码器16的比特流的权重分布与第一子编码器14的不同。第一子编码器14和第二子编码器16分别对数据编码,然后将经编码的数据输入打孔器18。打孔器1 8对两个子编码器14和16输出的多路比特打孔抽样和并串转换,将数据调制到合适的码率(诸如1/2、1/3、或1/4码率等)输出。
图2例示了图1中子编码器14和16的结构。这里,Turbo码子解码器是两个(3,1,3)RSC卷积码编码器。其约束长度为4,码率为1/3。它是cdma2000提案中的结构。如果采用WCDMA提案中的结构,那么编码器为(2,1,3),没有Y1输出,码率为1/2。
由图2可见,编码器包括三个相互串联连接的移位寄存器20。每当输入端输入一位时,各移位寄存器中的内容依次向右传递。编码器还包括多个模2加法器22,它们按照一定的编码规则对输入信号和各级移位寄存器的输出信号作加法处理。在该图中,对应于一个比特的信息输入,编码器将输出三个比特,即X,Y0和Y1。X是与输入信息相同的信息位,Y0和Y1是两个校验比特。当X因信道干扰而发生误码时,Y0和Y1可用来纠错。另外,编码器还包括一个尾比特控制器24。当一帧数据输入完毕时,需要对移位寄存器20清零。这时,可以将尾比特控制器24的开关切换到下方,通过三个节拍,将三个移位寄存器20内的比特作为输入依次清零。
与卷积码编码器对应的卷积码解码器是一种通过最大似然法对用卷积码编码的码字进行译码的装置。维特比解码器属于卷积码解码器,也是迄今最成功的一种卷积码解码器。维特比解码器通过将已经确定的编码器、编码状态和接收到的码字状态进行比较,选择最接近的编码路径,来对所选路径传送的信息进行译码。
图3示出了一种维特比解码器30的结构。在该解码器中,分支度量计算单元(BMU)31根据公式(1)计算从某个节点的某个状态到达下个节点两种可能状态的分支度量值BM=K0×R0+K1×R1+K2×R2(1)其中BM是计算得到的分支度量值;K0,K1和K2分别是对图2卷积码编码器输出的信息位X以及两个校验比特Y0和Y1的调制结果(0的调制结果是-1,1的调制结果是+1);R0、R1和R2分别对应于K0、K1和K2经信道传输后接收到的受噪声影响的信息。然后,分支度量计算单元31将计算结果送入加比选计算单元(ACS)32。ACS单元32包括加比选计算子单元321,归一化运算单元322和最大状态度量检测单元323。对于某个节点的每个状态,ACS子单元321将分支度量值与先前路径上的累计路径度量值相加,计算出相应的两个累计路径度量值;对计算得到的两个累计路径度量值进行比较;并且从中选择较大的累计路径度量值。ACS子单元321将选择结果分别输入最大状态度量检测单元323和归一化运算单元322。最大状态度量检测单元323检测所有累计度量值中具有最大值的那个累计度量值。为了防止溢出,归一化运算单元322对累计度量值作归一化处理,即把ACS子单元321输出的各个状态的累计度量值减去某个值,最好是把每个累计度量值减去最大状态度量检测单元323检测到的最大累计度量值。然后,将归一化后的累计度量值存储到状态度量值存储器(SMM)35中,以便在对下一节点作加比选计算时提供给ACS单元32。回溯处理器37根据最大状态度量检测单元323的结果做回溯处理,并将回溯处理所得到的路径放在路径存储器33中。
用于Turbo码的解码器采用递归迭代方式。根据不同的译码算法,主要分为最大后验概率(MAP)译码算法和最大似然法(SOVA)译码算法。图4例示了一种Turbo码解码器40的结构。它使用SOVA译码算法。首先,解打孔装置41对接收信号解打孔,它相当于图1所示Turbo编码器10中打孔器18的逆操作。例如,对于(3,1,3)子编码器的情况,解打孔装置41要对接收信息进行串并转换,并通过对打孔器18打掉的信息位补零,将三路信息恢复成六路。在解打孔装置41输出的信号中,对应于第一子编码器14之编码结果的三路信息R0、R1和R2输入第一软输入软输出(SISO)解码器42,对应于第二子编码器16之编码结果的三路信息R0′、R1′和R2′输入第二软输入软输出解码器43。除此之外,为了提高SISO解码器的解码精度,每个解码器42和43还需要输入一个先验信息Z或Z′。先验信息Z的初始值可以设置为零。具体地说,第一SISO解码器42对第一子编码器14的编码结果解码,除输出软信息之外,还输出一附加的外赋信息。这些输出信息经交织器44交织后,作为先验信息Z′输入第二SISO解码器43。第二SISO解码器43对第二子编码器16的编码结果解码,输出相应的软信息和外赋信息。然后,这些输出信息经解交织器46解交织,还原到交织前的顺序,并作为先验信息Z输入第一SISO解码器42。如此反复迭代,解码精度越来越高,误码率越来越低。经过多次迭代后,如果认为达到了精度要求,则输入解交织器47进行解交织,还原交织前的顺序。由于解交织器的输出是一些表示概率的带符号的数(例如,0.8、-1.2、5.5等等),所以需要用判决器48对解交织后的信息作硬判决。当信息大于0时,判决器输出1;当信息小于0时,判决器输出0。经解码后得到的信息不会等于0。最后,判决器输出解码结果,恢复原来的信息X。
对于图4中的每个SISO解码器42和43,图5例示了其内部结构。如该图所示,分支度量计算单元(BMU)51根据公式(2)计算从某个节点的某个状态到达下个节点两种可能状态的分支度量值BM=K0×R0+K1×R1+K2×R2±Z/2(2)其中BM是计算得到的分支度量值;K0,K1和K2分别是对图2卷积码编码器输出的信息位X以及两个校验比特Y0和Y1的调制结果;R0、R1和R2分别对应于K0、K1和K2经信道传输后接收到的受噪声影响的信息;Z是先验信息。然后,BMU单元51将计算结果送入加比选计算单元(ACS)52。ACS单元52将分支度量值与先前路径上的累计路径度量值相加,计算出当前状态的两个累计路径度量值及其差的绝对值,对计算得到的两个累计路径度量值进行比较,从中选择较大的累计路径度量值及其相应的路径,然后将选择结果分别输入状态度量存储器(SMM)55和路径存储器53,并将当前状态上计算得到的两个累计路径度量值之差的绝对值输入差值存储器56中。回溯处理器57,根据路径存储器53提供的路径PB[k]以及差值存储器56提供的累计路径度量值之差Mdiff[k+1],进行维特比回溯运算和软信息回溯运算,输出软信息11r和硬判决。符号调制58对回溯处理器57输出的软信息进行硬判决调制,也称符号调制。具体地说,若硬判决输入为1,则对软信息乘正号,若硬判决输入为0,则对软信息乘负号。由此获得软输出。这时,如果解码还未达到预定的精度,则要作归一化59计算,作为下一级迭代输入的外赋信息。另外,在该软输入软输出解码器中,还包括控制器54,它用于控制上述各部件之间的联络。
比较图3所示的维特比解码器和图5所示的SOVA解码器,不难发现,SOVA译码算法比维特比译码算法复杂得多。具体地说,对比BMU单元31和51,SOVA解码器的计算公式(2)比维特比解码器的计算公式(1)多了一项附加项±Z/2。用电路实现时,该项除法运算会带来量化误差。对比ACS单元32和52,SOVA解码器相比维特比解码器还要多计算每个状态的两个累计路径度量值之差的绝对值Mdiff。
在现有技术中,BMU单元和ACS单元都是针对维特比译码算法的。这种基于维特比译码的BMU和ACS单元结构不能对SOVA译码算法中的附加项Z/2、软信息和归一化等作特别的优化处理。
因此,需要对维特比解码器的BMU和ACS单元进行改进,使其消除附加项Z/2带来的量化误差,并且降低计算所需的时钟周期,以满足SOVA译码的高速要求。
本发明的一个目的是,提供一种用于Turbo码的解码器,它能够减少结构单元、并且消除附加项Z/2带来的量化误差。
本发明的另一个目的是,提供一种用于Turbo码的解码器,它能够减少结构单元、消除附加项Z/2带来的量化误差,并且降低时钟周期。
本发明的再一个目的是,提供一种用于Turbo码的解码方法,它能够消除附加项Z/2带来的量化误差,且降低时钟周期。
本发明的又一个目的是,提供一种用于Turbo码的解码方法,它能够减少结构单元、消除附加项Z/2带来的量化误差,并且降低时钟周期。
为了实现上述目的,依照本发明的一个方面,提供了一种用于Turbo码的解码器,它包括分支度量计算单元,用于计算从某个节点的某个状态到下个节点的某个状态的分支路径度量值;加比选计算单元,它包括加比选计算子单元,用于对多个分支度量值进行累加、比较和选择操作,计算出各状态下的累计度量值、累计度量值之差的绝对值,并选择路径信息;归一化运算单元,用于接收来自加比选子单元的各状态下的累计度量值,并对累计度量值进行归一化运算;以及最大状态度量检测单元,用于比较经归一化的累计度量值,从中选出具有最大累计度量值的最大似然状态,以便提供回溯起点;路径存储单元,用于存储所述加比选计算单元提供的所述路径信息;
状态度量存储单元,用于存储所述加比选计算单元提供的所述累计路径度量值;差值存储单元,用于存储所述加比选计算单元计算得到的当前状态的两个累计路径度量值之差的绝对值;回溯处理单元,根据所述最大似然状态,进行维特比回溯运算,并且根据来自路径存储器的路径信息以及来自差值存储器的累计路径度量值之差,进行多条并行路径同时并行回溯的运算,并输出软信息和硬判决;符号调制电路,用于对所述回溯处理器输出的软信息进行硬判决调制,输出软输出;以及控制电路,它与上述各单元相连,用于控制这些单元之间的联络;另外,所述分支度量计算单元用于计算i个分支度量值,2n-1≤i<2n+1,n为Turbo码子编码器输入一个比特时所输出的比特数,其中所述i个分支度量值通过求相反数运算以及恢复操作可以推算出所述加比选计算子单元所需要的其余分支度量值,所述分支度量计算单元将所述i个分支度量值以及先验信息Z的最低位提供给所述加比选计算单元;所述加比选计算单元还包括处理单元,用于接收所述分支度量计算单元提供的所述i个分支度量值和所述先验信息Z的最低位,根据所述Z的最低位,推算所述i个分支度量值的相反数,获得2n-i个分支度量值,并将所述推算得到的和所述接收到的一共2n个分支度量值提供给所述加比选计算子单元;所述加比选计算子单元在进行所述加比选操作之前,将接收到的所述2n个分支度量值恢复到实际运算需要的数目。
依照本发明的另一方面,提供了一种用于Turbo码解码器的解码方法,该方法它包括下列步骤计算从某个节点的某个状态到下个节点的某个状态的i个分支路径度量值,2n-1≤i<2n+1,n为Turbo码子解码器输入一个比特时所输出的比特数,其中所述i个分支度量值通过求相反数运算以及恢复操作可以推算出加比选操作过程中实际需要的其余分支度量值;
提供先验信息Z的最低位;根据所述Z的最低位,推算所述i个分支度量值的相反数,获得2n-i个分支度量值;根据所述计算步骤获得的i个分支度量值和所述推算步骤获得的2n-i个分支度量值,恢复实际运算需要的所有分支度量值;对所述恢复步骤获得的所有分支度量值进行累加、比较和选择操作,计算出各状态下的累计度量值、累计度量值之差的绝对值,并且选择路径信息;对累计度量值进行归一化运算;比较经归一化的累计度量值,从中选出具有最大累计度量值的最大似然状态;存储所述路径信息、所述累计路径度量值,以及当前状态的两个累计路径度量值之差的绝对值;根据所述最大似然状态,进行维特比回溯运算,并且根据所述路径信息以及所述累计路径度量值之差,进行多条并行路径同时并行回溯的运算,并输出软信息和硬判决;对所述输出的软信息进行硬判决调制,输出软输出。
对于上述解码器,在cdma2000提案下,n=3,分支度量计算单元计算4个分支度量值。例如BMa=R0+R1+R2+Z/2,BMb=R0-R1+R2+Z/2,BMc=R0-R1-R2+Z/2,BMd=R0+R1-R2+Z/2,其中,BMa-BMd是计算得到的分支度量值,R0、R1和R2分别是解码器接收到的信息,Z是先验信息。
而在WCDMA提案下,n=2,分支度量计算单元计算2个分支度量值。例如
BMa=R0+R1+Z/2,BMb=R0-R1+Z/2。
其中,BMa和BMb是计算得到的分支度量值,R0、R1分别是解码器接收到的信息,Z是先验信息。
在本发明的一个实施例中,归一化运算单元包括多条并行的归一化运算电路,每条归一化运算电路都包括一个减法器和一个状态度量寄存器。其中减法器用于将相应状态下的当前累计度量值减去前一时刻存储在任何一个状态度量寄存器中的值,而状态度量寄存器用于存储经归一化的累计度量值。
在本发明的另一个实施例中,归一化运算单元包含多个减法器和多个状态度量寄存器,其中减法器用于将相应状态下的累计度量值减去当前时刻的任何一个累计度量值,而状态度量寄存器用于存储经归一化的累计度量值。
在本发明的又一个实施例中,最大状态度量检测单元是一比较器。
在本发明中,BMU单元利用状态转移特征,精减原来需要计算的分支度量值的数目,并且提供先验信息Z的最低位。ACS单元利用BMU单元提供的经精减的分支度量值和Z的最低位,对分支度量计算式中的符号位求反或求补,从而推导出其余的分支度量值。ACS单元使用并行结构计算累计度量值、Mdiff信息和路径信息,降低了时钟周期。另外,ACS单元通过将各状态下的累计度量值减去前一时刻或当前时刻的某一累计度量值,进行归一化运算,从而缩小了电路规模,减少了时钟周期。
下面结合附图,描述本发明的较佳实施例。附图有图1是一种Turbo码编码器的结构;图2是Turbo码编码器中RSC子编码器的结构图;图3是维特比解码器的结构图。
图4是Turbo码解码器的结构图;图5是图4所示Turbo码解码器中SISO解码器的结构图。
图6A是一电路图,例示了依照本发明第一实施例的分支度量计算单元。
图6B是一电路图,例示了依照本发明第二实施例的分支度量计算单元。
图7A是一电路图,例示了依照本发明第三实施例的加比选计算单元。
图7B是一电路图,例示了依照本发明第四实施例的加比选计算单元。
在详细描述本发明的分支度量计算单元和加比选计算单元之前,首先分析图2所示子编码器的状态转换情况。
列表中说明状态的数字0-7分别对应于三个移位寄存器的8个二进制状态000-111;K0,K1和K2分别是对编码器输出的信息位X以及两个校验比特Y0和Y1的调制结果。例如,如图2所示,如果当前状态为0,输入信息为0,那么状态转移到0。编码器相应地输出X=0,Y1=0,Y2=0。由于K0、K1和K2是X、Y1和Y2的调制结果,所以它们分别为K0=-1,K1=-1,K2=-1。
首先,分析表中各行之间的关系。对于当前状态0和1,当输入相同的路径信息时,其相应的(K0,K1,K2)是相同的。具体地说,当输入为0时,两者的(K0,K1,K2)皆为(-1,-1,-1),而输入为1时,两者的(K0,K1,K2)皆为(1,1,1)。对于当前状态2和3、4和5,以及6和7,都是如此。因此,在16组(K0,K1,K2)中,有一半是重复的。分支度量值的计算可以减少一半。
其次,分析表中各列之间的关系。同一当前状态由于输入不同的路径信息(0或1),转移到不同的状态,但对应的(K0,K1,K2)互为相反数。例如,当输入为0时,状态0转移到状态0,这时K0,K1,K2分别为(-1,-1,-1)。当输入为1时,状态0转移到状态4,这时K0,K1,K2分别为(1,1,1)。这两组数字互为相反数。对于其余的当前状态1-7,情况皆是如此。因此,在上述减半后的8组(K0,K1,K2)中,一半可以通过另一半导出,分支度量值的计算又可以减少一半。
最后,分析Z/2的符号位。由于规定当输入为0时,取-Z/2,当输入为1时,取+Z/2,所以Z/2的符号与K0的符号相同。因此,对于路径信息0和1,不仅相应的两组数据(K0,K1,K2)互为相反数,而且相应的Z/2符号位也互为相反数。
综合上述分析可见,对于16个分支度量值,实际只要计算4个分支度量值就可以了。这4个分支度量值的系数可以是(1,1,1,1),(1,-1,1,1),(1,1,-1,1),(1,-1,-1,1)。其他的分支度量值可以通过求相反数来获得,后面再作详细描述。
图6A是一电路图,例示了依照本发明第一实施例的BMU单元51。该BMU单元是针对图2所示cdma2000提案下、码率为1/3的RSC子编码器构造的。如图所示,BMU单元51包括四个加法器61和三个减法器62。其连接关系使得输入信号R0,R1,R2和Z在经过两个时钟节拍后,形成四个分支度量值BMa、BMb、BMc、BMd。不难看出,四个分支度量值分别为BMa=R0+R1+R2+Z/2,BMb=R0-R1+R2+Z/2,BMc=R0-R1-R2+Z/2,BMd=R0+R1-R2+Z/2,它们的系数与上述分析得到的四个分支度量值的系数一致。BMU单元51将计算得到的四个分支度量值BMa、BMb、BMc、BMd以及Z的最低位提供给下一级ACS单元。
图6B也是一电路图,例示了依照本发明第二实施例的BMU单元51。该BMU单元是针对WCDMA提案下、码率为1/2的RSC子编码器构造的。由于WCDMA提案下编码器没有Y1输出,所以本实施例的BMU单元只需要计算二个分支度量值。如图6B所示,BMU单元51包括二个加法器61和一个减法器62。其连接关系使得输入信号R0,R1和Z在经过两个时钟节拍后,形成二个分支度量值BMa和BMb。这二个分支度量值分别为BMa=R0+R1+Z/2,BMb=R0-R1+Z/2,它们的系数对应于(1,1,1)和(1,-1,1)。BMU单元51将计算得到的二个分支度量值BMa和BMb以及Z的最低位提供给下一级ACS单元。
由于BMU单元减少了实际计算的分支度量值的数目,所以ACS单元在进行加比选计算之前,必须先根据上一级BMU单元提供的分支度量值,推算出被精减掉的分支度量值。由于需要推算的分支度量值的系数与已获得分支度量值的系数互为相反数,所以很容易想到通过求补运算来求其余的分支度量值。
但是,需要注意的是,分支度量计算式(2)中包含附加项+Z/2或-Z/2。通常,计算Z/2可以通过使Z右移一位来实现,高位用符号位扩展。这种移位方法在电路中只要采取错位连接就可以了。然而,在本发明技术方案中,如果通过对Z移位然后求补来获得[-(Z/2)],则会出现问题。
SOVA解码器要求ACS单元计算累计度量值之差的绝对值Mdiff。具体地说,ACS单元在计算两个累计度量值之差时,会涉及这样的运算Z/2-[-(Z/2)]。如果Z是偶数,那么按照上述移位求补的方式计算,结果不会有误差。但如果Z是一个奇数,那么与浮点数运算相比,右移操作会使Z/2损失0.5。例如Z=1,若按右移方式计算,Z/2=0。而计算减数[-(Z/2)]时,由于除以2在求补码之前,所以-(Z/2)=0。这样,Z/2-[-(Z/2)]=0。但是,若按浮点数运算,Z/2=0.5,-(Z/2)]=-0.5,结果应该是Z/2-[-(Z/2)]=1。这就产生了误差。
为此,对于Z为奇数的情况,本发明采用求反运算方法来推算。由于奇数Z在除以2以后,损失0.5,而对Z/2取反后,-(Z/2)也损失0.5,所以通过求反运算计算Z/2-[-(Z/2)]不会给ACS模块中分支度量值的比较造成误差。仍以Z=1为例,经过右移操作,Z/2=0。由于0的反码是-1,所以[-(Z/2)]=-1,Z/2-[-(Z/2)]=1。这与浮点数的运算结果相同,没有造成定点数据的损失。但是如果对偶数Z也采用求反运算,那么因为Z/2没有损失,对Z/2取反后,-(Z/2)反而会损失1,所以应该仍旧使用求补运算。
为了根据Z的奇偶性采用不同的运算方式,本发明的BMU单元将Z的最低位提供给ACS单元。ASC单元判断Z的最低位是0还是1,然后根据判断结果决定用求补或求反来计算分支度量值BM的相反数-BM。
另外,在电路设计上求反运算比求补运算要简单,所以采用这种方法可以减少ACS单元的时钟周期。
图7A是一电路图,例示了依照本发明第三实施例的ACS单元52。在cdma2000提案中,ACS单元52包括处理单元520、ACS子单元521、归一化运算单元522和最大状态度量检测单元523。
处理单元520接收上一级BMU单元51提供的4个分支度量值BMa、BMb、BMc和BMd以及Z的最低位。处理单元520除了将BMa、BMb、BMc和BMd本身直接输出给ACS子单元521外,还根据Z的最低位求BMa、BMb、BMc和BMd的相反数,推算另外四个分支度量值。具体地说,当控制信号Z的最低位是0时,推算单元71通过求补推算BMa、BMb、BMc和BMd的相反数。当控制信号Z的最低位是1时,推算单元71通过求反推算BMa、BMb、BMc和BMd的相反数。这里,求补运算和求反运算的实现电路可以根据具体的设计思想来构造。推算得到的四个分支度量值也提供给ACS子单元521。
ACS子单元521由8个并行的ACS分支单元ACS0-ACS7组成。首先,这8个ACS分支单元ACS0-ACS7将接收到的8个分支度量值恢复成16个分支度量。然后,计算相应的累计度量值SM0~SM7、路径信息Pb0~Pb7和累计度量值之差的绝对值Mdiffa~Mdiffh。然后,将累计度量值SM0~SM7提供给归一化运算单元522。还将路径Pb0-Pb7提供给路径存储器53,将累计度量值之差的绝对值Mdiffa-Mdiffh提供给差值存储器56(参见图5)。
由于SOVA算法中,累计度量值是带符号的数,因此在做归一化时不需要找累计度量值中的最大值或最小值。尽管理论上是将各状态下的累计度量值减去最大值和最小值的平均值,使得所有累计度量值均匀分布在正负区间内,但在本发明的较佳实施例中,归一化运算是将各状态下的累计度量值减去上一时刻的任何一个累计度量值。任意减去上一时刻的某个累计度量值,可以节省一般维特比解码器中在归一化运算时为求最大累计度量值而增加的电路规模和时钟周期。由图7A可见,本实施例的归一化运算只需要一个减法的时钟周期。具体地说,归一化运算单元522包括8条并行的归一化运算电路,每条电路包括一个减法器73和一个状态度量寄存器74。减法器73是二输入减法器,它将各状态下当前时刻的累计度量值减去状态度量寄存器74a在前一时刻存储的值。然后,将结果分别存储到相应的状态度量寄存器74a-74h中。
最大状态度量检测单元523由比较器75构成,它对存储在状态度量寄存器74a-74h中的内容SM0-SM7进行比较,从中选出具有最大累计度量值的那个状态,即最大似然状态,以便作为回溯的起始状态提供给回溯处理器。
上述归一化方法还可以进一步简化。图7B例示了依照本发明第四实施例的加比选计算单元52的电路图。在该实施例中,除了归一化运算单元522之外,其余部件都与第三实施例相同。由图7B可见,这里的归一化运算是将各状态下的累计度量值减去当前时刻的累计度量值SM0。这样可以省去状态度量寄存器74a和一路相应的减法器73a。与第三实施例相比,电路规模进一步缩小,而时钟周期没有增加。
综上所述,利用本发明的解码器的解码方法,能够减少结构单元,减少时钟周期,并且消除了附加项Z/2带来的量化误差。例如,对于cdma2000提案,BMU单元原本需要计算16个分支度量值,通过精简可以减少到4个分支度量值。对于WCDMA提案,BMU单元原来需要计算的16个分支度量值可以精简到2个。ACS单元根据BMU提供的4个或2个分支度量值和先验信息Z的最低位,对分支度量计算式中的符号位求反或求补,从而恢复到16个分支度量值,并消除了SOVA译码中先验信号Z/2带来的量化误差。在ACS单元的归一化步骤中,将各状态下的累计度量值减去前一时刻或当前时刻的某一累计度量值,减少了时钟周期和电路规模。
虽然本发明的实施例基于cdma2000和WCDMA提案中的Turbo码编码器及其RSC子编码器的解码方法,但是本发明所阐述的思想和电路结构在其他方式下的衍生变化亦属于本申请发明之权利保护范围之内。
在第一实施例中,BMU单元被设计成用于计算符号位为(1,1,1,1),(1,-1,1,1),(1,1,-1,1),(1,-1,-1,1)的分支度量值。但本发明不限于此。还可以将BMU单元设计成用于计算符号位为(-1,-1,-1,-1),(-1,1,-1,-1),(-1,-1,1,-1),(-1,1,1,-1)的分支度量值,或者任何四个可以作为推算基础的分支度量值。
在第二实施例中,BMU单元被设计成用于计算符号位为(1,1,1)和(1,-1,1)的分支度量值。但本发明不限于此。还可以将BMU单元设计成用于计算符号位为(-1,-1,-1)和(-1,1,-1)的分支度量值,或者任何二个可以作为推算基础的分支度量值。
在第三实施例中,ASC计算单元中的归一化运算是将各累计度量值皆减去状态度量寄存器74a在前一时刻存储的值。但本发明不限于此。归一化运算可以将各累计度量值皆减去状态度量寄存器74a-74h中的任何一个在前一时刻存储的值。
在第四实施例中,ASC计算单元中的归一化运算是将各状态下的累计度量值皆减去前一时刻的累计度量值SM0。但本发明不限于此。归一化运算可以将各状态下的累计度量值皆减去当前时刻的任何一个累计度量值SM0-SM7。
权利要求
1.一种用于Turbo码的解码器,它包括分支度量计算单元,用于计算从某个节点的某个状态到下个节点的某个状态的分支路径度量值;加比选计算单元,它包括加比选计算子单元,用于对多个分支度量值进行累加、比较和选择操作,计算出各状态下的累计度量值、累计度量值之差的绝对值,并选择路径信息;归一化运算单元,用于接收来自加比选子单元的各状态下的累计度量值,并对累计度量值进行归一化运算;以及最大状态度量检测单元,用于比较经归一化的累计度量值,从中选出具有最大累计度量值的最大似然状态,以便提供回溯起点;路径存储单元,用于存储所述加比选计算单元提供的所述路径信息;状态度量存储单元,用于存储所述加比选计算单元提供的所述累计路径度量值;差值存储单元,用于存储所述加比选计算单元计算得到的当前状态的两个累计路径度量值之差的绝对值;回溯处理单元,根据所述最大似然状态,进行维特比回溯运算,并且根据来自路径存储器的路径信息以及来自差值存储器的累计路径度量值之差,进行多条并行路径同时并行回溯的运算,并输出软信息和硬判决;符号调制电路,用于对所述回溯处理器输出的软信息进行硬判决调制,输出软输出;以及控制电路,它与上述各单元相连,用于控制这些单元之间的联络;其特征在于,所述分支度量计算单元用于计算i个分支度量值,2n-1≤i<2n+1,n为Turbo码子编码器输入一个比特时所输出的比特数,其中所述i个分支度量值通过求相反数运算以及恢复操作可以推算出所述加比选计算子单元所需要的其余分支度量值,所述分支度量计算单元将所述i个分支度量值以及先验信息Z的最低位提供给所述加比选计算单元;所述加比选计算单元还包括处理单元,用于接收所述分支度量计算单元提供的所述i个分支度量值和所述先验信息Z的最低位,根据所述Z的最低位,推算所述i个分支度量值的相反数,获得2n-i个分支度量值,并将所述推算得到的和所述接收到的一共2n个分支度量值提供给所述加比选计算子单元;所述加比选计算子单元在进行所述加比选操作之前,将接收到的所述2n个分支度量值恢复到实际运算需要的数目。
2.如权利要求1所述的解码器,其特征在于,在cdma2000提案下,n=3,并且所述分支度量计算单元计算4个分支度量值。
3.如权利要求1所述的分支度量计算单元,其特征在于,在WCDMA提案下,n=2,并且所述分支度量计算单元计算2个分支度量值。
4.如权利要求2所述的分支度量计算单元,其特征在于,所述四个分支度量值分别为BMa=R0+R1+R2+Z/2,BMb=R0-R1+R2+Z/2,BMc=R0-R1-R2+Z/2,BMd=R0+R1-R2+Z/2,其中,BMa-BMd是计算得到的分支度量值,R0、R1和R2分别是解码器接收到的信息,Z是先验信息。
5.如权利要求3所述的分支度量计算单元,其特征在于,所述二个分支度量值分别为BMa=R0+R1+Z/2,BMb=R0-R1+Z/2。其中,BMa和BMb是计算得到的分支度量值,R0、R1分别是解码器接收到的信息,Z是先验信息。
6.如权利要求1所述的解码器,其特征在于,所述归一化运算单元包括多条并行的归一化运算电路,每条归一化运算电路都包括一个减法器和一个状态度量寄存器,其中减法器用于将相应状态下的当前累计度量值减去前一时刻存储在任何一个状态度量寄存器中的值,而状态度量寄存器用于存储经归一化的累计度量值。
7.如权利要求1所述的解码器,其特征在于,所述归一化运算单元包含多个减法器和多个状态度量寄存器,其中减法器用于将相应状态下的累计度量值减去当前时刻的任何一个累计度量值,而状态度量寄存器用于存储经归一化的累计度量值。
8.如权利要求1所述的解码器,其特征在于,所述最大状态度量检测单元是一比较器。
9.一种用于Turbo码解码器的解码方法,其特征在于,它包括下列步骤计算从某个节点的某个状态到下个节点的某个状态的i个分支路径度量值,2n-1≤i<2n+1,n为Turbo码子解码器输入一个比特时所输出的比特数,其中所述i个分支度量值通过求相反数运算以及恢复操作可以推算出加比选操作过程中实际需要的其余分支度量值;提供先验信息Z的最低位;根据所述Z的最低位,推算所述i个分支度量值的相反数,获得2n-i个分支度量值;根据所述计算步骤获得的i个分支度量值和所述推算步骤获得的2n-i个分支度量值,恢复实际运算需要的所有分支度量值;对所述恢复步骤获得的所有分支度量值进行累加、比较和选择操作,计算出各状态下的累计度量值、累计度量值之差的绝对值,并且选择路径信息;对累计度量值进行归一化运算;比较经归一化的累计度量值,从中选出具有最大累计度量值的最大似然状态;存储所述路径信息、所述累计路径度量值,以及当前状态的两个累计路径度量值之差的绝对值;根据所述最大似然状态,进行维特比回溯运算,并且根据所述路径信息以及所述累计路径度量值之差,进行多条并行路径同时并行回溯的运算,并输出软信息和硬判决;对所述输出的软信息进行硬判决调制,输出软输出。
10.如权利要求9所述的解码方法,其特征在于,所述计算步骤包括计算4个分支度量值。
11.如权利要求9所述的解码方法,其特征在于,所述计算步骤包括计算2个分支度量值。
12.如权利要求10所述的解码方法,其特征在于,所述4个分支度量值为BMa=R0+R1+R2+Z/2,BMb=R0-R1+R2+Z/2,BMc=R0-R1-R2+Z/2,BMd=R0+R1-R2+Z/2,其中,BMa-BMd是计算得到的分支度量值,R0、R1和R2分别是解码器接收到的信息,Z是先验信息。
13.如权利要求11所述的解码方法,其特征在于,所述2个分支度量值为BMa=R0+R1+Z/2,BMb=R0-R1+Z/2。其中,BMa和BMb是计算得到的分支度量值,R0、R1分别是解码器接收到的信息,Z是先验信息。
14.如权利要求9所述的解码方法,其特征在于,所述归一化步骤包括将各个当前累计度量值减去前一时刻的任何一个累计度量值。
15.如权利要求9所述的解码方法,其特征在于,所述归一化步骤包括将各个累计度量值减去当前时刻的任何一个累计度量值。
全文摘要
一种用于Turbo码的解码器。其中分支度量计算单元(BMU)利用状态转移特征,精减原来需要计算的分支度量值的数目,并且向加比选计算单元(ACS)提供先验信息Z的最低位。ACS根据BMU提供的分支度量值和Z的最低位,对分支度量计算式中的符号位求反或求补,从而推导出原来需要的分支度量值,并在以后的加比选操作中消除了Z/2带来的量化误差。ACS将各状态下的累计度量值减去前一时刻或当前时刻的任何一个累计度量值,实现归一化。
文档编号H03M13/00GK1323102SQ0011559
公开日2001年11月21日 申请日期2000年5月8日 优先权日2000年5月8日
发明者欧阳烨, 苏宁, 王韬, 杜叶青 申请人:华为技术有限公司