CN100490333C - 最大后验概率译码方法及译码装置 - Google Patents
最大后验概率译码方法及译码装置 Download PDFInfo
- Publication number
- CN100490333C CN100490333C CNB2005100286461A CN200510028646A CN100490333C CN 100490333 C CN100490333 C CN 100490333C CN B2005100286461 A CNB2005100286461 A CN B2005100286461A CN 200510028646 A CN200510028646 A CN 200510028646A CN 100490333 C CN100490333 C CN 100490333C
- Authority
- CN
- China
- Prior art keywords
- state
- metric
- state metric
- prime
- module
- 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.)
- Active
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种最大后验概率译码方法及译码装置。基于压缩状态迁移网格图,在进行状态度量的迭代计算时,只对偶数时刻计算前向状态度量和反向状态度量,最后基于所述偶数时刻的前向状态度量和反向状态度量以及相应的分支度量,计算各个时刻的对应编码器输入数据的似然比函数值。本发明在一个处理周期内处理两个接收的数据符号集。相比传统的最大后验概率译码方法,提高了数据的吞吐量,同时减少了一些状态度量的计算,使得系统的性能得到了优化。
Description
技术领域
本发明涉及一种移动通信系统中用于高速数据传输的纠错编码方法,特别是涉及一种基于基4(Radix-4)结构的最大后验概率(MAP)译码方法。本发明还涉及用于实施该方法的译码装置。
背景技术
最大后验概率译码方法作为针对有限状态网格编码的最优译码算法,在移动通信领域特别是高速数据传输的应用中,得到了广泛的利用。最典型的有限状态网格编码是卷积码(Convolutional code)。单一的卷积码应用于纠错性能要求较低的场合,通常用维特比译码即可以获得满意的性能。从Claude Berrou等人于1993年提出了一种独特的卷积码——特博码后,特博码作为一种接近香农极限(Shannon’s Limit)的纠错码得到了广泛的应用。特博码编码器通常由多个简单的单元编码器(ConstituentEncoder)以串联或者并联的方式构成,最常用的单元编码器即为卷积编码器。相应地,特博译码器也由多个相应的单元译码器构成。在高速数据传输的时候,通常需要非常高的纠错性能,比如误码率低于10-6。此时利用维特比译码器作为单元译码器无法得到满意的性能,通常特博码译码算法中的单元译码器均采用最大后验概率译码算法或者其在对数域的相应算法,即对数最大后验概率译码(Log-MAP)算法。
最大后验概率译码算法通常包括前向状态度量(FSM),反向状态度量(BSM)以及分支度量的计算,然后基于前向状态度量,反向状态度量以及分支度量计算出各个时刻对应编码器输入信息比特的似然比(LLR:likelihood Ratio)。该似然比表示对应编码器输入信息比特为“0”的概率与为“1”的概率之比,由该似然比即可判断编码器输入信息比特的具体值。
以编码率(Code Rate)为1/2的卷积编码器为例,其对应的传统的最大后验概率译码算法可以用以下递归公式表示:
上述公式中,k为MAP译码器输入数据符号组的时域下标,一个数据符号组所包含的数据符号个数等于卷积码编码器的编码率的倒数,本发明中编码率为1/2,则一个数据符号组包括两个数据符号,即Rk={xk,yk}表示一个输入数据符号组,xk,yk分别对应编码器输出的第k个信息比特样值和校验比特,m表示卷积码编码器状态迁移网格图中的状态下标,v表示卷积编码器的约束长度,2v-1则为卷积编码器的总状态数,L(dk)表示对应卷积编码器第k个输入比特的作为译码结果所计算出的似然比,表示在k时刻假定输入为i时的状态m的前向状态度量(FSM:ForwardState Metric),表示在k时刻假定输入为i时的状态m的反向状态度量(BSM:Backward State Metric),δi(Rk,m)表示当前状态为m且输入为i时接收端收到的数据为Rk的条件概率,通常称为分支度量,表示在编码器中假定输入为j∈{0,1}时可迁移到当前状态m的前一状态,表示当前状态m下,假定输入为i∈{0,1}时所迁移到的下一状态,K和σ2均为由信道条件决定的常数。表示在状态m下输入信息比特为i∈{0,1}时的编码器输出的编码比特。对似然比输出进行硬判决即可得到译码结果。似然比也可以作为软判决符号直接用于数据处理的下一阶段。比如在特博码译码中,通常利用上一次MAP译码的似然比输出作为下一次MAP译码的输入辅助信息,这样构成迭代译码方式,可以大幅度地提高译码性能。
如上所述,前向状态度量和反向状态度量均通过迭代的方式进行计算。每一时刻的每一状态的前向状态度量是基于前一时刻的某两个状态的前向状态度量计算而得;每一时刻的每一状态的反向状态度量是基于后一时刻的某两个状态的反向状态度量计算而得,这种算法实现结构一般被称为基2(Radix-2)结构。前向状态度量和反向状态度量迭代计算方式决定了在一个计算周期只能进行一次迭代计算,因此在基2结构的译码算法中,当编码器输入信息比特长度为N时,状态度量的计算就需要N个迭代计算周期。而MAP译码器的译码速度主要瓶颈就在于状态度量的计算,如何提高状态度量的计算速度成为MAP译码器在移动通信领域高速数据业务中应用的关键技术。
发明内容
本发明要解决的技术问题是提供一种最大后验概率译码方法,它可以将状态度量的计算速度提高一倍,从而大大提高MAP译码器的译码速度;为此,本发明还要提供一种用于实施该方法的译码装置。
为解决上述技术问题,本发明的基本构思是:对卷积码编码器的状态迁移网格图进行压缩处理得到压缩状态迁移网格图,并相应重新定义前向状态度量和反向状态度量,基于压缩状态迁移网格图,在进行状态度量的迭代计算时,只需对偶数时刻计算前向状态度量和反向状态度量,时刻k的状态m的前向状态度量是基于时刻k-2的某4个状态的前向状态度量和相应的分支度量计算而得,时刻k的状态m的反向状态度量是基于时刻k+2的某4个状态的反向状态度量和相应的分支度量计算而得;然后基于所述偶数时刻点的前向状态度量和反向状态度量以及相应的分支度量以及压缩状态迁移网格图计算各个时刻的对应编码器输入数据的似然比函数值,最后将这些似然比函数值作为软判决符号输出给下一级运算模块进行后续处理。
作为实现本发明基本构思的最大后验概率译码方法,包括以下步骤:
基于输入接收数据序列计算对应每一时刻的所有可能的分支度量;
基于以上计算所得的分支度量以及压缩状态迁移网格图按迭代的方式计算对应偶数时刻的前向状态度量;
基于以上计算所得的分支度量以及压缩状态迁移网格图按迭代的方式计算对应偶数时刻的反向状态度量;
基于以上计算所得的分支度量、前向状态度量以及反向状态度量以及压缩状态迁移网格图计算每一时刻的信息比特的似然比函数值;
将所述似然比函数值作为软判决符号输出,应用于后续数据处理。
本发明用于实施上述最大后验概率译码方法的译码装置,包括分支度量计算模块,用于计算分支度量,并将计算结果存储在分支度量缓存模块中,供前向状态度量、反向状态度量和似然比函数值计算时使用;
前向状态度量计算模块,用于基于压缩状态迁移网格图以迭代的方式计算偶数时刻的前向状态度量;该模块根据输入的前向状态度量及分支度量进行乘法及累加运算,计算新的前向状态度量,并将计算结果存入前向状态度量缓存模块中;
反向状态度量计算模块,用于基于压缩状态迁移网格图以迭代的方式计算偶数时刻的反向状态度量;该模块根据输入的反向状态度量及分支度量进行乘法及累加运算,计算新的反向状态度量,并将计算结果存入反向状态度量缓存模块中;
似然比计算模块,基于以上计算所得的分支度量、前向状态度量、反向状态度量以及压缩状态迁移网格图计算对应每一时刻编码器的输入信息比特的似然比;
状态迁移网格图信息模块,以查找表的形式存储Ω(0x)、Ω(1x)、Ω(x0)和Ω(x1)四个集合所表示的压缩状态迁移网格图信息,在计算似然比函数L(dk=0)、L(dk=1)、L(dk+1=0)和L(dk+1=1)时,通过查阅该模块中所存储的信息,以确定从分支度量缓存模块、前向状态度量缓存模块和反向状态度量缓存模块中读取相应的数据进行计算。
本发明只计算偶数时刻的前向状态度量和反向状态度量,因此对于同样编码器输入信息比特长度为N的时候,状态度量的计算只需要N/2个迭代计算周期,状态度量的计算时间便可压缩为传统的基2计算方法的一半,因此可以大大提高MAP译码器的译码速度。本发明MAP译码方法及其译码装置既可基于软件实现,也可基于硬件实现,也可以基于软硬件相结合的形式实现。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是本发明最大后验概率译码器结构示意图;
图2是正常的状态迁移网格图和压缩状态迁移网格图;
图3是图1中前向状态度量计算模块的结构图;
图4是图1中反向状态度量计算模块的结构图;
图9是图1中似然比计算模块的结构图;
图10是图9所示似然比计算模块的一个计算周期的动作时序示意图。
具体实施方式
为了方便以下说明,首先假定编码器的编码率为1/2,并定义一些变量参数如下:
m:卷积编码器的状态迁移网格图中的状态下标。
v:卷积码编码器的约束长度,在本发明的实施例中,约束长度为4。
c:卷积码编码器的编码率,在本发明的实施例中,编码率为1/2。
N:原始的编码前的数据块的长度,包括编码过程中最后用于清除编码器状态的尾比特(Tail Bit)。采用本发明的方法实现译码算法,要求N为偶数。实际数据块长度不为偶数的时候可以采用补零的方式使得长度变为偶数。
Rk,xk,yk:Rk为最大后验概率译码器对应k时刻的输入数据符号组,在本发明中,因为编码率为1/2,所以包含两个数据xk,yk,分别对应卷积码编码器输出的系统比特dk和校验比特pk。
如图1所示,本发明的最大后验概率译码器由分支度量计算模块11、前向状态度量计算模块12、反向状态度量计算模块13、状态迁移网格图信息模块14以及似然比计算模块15、分支度量缓存模块16、反向状态度量缓存模块17和前向状态度量缓存模块18等模块构成。
图2所示为约束长度为4的卷积码编码器的正常状态迁移网格图以及压缩状态迁移网格图。在正常的状态迁移网格图中表示的是从一个时刻的状态在不同的输入条件下迁移到下一个时刻的状态的迁移关系,而压缩状态迁移网格图表示的是从一个时刻的各状态在不同的连续两个比特的输入条件下迁移到下两个时刻的状态迁移关系。在本发明的译码算法中,前向状态度量以及反向状态度量均只对偶数时刻进行计算。
分支度量计算模块11用于计算分支度量δi(Rk,m),计算方式如公式4所示。其中K以及σ2均为与信道等条件相关的常数。如公式4所示,由于i和(m)均为二进制数据(0,1),两者共有4种组合,对于每一组输入数据Rk,需要计算4个分支度量。因此当编码前数据块长度为N时,一共要计算4乘以N个分支度量。这些分支度量计算好以后,存储在分支度量缓存模块16中,供前向状态度量、反向状态度量和似然比的计算时使用。相应地,分支度量缓存模块16是包含4乘以N个存储单元的存储模块。
前向状态度量计算模块12用于计算前向状态度量αk(m)。该前向状态度量的定义与传统的基2结构的译码算法中的前向状态度量的定义不同,其定义如下所示:
其中,表示从时刻1到时刻k-1的接收数据序列,αk(m)的物理含义表示从时刻1到时刻k-1的接收数据序列为以及时刻k的状态为m的联合概率。在本发明中前向状态度量αk(m)根据以下公式以迭代的方式进行计算:
其中,
由状态迁移网格图可知,从某一个状态出发,在两种不同的输入条件下,可以到达也只能到达两种不同的状态。当m2不属于从m1可能到达的两种状态之一时,则γk(m1,m2)为“0”;反之,γk(m1,m2)等于相应的分支度量δi(Rk,m1)。
前向状态度量计算模块12的实现结构如图3所示。前向状态度量计算模块12包括8个输入前向状态度量寄存器α_old[0]~α_old[7]、8个输出前向状态度量寄存器α_new[0]~α_new[7]、以及8个乘法和累加运算模块120~127。
在开始前向状态度量计算时,输入前向状态度量寄存器中α_old[0]被初始化为“1”,而α_old[1]~α_old[7]则被初始化为“0”。
乘法和累加运算模块120~127分别对输入的4个前向状态度量以及4个分支度量进行如公式6所示的乘法以及累加运算,计算结果即为新的前向状态度量。假定输入的前向状态度量对应k时刻的前向状态度量,则计算结果对应k+2时刻的前向状态度量。例如,乘法和累加运算模块120的输入为k时刻的前向状态度量αk (0),αk (1),αk (2),αk (3),以及相应的分支度量,这些分支度量输入由公式7决定。
在每一个前向状态度量计算周期,由8个输入的k时刻的前向状态度量计算出k+2时刻的8个前向状态度量后,一方面,8个新的前向状态度量被写入前向状态度量缓存模块18的相应位置,另一方面,它们被用于更新寄存器α_old[0]~α_old[7],作为下一个前向状态度量计算周期的输入,计算k+4时刻的前向状态度量。当原始的编码前数据块长度为N时,则前向状态度量的计算总共需要N/2次迭代计算。
反向状态度量计算模块13用于计算反向状态度量βk(m)。该反向状态度量的定义如下所示:
其中,表示从时刻k到时刻N的接收数据序列,βk(m)的物理含义表示在k时刻的状态为m的条件下,从时刻k到时刻N的接收数据序列为的条件概率。在本发明中反向状态度量βk(m)根据以下公式以迭代的方式进行计算:
其中,γk(m1,m2)的定义参见公式7。
反向状态度量计算模块13的实现结构如图4所示,包括8个输入反向状态度量寄存器β_old[0]~β_old[7]、8个输出反向状态度量寄存器β_new[0]~β_new[7]、以及8个乘法和累加运算模块130~137。
在开始反向状态度量计算时,输入反向状态度量寄存器中β_old[0]被初始化为“1”,而β_old[1]~β_old[7]则被初始化为“0”。
乘法和累加运算模块130~137分别对输入的4个反向状态度量以及4个分支度量进行如公式9所示的乘法以及累加运算,计算结果即为新的反向状态度量。假定输入的反向状态度量对应k+2时刻的反向状态度量,则计算结果则对应k时刻的反向状态度量。例如,乘法和累加运算模块130的输入为k+2时刻的反向状态度量βk (0),βk (2),βk (4),βk (6),以及相应的分支度量,这些分支度量输入由公式7决定。
在每一个反向状态度量计算周期,由8个输入的k+2时刻的反向状态度量计算出k时刻的8个反向状态度量后,一方面,8个新的反向状态度量被写入反向状态度量缓存模块17的相应位置,另一方面,它们被用于更新寄存器β_old[0]~β_old[7],作为下一个反向状态度量的计算周期的输入,计算k-2时刻的反向状态度量。当原始的编码前数据块长度为N时,则反向状态度量的计算总共需要N/2次迭代计算。
似然比计算模块15基于以上计算所得的分支度量、前向状态度量、反向状态度量计算对应每一时刻编码器的输入信息比特的似然比。似然比定义为:
其中,表示在接收数据序列为的前提条件下,编码器在k时刻的输入信息比特为“0”或“1”的概率。LR(dk)大于1的话,则表示dk为“0”的概率比较大,反之则表示为“1”的概率比较大。似然比可以作为软解码信息用于后续数据处理,比如说用于像特博译码等迭代译码过程中两次译码过程之间的信息传递。
在本发明中,似然比函数通过以下方式进行计算:
其中,σk(m,m′,m")表示压缩的状态迁移网格图中的连续两个时刻的状态迁移信息,其计算方式如下所示:
σk(m,m′,m")=αk(m)*γk(m,m′,m")*βk+2(m") 公式16
其中,γk(m,m′,m")表示连续两个时刻k和k+1的联合分支度量,假定k时刻编码器输入数据为i,k+1时刻编码器输入数据为j,则有以下4种不同的联合分支度量:
i=0,1;j=0,1;
公式17
在公式11、公式12、公式13和公式14中累加数据是分别基于集合Ω(0x)、Ω(1x)、Ω(x0)、Ω(x1)进行选择,这些集合表示相邻两个时刻的状态迁移关系。假定k时刻、k+1时刻以及k+2时刻的状态分别为m、m′和m",则:
集合Ω(0x)表示满足如下关系的m、m′和m"三者的集合:在编码器输入信息比特为0时,状态由m迁移至m′;在编码器输入信息比特为0或者1时,状态由m′迁移至m"。
集合Ω(1x)表示满足如下关系的m、m′和m"三者的集合:在编码器输入信息比特为1时,状态由m迁移至m′;在编码器输入信息比特为0或者1时,状态由m′迁移至m”。
集合Ω(x0)表示满足如下关系的m、m′和m"三者的集合:在编码器输入信息比特为0或者1时,状态由m迁移至m′;在编码器输入信息比特为0时,状态由m′迁移至m"。
集合Ω(x1)表示满足如下关系的m、m′和m"三者的集合:在编码器输入信息比特为0或者1时,状态由m迁移至m′;在编码器输入信息比特为1时,状态由m′迁移至m"。
以上公式11~公式17所定义的似然比函数的计算方式以及集合Ω(0x)、Ω(1x)、Ω(x0)、Ω(x1)如图5~图8所示。
图5为针对L(dk=0)(参见公式11)计算的压缩状态迁移网格图中的状态迁移关系示意图。在时刻k输入信息比特为0时,可能出现的状态迁移有如下8种可能:状态0→状态0;状态1→状态4;状态2→状态5;状态3→状态1;状态4→状态2;状态5→状态6;状态6→状态7;状态7→状态3。而在时刻k+1输入信息比特为0或者1时可能出现的状态迁移共有16种可能:状态0→状态0;状态1→状态0;状态2→状态1;状态3→状态1;状态4→状态2;状态5→状态2;状态6→状态3;状态7→状态3;状态0→状态4;状态1→状态0;状态2→状态5;状态3→状态5;状态4→状态6;状态5→状态6;状态6→状态7;状态7→状态7。因此,在k时刻输入信息比特为0、k+1时刻的输入信息比特为0或者为1时,跨越两个连续时刻的状态迁移共有16种可能:状态0→状态0→状态0;状态3→状态1→状态0;状态4→状态2→状态1;状态7→状态3→状态1;状态1→状态4→状态2;状态2→状态5→状态2;状态5→状态6→状态3;状态6→状态7→状态3;状态0→状态0→状态4;状态3→状态1→状态4;状态4→状态2→状态5;状态7→状态3→状态5;状态1→状态4→状态6;状态2→状态5→状态6;状态5→状态6→状态7;状态6→状态7→状态7。这16种状态迁移即构成了集合Ω(0x)。按照同样的方式分别参照图6、图7和图8可以得到集合Ω(1x)、Ω(x0)以及Ω(x1)。基于这些集合的定义以及公式11到公式17即可以分别计算出L(dk=0)、L(dk=1)、L(dk+1=0)和L(dk+1=1)乃至LR(dk)和LR(dk+1)。
状态迁移网格图信息模块14以查找表(LUT:Look-Up Table)的形式存储上述四个集合Ω(0x)、Ω(1x)、Ω(x0)和Ω(x1)所表示的状态迁移信息。在计算似然比函数L(dk=0)、L(dk=1)、L(dk+1=0)和L(dk+1=1)时,通过查阅状态迁移网格图信息模块14中所存储的信息,以确定从分支度量缓存模块16、前向状态度量缓存模块18和反向状态度量缓存模块17中读取相应的数据进行计算。
似然比计算模块15的结构以及与其它模块的连接关系示意图如图9所示。似然比计算模块15由提供时序和地址等信息、用于控制其它模块动作的控制信息的控制器151、执行乘法及累加运算模块152、153、154和155、以及执行似然比除法运算模块156、157等构成。似然比计算模块15在一个计算周期计算对应连续两个时刻的信息比特的似然比函数值。一个长度为N比特的数据块的译码需要似然比计算模块15的N/2个计算周期的运算。
控制器151根据译码过程的要求查询状态迁移网格图信息模块14,以生成从分支度量缓存模块16、反向状态度量缓存模块17和前向状态度量缓存模块18读取数据的地址信号,并读取相应的数据提供给乘法及累加运算模块152、153、154和155。同时控制器151还生成相应的时序控制信号以控制乘法及累加运算模块152、153、154和155以及似然比除法运算模块156、157在合适的时间执行相应的运算动作。
乘法及累加运算模块152、153、154和155执行公式16所示的乘法运算,然后分别执行公式11到公式14所示的累加运算。在似然比计算模块15的每一个计算周期,为了计算对应k时刻和k+1时刻的信息比特的似然比函数值,乘法及累加运算模块152、153、154和155分别需要从分支度量缓存模块16读取4个对应k时刻的分支度量以及4个对应k+1时刻的分支度量、从前向状态度量缓存模块18读取8个对应k时刻的前向状态度量、从反向状态度量缓存模块17中读取8个对应k+2时刻的反向状态度量作为输入数据。这些数据的读取地址以及读取时间控制信息由控制器151生成。然后基于这些数据,乘法及累加运算模块152、153、154和155分别执行每3个数据1组的16组数据的乘法运算,再对16个乘法结果执行累加运算。
乘法及累加运算模块152、153、154和155可以以并行的方式也可以以串行的方式执行乘法和累加运算。以并行的方式进行计算时,控制器151先将该计算周期所需要的4个对应k时刻的分支度量、4个对应k+1时刻的分支度量、8个对应k时刻的前向状态度量以及8个对应k+2时刻的反向状态度量全部读取出来存放在乘法及累加运算模块152、153、154和155各自的输入缓存或者输入寄存器模块中,然后启动这些模块进行乘法和累加运算。以串行的方式进行计算时,控制器151每一次为乘法及累加运算模块152、153、154和155分别读取一次乘法运算所需要的数据,然后启动这些模块执行乘法运算,并对乘法运算结果与上一次的乘法运算结果执行累加运算,其后控制器151再为乘法及累加运算模块152、153、154和155读取下一次乘法运算所需要的数据,再次启动这些模块执行一次乘法运算以及累加运算,这样重复16次后即完成了似然比计算模块15的一个运算周期所需要的乘法以及累加运算。
在乘法及累加运算模块152、153、154和155执行完乘法以及累加运算后,控制器151生成时序控制信号启动似然比除法运算模块156、157分别计算对应k时刻、k+1时刻的信息比特的似然比函数值,计算方式如公式15所示。
图10所示为乘法及累加运算模块152、153、154和155按串行方式进行乘法和累加运算时,似然比计算模块15的一个计算周期内的动作时序关系示意图。一个计算周期包括数据R[1],…,R[16]的读入、乘法和累加运算MA[1],…,MA[16],以及似然比函数值LR的计算以及输出。而且,数据的读入以及乘法和累加运算的时序是按流水线的方式进行安排,即从读入R[2]开始,读入R[k]的同时进行MA[k-1]的计算。所有MA[k]的计算都结束后,计算似然比函数并输出。然后,又开始下一个计算周期的运算。
本发明的最典型应用是作为软输入软输出的单元译码器应用于特博码译码器中,也可以作为独立的软输入软输出或者软输入硬输出的译码器使用。
本发明在以上说明中,虽然以编码率为1/2和约束长度为4的卷积码为例说明,但是事实上对于任意编码率和任意约束长度,本发明的译码方法均可以适用。另外,本发明在以上说明中,采用了自然数域中的说明方式,但是本领域的技术人员可以很容易地将其变换为对数域的实现方法。
Claims (13)
1、一种最大后验概率译码方法,其特征在于,基于压缩状态迁移网格图进行前向状态度量、反向状态度量和似然比函数值的迭代计算,包括以下步骤:
基于输入接收数据序列计算对应每一时刻的所有可能的分支度量;
基于前述分支度量序列和压缩状态迁移网格图按迭代的方式计算对应偶数时刻的前向状态度量;
基于前述分支度量序列和压缩状态迁移网格图按迭代的方式计算对应偶数时刻的反向状态度量;
基于以上计算所得的分支度量、前向状态度量、反向状态度量和压缩状态迁移网格图计算每一时刻的信息比特的似然比函数值;
将所述似然比函数值输出应用于后续数据处理。
2、如权利要求1所述的最大后验概率译码方法,其特征在于:所述分支度量计算采用如下公式,
其中m表示状态迁移网格图中的状态,Rk={xk,yk}表示输入接收数据符号,i表示假定的编码器输入二进制数据,表示编码器在当前状态为m且输入数据为i时输出的编码比特,K以及σ2均为与信道条件相关的常数。
3、如权利要求1所述的最大后验概率译码方法,其特征在于:所述前向状态度量根据以下公式进行迭代计算:
其中,
其中,αk(m)表示从时刻1到时刻k-1的接收数据序列为以及时刻k的状态为m的联合概率,而表示从时刻1到时刻k-1的接收数据序列,δi(Rk,m1)表示分支度量,表示在编码器的当前状态为m1时,假定输入为i∈{0,1}时可迁移到的下一个状态;
在每一个前向状态度量计算周期,由8个输入的k时刻的前向状态度量计算出k+2时刻的8个前向状态度量,8个新的前向状态度量存入前向状态度量缓存模块,且同时用于更新输入前向状态度量寄存器,作为下一个前向状态度量计算周期的输入,计算k+4时刻的前向状态度量。
4、如权利要求1所述的最大后验概率译码方法,其特征在于:所述反向状态度量根据以下公式以迭代的方式进行计算:
其中,
其中,βk(m)的物理含义表示在k时刻的状态为m的条件下,从时刻k到时刻N的接收数据序列为的条件概率,而表示从时刻k到时刻N的接收数据序列,δi(Rk,m1)表示分支度量,表示当前状态m1下,假定输入为i∈{0,1}时所迁移到的下一状态;
在每一个反向状态度量计算周期,由8个输入的k+2时刻的反向状态度量计算出k时刻的8个反向状态度量,8个新的反向状态度量存入反向状态度量缓存模块,且同时用于更新输入反向状态度量寄存器,作为下一个反向状态度量的计算周期的输入,计算k-2时刻的反向状态度量。
5、如权利要求1所述的最大后验概率译码方法,其特征在于:所述似然比函数值通过以下方式进行计算:
其中,σk(m,m′,m″)表示压缩的状态迁移网格图中的连续两个时刻的状态迁移信息,其计算公式如下所示:
σk(m,m′,m")=αk(m)*γk(m,m′,m")*βk+2(m")
其中,γk(m,m′,m")表示连续两个时刻k和k+1的联合分支度量,根据k时刻和k+1时刻编码器输入数据为i、j,有以下4种不同的联合分支度量:
i=0,1;j=0,1;
其中,Ω(0x)、Ω(1x)、Ω(x0)、Ω(x1)表示相邻两个时刻的状态迁移关系的集合,假定k时刻、k+1时刻以及k+2时刻的状态分别为m、m′和m",则:
集合Ω(0x)表示满足如下关系的m、m′和m"三者的集合:在编码器输入信息比特为0时,状态由m迁移至m′;在编码器输入信息比特为0或者1时,状态由m′迁移至m";
集合Ω(1x)表示满足如下关系的m、m′和m"三者的集合:在编码器输入信息比特为1时,状态由m迁移至m′;在编码器输入信息比特为0或者1时,状态由m′迁移至m";
集合Ω(x0)表示满足如下关系的m、m′和m"三者的集合:在编码器输入信息比特为0或者1时,状态由m迁移至m′;在编码器输入信息比特为0时,状态由m′迁移至m";
集合Ω(x1)表示满足如下关系的m、m′和m"三者的集合:在编码器输入信息比特为0或者1时,状态由m迁移至m′;在编码器输入信息比特为1时,状态由m′迁移至m"。
6、一种用于实施如权利要求1所述的译码方法的译码装置,包括:分支度量计算模块(11),用于计算分支度量,并将计算结果存储在分支度量缓存模块(16)中,供前向状态度量、反向状态度量和似然比函数值计算时使用;其特征在于:
前向状态度量计算模块(12),用于基于前述分支度量序列和压缩状态迁移网格图按迭代的方式计算对应偶数时刻的前向状态度量;该模块根据输入的k时刻的前向状态度量及分支度量进行乘法及累加运算,计算k+2时刻的前向状态度量,并将计算结果存入前向状态度量缓存模块(18)中;
反向状态度量计算模块(13),用于基于前述分支度量序列和压缩状态迁移网格图按迭代的方式计算对应偶数时刻的反向状态度量;该模块根据输入的k+2时刻的反向状态度量及分支度量进行乘法及累加运算,计算k时刻的反向状态度量,并将计算结果存入反向状态度量缓存模块(17)中;
似然比计算模块(15),基于以上计算所得的分支度量、偶数时刻的前向状态度量、偶数时刻的反向状态度量以及压缩状态迁移网格图计算对应每一时刻编码器的输入信息比特的似然比;
状态迁移网格图信息模块(14),以查找表的形式存储压缩状态迁移网格图信息;
状态迁移网格图信息模块(14)中存储的信息是以Ω(0x)、Ω(1x)、Ω(x0)和Ω(x1)四个集合所表示的压缩状态迁移网格图信息,该模块与似然比计算模块相联接,在计算似然比函数L(dk=0)、L(dk=1)、L(dk+1=0)和L(dk+1=1)时,通过查阅该模块中所存储的信息,以确定从分支度量缓存模块、前向状态度量缓存模块和反向状态度量缓存模块中读取相应的数据进行计算。
7、如权利要求6所述的译码装置,其特征在于:所述分支度量缓存模块(16)为包含4乘以N个存储单元的存储模块用以存储分支度量δi(Rk,m),其中N代表译码器输入码组个数。
8、如权利要求6所述的译码装置,其特征在于:所述前向状态度量计算模块(12)包括8个输入前向状态度量寄存器(α_old[0]~α_old[7])、8个输出前向状态度量寄存器(α_new[0]~α_new[7])、以及8个乘法和累加运算模块(120~127);
在开始前向状态度量计算时,输入前向状态度量寄存器(α_old[0])被初始化为“1”,而输入前向状态度量寄存器(α_old[1]~α_old[7])则被初始化为“0”;
乘法和累加运算模块(120~127)分别对输入的4个前向状态度量以及4个分支度量进行乘法及累加运算,计算结果即为新的前向状态度量;所述新的前向状态度量通过输出前向状态度量寄存器(α_new[0]~α_new[7])存入前向状态度量缓存模块(18),同时用于更新输入前向状态度量寄存器(α_old[0]~α_old[7])。
9、如权利要求6所述的译码装置,其特征在于:所述反向状态度量计算模块(13)包括8个输入反向状态度量寄存器(β_old[0]~β_old[7])、8个输出反向状态度量寄存器(β_new[0]~β_new[7])、以及8个乘法和累加运算模块(130~137);
在开始反向状态度量计算时,输入反向状态度量寄存器(β_old[0])被初始化为“1”,而输入反向状态度量寄存器(β_old[1]~β_old[7])则被初始化为“0”;
乘法和累加运算模块(130~137)分别对输入的4个反向状态度量以及4个分支度量进行乘法以及累加运算,计算结果即为新的反向状态度量;所述新的反向状态度量通过输出反向状态度量寄存器(β_new[0]~β_new[7])存入反向状态度量缓存模块(17),同时用于更新输入反向状态度量寄存器(β_old[0]~β_old[7])。
10、如权利要求6所述的译码装置,其特征在于:所述似然比计算模块(15)由提供时序和地址信息、用于控制其它模块动作的控制信息的控制器(151)、乘法及累加运算模块(152~155)、似然比除法运算模块(156、157)构成;似然比计算模块(15)在一个计算周期计算对应连续两个时刻的信息比特的似然比函数值;
控制器(151)根据译码过程的要求查询状态迁移网格图信息模块(14),以生成从分支度量缓存模块(16)、反向状态度量缓存模块(17)和前向状态度量缓存模块(18)读取数据的地址信号,并读取相应的数据提供给乘法及累加运算模块(152~155);同时控制器(151)还生成相应的时序控制信号以控制乘法及累加运算模块(152~155)以及似然比除法运算模块(156、157)在合适的时间执行相应的运算动作。
乘法及累加运算模块(152~155)先进行乘法运算,然后分别执行累加运算。
11、如权利要求10所述的译码装置,其特征在于:所述乘法及累加运算模块(152~155)以并行的方式进行乘法和累加运算,控制器(151)先将该计算周期内所需的4个对应k时刻的分支度量、4个对应k+1时刻的分支度量、8个对应k时刻的前向状态度量以及8个对应k+2时刻的反向状态度量全部读出且存放在乘法及累加运算模块(152~155)各自的输入缓存或者输入寄存器模块中,然后启动这些模块进行乘法和累加运算。
12、如权利要求10所述的译码装置,其特征在于:所述乘法及累加运算模块(152~155)以串行的方式进行乘法和累加运算,控制器(151)每一次为乘法及累加运算模块(152~155)分别读取一次乘法运算所需要的数据,然后启动这些模块执行乘法运算,并对乘法运算结果与上一次的乘法运算结果执行累加运算,其后控制器(151)再为乘法及累加运算模块(152~155)读取下一次乘法运算所需要的数据,再次启动这些模块执行一次乘法运算以及累加运算,这样重复16次后即完成了似然比计算模块(15)的一个运算周期所需要的乘法以及累加运算。
13、如权利要求10至12任何一项所述的译码装置,其特征在于:所述乘法及累加运算完成后,控制器(151)生成时序控制信号启动似然比除法运算模块(156、157)分别计算对应k时刻、k+1时刻的信息比特的似然比函数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100286461A CN100490333C (zh) | 2005-08-10 | 2005-08-10 | 最大后验概率译码方法及译码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100286461A CN100490333C (zh) | 2005-08-10 | 2005-08-10 | 最大后验概率译码方法及译码装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1913366A CN1913366A (zh) | 2007-02-14 |
CN100490333C true CN100490333C (zh) | 2009-05-20 |
Family
ID=37722169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100286461A Active CN100490333C (zh) | 2005-08-10 | 2005-08-10 | 最大后验概率译码方法及译码装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100490333C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102801661B (zh) * | 2011-05-25 | 2016-08-03 | 中兴通讯股份有限公司 | 一种上行接收方法及装置 |
-
2005
- 2005-08-10 CN CNB2005100286461A patent/CN100490333C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN1913366A (zh) | 2007-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yuan et al. | Low-latency successive-cancellation list decoders for polar codes with multibit decision | |
CN101777924B (zh) | 一种Turbo码译码方法和装置 | |
CN1328851C (zh) | 误差校正码的译码方法及其程序和设备 | |
JP5479580B2 (ja) | Lteにおける並列turboデコーディングの方法及び装置 | |
CN101026439B (zh) | 一种提高Turbo码译码速率的译码方法 | |
CN101388674B (zh) | 一种译码的方法、译码器以及Turbo码译码器 | |
CN101286817B (zh) | 传统二进制和双二进制Turbo码通用译码方法 | |
US20130198592A1 (en) | Turbo code parallel interleaver and parallel interleaving method thereof | |
CN105634508B (zh) | 一种低复杂度近性能限的Turbo译码器的实现方法 | |
CN102340320B (zh) | 卷积Turbo码双向并行译码方法 | |
US20010021233A1 (en) | Soft-decision decoding of convolutionally encoded codeword | |
CN104092470A (zh) | 一种Turbo码译码装置及方法 | |
CN111786683B (zh) | 一种低复杂度的极化码多码块译码器 | |
CN102523076A (zh) | 通用可配置的高速率Turbo码译码系统及其方法 | |
CN103354483A (zh) | 通用的高性能Radix-4SOVA译码器及其译码方法 | |
US20070050694A1 (en) | Modified branch metric calculator to reduce interleaver memory and improve performance in a fixed-point turbo decoder | |
Zhang et al. | Fast factorization architecture in soft-decision Reed-Solomon decoding | |
JP4554366B2 (ja) | データウィンドウを使用してデータを復号化するための方法 | |
CN101217336B (zh) | TD-SCDMA/3G硬核turbo译码器 | |
CN100490333C (zh) | 最大后验概率译码方法及译码装置 | |
JP3888135B2 (ja) | 誤り訂正符号復号装置 | |
CN101882934A (zh) | 运算电路 | |
CN106059597A (zh) | 一种基于概率Turbo译码器的有符号概率计算单元 | |
CN100417031C (zh) | 宽带无线接入系统中里德索洛门卷积级联码的实现方法 | |
CN102571107A (zh) | LTE系统中高速并行Turbo码的解码系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |