卷积编码码字的软判定解码的制作方法

文档序号:7538917阅读:316来源:国知局
专利名称:卷积编码码字的软判定解码的制作方法
技术领域
本发明涉及卷积码的最大化后验(MAP)解码,特别涉及根据LOG-MAP算法的解码方法和turbo(加速)解码器。
在数字数据通信领域,使用纠错电路即编码器和解码器来实现具有低信噪比(SNR)系统的可靠通信。编码器的一个例子是卷积编码器,其根据输入串与其本身或其它信号的卷积来将一串数据比特转换为码字。码字包括的数据比特数要比原始数据流中的多。一般采用1/2的码率,这意味着所发送的码字具有两倍于原始数据的比特数。可利用这种冗余性来进行纠错。很多系统还另外采用交错(interleaving)来使传输差错最少。
卷积编码器和MAP解码器一般是用格栅图(trellis diagram)来描述,格栅图代表所有可能的状态和各状态之间的转移路径或分支。在编码过程中,输入要被编码的信息导致状态间的转移,而每个转移都伴随着编码码元组的输出。在解码器中,原始数据比特被用最大似然算法例如Viterbi算法重构。Viterbi算法是一种解码技术,其能够用于找到格栅中的最大似然路径。相对于在传输时由编码器描述的路径而言,这是可能性最大的路径。
Viterbi解码器的基本概念是,在给定接收的信息时,其假设编码器可能已经处于的各可能状态,并确定编码器从那些状态的每一个转移到下一组编码器状态的概率。通过称为量度(metrics)的量来表示概率,量度有两种类型状态量度α(对反向迭代为β),和分支量度γ。通常有两种可能状态会导致每个新状态,即下一比特要么是0要么是1。解码器通过对各可能的分支比较分支量度与状态量度的积来确定哪一个是最可能的状态,并选择代表二者中更为可能状态的分支。
Viterbi解码器保留分支序列的记录,通过该分支是最可能已经达到各状态的。但是,根据乘法和指数运算的算法的复杂性使得实现这些算法在实际当中是不太可能的。随着LOG-MAP算法实施的出现,MAP解码器算法是通过用加法来代替乘法以及用LOG域中的MAX运算代替加法来简化的。此外,这种解码器用软判定(Pk0和Pk1)来代替硬判定(0或1)。参见美国专利第5,499,254号(Masao等人)和5,406,570(Berrou等人)以进一步详细地了解Viterbi解码器和LOG-MAP解码器。在美国专利第5,933,462号(Viterbi等人)和美国专利第5,846,946号(Nagayasu)中,人们已经对最初的LOG-MAP解码器进行了改进。
近来已经开发出turbo解码器。在连续数据传输的情况下,数据流被封装在N个数据比特的块中。turbo编码提供了系统的数据比特,并包括第一和第二卷积递归编码器,分别提供代码比特的e1和e2输出。第一编码器对提供代码比特的e1输出的系统数据比特进行操作。一编码器交错器提供交错的系统数据比特,它们再被送至第二编码器。第二编码器对提供代码比特的e2输出的交错数据比特进行操作。数据uk和代码比特e1和e2被同时处理并以数字比特块的形式通信。
但是,标准的turbo解码器仍有一些缺陷,只有解决这些缺陷才能够有效地实现系统。一般而言,turbo解码器至少需要3到7次迭代,这意味着相同的正向和反向递归将重复3到7次,每次都有更新的分支量度值。因为概率始终是小于1,并且其对数值始终小于0,α、β和γ都具有负值。此外,每次在各迭代后通过加上新计算的软解码器输出来更新γ时,其变为更小的数。在固定点表示中,太小的γ值导致了精度的损失。一般而言,当使用8比特时,可用的信号动态范围是-255到0,而总的动态范围是-255到255,即总动态范围的一半被浪费了。
在已有的克服这个问题的尝试中,状态量度α、β已经通过减去那时的最大状态量度值而在各状态被规范化。但是,该方法在确定最大值时导致时间滞后。目前的turbo解码器还要求用大量的存储器,其中在软判定值可以被计算之前,储存所有的正向和反向状态量度。
本发明的一个目的是通过增加turbo解码器的速度和精度、同时更好地利用动态范围、并降低门计数(gate count)和使存储需要量最小来克服现有技术的缺点。
根据本发明的原理,在turbo解码器中采用的递归计算中使用的量γj(Rk,sj’,s)(j=0,1)被首先规范化。这样就导致固定点解码器动态范围的增加。
根据本发明,提供了一种对所接收的具有多个状态s的编码数据流进行解码的方法,包括如下步骤递归地确定量αk(s)和βk(s)中至少一个的值,αk(s)和βk(s)分别定义如下αk(s)=log(Pr{Sk=s|R1k})βk(s)=log(Pr{Rk+1NSk=s}Pr{Rk+1N|R1N})]]>其中,R1k表示的是从时标1到k为止所接收的比特,而Sk则表示在时标k时编码器的状态,其来自αk(s)和βk(s)的先前值和量γ’j(Rk,sj’,s)(j=0,1),其中γ’j(Rk,sj’,s)(j=0,1)是γj(Rk,sj’,s)(j=0,1)的规范化的值,其定义为γj(Rk,sj’,s)=log(Pr(dk=j,Sk=s,Rk|Sk-1=sj’))这里Pr表示概率,Rk表示在时标k收到的比特,而dk表示在时间k发送的数据。本发明还提供了一种用于卷积编码数据流的解码器,包括第一规范化单元,用于对下面的量规范化γj(Rk,sj’,s)=1og(Pr(dk=j,Sk=s,Rk|Sk-1=sj’))加法器,用于将量γ’j(Rk,sj’,s)(j=0,1)加到量αk-1(s0’)、αk-1(s1’)、或βk-1(s0’)、βk-1(s1’),这里αk(s)=1og(Pr{Sk=s|R1k})βk(s)=log(Pr{Rk+1NSk=s}Pr{Rk+1N|R1N})]]>一乘法器和对数单元,用于产生输出αk’(s)或βk’(s),和一第二规范化单元,用于产生期望的输出αk(s)或βk(s)。
处理器速度也可以通过对递归计算得到的量进行Smax运算来提高。该规范化用Smax运算来简化。
本发明另外还涉及一种用turbo解码器对卷积编码的码字进行解码的方法,该turbo解码器具有x比特表示和2x-1到-(2x-1)的动态范围,其包括如下步骤a)定义一个具有块长为N的卷积码字的可能状态和转移分支的第一格栅表示,N是码字中所接收抽样的数目;b)对通过格栅的正向迭代,初始化格栅的各开始状态量度α-1(s);c)计算分支量度γk0(s0’,s)和γk0(s1’,s);d)确定一个分支量度规范化因子;e)通过从分支量度中减去分支量度规范化因子来对分支量度规范化,以得到γk1’(s1’,s)和γk0’(s0’,s);f)将αk-1(s1’)与γk1’(s1’,s)求和,将αk-1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的最大似然量度;g)选择具有较大值的累积最大似然量度,以得到αk(s);h)对通过整个格栅的正向迭代的各状态重复步骤c到g;
i)定义与第一格栅具有相同状态数和块长度的卷积码字的可能状态和转移分支的第二格栅表示;j)对通过格栅的反向迭代初始化格栅的各开始状态量度βN- 1(s);k)计算分支量度γk0(s0’,s)和γk1(s1’,s)l)确定分支量度规范化条件(term);m)通过从分支量度中减去分支量度规范化条件来规范化量度,以得到γk1’(s1’,s);n)将βk+1(s1’)与γk1’(s1’,s)求和,将βk+1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的最大似然量度;o)选择具有较大值的累积最大似然量度,作为βk(s);p)对通过整个格栅的反向迭代的各状态重复步骤k到o;q)计算各状态的软判定值P1和P0;和r)计算在各状态的对数似然率,以得到其硬判定。
本发明的另一方面涉及一种用turbo解码器对卷积编码的码字进行解码的方法,该turbo解码器具有x比特表示和2x-1到-(2x-1)的动态范围,其包括如下步骤a)定义一个具有块长为N的卷积码字的可能状态和转移分支的第一格栅表示,N是码字中所接收抽样的数目;b)对于通过格栅的正向迭代,初始化格栅的各开始状态量度α- 1(s);c)计算分支量度γk0(s0’,s)和γk1(s1’,s);d)将αk-1(s1’)与γk1’(s1’,s)求和,将αk-1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的最大似然量度;e)选择具有较大值的累积最大似然量度,作为αk(s);f)根据αk-1(s)的值确定正向规范化因子,以重新设置αk(s)的值接近于动态范围的中心;g)通过从各αk(s)减去正向规范化因子以规范化αk(s);h)对通过整个格栅的正向迭代的各状态重复步骤c到g;
i)定义与第一格栅具有相同状态数和块长度的卷积码字的可能状态和转移分支的第二格栅表示;j)对通过格栅的反向迭代初始化格栅的各开始状态量度βN- 1(s);k)计算分支量度γk0(s0’,s)和γk1(s1’,s)l)将βk+1(s1’)与γk1(s1’,s)求和,将βk+1(s0’)与γk0(s0’,s)求和,以得到累积的各分支的最大似然量度;m)选择具有较大值的累积最大似然量度,作为βk(s);n)根据βk+1(s)的值确定反向规范化因子,以重新设置βk(s)的值,使之接近于动态范围的中心;o)通过从各βk(s)减去反向规范化因子以规范化βk(s);p)对通过整个格栅的反向迭代的各状态重复步骤k到o;q)计算各状态的软判定值P1和P0;和r)计算在各状态的对数似然率,以得到其硬判定。
本发明的另一方面涉及一种用turbo解码器对卷积编码的码字进行解码的方法,包括如下步骤a)定义一个具有块长为N的卷积码字的可能状态和转移分支的第一格栅表示,N是码字中所接收抽样的数目;b)对通过格栅的正向迭代,初始化格栅的各开始状态量度α- 1(s);c)计算分支量度γk0(s0’,s)和γk1(s1’,s);d)将αk-1(s1’)与γk1(s1’,s)求和,将αk-1(s0’)与γk0(s0’,s)求和,以得到累积的各分支的最大似然量度;e)选择具有较大值的累积最大似然量度,作为αk(s);f)对通过整个格栅的正向迭代的各状态重复步骤c到e;g)定义与第一格栅具有相同状态数和块长度的卷积码字的可能状态和转移分支的第二格状表示;h)对通过格栅的反向迭代,初始化格栅的各开始状态量度βN- 1(s);
i)计算分支量度γk0(s0’,s)和γk1(s1’,s)j)将βk+1(s1’)与βk1(s1’,s)求和,将βk+1(s0’)与βk0’(s0’,s)求和,以得到累积的各分支的最大似然量度;k)选择具有较大值的累积最大似然量度作为βk(s);l)对通过整个格栅的反向迭代的各状态重复步骤i到k;m)计算各状态的软判定值P0和P1;和n)计算在各状态的对数似然率,以得到其硬判定;其中步骤a到f与步骤g到l同时执行,而其中步骤m包括将α-1(s)到至少αN/2-2(s)的值、和βN-1(s)到至少βN/2(s)的值储存在存储器中;和在一旦能够获得至少αN/2-1(s)至αN-2(s)的值、和至少βN/2-1(s)至β0(s)的值时,就从存储器中将它们与所要求的值一起发送至概率计算器装置,以计算软判定值Pk0和Pk1;由此α(s)和β(s)的所有值在计算某些软判定值之前不需要保存在存储器中。
根据本发明的设备由turbo解码器系统来定义,该系统具有x比特的表示,用于对卷积编码的码字进行解码,所述设备包括接收装置,用于接收发送信号的序列;块长为N的第一格栅装置,其定义了卷积编码码字的可能状态和转移分支;第一解码装置,用于在通过所述第一格栅的正向迭代过程中对所述信号序列解码,所述第一解码装置包括分支量度计算装置,用于计算分支量度γk0(s0’,s)和γk1(s1’,s);分支量度规范化装置,用于将分支量度规范化以获得γk0’(s0’,s)和γk1’(s1’,s);求和装置,用于将状态量度αk-1(s1’)与γ’k1(s1’,s)求和,将状态量度αk-1(s0’)与γ’k0(s0’,s)求和,以得到累积的各分支的量度;选择装置,用于选择具有较大值的累积量度,以获得αk(s);块长为N的第二格栅装置,其定义了卷积编码码字的可能状态和转移分支;第二解码装置,用于在通过所述格栅的反向迭代过程中对所述信号序列解码,所述第二解码装置包括分支量度计算装置,用于计算分支量度γk0(s0’,s)和γk1(s1’,s);分支量度规范化装置,用于将分支量度规范化以获得γk0’(s0’,s)和γk1’(s1’,s);求和装置,用于将状态量度βk+1(s1’)与γk1’(s1’,s)求和,将状态量度βk+1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的量度;和选择装置,用于选择具有较大值的累积量度,以获得βk(s);软判定计算装置,用于确定软判定值Pk0和Pk1;和LLR计算装置,用于确定各状态的对数最大似然率以获得对它们的硬判定。
本发明的另一个特征涉及turbo解码器系统,该系统具有x比特的表示,具有2x-1到-(2x-1)的动态范围,用于对卷积编码的码字解码,该系统包括接收装置,用于接收发送信号的序列;第一格栅装置,其定义了卷积编码码字的可能状态和转移分支;第一解码装置,用于在通过所述第一格栅的正向迭代过程中对所述信号序列解码,所述第一解码装置包括分支量度计算装置,用于计算分支量度γk0(s0’,s)和γk1(s1’,s);求和装置,用于将状态量度αk-1(s1’)与γk1’(s1’,s)求和,将状态量度αk-1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的量度;选择装置,用于选择具有较大值的累积量度,以获得αk(s);正向状态量度规范化装置,用于根据αk-1(s1)的值,通过从各αk(s)减去正向状态规范化因子以规范化αk(s)的值,从而重新设置αk(s)的值使之接近于动态范围的中心;块长为N的第二格栅装置,其定义了卷积编码码字的可能状态和转移分支;第二解码装置,用于在通过所述格栅的反向迭代过程中对所述信号序列解码,所述第二解码装置包括分支量度计算装置,用于计算分支量度γk0(s0’,s)和γk1(s1’,s);求和装置,用于将状态量度βk+1(s1’)与γk1’(s1’,s)求和,将状态量度βk+1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的量度;和选择装置,用于选择具有较大值的累积量度,以获得βk(s);其中第二反向状态量度规范化装置用于根据βk+1(s)的值,通过从各βk(s)减去反向状态规范化因子以规范化βk(s)的值,从而重新设置βk(s)的值,使之接近于动态范围的中心;软判定计算装置,用于确定软判定值Pk0和Pk1;和LLR计算装置,用于确定各状态的对数最大似然率以获得对它们的硬判定。
本发明的还有一个特征涉及用于对卷积编码的码字解码的turbo解码器系统,该系统包括接收装置,用于接收发送信号的序列;块长为N的第一格栅装置,其定义了卷积编码码字的可能状态和转移分支;第一解码装置,用于在通过所述第一格栅的正向迭代过程中对所述信号序列解码,所述第一解码装置包括分支量度计算装置,用于计算分支量度γk0(s0’,s)和γk1(s1’,s);求和装置,用于将状态量度αk-1(s1’)与γk1’(s1’,s)求和,将状态量度αk-1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的量度;选择装置,用于选择具有较大值的累积量度,以获得αk(s);块长为N的第二格栅装置,其定义了卷积编码码字的可能状态和转移分支;第二解码装置,用于在通过所述格栅的反向迭代过程中对所述信号序列解码,所述第二解码装置包括分支量度计算装置,用于计算分支量度γk0(s0’,s)和γk1(s1’,s);求和装置,用于将状态量度βk+1(s1’)与γk1’(s1’,s)求和,将状态量度βk+1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的量度;和选择装置,用于选择具有较大值的累积量度,以获得βk(s);软判定计算装置,用于确定软判定值Pk0和Pk1;和LLR计算装置,用于确定各状态的对数最大似然率以获得对它们的硬判定;其中软判定计算装置包括存储装置,用于储存α-1(s)到至少αN/2-2(s1)的值,和βN-1(s)到至少βN/2(s)的值概率计算器装置,用于在一旦能够获得至少αN/2-1(s)至αN-2(s)的值、和至少βN/2-1(s)至β0(s)的值时,就从存储器中接收它们以及所要求的值,以计算软判定值;由此α(s)和β(s)的所有值在计算某些软判定值之前不需要保存在存储器中。
下面将参考附图详细说明本发明的优选实施例,附图中

