CN101388674A - 一种译码的方法、译码器以及Turbo码译码器 - Google Patents
一种译码的方法、译码器以及Turbo码译码器 Download PDFInfo
- Publication number
- CN101388674A CN101388674A CNA2008102185952A CN200810218595A CN101388674A CN 101388674 A CN101388674 A CN 101388674A CN A2008102185952 A CNA2008102185952 A CN A2008102185952A CN 200810218595 A CN200810218595 A CN 200810218595A CN 101388674 A CN101388674 A CN 101388674A
- Authority
- CN
- China
- Prior art keywords
- data sequence
- metric
- calculate
- described data
- successively
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明实施例公开了一种译码的方法,包括以下步骤:接收到数据序列;从所述数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。相应地,本发明实施例还公开了一种译码器和一种Turbo码译码器,实施本发明实施例,通过改进译码过程中计算外信息的算法,从而提高Turbo码译码的速度,减少Turbo码译码的时延,并且保证Turbo码的译码的可靠性。
Description
技术领域
本发明涉及通信领域,尤其涉及一种译码的方法、一种译码器以及一种Turbo码译码器。
背景技术
Turbo(特博)码是一种有效且常用的信道编码方法,Turbo码具有接近香农(Shannon)理论极限的性能。除了在深空通信、卫星通信以及多媒体通信等领域的应用外,Turbo码在无线移动通信***中的应用也越来越广泛。然而由于Turbo码的译码算法所需的迭代译码计算量较大,给Turbo码的译码造成了很大的时延,如何尽可能地减少Turbo码的译码时延是人们一直研究的热点问题。
Turbo码又称为并行级联卷积码(PCCC,Parallel Concatenated ConvolutionalCode),它巧妙地将分量码编码器和随机交织器结合在一起,其中分量码的最佳选择是递归***卷积码,在实现随机编码思想的同时,通过交织器实现由短码(分量码)构造长码(Turbo码)的方法,并采用软输出迭代译码来逼近最大似然译码,通过分量码译码器之间外信息或软信息的交换来提高译码性能,下面通过典型的Turbo码编码和译码的过程进行详细的说明。
请参阅图1示出的现有技术的Turbo码编码的原理示意图,编码器由两个相同的1/2码率分量码编码器,具体为上层分量码编码器和下层分量码编码器并联而成,分量码为递归***卷积码,传输函数为:
G(D)=[1,g1(D)/g0(D)],其中g1(D)=1+D+D3,g0(D)=1+D2+D3。
设编码码块长为K,编码输入序列为C=[c0,c1,c2,c3,...,cK-1],经过内部交织器交织后得到的序列为 分量码的状态集合为S={η1,η2,…,ηN},其中N为总状态数且N=2M,M为编码器中移位寄存器的个数。寄存器初始值均为0。假设分量码编码器一次输入1比特数据,编码器时延为1。如比特ck和(取值0或1)在时刻t=k分别送入上下两层分量码编码器(k=0,1,…,K-1),这样在t=k+1时刻,比特ck和的编码完成并且比特ck+1和分别送入分量码编码器。编码采用格形终止(trellis termination)方式,具体可参考3GPP TS 36.212(V8.3.0),图中输出编码xk为***位,zk和分别为第一校验位和第二校验位。
经过Turbo编码及格形终止后得到的码字序列写成向量形式为:
经过映射0→-1,1→1后的发射序列为(发射能量为1):
其经过加成性高斯白噪声(AWGN,Additive white Gaussian noise)信道后得到的接收数据序列为:
下面结合图2示出的现有技术的Turbo码译码的原理示意图,详细说明Turbo码的迭代译码原理,典型的Turbo码译码器由两个软输入软输出(SISO,Soft Input Soft Output)译码器DEC1和DEC2串联组成,即两个分量码译码器DEC1和分量码译码器DEC2串联组成,Turbo码译码器中的交织器与Turbo码编码时所使用的交织器相同。分量码译码器DEC1对上层的分量码进行译码,产生关于信息序列C中每一比特的似然信息,并将其中的外信息经过交织后送给分量码译码器DEC2,分量码译码器DEC2将此信息作为先验信息,对下层的分量码进行译码,产生关于交织后的信息序列C′中每一比特的似然比信息,然后将其中的外信息经过解交织送给分量码译码器DEC1,进行下一次译码。经过多次迭代,分量码译码器DEC1与分量码译码器DEC2的外信息趋于稳定,最后对似然比进行硬判决,即可得到信息序列C的每一比特的最佳估值。
实际中通常用最大后验概率(MAP,Maximum A Posteriori)算法或对数域上的Max-Log-MAP算法作为分量码的SISO译码方法。下面介绍现有技术中的分量码的不同译码方法。
1、分量码的串行译码算法。
请参阅图3示出的分量码的串行译码算法的原理示意图,在目前的Max-Log-MAP算法中,分量码译码器接收到数据序列后,先反向计算后向状态度量β,即从所述数据序列的末端由初值依次计反向算 再正向计算前向状态度量α和支路度量γ,即从所述数据序列的首端由初值依次计算 并同时输出所述数据序列中相应比特的对数似然比(L(ck))和外信息(Le(ck))(k=0,1,…,K-1)。因此,现有技术的串行译码算法对译码块长为K的序列进行译码,时延为2K(2倍的码块长度)个时钟周期(不计算初始值所用的时延),给译码时延造成很大的影响。
2、分量码的并行译码算法。
请参阅图4示出的分量码的并行译码算法的原理示意图,设并行分支长为KP,并且K=KP×P,即并行分支数为P。当并行接收到数据序列后,并行地计算各分支内各比特的对数似然比,直到计算出所有比特的对数似然比L(ck),此时并行进行外信息的交织或解交织操作(此时需要Turbo编码器中的内部交织器满足内存访问无竞争(contention free)特性)。在每一个并行分支的计算中,为了给和设定初始值,需要在分支前后额外各增加Lα和Lβ个比特作为训练序列(第一分支的初值和最后一个分支的初值例外)。对于第一个并行分支的初始值以及最后一个分支的的初始值按照前面的叙述设定。其他各分支的训练序列的和的初始值设为1(当用对数域算法时初始值为0)。
由于并行译码算法中每个分支的译码过程相当于串行译码,现有的并行译码算法对每个分支的译码块长为KP的序列进行译码,那么在每次分量码译码时所有比特的外信息产生需要2KP(2倍的并行分支长度)个时钟周期,同样给译码时延造成很大的影响。
发明内容
本发明实施例在于提供一种译码的方法、一种译码器以及一种Turbo码译码器,通过改进译码过程中计算外信息的算法,从而提高Turbo码译码的速度,减少Turbo码译码的时延,并且保证Turbo码的译码的可靠性。
为了达到上述技术效果,本发明实施例提出了一种译码的方法,包括以下步骤:
接收到数据序列;
从所述数据序列的末端依次反向计算后向状态度量和支路度量;
在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;
由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。
相应地,本发明实施例还公开了一种译码器,其包括:
度量计算模块,用于当接收到数据序列后,从所述数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;
信息计算模块,用于由所述度量计算模块计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。
相应地,本发明实施例还公开了一种Turbo码译码器,包括上述的译码器。
实施本发明实施例,通过改进译码过程中计算外信息的算法,将原来计算输出外信息的顺序由从左到右(即从首端到末端)改变为从中间到两边,从而提高Turbo码译码的速度,减少Turbo码译码的时延,并且保证Turbo码的译码的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术的Turbo码编码的原理示意图;
图2是现有技术的Turbo码译码的原理示意图;
图3是分量码的串行译码算法的原理示意图;
图4是分量码的并行译码算法的原理示意图;
图5是本发明的译码的方法的第一实施例流程图;
图6是本发明的分量码的译码原理的第一实施例示意图;
图7是本发明的分量码的译码原理的第二实施例示意图;
图8是本发明的译码器的第一实施例结构示意图;
图9是本发明实施例的第一信息计算模块的结构示意图;
图10是本发明实施例的第一信息计算输出单元的结构示意图;
图11是本发明的译码器的第二实施例结构示意图;
图12是本发明实施例的第二信息计算模块的结构示意图;
图13是本发明实施例的第二信息计算输出单元的结构示意图。
具体实施方式
本发明实施例提供了一种译码的方法、一种译码器以及一种Turbo码译码器,通过改进译码过程中计算外信息的算法,从而提高Turbo码译码的速度,减少Turbo码译码的时延,并且保证Turbo码的译码的可靠性。
下面结合附图详细说明本发明的优选实施例。
结合图2,对分量码的译码算法进行分析。对于上层的分量码译码器DEC1,输入为***位接收序列和第一校验位接收序列k=0,1,…,(K+4)-1,输入序列记为R=[R0;R1;…;Rk;…;RK+3],其中 令在时刻t=k时编码器状态记为sk,输入比特ck,此时编码器状态变为sk+1。下层的分量码译码器DEC2的表示与上层的分量码译码器DEC1的类似,这里以上层的分量码译码器DEC1为例,以MAP算法描述比特的对数似然比(LLR,Log Likelihood Ratio)的计算过程。
比特ck(k=0,1,…,K-1)的对数似然比LLR定义为:
令 前向状态度量 支路度量 后向状态度量 其中sk+1=f(m,i)表示t=k时刻在sk=m状态处输入比特ck=i后到达的t=k+1时刻的状态。则有
有如下递推公式:
其中sk=b(m,i)表示t=k时刻在状态sk=b(m,i)处输入比特ck=i后到达t=k+1时刻的状态sk+1=m。
其中Ck为只与时刻k有关的常数, 为先验概率。
由以上各式可得:
其中La(ck)为先验信息,Lch(ck)为信道信息,Le(ck)为外信息并且它是迭代译码中两个分量码译码器之间传递的信息。
的初始值有如下两种等价的设定方法:
(1)设定(K+3)时刻各状态的初值如下:
(2)设定K时刻各状态的初值。由于Turbo码采用格形终止方法,即序列C编码后再输入3个尾比特0。于是Turbo编码网格图中相应于尾比特的三段时间内的状态转移只由比特0产生。这样可以由β的递推公式和相应于最后3个尾比特的网格图,由 计算出各个作为初始值。
各比特的先验信息初始值为0。σ2取为1。
前面介绍的MAP算法中需要计算大量的指数运算,在对数域进行各个参数的计算,令
在Max-Log-MAP算法中,作如下近似ln(ex+ey)≈max{x,y}。结合和的定义可计算出和现有技术中在每次分量码译码时,先反向计算后向状态度量β,再正向计算前向状态度量α和支路度量γ,因此外信息全部产生需要正反向各计算一遍,即从数据序列的首末两端各计算一遍。
下面结合图5示出的本发明的译码的方法的第一实施例流程图,详细说明译码过程中计算外信息的算法,包括如下步骤:
步骤S501:接收到数据序列;从所述数据序列的末端依次反向计算后向状态度量和支路度量;在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;
步骤S502:由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。
需要说明的是,上述实施例为改进后的分量码的串行译码的方法,具体地,下面结合图6示出的本发明的分量码的译码原理的第一实施例示意图,详细说明本发明的分量码的译码方法。从对数似然比的计算公式(1)中可以得知,计算L(ck)时只需要已知当前时刻k的前向状态度量下一时刻k+1的后向状态度量以及时刻k和时刻k+1两个时刻之间的支路度量因此,本发明实施例从接收的数据序列的末端依次反向计算后向状态度量和支路度量,即从接收到数据序列后的最后时刻到第1时刻分别计算各个时刻的后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量,即从接收到数据序列后的第1时刻到最后时刻分别计算各个时刻的前向状态度量和支路度量,最优地,从接收数据的首末两端同时相向计算(其中k=0,1,2,…)和(其中k=K-1,K-2,…),即从所述数据序列的末端依次反向计算后向状态度量和支路度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当两个方向的计算“相交”后,即反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述分支的数据序列的码长个数后,由计算出的后向状态度量前向状态度量以及支路度量结合公式(1)能够计算当前时刻的L(ck),然后由L(ck)结合公式(2)计算出外信息,即可以计算输出两个比特的对数似然比和外信息,当计算出所有比特的对数似然比和外信息后,将所述外信息作为先验信息,进行下一次的分量码的译码,经过多次迭代直到外信息趋于稳定后,才对似然比进行硬判决,得出最佳估值。具体地,在相向计算“相交”后,当块长个数为奇数K=2j+1时,其中j为预设的固定的整数值,首先会计算所述数据序列中第j+1个比特的LLR值和外信息,即比特cj的LLR值和外信息,之后依次可以计算第j+1-q个和第j+1+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到j,即之后依次可以计算两个比特cj-q和cj+q的LLR值和外信息,其中q的取值依次从1到j;当块长个数为偶数K=2j时,其中j为预设的固定的整数值,首先会计算所述数据序列中第j个和第j+1个两个比特的对数似然比信息和外信息,即比特cj-1和cj的LLR值和外信息,之后依次可以计算所述数据序列中第j-q个和第j+1+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到j-1,即之后依次可以计算两个比特cj-1-q和cj+q的LLR值和外信息,其中q的取值依次从1到j-1。
需要说明的是,每次译码过程中的j可以为不同的整数值,即每次译码过程中的数据序列的码长个数可以不同,因此,本发明实施例的译码方法适用于不同码块长度的译码。
通过上述实施例,加速的串行译码算法将原来计算输出LLR值和外信息的顺序由从左到右(即从首端到末端)改变为从中间到两边,改进了译码过程中计算外信息的算法,达到了译码提速的目的,而且计算是准确的,不会有性能损失,保证了Turbo码译码的可靠性。
可以理解,本实施例步骤S501和结合图6的具体描述中,“从所述数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量”,也可以理解为“数据序列具有两端点,从所述数据序列的一端向内依次计算该数据序列的后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的相对另一端向内依次计算该数据序列的前向状态度量和支路度量”。末端和首端是可以互换的。末端可以代表所接收到的数据序列的起始端,也可以代表数据序列的终止端。本发明实施例中,首端和末端可用来表示数据序列两端于相反方向的意义。
需要说明的是,上述实施例为改进后的分量码的串行译码的方法,具体地,当上述实施例接收到的数据序列为并行接收到的至少两个分支的数据序列时,需要进行分量码的并行译码,下面结合图7示出的本发明的分量码的译码原理的第二实施例示意图,详细说明分量码的并行译码的方法。译码器并行接收到至少两个分支的数据序列后,本实施例假设为P个分支的数据序列,其中P≥2,每个分支的译码过程与上述改进的串行译码类似,本实施例从各个分支的数据序列的末端依次反向计算后向状态度量和支路度量,即从接收到各个分支的数据序列后的最后时刻到第1时刻分别计算各个时刻的后向状态度量和支路度量,并在计算完所述各个分支的后向状态度量和支路度量之前从各个分支的数据序列的首端依次正向计算前向状态度量和支路度量,即从接收到各个分支的数据序列后的第1时刻到最后时刻分别计算各个时刻的前向状态度量和支路度量,最优地,各个分支从接收数据的首末两端同时相向计算(其中k=0,1,2,…)和(其中k=KP-1,Kp-2,…),即从各个分支的数据序列的末端依次反向计算后向状态度量和支路度量的同时,从各个分支的数据序列的首端依次正向计算前向状态度量和支路度量,当两个方向的计算“相交”后,即当所述分支的反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述分支的数据序列的码长个数后,由计算出的后向状态度量前向状态度量以及支路度量结合公式(1)能够计算当前时刻的L(ck),然后由L(ck)结合公式(2)计算出外信息,即可以计算输出两个比特的对数似然比和外信息,当计算出所有比特的对数似然比和外信息后,将所述外信息作为先验信息,进行下一次的分量码的译码,经过多次迭代直到外信息趋于稳定后,才对似然比进行硬判决,得出最佳估值。具体地,在相向计算“相交”后,当所述分支数据序列块长个数为奇数KP=2j+1时,其中j为预设的固定的整数值,首先会计算产生所述分支数据序列中第j+1个比特的LLR值和外信息,即比特cj的LLR值和外信息,之后依次可以计算第j+1-q个和第j+1+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到j,即之后依次可以计算两个比特cj-q和cj+q的LLR值和外信息,其中q的取值依次从1到j;当所述分支数据序列块长个数为偶数KP=2j时,其中j为预设的固定的整数值,首先会计算所述分支数据序列中第j个和第j+1个两个比特的对数似然比信息和外信息,即比特cj-1和cj的LLR值和外信息,之后依次可以计算所述数据序列中第j-q个和第j+1+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到j-1,即之后依次可以计算两个比特cj-1-q和cj+q的LLR值和外信息,其中q的取值依次从1到j-1。
需要说明的是,每次译码过程中的j可以为不同的整数值,即每次译码过程中的数据序列的码长个数可以不同,因此,本发明实施例的译码方法适用于不同码块长度的译码。
通过上述实施例,加速的并行译码算法将原来每个分支计算输出LLR值和外信息的顺序由从左到右(即从首端到末端)改变为从中间到两边,达到了译码提速的目的,而且计算是准确的,不会有性能损失,保证了Turbo码译码的可靠性。
需要说明的是,典型的Turbo码译码过程为2维的译码过程,即只有两层分量码译码器,相应地,从迭代的译码结构可以推广到多维的译码,即有多层分量码译码器,该分量码译码器的译码过程与典型译码过程中的分量码译码器的译码过程相似,因此,本发明实施例的译码的方法除了可以应用在典型的Turbo码译码过程中外,即除了可以应用在2维的译码过程中外,还可以应用到M维的Turbo码译码过程中,其中M≥2。
需要说明的是,本发明的译码方法适用于所有以Turbo码作为信道编码的通信***以及一般的Turbo码译码器。
下面结合图8示出的本发明的译码器的第一实施例结构示意图,说明本发明实施例的译码器的结构,包括:
第一度量计算模块81,用于当接收到数据序列后,从所述数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;
第一信息计算模块82,用于由第一度量计算模块81计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。
具体地,本实施例对应上述的改进的串行译码方法,译码器为分量码串行译码器。如图9示出的本发明实施例的第一信息计算模块的结构示意图,第一信息计算模块82包括第一信息计算输出单元821。最优地,第一度量计算模块81从接收数据的首末两端同时相向计算(其中k=0,1,2,…)和(其中k=K-1,K-2,…),即从所述数据序列的末端依次反向计算后向状态度量和支路度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当两个方向的计算“相交”后,即反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述分支的数据序列的码长个数后,第一信息计算输出单元821由计算出的后向状态度量前向状态度量以及支路度量结合公式(1)能够计算当前时刻的L(ck),然后由L(ck)结合公式(2)计算出外信息,即可以计算输出两个比特的对数似然比和外信息,当计算出所有比特的对数似然比和外信息后,将所述外信息作为先验信息,传送到下一分量码译码器进行下一次的分量码的译码,经过多次迭代直到外信息趋于稳定后,才对似然比进行硬判决,得出最佳估值。具体地,如图10示出的本发明实施例的第一信息计算输出单元的结构示意图,第一信息计算输出单元821包括第一信息计算子单元8211和第二信息计算子单元8212,在相向计算“相交”后,当块长个数为奇数K=2j+1时,其中j为预设的固定的整数值,第一信息计算子单元8211首先会计算所述数据序列中第j+1个比特的LLR值和外信息,即比特cj的LLR值和外信息,之后依次可以计算第j+1-q个和第j+1+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到j,即之后依次可以计算两个比特cj-q和cj+q的LLR值和外信息,其中q的取值依次从1到j;当块长个数为偶数K=2j时,其中j为预设的固定的整数值,第二信息计算子单元8212首先会计算所述数据序列中第j个和第j+1个两个比特的对数似然比信息和外信息,即比特cj-1和cj的LLR值和外信息,之后依次可以计算所述数据序列中第j-q个和第j+1+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到j-1,即之后依次可以计算两个比特cj-1-q和cj+q的LLR值和外信息,其中q的取值依次从1到j-1。
需要说明的是,每次译码过程中的j可以为不同的整数值,即每次译码过程中的数据序列的码长个数可以不同,因此,本发明实施例的译码方法适用于不同码块长度的译码。
需要说明的是,上述实施例为改进后的分量码串行译码器的结构,具体地,当上述接收到的数据序列为并行接收到的至少两个分支的数据序列时,需要进行分量码的并行译码,下面结合图11示出的本发明的译码器的第二实施例结构示意图,说明本发明实施例的译码器的结构,包括:
第二度量计算模块111,用于当并行接收到至少两个分支的数据序列后,从各个分支的数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述各个分支的后向状态度量和支路度量之前从各个分支的数据序列的首端依次正向计算前向状态度量和支路度量;
第二信息计算模块112,用于由第二度量计算模块111计算出的后向状态度量、前向状态度量以及支路度量计算输出所述分支的数据序列中的比特的外信息。
具体地,本实施例对应上述的改进的并行译码方法,本实施例的译码器为分量码并行译码器。如图12示出的本发明实施例的第二信息计算模块的结构示意图,第二信息计算模块112包括第二信息计算输出单元1121。第二度量计算模块111在并行接收到至少两个分支的数据序列后,本实施例假设为P个分支的数据序列,其中P≥2,每个分支的译码过程与上述改进的串行译码类似,最优地,第二度量计算模块111从各个分支的接收数据的首末两端同时相向计算(其中k=0,1,2,…)和(其中k=KP-1,Kp-2,…),即从各个分支的数据序列的末端依次反向计算后向状态度量和支路度量的同时,从各个分支的数据序列的首端依次正向计算前向状态度量和支路度量,当两个方向的计算“相交”后,即当所述分支的反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述分支的数据序列的码长个数后,第二信息计算输出单元1121由计算出的后向状态度量前向状态度量以及支路度量结合公式(1)能够计算当前时刻的L(ck),然后由L(ck)结合公式(2)计算出外信息,即可以计算输出两个比特的对数似然比和外信息,当计算出所有比特的对数似然比和外信息后,将所述外信息作为先验信息,传送到下一分量码译码器进行下一次的分量码的译码,经过多次迭代直到外信息趋于稳定后,才对似然比进行硬判决,得出最佳估值。具体地,如图13示出的本发明实施例的第二信息计算输出单元的结构示意图,第二信息计算输出单元1121包括第三信息计算子单元11211和第四信息计算子单元11212,在相向计算“相交”后,当所述分支数据序列块长个数为奇数KP=2j+1时,第三信息计算子单元11211首先会计算产生所述分支数据序列中第j+1个比特的LLR值和外信息,即比特cj的LLR值和外信息,之后依次可以计算第j+1-q个和第j+1+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到j,即之后依次可以计算两个比特cj-q和cj+q的LLR值和外信息,其中q的取值依次从1到j;当所述分支数据序列块长个数为偶数KP=2j时,第四信息计算子单元11212首先会计算所述分支数据序列中第j个和第j+1个两个比特的对数似然比信息和外信息,即比特cj-1和cj的LLR值和外信息,之后依次可以计算所述数据序列中第j-q个和第j+1+q个两个比特的对数似然比信息和外信息,其中q的取值依次从1到j-1,即之后依次可以计算两个比特cj-1-q和cj+q的LLR值和外信息,其中q的取值依次从1到j-1。
需要说明的是,每次译码过程中的j可以为不同的整数值,即每次译码过程中的数据序列的码长个数可以不同,因此,本发明实施例的译码方法适用于不同码块长度的译码。
本发明实施例的Turbo码译码器除了包括交织器、解交织器、判决器外,还包括上述实施例的译码器,所述译码器可以为分量码串行译码器,也可以为分量码并行译码器。通过改进的分量码译码器,将原来计算输出LLR值和外信息的顺序由从左到右(即从首端到末端)改变为从中间到两边,达到了译码提速的目的,而且计算是准确的,不会有性能损失,保证了Turbo码译码的可靠性。
需要说明的是,典型的Turbo码译码器为2维的译码过程,即只有两层分量码译码器,相应地,从迭代的译码结构可以推广到多维的译码,即有多层分量码译码器,该分量码译码器的译码过程与典型译码过程中的分量码译码器的译码过程相似,因此,本发明的译码器以及Turbo码译码器除了可以应用在典型的Turbo码译码过程中外,即除了可以应用在2维的译码过程中外,还可以应用到M维的Turbo码译码过程中,其中M≥2。
需要说明的是,本发明的译码器以及Turbo码译码器适用于所有以Turbo码作为信道编码的通信***。
下面通过数学理论来比较原算法和本发明的加速算法的译码速度。
设Turbo编码块长为K。由尾比特计算得到各状态的作为初始值。芯片的时钟频率为F MHz。假设每个时钟周期(cycle)可以将一个***位软比特和相应的两个校验位软比特写入到Turbo译码器内部的输入数据缓存中。译码迭代次数为Iter。
一般的串行算法的译码速度为:
本发明的加速的串行算法的译码速度为:
在并行译码算法中,设并行分支数为P,则每个分支长度为K/P,分支两端α和β的训练序列长度都为L(第一分支的α和最后一分支的β不需要训练)。在译码之前先用L个cycle(此时需要双端口RAM:Random Access Memory,如果用单端口RAM,则需要2L个cycle)计算出每个分支的α和β的初始值。
一般的并行算法译码速度为:
本发明的加速的并行算法译码速度为:
由前面的公式可以看出,采用串行译码装置时,本发明的加速算法比原算法的译码速度几乎翻倍,可以有效的减少译码时延。采用并行译码装置时,如果译码速度相同,则本发明的加速算法所需的并行分支数是原算法的一半,由于分支数减半,训练序列也相应的减半,性能会有提升。如果分支数相同,则本发明的加速算法与原算法相比,性能相同,但可以达到更高的译码速度。
下表给出了不同并行分支数时原算法和本发明的加速算法所能达到的译码速度。
以F=100,编码块长K=6144为例计算译码速度。
从上表Turbo码并行译码的峰值速度可得,并行分支数为16的加速并行算法比并行分支数为16的一般并行算法提高速度在40%以上。
下表给出了不同编码块长度时并行译码相对于串行译码的浮点性能损失。
由上表不同块长时并行译码相对于串行译码的浮点性能损失可知,并行分支数减半,性能损失也会大幅减少(接近50%)。如果要达到相同的译码速度,本发明的加速算法所用的并行分支数目是原算法的一半,此时本发明的加速算法的性能会比原算法有显著的提高。
综上所述,实施本发明实施例,通过加速的串行译码算法将原来计算输出LLR值和外信息的顺序由从左到右(即从首端到末端)改变为从中间到两边,达到了译码提速的目的,而且计算是准确的,不会有性能损失,保证了Turbo码译码的可靠性。具体地,在串行译码时,比原译码算法提高译码速度近一倍,并且没有性能损失;在并行译码时,如果并行分支数相同,则比原译码算法提高译码速度的百分比为此时没有性能损失,但可以显著的减少译码时延。在并行译码时,如果要达到相同的译码速度,则本发明的加速译码算法所需的并行分支数是原译码算法的一半,此时训练序列也减少一半,性能会有较大的提高。
需要说明的是,通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所揭露的仅为本发明实施例中的一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (11)
1、一种译码的方法,其特征在于,包括以下步骤:
接收到数据序列;
从所述数据序列的末端依次反向计算后向状态度量和支路度量;
在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;
由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。
2、如权利要求1所述的方法,其特征在于,所述由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息包括:
当反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述数据序列的码长个数后,由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。
3、如权利要求2所述的方法,其特征在于,从所述数据序列的末端依次反向计算后向状态度量和支路度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当所述数据序列的码长个数为奇数K=2j+1时,其中j为预设的固定的整数值,所述由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息包括:
由计算出的后向状态度量、前向状态度量以及支路度量计算所述数据序列中第j+1个比特的外信息,之后依次计算第j+1-q个和第j+1+q个两个比特的外信息,其中q的取值依次从1到j。
4、如权利要求2所述的方法,其特征在于,从所述数据序列的末端依次反向计算后向状态度量和支路度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当所述数据序列的码长个数为偶数K=2j时,其中j为预设的固定的整数值,所述由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息包括:
由计算出的后向状态度量、前向状态度量以及支路度量计算所述数据序列中第j个和第j+1个两个比特的外信息,之后依次计算第j-q个和第j+1+q个两个比特的外信息,其中q的取值依次从1到j-1。
5、如权利要求1至4任意一项所述的方法,其特征在于,所述接收到的数据序列为并行接收到的至少两个分支的数据序列。
6、一种译码器,其特征在于,包括:
度量计算模块,用于当接收到数据序列后,从所述数据序列的末端依次反向计算后向状态度量和支路度量,并在计算完所述后向状态度量和支路度量之前从所述数据序列的首端依次正向计算前向状态度量和支路度量;
信息计算模块,用于由所述度量计算模块计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。
7、如权利要求6所述的译码器,其特征在于,所述信息计算模块包括:
信息计算输出单元,用于当所述度量计算模块反向计算的后向状态度量个数与正向计算的前向状态度量个数之和大于所述数据序列的码长个数后,由计算出的后向状态度量、前向状态度量以及支路度量计算输出所述数据序列中的比特的外信息。
8、如权利要求7所述的译码器,其特征在于,所述度量计算模块从所述数据序列的末端依次反向计算后向状态度量和支路度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当所述数据序列的码长个数为奇数K=2j+1时,其中j为预设的固定的整数值,所述信息计算输出单元包括:
第一信息计算子单元,用于由所述度量计算模块计算出的后向状态度量、前向状态度量以及支路度量计算所述数据序列中第j+1个比特的外信息,之后依次计算第j+1-q个和第j+1+q个两个比特的外信息,其中q的取值依次从1到j。
9、如权利要求7所述的译码器,其特征在于,所述度量计算模块从所述数据序列的末端依次反向计算后向状态度量和支路度量的同时,从所述数据序列的首端依次正向计算前向状态度量和支路度量,当所述数据序列的码长个数为偶数K=2j时,其中j为预设的固定的整数值,所述信息计算输出单元包括:
第二信息计算子单元,用于由所述度量计算模块计算出的后向状态度量、前向状态度量以及支路度量计算所述数据序列中第j个和第j+1个两个比特的外信息,之后依次计算第j-q个和第j+1+q个两个比特的外信息,其中q的取值依次从1到j-1。
10、如权利要求6至9任意一项所述的译码器,其特征在于,所述接收到的数据序列为并行接收到的至少两个分支的数据序列。
11、一种Turbo码译码器,其特征在于,所述Turbo码译码器包括如权利要求6至10任意一项所述的译码器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102185952A CN101388674B (zh) | 2008-10-23 | 2008-10-23 | 一种译码的方法、译码器以及Turbo码译码器 |
PCT/CN2009/074367 WO2010045842A1 (zh) | 2008-10-23 | 2009-10-09 | 一种译码中外信息计算方法、译码器以及Turbo码译码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102185952A CN101388674B (zh) | 2008-10-23 | 2008-10-23 | 一种译码的方法、译码器以及Turbo码译码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101388674A true CN101388674A (zh) | 2009-03-18 |
CN101388674B CN101388674B (zh) | 2011-06-15 |
Family
ID=40477884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102185952A Expired - Fee Related CN101388674B (zh) | 2008-10-23 | 2008-10-23 | 一种译码的方法、译码器以及Turbo码译码器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101388674B (zh) |
WO (1) | WO2010045842A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010045842A1 (zh) * | 2008-10-23 | 2010-04-29 | 华为技术有限公司 | 一种译码中外信息计算方法、译码器以及Turbo码译码器 |
CN102111163A (zh) * | 2009-12-25 | 2011-06-29 | 中兴通讯股份有限公司 | Turbo编码器及编码方法 |
CN102340320A (zh) * | 2011-07-08 | 2012-02-01 | 电子科技大学 | 卷积Turbo码双向并行译码方法 |
CN102843154A (zh) * | 2011-06-24 | 2012-12-26 | 中国科学院微电子研究所 | Turbo码的初始态估计及子帧译码方法、装置 |
CN103490854A (zh) * | 2013-09-03 | 2014-01-01 | 华为技术有限公司 | 一种训练窗添加方法及芯片 |
CN103595424A (zh) * | 2012-08-15 | 2014-02-19 | 重庆重邮信科通信技术有限公司 | 分量译码方法、译码器及Turbo译码方法、装置 |
CN106856425A (zh) * | 2016-12-29 | 2017-06-16 | 中国科学院微电子研究所 | 用于长期演进的turbo译码器及工作方法 |
CN110168988A (zh) * | 2017-01-06 | 2019-08-23 | Idac控股公司 | 数据和控制重传的高级译码 |
CN115085742A (zh) * | 2022-08-18 | 2022-09-20 | 杰创智能科技股份有限公司 | 解码方法、装置、电子设备和存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111211792B (zh) * | 2018-11-22 | 2023-05-30 | 北京小米松果电子有限公司 | Turbo译码方法、装置及*** |
CN112398487B (zh) * | 2020-12-14 | 2024-06-04 | 中科南京移动通信与计算创新研究院 | 一种降低Turbo并行译码复杂度的实现方法及*** |
CN114553244B (zh) * | 2022-01-19 | 2024-06-04 | 北京理工大学 | 低码率Turbo码译码方法和装置 |
CN114553370B (zh) * | 2022-01-19 | 2024-03-15 | 北京理工大学 | 译码方法、译码器、电子设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6829313B1 (en) * | 2000-07-17 | 2004-12-07 | Motorola, Inc. | Sliding window turbo decoder |
CN1209885C (zh) * | 2003-06-18 | 2005-07-06 | 中国人民解放军理工大学通信工程学院 | Turbo编码BPSK调制***的迭代解调解码方法及装置 |
CN100508405C (zh) * | 2005-11-11 | 2009-07-01 | 清华大学 | 提高Turbo码译码速度的并行译码方法及译码装置 |
KR100895670B1 (ko) * | 2007-01-15 | 2009-05-08 | (주)카이로넷 | 슬라이딩 윈도우 방식을 이용한 터보 디코딩 방법, 이를 수행하는 터보 디코더 및 무선 수신 장치 |
CN101026439B (zh) * | 2007-02-07 | 2012-08-29 | 重庆重邮信科通信技术有限公司 | 一种提高Turbo码译码速率的译码方法 |
CN101388674B (zh) * | 2008-10-23 | 2011-06-15 | 华为技术有限公司 | 一种译码的方法、译码器以及Turbo码译码器 |
-
2008
- 2008-10-23 CN CN2008102185952A patent/CN101388674B/zh not_active Expired - Fee Related
-
2009
- 2009-10-09 WO PCT/CN2009/074367 patent/WO2010045842A1/zh active Application Filing
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010045842A1 (zh) * | 2008-10-23 | 2010-04-29 | 华为技术有限公司 | 一种译码中外信息计算方法、译码器以及Turbo码译码器 |
CN102111163A (zh) * | 2009-12-25 | 2011-06-29 | 中兴通讯股份有限公司 | Turbo编码器及编码方法 |
CN102111163B (zh) * | 2009-12-25 | 2014-03-19 | 中兴通讯股份有限公司 | Turbo编码器及编码方法 |
CN102843154A (zh) * | 2011-06-24 | 2012-12-26 | 中国科学院微电子研究所 | Turbo码的初始态估计及子帧译码方法、装置 |
CN102843154B (zh) * | 2011-06-24 | 2016-04-13 | 中国科学院微电子研究所 | Turbo码的初始态估计及子帧译码方法、装置 |
CN102340320A (zh) * | 2011-07-08 | 2012-02-01 | 电子科技大学 | 卷积Turbo码双向并行译码方法 |
CN103595424A (zh) * | 2012-08-15 | 2014-02-19 | 重庆重邮信科通信技术有限公司 | 分量译码方法、译码器及Turbo译码方法、装置 |
CN103595424B (zh) * | 2012-08-15 | 2017-02-08 | 重庆重邮信科通信技术有限公司 | 分量译码方法、译码器及Turbo译码方法、装置 |
CN103490854A (zh) * | 2013-09-03 | 2014-01-01 | 华为技术有限公司 | 一种训练窗添加方法及芯片 |
CN106856425A (zh) * | 2016-12-29 | 2017-06-16 | 中国科学院微电子研究所 | 用于长期演进的turbo译码器及工作方法 |
CN110168988A (zh) * | 2017-01-06 | 2019-08-23 | Idac控股公司 | 数据和控制重传的高级译码 |
US11251908B2 (en) | 2017-01-06 | 2022-02-15 | Idac Holdings, Inc. | Advanced coding on retransmission of data and control |
CN110168988B (zh) * | 2017-01-06 | 2022-05-24 | Idac控股公司 | 数据和控制重传的高级译码方法和设备 |
CN115085742A (zh) * | 2022-08-18 | 2022-09-20 | 杰创智能科技股份有限公司 | 解码方法、装置、电子设备和存储介质 |
CN115085742B (zh) * | 2022-08-18 | 2022-11-15 | 杰创智能科技股份有限公司 | 解码方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101388674B (zh) | 2011-06-15 |
WO2010045842A1 (zh) | 2010-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101388674B (zh) | 一种译码的方法、译码器以及Turbo码译码器 | |
CN101026439B (zh) | 一种提高Turbo码译码速率的译码方法 | |
US20040039769A1 (en) | Method for decoding error correcting code, its program and its device | |
CN104025459A (zh) | 译码处理方法及译码器 | |
CN100546207C (zh) | 一种基于DVB-RCS标准的双二元Turbo码译码方法 | |
CN104579369A (zh) | 一种Turbo迭代译码方法和译码装置 | |
CN105634508A (zh) | 一种低复杂度近性能限的Turbo译码器的实现方法 | |
CN102523076A (zh) | 通用可配置的高速率Turbo码译码***及其方法 | |
CN104092470A (zh) | 一种Turbo码译码装置及方法 | |
CN111130646A (zh) | 一种抗时延抖动的高速率mppm星座映射方法 | |
CN101753152A (zh) | 一种Turbo码译码器及译码方法 | |
CN110730011A (zh) | 一种基于部分叠加的递归分组马尔可夫叠加编码方法 | |
CN106656216A (zh) | 一种针对Turbo乘积码的修正的软入软出译码方法 | |
CN103986557A (zh) | 低路径延迟的LTE Turbo码并行分块译码方法 | |
CN100486120C (zh) | 一种Turbo译码装置及方法 | |
CN101882934B (zh) | 运算电路 | |
CN102611464B (zh) | 基于外信息并行更新的Turbo译码器 | |
CN107196666A (zh) | 一种通用Turbo编译码器快速验证方法 | |
CN107147401A (zh) | 基于简化双二元Turbo码度量值的译码方法 | |
CN100581089C (zh) | TD-SCDMA***中的Woven卷积码纠错编、译码器 | |
Hall | Performance and design of Turbo codes on Rayleigh fading channels | |
CN1773867B (zh) | Turbo码译码方法 | |
CN103916141B (zh) | Turbo码译码方法及装置 | |
CN101924566B (zh) | 用于长期演进的Turbo编码方法和Turbo编码器 | |
CN100505600C (zh) | 一种实现缩短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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110615 Termination date: 20181023 |