Turbo码并行交织器及其并行交织方法

文档序号:7518113阅读:219来源:国知局
专利名称:Turbo码并行交织器及其并行交织方法
技术领域
本发明涉及通信领域中的Turbo译码处理技术,具体而言,涉及一种Turbo码并行交织器及其并行交织方法。
背景技术
Turbo码是LTE中一种重要的信道编码方式,其特征是编译码复杂度高,时延大, 但误码性能优异,适合于大数据量的长码块及对时延要求不高的数据传输。Turbo码的成功在于它能很好地满足香农信道编码理论中的随机性条件,并且采用了迭代译码的方式来获得编码增益,因此能够获得逼近香农限的极限性能。图1是Turbo译码器的结构示意图,由两个软输入软输出(SISO)的RSC码分量译码单元组成,中间通过交织器和解交织器相连,进行迭代译码。译码单元1所输出的外赋信息april作为译码单元2的先验信息,辅助其译码;同样,译码单元2所输出的外赋信息 apri2作为译码单元1的先验信息,如此反复迭代进行译码。译码单元1和译码单元2的硬件结构完全相同,在硬件实现时可以采用分时复用,节省硬件资源。译码单元1和译码单元2中主要是实现对数域的Max-Log-Map算法,其中将乘法和指数运算简化为加法和取最大值的运算,从而降低了计算复杂度,利于硬件实现。对于并行的Turbo译码器而言,其核心就是要在译码单元1和译码单元2中设置多个并行的Max-Log-Map计算单元,使之同时对同一码块数据进行分段译码。交织器在Turbo译码器中发挥着关键作用,直接影响Turbo译码器的性能。LTE 采用的是二次置换多项式(Quadratic PermutationPolynomial, QPP)交织器,这种交织器是无争用(Contention-free, CF)交织器的一种,其表达式为Π (i) = · i+f2 · i2)mod K(式1-1),其中i和Π (i)分别为交织前和交织后的序号;K为码块的长度义和&是两个参数,具体可以根据码块长度K确定。即,假设长度为K的比特流Ctl,Cl,. . .,Ck+交织器的输出c' ο, c',c' η,则c' i可以表示为C' i =。^"LTE系统要求支持IOOMbps以上的峰值数据速率,这对信道编码译码速度提出了更高的要求,为了满足这一要求,LTE中的Turbo码必须采用并行译码算法。对于Turbo码并行译码而言,交织器的设计也要适应其并行译码的要求,发明人发现在相关技术中,还没有一种能有效进行并行交织的Turbo码交织器和方法。

