基于多核DSP的Turbo并行译码方法

文档序号:7514471阅读:343来源:国知局
专利名称:基于多核DSP的Turbo并行译码方法
技术领域
本发明涉及移动通信领域,尤其涉及一种基于多核DSP (数字信号处理)平台的Turbo并行译码方法,以及在工程实践中的应用。
现有技术Turbo码具有接近香农限的优良译码性能,被广泛应用于3G以及LTE等通信标准中。为了减少计算延时,人们研究了 Turbo并行译码的方法。目前的Turbo并行译码的研究主要集中在三个层面=Turbo译码器级的并行,BCJR-SIS0译码器级的并行和BCJR算法级并行。三种层面的并行可以单独使用,也可以混合使用以达到更高的并行度。Turbo译码器级的并行就是同时使用多个Turbo译码器进行译码,每个译码器对不同的帧进行译码,对单个的数据帧而言,该方法并未提高计算效率。BCJR-SIS0译码器级的并行是指,Turbo译 码器中的两个分量SISO译码器并行工作。BCJR算法级并行是指将一个完整的数据帧划分为多个交叠或不交叠的数据子帧,由多个处理器同时对子帧进行解码运算,最终得到整个数据帧的译码结果。现有的BCJR算法级并行方法把整个长帧划分成多个交叠的子块分别译码,每个子块的译码算法与整个长帧相同。但是,现有的BCJR算法级并行方法中由于每个子块译码每个子译码模块只考虑了交叠部分的帧数据对该模块译码精度的影响,即只利用了部分观察信息,这部分信息不能代替整个帧的信息,除非译码过程交叠足够次数,否则其输出是次最优的译码结果而非最优译码结果。

