Turbo译码器和Turbo译码方法

文档序号:7535795阅读:394来源:国知局
专利名称:Turbo译码器和Turbo译码方法
技术领域
本发明涉及Turbo译码技术,特别涉及一种Turbo译码器和Turbo译码方法。
背景技术
Turbo码又被称为并行级联巻积码(PCCC -Parallel ConcatenatedConvolutionalCode),它将巻积码和随机交织器结合在一起,充分应用了随机化编码条件,通过交织器实现了由短码构造长码的方法,并采用软输出迭代译码来逼近最大似然译码,从而能够获得几乎接近Shannon理论极限的译码性能。Turbo码在低信噪比下更有着优越的性能,因此,Turbo码被广泛应用在移动通信系统中,在第三代合作伙伴计划(3GPP:3rd Ge證ationPart證ship Project)的宽带码分多址(WCDMA -Wideband CodeDivisionMultiple Access)系统等第三代移动系统方案中,都以Turbo码作为编码方案之 图1是Turbo编码器的结构示意图。图1中的Turbo编码器具有递归系统巻积码(RSC-Recursive Systematic Convolutional code)编码器102禾口递归系统巻积码编码器103通过交织器101并行级联的结构。 编码器102对信息序列dk直接进行编码,产生相应的校验位Ylk。编码器103对通过交织器101进行了交织后的信息序列进行编码,产生校验位Y2k。校验位Ylk与校验位Y2k经删余单元104通过删余矩阵(以产生不同的码率)压縮后,在复用单元105中与信息序列dk进行复用,以生成码字Xk。所生成的码字Xk被送往信道。 图2是现有技术的Turbo译码器的结构示意图。Turbo码的优越性主要在于它的迭代译码结构。如图2所示,Turbo译码器包括软输入/软输出译码器2011、软输入/软输出译码器2012、交织器2021、交织器2022、解交织器2031、解交织器2032以及判决器204。译码器2011与译码器2012相同,交织器2021和交织器2022与图1的Turbo编码器中的交织器101相同。在图2所示的Turbo译码器中,数据经过译码器2011运算后提取增益信息,然后按交织或自然地址输入到译码器2012再次运算,这个过程称为迭代。当经过数次迭代后,译码增益逐渐收敛,这时通过判决器204判决出最终的译码结果。
在WCDMA系统中,Turbo编码的码块长度最大为5114比特,因此,在一次Turbo译码过程中,如果译码前数据长度大于5114比特,则需要分成多个码块进行译码。按现有的技术方案,在处理多个码块的Turbo译码时,采用了串行处理结构。 在实现本发明的过程中,发明人发现现有技术中至少存在如下问题Turbo译码器的结构复杂,译码处理时间为多个单码块的译码时间的累加,因此,多次迭代导致译码延时时间较长,其延时不仅取决于数据量,还取决于性能要求和译码器结构。目前,为实现一定的译码性能,通常一个译码单元需要约6次的迭代次数。由此,对于3GPP中的下行384kpbs的业务,完成一次Turbo译码过程就需要约1. 6ms的时间。由于在WCDMA R99384kbps规格下,最大仅有2个Turbo的码块,所以按照现有的方法能够满足整体的处理延时。但是当在3GPP的高速下行分组业务(HSDPA :High Speed DownlinkPackage Access)、
3高速分组接入(HSPA+:High Speed Packet AccessEvolution)等高速业务下,每2ms的传输块长度最大可超过40000比特,码块的数量可达9个以上,并且数据以2ms的周期更新,此时要求能够高速处理数据,以满足当前的吞吐率。如果使用目前的码块串行处理方式的译码器,单个译码器必然无法满足要求,而如果采用例如多个译码器的方式来提升速率,则逻辑资源会大大增加。 这样,在高数据吞吐率的HSDPA及HSPA+的情况下,Turbo译码器的译码延时成为整个HSDPA业务的瓶颈。因此,为了满足日益增长的速率要求,对Turbo译码器的优化就显得格外重要和紧迫。 此外,现有的Turbo译码器的结构不灵活,不具备可扩展性。