发明内容
本发明的主要目的在于提供一种Turbo码并行交织器及其并行交织方法,以至少解决上述不能有效地进行并行交织的问题。根据本发明的一个方面,提供了一种Turbo码并行交织器,包括交叉单元,用于产生并行读取数据的列地址,以及用于对读取的数据进行行交叉的各行的行地址,将所述列地址作为读地址输入到码块CB矩阵单元,将所述列地址进行延迟后作为写地址输入到所述CB矩阵单元,将各行的所述行地址输入到转换输出单元,以及将各行的所述行地址进行延迟后输入到转换输入单元;转换输出单元,用于接收所述CB矩阵单元输出的各行数据,根据各行的所述行地址,将读取的各行数据进行行间交叉,并将交叉后的数据输入到并行匹配MAP单元做MAP计算,其中,所述各行数据为所述CB矩阵单元根据所述读地址读取的;转换输入单元,用于接收来自所述交叉单元的延迟后的各行的所述行地址,根据延迟之后的行地址将所述并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,并将交叉后的各行数据作为先验信息按照所述写地址写入到所述CB矩阵单元。根据本发明的另一方面,提供了一种Turbo码并行交织器的并行交织方法,包括 交叉单元产生并行读取数据列地址,以及用于对读取的数据进行行交叉的各行的行地址, 将所述列地址作为读地址输入到CB矩阵单元,将所述列地址进行延迟后作为写地址输入到所述CB矩阵单元,将各行的所述行地址输入到转换输出单元,并将各行的所述行地址进行延时后输入到转换输入单元;CB矩阵单元根据所述读地址读取与所述列地址对应的各行数据,并将读取的各行数据输入到所述转换输出单元,所述转换输出单元根据所述交叉单元输出的各行的所述行地址对读取的各行数据进行行间交叉,并将交叉后的数据输入到并行MAP单元做MAP计算;转换输入单元接收来自所述交叉单元的延迟后的各行的所述行地址,根据延迟之后的行地址将所述并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,并将交叉后的数据作为先验信息按照所述写地址写入到所述CB矩阵单元。通过本发明,根据Turbo码并行交织器的交叉单元产生的列地址,并行的读取一列数据,并将读取的数据按照交叉单元产生的各行的行地址进行行交叉,从而实现数据的行内交织和行间交织;而转换输入单元根据交叉单元产生的经过延迟后的各行的行地址对经过MAP计算后的各行数据进行行交叉,并将交叉后的数据作为先验信息写入到CB矩阵中与交叉单元产生的列地址对应的位置,从而可以有效的进行并行解交织,进而提高了交织和解交织的效率。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据相关技术的Turbo译码器的结构示意图;图2是根据本发明实施例的Turbo码交织器的结构示意图;图3是本发明实施例的CB矩阵中存储的矩阵结构示意图;图4是根据本发明优选实施例的交叉单元的结构示意图;图5是根据本发明另一优选实施例的交叉单元的结构示意图;图6是根据本发明实施例的Turbo码交织器的并行交织方法的流程图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。图1中的交织器与解交织器是一个互逆的处理过程,即一个输入序列先后经过交织和解交织之后又恢复到原始的顺序,而一个输入序列先后经过两次交织以后也可以达到同样的效果。因此,在本发明实施例中,在硬件上将交织器和解交织器合二为一,其中,解交织器的计算结果比交织器的计算结果晚若干个时钟周期,即译码单元2的时延。图2为根据本发明实施例的Turbo码并行交织器的结构示意图,如图2所示,该 Turbo码交织器主要包括交叉单元(interleave) 10、转换输出(switch_out)单元20和转换输入(switchjn)单元30。其中,如图2所示,交叉单元10,用于产生并行读取数据的列地址,以及用于对读取的数据进行行交叉的各行的行地址,将该列地址作为读地址输入到码块(code block,简称为CB)矩阵单元,将该列地址进行延迟后作为写地址输入到CB矩阵单元,将各行的行地址输入到转换输出单元20,并将各行的行地址进行延迟后输入到转换输入单元30 ;转换输出单元20,用于接收CB矩阵单元输出的各行数据(其中,CB矩阵单元根据上述读地址读取一列数据,并将读取的数据输出到转换输出单元20),根据交叉单元 10输出的各行的行地址,将并行读取的各行数据进行行间交叉,并将交叉后的数据输入到并行匹配(MAP)单元做Max-Log-Map运算(简称MAP运算);转换输入单元30,用于接收来自交叉单元10的延迟后各行的行地址,由于输入到转换输入单元30的各行的行地址进行了延迟,从而使得转换输入单元30接收的各行的行地址可以保持和并行MAP单元的计算时延同步,转换输入单元30根据延迟之后的行地址将并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,并将交叉后的各行数据作为先验信息按照上述写地址写入到CB矩阵单元。在本发明实施例中,将一个待译码的码块(code block, CB)的软比特信息以及译码过程中所用的先验信息按照RXL矩阵格式存放,其中R表示矩阵的行数,L表示矩阵的列数。并行译码过程是从矩阵中同时读出1列R行的数据,并将这R个数据按照一定的映射规则送给并行MAP单元(parallel map units)做R路并行的MAP运算。其中,CB矩阵单元中包括四个RXL矩阵,分别用于存放一个码块所对应的系统比特Sb、校验比特p0、校验比特pi以及先验信息apri。其中,矩阵的行数R取决于码块长度 K,优选地,可以通过下面公式确定R
权利要求
1.一种Turbo码并行交织器,其特征在于,包括交叉单元,用于产生并行读取数据的列地址,以及用于对读取的数据进行行交叉的各行的行地址,将所述列地址作为读地址输入到码块CB矩阵单元,将所述列地址进行延迟后作为写地址输入到所述CB矩阵单元,将各行的所述行地址输入到转换输出单元,以及将各行的所述行地址进行延迟后输入到转换输入单元;所述转换输出单元,用于接收所述CB矩阵单元输出的各行数据,根据各行的所述行地址,将读取的各行数据进行行间交叉,并将交叉后的数据输入到并行匹配MAP单元做MAP计算,其中,所述各行数据为所述CB矩阵单元根据所述读地址读取的;所述转换输入单元,用于接收来自所述交叉单元的延迟后的各行的所述行地址,根据延迟之后的行地址将所述并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,并将交叉后的各行数据作为先验信息按照所述写地址写入到所述CB矩阵单元。
2.根据权利要求1所述的Turbo码并行交织器,其特征在于,所述交叉单元包括 基本交织地址递推模块,用于按照下面公式分别从正向和逆向递推基本交织地址Π⑴Π (i + 1) = ( Π (i) + ((f1+f2)mod K+(2f2 · i)mod K)mod K)mod K,其中, stustu+w ;Π (i-1) = ( Π (i)-((f1+f2)mod K+(2f2 · (i_l))mod K)mod K)mod K,其中, stdstd-w ;取模模块,用于对所述基本交织地址递推模块递推所得的基本交织地址Π (i)对L求模,得到列地址col_addr(i);取商模块,用于将所述基本交织地址递推模块递推所得的所述基本交织地址Π (i)对 L求商,得到首行的行地址row_addr (0,i),0彡i彡L-1 ;邻行地址计算模块,用于根据下面公式分别从正向和逆向递推相邻两行之间的行地址增量Δ (i)Δ (i+1) = Δ (i) + (2f2)mod R,其中,stu 彡 i 彡 stu+wΔ (i-1) = Δ (i)-(2f2)mod R,其中,std 彡 i 彡 std-w行地址生成模块,用于根据下面公式计算所有行的行地址r0W_addr(r,i)row_addr (r, i) = (row_addr (0, i) + (r · Δ (i) )mod R) mod R,(0 ^ r ^ R-1,0 彡 i 彡 L-l)其中,在所述基本交织地址递推模块或所述邻行地址计算模块的正向递推过程中,如果土>1^,则有1 = 1 mod L,在所述基本交织地址递推模块或所述邻行地址计算模块的反向递推过程中,如果i < 0,则有i = L+i ;f2为交织参数,stu为码块内正向递推的初始位置,且0彡stu彡K-I, std为码块内逆向递推的初始位置,且0彡std彡K-l,L为所述CB矩阵单元中的矩阵的列数,w为基本交织地址递推的窗长,R为所述CB矩阵单元中的矩阵的行数,K为所述CB矩阵单元中的码块长度。
3.根据权利要求2所述的Turbo码并行交织器,其特征在于,邻行地址计算模块按照下面公式确定正向递推的初始位置和逆向递推的初始位置的行地址增量△ (stu)和Δ (0) = (f\+f2 · L)mod R,Δ (i+1) = Δ (i) + (2f2)mod R。
4.根据权利要求2所述的Turbo码并行交织器,其特征在于,所述基本交织地址递推模块按照下面公式正向递推的初始位置和逆向递推的初始位置的基本交织地址Π (stu)和 Π (std)Π (0) = 0 ;Π (i+1) = (Π (i) + ((f1+f2)mod K+ (2f2 · i)mod K)mod K)mod K。
5.根据权利要求2至4中任一项所述的Turbo码并行交织器,其特征在于,还包括第一二选一模块,用于根据所述并行MAP单元当前进行MAP运算次数的奇偶性,选择i或所述基本交织地址递推模块得到的所述递推基本交织地址Π (i)输出给所述取模模块和所述取商模块;第二二选一模块,用于根据所述并行MAP单元当前进行MAP运算次数的奇偶性,选择1 或所述邻行地址计算模块得到的行地址增量Δ (i)输出给所述行地址生成模块。
6.根据权利要求1所述的Turbo码并行交织器,其特征在于,所述转换输出单元包括R 个R选1模块,其中,每个R选1模块用于根据所述交叉单元输入的所述行地址,从读取的 R行数据中选择1路数据输出,其中,R为所述CB矩阵单元中的矩阵的行数。
7.根据权利要求1所述的Turbo码并行交织器,其特征在于,所述转换输入单元包括 R个R选1模块,其中,每个R选1模块用于根据所述交叉单元输入的经过延迟的所述行地址,从所述并行MAP单元输入的R行数据中选择1行数据输出,其中,R为所述CB矩阵单元中的矩阵的行数。
8.—种Turbo码并行交织器的并行交织方法,其特征在于,包括交叉单元产生并行读取数据列地址,以及用于对读取的数据进行行交叉的各行的行地址,将所述列地址作为读地址输入到码块CB矩阵单元,将所述列地址进行延迟后作为写地址输入到所述CB矩阵单元,将各行的所述行地址输入到转换输出单元,并将各行的所述行地址进行延时后输入到转换输入单元;所述CB矩阵单元根据所述读地址读取与所述列地址对应的各行数据,并将读取的各行数据输入到所述转换输出单元,所述转换输出单元根据所述交叉单元输出的各行的所述行地址对读取的各行数据进行行间交叉,并将交叉后的数据输入到并行MAP单元做MAP计算;所述转换输入单元接收来自所述交叉单元的延迟后的各行的所述行地址,根据延迟之后的行地址将所述并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,并将交叉后的数据作为先验信息按照所述写地址写入到所述CB矩阵单元。
9.根据权利要求8所述的方法,其特征在于,所述交叉单元产生所述列地址以及各行的所述行地址包括所述交叉单元按照下面公式分别从正向和逆向递推基本交织地址Π (i)Π (i + 1) = ( Π (i) + ((f1+f2)mod K+(2f2 · i)mod K)mod K)mod K,其中, stustu+w ;Π (i-1) = ( Π (i)-((f1+f2)mod K+(2f2 · (i_l))mod K)mod K)mod K,其中,stdstd-w ;所述交叉单元对递推所得的基本交织地址Π (i)对L求模,得到列地址coladdr (i); 所述交叉单元将递推所得的所述基本交织地址Π (i)对L求商,得到首行的行地址 row_addr (O, i),0 彡 i 彡 L—1 ;所述交叉单元根据下面公式分别从正向和逆向递推相邻两行之间的行地址增量 Δ⑴Δ (i+1) = Δ (i) + (2f2)mod R,其中,stu 彡 i 彡 stu+w Δ (i-1) = Δ (i)-(2f2)mod R,其中,std 彡 i 彡 std-w 所述交叉单元根据下面公式计算所有行的行地址r0W_addr(r,i) row_addr (r, i) = (row_addr (O, i) + (r · Δ (i) )mod R) mod R, (O ^ r ^ R-1,0 彡 i 彡 L-l) 其中,在所述基本交织地址或所述行地址增量的正向递推过程中,如果1 >L,则有i = i mod L,在所述基本交织地址或所述行地址增量的反向递推过程中,如果i < 0,则有i = L+i ;f2为交织参数,stu为码块内正向递推的初始位置,且O彡stu彡K-I, std为码块内逆向递推的初始位置,且O彡std彡K-l,L为所述CB矩阵单元中的矩阵的列数,R为所述CB矩阵单元中的矩阵的行数,K为所述CB矩阵单元中的码块长度。
10.根据权利要求9所述的方法,其特征在于,所述交叉单元在递推所述基本交织地址时,所述交叉单元按照下面公式正向递推的初始位置和逆向递推的初始位置的基本交织地址Π (stu)和 Π (std)Π (0) = 0 ;Π (i+1) = (Π (i) + ((f1+f2)mod K+ (2f2 · i)mod K)mod K)mod K。
11.根据权利要求9所述的方法,其特征在于,所述交叉单元在递推所述行地址增量时,按照下面公式确定正向递推的初始位置和逆向递推的初始位置的行地址增量△ (stu) 和 Δ (std)Δ (0) = (f\+f2 · L)mod R, Δ (i+1) = Δ (i) + (2f2)mod R。
全文摘要
本发明公开了一种Turbo码并行交织器及其并行交织方法。Turbo码并行交织器包括交叉单元,用于产生并行读取数据的列地址,及用于对数据进行行交叉的各行的行地址,将列地址及延迟后的列地址输入到CB矩阵单元,将各行的行地址输入到转换输出单元,以及将各行的行地址进行延迟后输入到转换输入单元;转换输出单元,用于接收CB矩阵单元输出的各行数据,根据各行的行地址,将各行数据进行行间交叉,并将交叉后的数据输入到并行MAP单元做MAP计算;转换输入单元,用于接收来延迟后的各行的行地址,根据该行地址将并行MAP单元进行MAP计算后输出的各行数据进行行间交叉,将交叉后的各行数据作为先验信息写入到CB矩阵单元。
文档编号H03M13/27GK102412850SQ20101029396
公开日2012年4月11日 申请日期2010年9月25日 优先权日2010年9月25日
发明者王毅 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1