图1是用于量度计算和最大似然路径计算的标准模块的方框图;图2是根据本发明的正向和反向状态量度计算的模块的方框图;图3是说明正向迭代的各种状态和分支的格栅图表示的例子;图4是说明反向迭代的各种状态和分支的格栅图表示的例子;图5是根据本发明计算Pk1的流程图表示的例子;图6是根据本发明的计算Pk0的流程图表示的例子;图7是用于执行规范化的电路的方框图;和图8是用于计算Smax的电路的方框图。
参看图1,用于对卷积编码码字进行解码的一种传统的turbo解码器系统包括一求和-比较-选择(ACS)单元。求和(ADD)指在加法器2处将状态量度αk-1(s0’)与分支量度γ0(s0’,s)相加,以得到两个累积量度。比较(COMPARE)指在减法器3处通过从第一个和αk-1(s0’)γ0(s0’,s)中减去第二个和αk-1(s1’)γ1(s1’,s)来判断上述的两个累积量度何者较大。两个累积量度之间的差值符号表明何者较大,即若差值为负,则αk-1(s1’)γ1(s1’,s)较大。差值的符号控制2到1的复用器8,该复用器用于选择具有较大和的累积量度。两累积量度间差值的幅值被用作加权系数,因为差值越大,在两个分支间作出正确选择的可能性就越大。差值的幅值还酝着校正因子的大小,校正因子在加法器4处被加到所选择的累积量度上。校正因子在考虑MAX操作所产生的误差时是必须的。本例中,校正因子在对数表11中被近似,当然还有其它的方法能提供校正因子,如在《Electronics Letters》的1998年8月6日版中有一篇W.J.Gross和P.G.Gulak所著、题为“适宜于实现turbo解码的简单MAP算法”的方法被公开。随后,通过用减法器5减去状态量度规范化值(即αk’(s)的最大值),结果量度αk’(s)被规范化。所得值是αk(s)。这种正向循环在整个网络范围内反复进行。正如在众所周知的现有技术中一样,使用反向状态量度βk(s),反向迭代也可同样反复进行。
本领域技术人员可以理解,图1所示的电路完成以下计算αk(s)=log(Pr{Sk=s|R1k})βk(s)=log(Pr{Rk+1NSk=s}Pr{Rk+1N|R1N})]]>其中,Rk1代表从时间指数1到k[1]所接收的信息比特和校验比特,而Sk代表时标k处的编码状态。
类似的结构也可用于βk的反向递归。
图1中,在状态s和时刻k的α值(αk(s)与先前在时刻k-1的两个状态值、即αk-1(s0’)和αk-1(s1’)相关,γj(Rk,sj’,s)j=0,1代表的信息比特)被定义为γj(Rk,sj’,s)=log(Pr(dk=j,Sk=s,Rk|Sk-1=sj’))其中,Rk代表在时标k处所接收的信息比特和校验比特,dk代表在时标k[1]处发送的信息比特。图1中,加法器3的输出被向两个方向发送其符号控制MUX,其幅值控制一小的对数表。在实际应用中,幅值只需要很少几个比特。
使用格栅图(图3和4)是想象图1所示的ACS单元执行迭代过程的最好方式。如图3和4中给定的例子所示,算法的存储空间长度(或约束长度)是3,它导致23=8种状态(即000,001,…111)。考虑到给定抽样的解码,格栅的块长度N对应于采样数值。箭头代表从一个状态到下一个其输入信息比特是0或1的给定状态的转移分支,该转移依赖于编码器所用的卷积代码。为计算所有软判定的值αk,α-1(s0)被赋予一为0的初始值,而其余值α-1(st)(t=1到7)被赋予足够小的初始值,例如-128。当解码器接收到构成信息的一串数据比特后,分支量度γk0和γk1便被以公知的方法进行计算。然后,循环过程继续进行以便计算状态量度αk。类似地,在同一时刻或紧接着正向迭代后,反向迭代也被激活。βN-1的所有初始化值都被设置为相等的值,例如0。
一旦所有软判定的值均被设定,且进行完需要循环的次数,则根据下面的关系式来计算对数似然率 Rk=接收的信号 =Max(βk+αk-1+γk)-Max(βk+αk-1+γk)Uk=1Uk=-1=Pk1-Pk0其中,α=1n(a),β=1n(b),γ=1n(c),uk=与第k比特相关的比特。
图5和图6显示代表分别计算图3和图4所示、基于正向和反向递归的Pk1和Pk0的流程图。
在图1所示的解码器中,若turbo编码器具有大量的状态s,则计算∑sαk’(s)所需的时间可能会极其长。典型的turbo码有8或16种状态,这意味着需要7或25个加法器来计算∑sαk’(s)。即使是最优化的并行结构,对16种状态的turbo解码器也需要15个加法器和4个加法器延时。同样,典型的turbo解码器需要至少3到7次迭代,这意味着同样的α和β循环均将重复3到7次,每一次都具有更新的γj(Rk,s0’,s)(j=0,1)值。由于概率总是小于1,且其对数值总是小于0,α、β和γ都是负值。任意两个负值的和将使得输出负值更大。当γ被加上最新计算的软解码器输出(它也是一负值)而更新时,在每次迭代后,γ都会变得更小。在固定点表示中,太小的γ值意味着精度降低。在最恶劣情况下,解码器可能会以负溢出值饱和,从而b为0×80,而不能完成算法过程。
参看图2,根据本发明原理的解码器包括现有技术的一些部件及一个分支量度规范化系统13。为确保γ0和γ1的值不会太小而使精度降低,分支量度规范化系统13从两个分支量度中均减去一规范化因子。规范化因子基于γ0和γ1的初始值而选择,以确保规范化的分支量度γ0’和γ1’的值靠近动态范围的中心,即0。
以下是优选的分支量度规范化系统的描述。首先,分支量度规范化系统13判断分支量度γ0和γ1哪个较大。然后,两分支量度均减去具有较大值的分支量度,从而使得较大的分支量度变为0,而较小的分支量度具有差值。这种关系也可用下式来表示γ0’=0,当γ0>γ1否则=γ0-γ1γ1’=0,当γ1≥γ0否则=γ1-γ0
使用此种方法,在每个turbo解码器迭代中,分支量度γ0和γ1将总是被规范化到0,且动态范围得以有效利用,而数值避免不断变小。
在本发明的另一实施例中,为了尽量使用整个动态范围并减少处理时间,状态量度规范化条件,如αk(s)的最大值,被αk-1(s)的最大值所取代,后者是用以前状态αk-1(s)预先计算的。这样,减少了计算αk(s)的最大值时在加法器4和减法器5之间的延时。
另外,根据本发明的另一实施例,状态量度规范化条件被变量项NT所取代,其值取决于αk-1(s)的值。NT的值被选择,以确保大多数情况下状态量度的值被变化得离动态范围的中心即0更近。一般来说,若解码器具有x比特表示,当任意的αk-1(s)均大于0时,则NT是一小的正数,例如在1和8之间。若所有的αk-1(s)均小于0,且任一个αk-1(s)均大于-2x-2,则NT大约为-2x-3,即-2x-3被加到所有的αk(s)中。若所有的αk-1(s)均小于-2x-2,则NT是每个αk-1(s)的比特OR(或运算)值。
例如,在8比特表示中,若任何的αk-1(s)(s=1,2..M)大于0,则NT是4,即所有的αk(s)均被减去4;若所有的αk-1(s)均小于0,且任一αk-1(s)大于-64,则NT是-31,即所有的αk(s)均被加上31;若所有的αk-1(s)均小于-64,则NT是每个αk-1(s)的比特的或运算值。
换句话说,在动态范围内,当αk-1(s)的值接近最小值即-(2x-1)的任何时候,它们都被调整到靠近动态范围的中心处。
在反向迭代中可使用同样的值。
这种方法比计算M个状态的最大值要简单得多。然而,它不能保证αk(s)和βk(s)能总是小于0,它一般由对数概率所定义。然而,这并不影响此种turbo解码器算法的最终精度。而且,αk(s)和βk(s)为正值还为动态范围的扩展提供了一个有利条件。在允许αk(s)和βk(s)大于0的情况下,通过规范化处理,和复用器702和703,通常不能被使用的动态范围的另一半(正数值)也可被利用。
图7示出规范化功能的具体实现方法。γ0和γ1被输入比较器701,而复用器702和703的输出与减法器704相连。复用器产生的规范化输出为γ0’和γ1’。这确保γ0’和γ1’在每个turbo解码器迭代中始终被规范化为0,且有效地利用了动态范围,避免其值变得愈来愈小。
图2中,规范化条件被最大值αk-1(s)所取代,而αk-1(s)可被预先计算。与参考图1所作的描述不同,此时在加法器4和减法器5之间不需要等待时间。
如图8所示,为进一步简化操作,“Smax”被用于取代真正的“max”操作。图8中,bnm代表αk-1(m)(即αk-1在状态s=m的值)的第n比物。图8中,比特bnm被通过或门801加载于复用器802、803,从而产生希望的输出Smaxαk-1(s)。图8显示出8比特固定点方法的三种情况。
若任何的αk-1(s=1,2,...M)均大于0,则Smax的输出将取值4(0×4),这意味着所有的αk(s)中均应减去4。
若所有的αk-1(s)小于0,且αk-1(s)中有一个大于-64,则Smax将取值-31(0×e1),即所有的αk(s)将均被加上31。
若所有的αk-1(s)均小于-64,则Smax将取所有αk-1(s)比特的或值。
较之于现有技术中计算M个状态最大值的方法,这种新方法要简便得多,但它不能保证αk(s)总是小于0。然而,这并不影响turbo解码算法的最后精度。相反,αk(s)为正值还为动态范围的扩展提供一个额外有利条件。若αk(s)小于0,则8比特动态范围仅有一半被使用。借助于适当的规范化,允许αk(s)大于0,通常不能被使用的动态范围的另一半也可被利用。
类似的方法也可用于βk(s)的反向递归计算。
借助于适当的规范化,允许对数概率αk(s)为正数,则解码器的性能将不会被影响,且能扩展固定点方法的动态范围。用于正向递归的方法能同样容易地用于反向循环。
使用软判定的当前方法需要额外存储空间,以便在软判定值Pk0和Pk1被计算前存储所有的正向和反向状态量度。为尽量消除这种需求,正向和反向迭代被同时进行,且在βk和αk-1的值被获取后立即开始计算Pk1和Pk0。习惯上,将前半个循环的α-1到至少αN/2-2、和βN-1到至少βN/2的值储存于存储器中。然而,当迭代处理在时间线上重叠后,新计算的状态量度可在被确定后伴随以前存储的、用于其它所需状态量度的值一起立即被直接输入概率计算器,来计算Pk0和Pk1。任何数量的值都可被存储于存储器中。然而,为达到最优化的性能,只有前半部分值被保存。因此,软和硬判定都可更快速地实现,而不需额外的存储器来存储所有的状态量度。理想情况下,可同时使用两个概率计算器,以增加处理速度。两个概率计算器之一利用存储的正向状态量度和新获得的反向状态量度βN/2-2到β0。该概率计算器确定Pk0 低和Pk1低。同时,另一概率计算器使用存储的反向状态量度和新获得的正向状态量度αN/2-1到αN-2来确定Pk1高和Pk0高。
权利要求
1.一种对所接收的具有多个状态s的卷积编码数据流进行解码的方法,包括如下步骤递归地确定量αk(s)和βk(s)中至少一个的值,αk(s)和βk(s)分别定义如下αk(s)=log(Pr{Sk=s|R1k})βk(s)=log(Pr{Rk+1NSk=s}Pr{Rk+1N|R1N})]]>其中,Pr表示概率,R1k表示的是从时标1到k所接收的比特,而Sk则表示在时标k时编码器的状态,其来自αk(s)或βk(s)的先前值和来自量γ’j(Rk,sj’,s)(j=0,1),其中γ’j(Rk,sj’,s)(j=0,1)是γj(Rk,sj’,s)(j=0,1)的规范化的值,其定义为γj(Rk,sj’,s)=log(Pr(dk=j,Sk=s,Rk|Sk-1=sj’));这里Pr表示概率,Rk表示在时标k接收的比特,而dk表示在时间k发送的数据。
2.根据权利要求1所述的方法,其中所述的先前值是在时间k-1时的αk-1(S0’),αk-1(S1’),或βk-1(S0’),βk-1(S1’)。
3.根据权利要求1所述的方法,其中所述规范化值γ’j(Rk,sj’,s)(j=0,1)被加到所述先前的值αk-1(S0’),αk-1(S1’),或βk-1(S0’),βk-1(S1’)上。
4.根据权利要求1所述的方法,其中γj(Rk,sj’,s)(j=0,1)在每个迭代中被规范化为零。
5.根据权利要求1所述的方法,还包括通过加上在时间k-1时αk-1(S)的最大值Smax来对递归运算的输出进行规范化。
6.根据权利要求1所述的方法,其中对两个所述量都执行所述递归确定。
7.一种用于卷积编码数据流的解码器,包括第一规范化单元,用于对下面的量规范化γj(Rk,sj’,s)=log(Pr(dk=j,Sk=s,Rk|Sk-1=sj’))加法器,用于将规范化的量γ’j(Rk,sj’,s)(j=0,1)加到量αk-1(s0’)、αk-1(s1’)、或βk-1(s0’)、βk-1(s1’),这里αk(s)=log(Pr{Sk=s|R1k})βk(s)=log(Pr{Rk+1NSk=s}Pr{Rk+1N|R1N})]]>一多路复用器和对数单元,用于产生输出αk’(s)或βk’(s),和一第二规范化单元,用于产生期望的输出αk(s)或βk(s)。
8.根据权利要求7所述的解码器,其中所述第二规范化单元对先前值αk-1(s)或βk-1(s)执行计算Smax,并且还提供一加法器来将Smax加到αk’(s)或βk’(s)上。
9.根据权利要求7所述的解码器,其中所述第一规范化单元包括一比较器,其接收输入γ0,γ1,并具有一输出以选择多路复用器的输入,第一对所述多路复用器,其接收所述各输入γ0,γ1,一减法器,用于减去所述第一对多路复用器的输出,所述减法器的输出被提供给第二对所述多路复用器的第一输入,所述第二对多路复用器的第二输入接收一零输入。
10.一种用turbo解码器对卷积编码的码字进行解码的方法,该turbo解码器具有x比特表示和2x-1到-(2x-1)的动态范围,所述方法包括如下步骤a)定义一个具有块长为N的卷积码字的可能状态和转移分支的第一格栅表示,N是码字中所接收抽样的数目;b)对通过格栅的正向迭代,初始化格栅的各开始状态量度α1(s);c)计算分支量度γk0(s0’,s)和γk0(s1’,s);d)确定一个分支量度规范化因子;e)通过从分支量度中减去分支量度规范化因子,来对分支量度规范化,以得到γk1’(s1’,s)和γk0’(s0’,s);f)将αk-1(s1’)与γk1’(s1’,s)求和,将αk-1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的最大似然量度;g)选择具有较大值的累积最大似然量度,以得到αk(s);h)对通过整个格栅的正向迭代的各状态重复步骤c到g;i)定义卷积码字的可能状态和转移分支的第二格栅表示,其与第一格栅具有相同状态数和块长度;j)对于通过格栅的反向迭代,初始化格栅的各开始状态量度βN-1(s);k)计算分支量度γk0(s0’,s)和γk1(s1’,s);l)确定分支量度规范化条件;m)通过从分支量度中减去分支量度规范化条件来规范化分支量度,以获得γk0’(s0’,s)和γk1’(s1’,s);n)将βk+1(s1’)与γk1’(s1’,s)求和,将βk+1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的最大似然量度;o)选择具有较大值的累积最大似然量度,作为βk(s);p)对通过整个格栅的反向迭代的各状态重复步骤k到o;q)计算各状态的软判定值P1和P0;和r)计算在各状态的对数似然率,以得到它们的硬判定。
11.根据权利要求10所述的方法,其中步骤d)包括选择具有较大值的分支量度作为分支量度规范化因子。
12.根据权利要求10所述的方法,其中步骤1)包括选择具有较大值的分支量度作为分支量度规范化因子。
13.根据权利要求10所述的方法,还包括确定αk(s)的最大值;和通过从各αk(s)中减去αk(s)的最大值来规范化αk(s)的值。
14.根据权利要求10所述的方法,还包括确定αk-1(s)的最大值;和通过从各αk(s)中减去αk-1(s)的最大值来规范化αk(s)的值。
15.根据权利要求10所述的方法,还包括根据αk-1(s)的值,通过减去正向状态规范化因子来规范化αk(s),以重新设置值使之接近动态范围的中心。
16.根据权利要求15所述的方法,其中当任何一个αk-1(s)大于零时,规范化因子在1和8之间。
17.根据权利要求15所述的方法,其中当所有αk-1(s)小于零且任何一个αk-1(s)大于-2x-2时,规范化因子为约-2x-3。
18.根据权利要求15所述的方法,其中当所有的αk-1(s)小于-2x-2时,规范化因子为每个αk-1(s)的比特的或运算值。
19.根据权利要求10所述的方法,还包括确定βk(s)的一个最大值;和通过从各βk(s)减去βk(s)的最大值来规范化βk(s)的值。
20.根据权利要求10所述的方法,还包括确定βk+1(s)的最大值;和通过从各βk(s)减去βk+1(s)的最大值来规范化βk(s)的值。
21.根据权利要求10所述的方法,还包括根据βk+1(s)的值,通过减去反向状态规范化因子来规范化βk(s),以重新设置βk(s)的值使之接近动态范围的中心。
22.根据权利要求21所述的方法,其中当任何一个βk+1(s)大于零时,反向规范化因子在1和8之间。
23.根据权利要求21所述的方法,其中当所有βk+1(s)小于零且任何一个βk+1(s)大于-2x-2时,规范化因子为约-2x-3。
24.根据权利要求21所述的方法,其中当所有βk+1(s)小于-2x-2时,规范化因子为每个βk+1(s)的比特的或运算值。
25.一种具有x比特表示的turbo解码器系统,用于对卷积编码的码字进行解码,所述系统包括接收装置,用于接收发送信号的序列;块长为N的第一格栅装置,其定义了卷积编码码字的可能状态和转移分支;第一解码装置,用于在通过所述第一格栅的正向迭代过程中对所述信号序列解码,所述第一解码装置包括分支量度计算装置,用于计算分支量度γk0(s0’,s)和γk1(s1’,s);分支量度规范化装置,用于将分支量度规范化以获得γk0’(s0’,s)和γk1’(s1’,s);求和装置,用于将状态量度αk-1(s1’)与γk1’(s1’,s)求和,将状态量度αk-1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的量度;和选择装置,用于选择具有较大值的累积量度,以获得αk(s);块长为N的第二格栅装置,其定义了卷积编码码字的可能状态和转移分支;第二解码装置,用于在通过所述格栅的反向迭代过程中对所述信号序列解码,所述第二解码装置包括分支量度计算装置,用于计算分支量度γk0(s0’,s)和γk1(s1’,s);分支量度规范化装置,用于将分支量度规范化以获得γk0’(s0’,s)和γk1’(s1’,s);求和装置,用于将状态量度βk+1(s1’)与γk1’(s1’,s)求和,将状态量度βk+1(s0’)与γk0’(s0’,s)求和,以得到累积的各分支的量度;和选择装置,用于选择具有较大值的累积量度,以获得βk(s);软判定计算装置,用于确定软判定值Pk0和Pk1;和LLR计算装置,用于确定各状态的对数最大似然率以获得对它们的硬判定。
26.根据权利要求25所述的系统,其中所述分支量度规范化装置确定分支量度γk0(s0’,s)和γk1(s1’,s)哪一个具有较大的值,并将两个分支量度都减去所述较大的值。
27.根据权利要求25所述的系统,还包括正向状态量度规范化装置,用于通过从各αk(s)减去正向状态量度规范化因子来规范化αk(s)的值。
28.根据权利要求27所述的系统,其中所述正向状态量度规范化因子是αk(s)的最大值。
29.根据权利要求27所述的系统,其中所述正向状态量度规范化因子是αk-1(s)的最大值。
30.根据权利要求27所述的系统,其中当任何一个αk-1(s)大于零时,所述状态量度规范化因子在1和8之间。
31.根据权利要求27所述的系统,其中当所有αk-1(s)小于零且任何一个αk-1(s)大于-2x-2时,所述状态量度规范化因子为约-2x-3。
32.根据权利要求27所述的系统,其中当所有的αk-1(s)小于-2x-2时,所述状态量度规范化因子为每个αk-1(s)的比特的或运算值。
33.根据权利要求25所述的系统,还包括反向状态量度规范化装置,用于通过减去反向状态规范化因子来规范化βk(s)的值。
34.根据权利要求33所述的系统,其中所述反向状态规范化因子是βk(s)的最大值。
35.根据权利要求33所述的系统,其中所述反向状态规范化因子是βk+1(s)的最大值。
36.根据权利要求33所述的系统,其中当任何一个βk+1(s)大于零时,所述状态量度规范化因子在1和8之间。
37.根据权利要求33所述的系统,其中当所有βk+1(s)小于零且任何一个βk+1(s)大于-2x-2时,所述状态量度规范化因子为约-2x-3。
38.根据权利要求33所述的系统,其中当所有的βk+1(s)小于-2x-2时,所述状态量度规范化因子为每个βk+1(s)的比特的或运算值。
全文摘要
数字数据通信的纠错电路中所使用的将卷积代码进行解码的一种方法和设备。为加快解码过程的速度并提高精度,在软判定计算中将分支和/或状态量度进行规范化处理,从而更好地利用解码器的动态范围。本发明的另一方面涉及通过将一些软判定值直接发送至计算器而不是首先将其存储于存储器中,来减少计算对数似然率所需的时间和存储空间。
文档编号H03M13/41GK1311578SQ0110932
公开日2001年9月5日 申请日期2001年3月1日 优先权日2000年3月1日
发明者靳取 申请人:米特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1