发明内容
本发明实施例提供一种全新的Turbo译码器,在不影响Turbo译码性能的前提下,
提升了译码器的处理速率,并且只需通过简单的配置,就可以实现不同数量的并行运算单
元的组合,达到不同的译码速率,由此提高了 Turbo译码器的可重用性和可扩展性。 为实现上述目的,本发明实施例提供一种Turbo译码器,该Turbo译码器包括主
控模块,其根据要并行处理的码块个数将译码前数据分成数量与所述码块个数相同的多个
码块,所述多个码块具有相同的码块长度;多个并行运算单元,其并行地对所述多个码块进
行Turbo译码。 为实现上述目的,本发明实施例提供一种Turbo译码方法,该Turbo译码方法包括根据要并行处理的码块个数将译码前数据分成数量与所述码块个数相同的多个码块,所述多个码块具有相同的码块长度;并行地对所述多个码块进行Turbo译码。
本发明实施例的有益效果在于,因为本发明实施例通过多个并行运算单元来并行地执行多个码块的Turbo译码,所以可以满足不同的译码延时要求和数据吞吐率的要求。
并且,因为本发明实施例通过多个并行运算单元来并行地执行多个码块的Turbo译码,所以可以实现灵活的Turbo译码器结构,只需通过配置不同数量的并行运算单元就可以实现不同的译码速率,实现了模块的可扩展性和可重用性。