发明内容
本发明所要解决的技术问题是,提供一种高效率、高译码精度的基于多核DSP平台的Turbo并行译码方法。本发明为解决上述技术问题所采用的技术方案是,基于多核DSP的Turbo并行译码方法,包括以下步骤一种基于多核DSP的Turbo并行译码方法,其特征在于,包括以下步骤第一步核I读取待译码的原始的输入序列,所述原始的输入序列由三个长度为L的序列L 丨、l(3且成;将母交织得到142);第二步核I分别将序列切、L 、Df、Lf分为K份子序列,分别记为L%、Lfk , Iix2Jt、d其中k=l,···,!(,K为多核DSP的核总数;核I将序列切〕、U 、Lf、If的第k份子序列分别分配至对应的第k个核;第三步K个核对分配到的子序列Lt、11_!\进行一次Max-Log-MAP译码;第四步第k个核将此次Max-Log-MAP译码得到的边界分布值《弘⑷传输给第k+1个核,将此次Max-Log-MAP译码得到的边界分布值Ptiw(S)传输给第k_l个核;核的编号采用从I至K循环传递的方式,当k=K时,k+l=l,当k = I, k-l=K ;第五步核I之外的k-ι个核将此次Max-Log-MAP译码得到的边信息序列Lt1Jt传输给核I;第六步核I将K份边信息序列组合成序列Lf,进行交织得到先验信息序列]第七步核I将先验信息序列Ii汾为K份子序列1421,将先验信息序列Ii讷第k份子序列Ii么分别分配至对应的第k个核;第八步K个核对分配到的子序列1^1.、1421进行一次Max-Log-MAP译码;第九步第k个核将此次Max-Log-MAP译码得到的边界分布值ag〗(s)传输给第k+1个核,将此次Max-Log-MAP译码得到的边界分布值β$1)Μ(4传输给第k_l个核;
第十步核I之外的k-Ι个核将此次Max-Log-MAP译码得到的边信息序列 传输给核I ;第^^一步核I将K份边信息序列Lt >组合成序列Ii:1,进行解交织得到先验信息序列L ;第十二步核I将先验信息序列Lf分为K份子序列,将先验信息序列L(P的第k份子序列1/么分别分配至对应的第k个核;第十三步一次迭代完成,若迭代达到预设的最大迭代次数,则译码结束;否则,返回第三步。本发明将数据帧划分为不交叠的数据子帧,并采用多核并行译码来提升译码的速度。并且,在译码过程中,设计了子帧间的信息传递方式,使得最终译码结果为最优输出。相对于现有Turbo译码器级的并行方法,本发明能对统一数据帧进行并行处理。相对于现有BCJR-SIS0译码器级的并行方法,本发明有多个子译码模块,每个子译码模块中含有两个SISO译码器,因此本发明的并行度比该方法高,能进一步缩短译码时间。相对于现有BCJR算法级并行方法,本发明利用了所有的观察信息(全部帧数据),并通过子块间传递这些信息,使得每个子模块的译码精度都受到整个帧的影响,而不是部分帧数据的影响。另外,本发明采用对数据采用无交叠的分块,比一般的交叠分块计算量小,更适合并行。本发明在算法层面进行并行化,各个核的译码由软件编程实现,而不是通过硬件逻辑的改变来增加并行度。因此,可以在硬件不变的情况下,对软件进行升级。本发明的有益效果是,能够在多个处理核的DSP上并行、成倍提高译码速度,并且支持软件升级,可用于软件无线电。


图I为核I到核K之间通信的示意图。图2为本发明Turbo并行译码算法原理图。
具体实施例方式本发明基于多核DSP平台,核总数为K,主核为核1,核I将一个大的数据块分成K个无不重叠的独立子块,K个并行的核分别对各个子块进行处理,从而提升运算速度。核I到核K之间通信的示意图如I所示。Turbo并行译码方法包括以下步骤
第一步核I读取待译码数据,包括序列L 、L ;将1^交织得到L(x2);序列切处、合在一起就是原始的输入序列,它唯一的决定了译码器的输出。这个是Turbo编码的标准,数据编码后就得到这三个序列,所以解码器中也应该输入这三个序列进行处理。第二步核I将每个序列分为K份子序列,每份记为
IiJ、L%、L(x2{ , Iiz2I U = \,...,Kh长度分别为山=1 Χ(Κ-1、’1’- = 1;=·-· = 1κ 将第k份子序列1^.、L%、1/ 、1巧分配给第k核。k = I份即核I保留,卜」为向下取整。第三步核k (k=l,…,K)对长度为Ik的子序列)1进行一次Max-Log-MAP译码。第四步核k (k=l,…,K)将自己译码过程中得到的边界分布值《S⑷传输给核k+1,PiLwO)传输给核k_l。数据采用循环传递的方式,即当k K时,需要传给K+1的数据是发送给核I的,当k=l时,需要传送给K-I的数据是发送给K的。 第五步除核I之外的核将Max-Log-MAP译码得到的边信息序列1^,传输给核I。第六步核I将K份边信息序列LtJ ( k = \,…,K )组合成序列Lf,进行交织得到先验信息序列L(a2)。第七步核I将L=按第二步中的分组方式,将分组后的第k份子序列1^1发送给第k核。第八步核k (k=l,…,K)对长度为Ik的子序列1^].、1^进行一次Max-Log-MAP译码。第九步核k (k=l,…,K)将自己译码过程中得到的边界分布值《S W传输给核k+1, Pgiw(X)传输给核 k-1。第十步核k (k=2,…,K)将Max-Log-MAP译码得到的边信息序列L(〗].传输给核I。第i^一步核I将K份边信息序列L(] (k = l,-,K )组合成序列,进行解交织得到先验信息序列Lf^。第十二步核I将1^按第二步中的分组方式,将分组后的第k份子序列发送给第k核。第十三步第三步到第十二步为一次迭代,如图2所示。若迭代达到6次,则译码结束,K个核均保存了一份子帧的译码结果,按核的编号顺序输出译码结果即为整个帧的译码结果;反之,回到第三步。由于传输了边界分布值发送至各个核,序列L^、Iili、Lfp L(z2)t的初始状态度量是发生改变了的,因此对同一序列译码所得的结果不同的。通过以上步骤就完成了基于多核DSP平台的Turbo并行译码方法。由于Max-Iog-MAP算法是成熟的技术,本发明中涉及的边界分布值以及边信息序列为本领域标准的惯用术语,其具体的计算方法不在此赘述。以3GPP系统中Turbo码为例,在TI多核DSP评估板C6474EVM上实现本发明,译码结果正确,且译码时间与参加译码的核数基本成反比,并行译码时间对比见下表所示。
权利要求
1.一种基于多核DSP的Turbo并行译码方法,其特征在于,包括以下步骤 第一步核I读取待译码的原始的输入序列,所述原始的输入序列由三个长度为L的序列吻、142)组成淑把交织得到142); 第二步核I分别将序列LT、、Lf L 〃分为K份子序列,分别记为1 .、h%、、L("{,其中k=l, ...,K,K为多核DSP的核总数;核I将序列Lf、L 、L 1 L(x2)的第k份子序列分别分配至对应的第k个核; 第三步K个核对分配到的子序列L=、1思进行一次Max-Log-MAP译码; 第四步第k个核将此次Max-Log-MAP译码得到的边界分布值《忍W传输给第k+Ι个核,将此次Max-Log-MAP译码得到的边界分布值(O传输给第k_l个核;核的编号采用从I至K循环传递的方式,当k=K时,k+l=l,当k = I, k-l=K ; 第五步核I之外的k-Ι个核将此次Max-Log-MAP译码得到的边信息序列L传输给核I ; 第六步核I将K份边信息序列组合成序列U 1进行交织得到先验信息序列第七步核I将先验信息序列L(u2)分为K份子序列LiJfc,将先验信息序列Iif的第k份子序列14 分别分配至对应的第k个核; 第八步=K个核对分配到的子序列1^1、1/么进行一次Max-Log-MAP译码; 第九步第k个核将此次Max-Log-MAP译码得到的边界分布值ag丨⑷传输给第k+Ι个核,将此次Max-Log-MAP译码得到的边界分布值PgiwQ)传输给第k_l个核; 第十步核I之外的k-Ι个核将此次Max-Log-MAP译码得到的边信息序列Lt丨传输给核I ; 第十一步核I将K份边信息序列LiS组合成序列Lf,进行解交织得到先验信息序列L(1);a , 第十二步核I将先验信息序列1巧分为K份子序列L ,将先验信息序列L(P的第k份子序列L(l>分别分配至对应的第k个核; 第十三步一次迭代完成,若迭代达到预设的最大迭代次数,则译码结束;否则,返回第三步。
2.如权利要求I所述一种基于多核DSP的Turbo并行译码方法,其特征在于,第二步中K份子序列妒、L(i)、l(2)、L(2)的长度 Ik分别为:h=L- χ([-1) J2 =Z3=…=L= Ax.kz,kx.kz、k_ __ -Λ. _ [_ 」为向下取整; 第七步中K份子序列的长度Ik分别为= L - — X (X -1),/2 = Z3 =…=/[=—; 第十二步中K份子序列H勺长度Ik分别为:h = L - — x、K-V) ,12 = !3=·.=1κ = 。
3.如权利要求I所述一种基于多核DSP的Turbo并行译码方法,其特征在于,预设的最大迭代次数为6。
全文摘要
本发明提供一种基于多核DSP的Turbo并行译码方法,将数据帧划分为不交叠的数据子帧,并采用多核并行译码来提升译码的速度。在译码过程中,设计了子帧间的信息传递方式,使得最终译码结果为最优输出。本发明利用所有的帧信息,并通过子块间传递这些信息,使得每个子模块的译码精度都受到整个帧的影响,而不是部分帧数据的影响。另外,本发明采用对数据采用无交叠的分块,比一般的交叠分块计算量小,更适合并行。
文档编号H03M13/27GK102723958SQ20121021919
公开日2012年10月10日 申请日期2012年6月28日 优先权日2012年6月28日
发明者张靓, 李玉柏, 王坚 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1