此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部
分,并不构成对本发明的限定。在附图中 图1是现有技术Turbo编码器的结构示意图; 图2是现有技术的Turbo译码器的结构示意图; 图3是本发明实施例的Turbo译码器的结构示意图; 图4是本发明实施例并行运算单元的译码处理的流程图; 图5是本发明实施例的Turbo译码器的译码处理的流程图。
具体实施例方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
实施例一 本发明实施例提供了一种Turbo译码器,如图3所示,本发明实施例的Turbo译码 器300包括主控模块301、交织RAM 302、并行控制模块303和多个并行运算单元304「304w, N为大于或等于l的整数。 主控模块301用于对译码前数据进行预处理,以根据要并行处理的码块个数将译 码前数据分成数量与码块个数相同的多个并行处理码块,该多个并行处理码块具有相同的 码块长度。其中,主控模块301可以包括第一模块,用于接收译码前数据以及包括要并行处 理的码块个数的译码器输入参数,根据要并行处理的码块个数以及所接收的译码前数据的 码块长度,计算出并行处理码块的译码前数据的信息符号序列&、校验序列Ylk和校验序列 Y2k的长度,并分别存储各并行处理码块的译码前数据的信息符号序列&、校验序列^k和校 验序列Y2k。 此外,主控模块301还可以包括第二模块,用于在存储各并行处理码块的译码前 数据的信息符号序列&、校验序列UP校验序列Y2k的同时,根据并行处理码块的长度进行 交织地址的计算。 交织RAM 302用于存储交织地址,并为Turbo译码过程中的交织/解交织处理提
供交织/解交织地址。这里,由于各并行处理码块的译码前数据的长度相同并且所有码块
的处理时序完全相同,所以各并行处理码块可以共用同一个交织地址。 并行运算单元303「303w分别用于对单个码块执行单次迭代处理,包括译码迭代
过程的中间数据的计算处理和存储处理等。 并行控制模块303用于执行对各个并行运算单元304「304w的一次译码迭代的流
程控制,包括各个并行运算单元304「304w的各个运算子模块的处理时序控制。 当主控模块301完成各并行处理码块的信息符号序列Xk、校验序列^k和校验序列
Y2k的存储,并且完成了交织地址的计算时,即当主控模块301完成了预处理时,并行控制模
块303对各并行运算单元304「304w进行控制,以使用所存储的各并行处理码块的信息符号
序列Xk、校验序列Ylk和校验序列Y2k以及存储在交织RAM 302中的共用交织地址分别进行
各并行处理码块的迭代运算处理过程。 并行控制模块303对各个并行运算单元304「304w执行相同的流程控制,因此,多 个并行运算单元304「304,可以共用该并行控制模块303。 以下介绍并行运算单元304「304w执行的迭代运算处理过程。参照图4,并行运算 单元304「304w执行的迭代运算处理过程如下 步骤S101,输入一个并行处理码块的译码前数据和交织地址。
步骤S102,对所输入的并行处理码块执行译码迭代过程。在译码迭代过程中涉及 第一译码器和第二译码器。第一译码器和第二译码器串行地进行处理。首先,将信息符号 序列、校验序列输入到第一译码器,当第一译码器完成运算后,将处理后的数据输入到第一 交织器,第一交织器处理得到按交织顺序整理后的数据,将数据与校验序列和经过第二交 织器进行了处理后的信息符号序列一起输入到第二译码器,以进行下一次运算。第二译码 器的运算结束后, 一次迭代过程完成。将第二译码器的运算结果输入到第一解交织器,经第 一解交织器进行解交织处理后获得数据。将数据再次输入到第一译码器,开始下一次的迭
第一译码器和第二译码器串行地完成一次运算处理的过程被称为一次迭代过程,
在一次迭代过程中,第一次运算处理过程(即,在第一译码器中的处理过程)被称为偶处
理,而第二次运算处理过程(即,在第二译码器中的处理过程)被称为奇处理。 对运算结果进行多次的迭代,当迭代次数满足译码增益收敛后,将运算结果输入
到第二解交织器,经第二解交织器进行解交织处理后获得数据,将数据输入到判决器,以进
行译码结果的判决。 步骤S103,输出该并行处理码块的译码数据。 由此,完成了一个并行处理码块的译码,并输出与该并行处理码块相对应的译码 结果。 在本发明实施例中,各并行运算单元304「304w完全相同,因此可以使用相同的运 算控制来进行控制处理。 各并行运算单元304「304w完成迭代运算后,根据迭代结果分别进行各自码块的
译码结果判决,并同时输出译码结果。当数据输出完毕后,一次译码过程即结束。 在本发明实施例中,由于各个运算单元304「304,并行地进行处理,并且处理过程
和计算过程相同,所以本发明实施例的Turbo译码器的主控模块301、并行控制模块303和
交织RAM 302对各个并行运算单元304「304,都是相同的,所以,各并行运算单元304「304w
共享主控模块301、并行控制模块303和交织RAM 302,由此简化了控制,并同时降低了逻辑资源。 由上述结构和处理过程可知,通过并行处理多个码块的Turbo译码,可以满足不 同的译码延时要求和数据吞吐率的要求。此外,只需通过配置不同数量的并行运算单元 304「304w就可以实现不同的译码速率,从而实现了灵活的Turbo译码器结构,并且实现了 模块的可扩展性和可重用性。 在使用本发明实施例的实现方案的Turbo译码器的情况下,只需3个并行运算单 元即可满足7. 2Mbps的速率的要求,而只需5个并行运算单元即可满足21. 6Mbps的速率的 要求。 实施例二 本发明实施例还提供了一种Turbo译码方法,如图5所示,本发明实施例的Turbo 译码方法包括以下步骤 步骤S401,对译码前数据进行预处理,以根据要并行处理的码块个数将所述译码 前数据分成数量与所述码块个数相同的多个并行处理码块,所述多个并行处理码块具有相 同的码块长度。具体地说,接收译码前数据以及包括要并行处理的码块个数N的译码器输 入参数,根据要并行处理的码块个数N以及所接收的译码前数据的码块长度,计算出各并 行处理码块的译码前数据的信息符号序列&、校验序列Ylk和校验序列Y2k的长度。此外,还 根据并行处理码块的长度计算交织地址。
步骤S402 ,使码块计数值j归0 。 步骤S403,存储第j+l个并行处理码块的译码前数据的信息符号序列Xk,并且存 储第j+l个并行处理码块的校验序列Ylk和校验序列Y2k。
步骤S404,使码块计数值j递增1 ,即,j = j+l 。
6
步骤S405,判断码块计数值j是否等于要并行处理的码块个数N。如果j = N,则 处理进行到步骤S407。如果j < N,则处理返回到步骤S403。 步骤S406,在步骤S402到步骤S405存储各并行处理码块的译码前数据的信息符 号序列&、校验序列Ylk和校验序列Y2k的同时,存储所计算的交织地址,以用于Turbo译码 过程中的交织/解交织处理。 这里,由于各并行处理码块的译码前数据的长度相同并且所有码块的处理时序相 同,所以各并行处理码块可以共用同一个交织地址。 步骤S407,使用所存储的各并行处理码块的信息符号序列Xp校验序列Ylk和校验 序列Y2k以及所存储的共用交织地址分别进行各并行处理码块的迭代运算处理过程。
在本发明实施例中,迭代运算处理过程可以是图4所示的过程,在此不再赘述。
在本发明实施例中,各并行处理码块的迭代运算处理过程相同,因此可以使用相 同的运算控制来进行控制处理。 在完成各并行处理码块的迭代运算处理后,根据迭代结果分别进行各自码块的译
码结果判决,并同时输出译码结果。当数据输出完毕后,一次译码过程结束。 在本发明实施例中,由于并行地进行各并行处理码块的迭代运算处理过程,并且
各并行处理码块的迭代运算处理过程都完全相同,由此简化了控制,并同时降低了逻辑资源。 由上述处理过程可知,通过并行处理多个码块的Turbo译码,可以满足不同的译 码延时要求和数据吞吐率的要求。此外,只需通过配置不同数量的并行运算单元就可以实 现不同的译码速率,从而实现了灵活的Turbo译码器结构,并且实现了模块的可扩展性和 可重用性。 以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保 护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本 发明的保护范围之内。
权利要求
一种Turbo译码器,其特征在于,包括主控模块,用于根据要并行处理的码块个数将译码前数据分成数量与所述码块个数相同的多个码块,所述多个码块具有相同的码块长度;多个并行运算单元,用于并行地对所述多个码块进行Turbo译码。
2. 根据权利要求1所述的Turbo译码器,其特征在于,所述主控模块包括 第一模块,用于接收译码前数据以及包括要并行处理的码块个数的译码器输入参数,根据要并行处理的码块个数以及所接收的译码前数据的码块长度,计算出并行处理码块的 译码前数据的信息符号序列、第一校验序列和校验序列的长度,并分别存储所述各并行处 理码块的译码前数据的信息符号序列、第一校验序列和第二校验序列; 第二模块,用于根据并行处理码块的长度进行交织地址的计算。
3. 根据权利要求2所述的Turbo译码器,其特征在于,所述Turbo译码器还包括 交织RAM,用于存储交织地址,为译码过程中的交织/解交织处理提供交织/解交织地址。
4. 根据权利要求3所述的Turbo译码器,其特征在于,所述Turbo译码器还包括 并行控制模块,用于控制所述多个并行运算单元并行地对所述多个码块进行Turbo译码。
5. —种Turbo译码方法,其特征在于,包括根据要并行处理的码块个数将译码前数据分成数量与所述码块个数相同的多个码块, 所述多个码块具有相同的码块长度;并行地对所述多个码块进行Turbo译码。
6. 根据权利要求5所述的Turbo译码方法,其特征在于,所述根据要并行处理的码块个 数将译码前数据分成数量与所述码块个数相同的多个码块包括接收译码前数据以及包括要并行处理的码块个数的译码器输入参数,根据要并行处理 的码块个数以及所接收的译码前数据的码块长度,计算出并行处理码块的译码前数据的信 息符号序列、第一校验序列和校验序列的长度,并分别存储所述各并行处理码块的译码前 数据的信息符号序列、第一校验序列和第二校验序列;根据并行处理码块的长度进行交织地址的计算。
7. 根据权利要求6所述的Turbo译码方法,其特征在于,并行地对所述多个码块进行 Turbo译码包括根据所述信息符号序列、第一校验序列和第二校验序列并行地对所述多 个码块进行Turbo译码。
8. 根据权利要求6所述的Turbo译码方法,其特征在于,还包括 存储交织地址,为译码过程中的交织/解交织处理提供交织/解交织地址。
全文摘要
本发明涉及Turbo译码器和Turbo译码方法。一种Turbo译码器,其特征在于,包括主控模块,其根据要并行处理的码块个数将所述译码前数据分成数量与所述码块个数相同的多个码块,所述多个码块具有相同的码块长度;多个并行运算单元,其并行地对所述多个码块进行Turbo译码。
文档编号H03M13/00GK101741398SQ200910204549
公开日2010年6月16日 申请日期2009年12月1日 优先权日2009年12月1日
发明者张家佶, 朱芳菲, 游治, 范文奇 申请人:深圳华为通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1