CN101741398A - Turbo译码器和Turbo译码方法 - Google Patents
Turbo译码器和Turbo译码方法 Download PDFInfo
- Publication number
- CN101741398A CN101741398A CN200910204549A CN200910204549A CN101741398A CN 101741398 A CN101741398 A CN 101741398A CN 200910204549 A CN200910204549 A CN 200910204549A CN 200910204549 A CN200910204549 A CN 200910204549A CN 101741398 A CN101741398 A CN 101741398A
- Authority
- CN
- China
- Prior art keywords
- code block
- turbo
- decoding
- parallel processing
- code
- 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.)
- Pending
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明涉及Turbo译码器和Turbo译码方法。一种Turbo译码器,其特征在于,包括:主控模块,其根据要并行处理的码块个数将所述译码前数据分成数量与所述码块个数相同的多个码块,所述多个码块具有相同的码块长度;多个并行运算单元,其并行地对所述多个码块进行Turbo译码。
Description
技术领域
本发明涉及Turbo译码技术,特别涉及一种Turbo译码器和Turbo译码方法。
背景技术
Turbo码又被称为并行级联卷积码(PCCC:Parallel ConcatenatedConvolutional Code),它将卷积码和随机交织器结合在一起,充分应用了随机化编码条件,通过交织器实现了由短码构造长码的方法,并采用软输出迭代译码来逼近最大似然译码,从而能够获得几乎接近Shannon理论极限的译码性能。Turbo码在低信噪比下更有着优越的性能,因此,Turbo码被广泛应用在移动通信系统中,在第三代合作伙伴计划(3GPP:3rd GenerationPartnership Project)的宽带码分多址(WCDMA:Wideband Code DivisionMultiple Access)系统等第三代移动系统方案中,都以Turbo码作为编码方案之一。
图1是Turbo编码器的结构示意图。图1中的Turbo编码器具有递归系统卷积码(RSC:Recursive Systematic Convolutional code)编码器102和递归系统卷积码编码器103通过交织器101并行级联的结构。
编码器102对信息序列dk直接进行编码,产生相应的校验位Y1k。编码器103对通过交织器101进行了交织后的信息序列进行编码,产生校验位Y2k。校验位Y1k与校验位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 R99 384kbps规格下,最大仅有2个Turbo的码块,所以按照现有的方法能够满足整体的处理延时。但是当在3GPP的高速下行分组业务(HSDPA:High Speed DownlinkPackage Access)、高速分组接入(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和多个并行运算单元3041-304N,N为大于或等于1的整数。
主控模块301用于对译码前数据进行预处理,以根据要并行处理的码块个数将译码前数据分成数量与码块个数相同的多个并行处理码块,该多个并行处理码块具有相同的码块长度。其中,主控模块301可以包括第一模块,用于接收译码前数据以及包括要并行处理的码块个数的译码器输入参数,根据要并行处理的码块个数以及所接收的译码前数据的码块长度,计算出并行处理码块的译码前数据的信息符号序列Xk、校验序列Y1k和校验序列Y2k的长度,并分别存储各并行处理码块的译码前数据的信息符号序列Xk、校验序列Y1k和校验序列Y2k。
此外,主控模块301还可以包括第二模块,用于在存储各并行处理码块的译码前数据的信息符号序列Xk、校验序列Y1k和校验序列Y2k的同时,根据并行处理码块的长度进行交织地址的计算。
交织RAM 302用于存储交织地址,并为Turbo译码过程中的交织/解交织处理提供交织/解交织地址。这里,由于各并行处理码块的译码前数据的长度相同并且所有码块的处理时序完全相同,所以各并行处理码块可以共用同一个交织地址。
并行运算单元3031-303N分别用于对单个码块执行单次迭代处理,包括译码迭代过程的中间数据的计算处理和存储处理等。
并行控制模块303用于执行对各个并行运算单元3041-304N的一次译码迭代的流程控制,包括各个并行运算单元3041-304N的各个运算子模块的处理时序控制。
当主控模块301完成各并行处理码块的信息符号序列Xk、校验序列Y1k和校验序列Y2k的存储,并且完成了交织地址的计算时,即当主控模块301完成了预处理时,并行控制模块303对各并行运算单元3041-304N进行控制,以使用所存储的各并行处理码块的信息符号序列Xk、校验序列Y1k和校验序列Y2k以及存储在交织RAM 302中的共用交织地址分别进行各并行处理码块的迭代运算处理过程。
并行控制模块303对各个并行运算单元3041-304N执行相同的流程控制,因此,多个并行运算单元3041-304N可以共用该并行控制模块303。
以下介绍并行运算单元3041-304N执行的迭代运算处理过程。参照图4,并行运算单元3041-304N执行的迭代运算处理过程如下:
步骤S101,输入一个并行处理码块的译码前数据和交织地址。
步骤S102,对所输入的并行处理码块执行译码迭代过程。在译码迭代过程中涉及第一译码器和第二译码器。第一译码器和第二译码器串行地进行处理。首先,将信息符号序列、校验序列输入到第一译码器,当第一译码器完成运算后,将处理后的数据输入到第一交织器,第一交织器处理得到按交织顺序整理后的数据,将数据与校验序列和经过第二交织器进行了处理后的信息符号序列一起输入到第二译码器,以进行下一次运算。第二译码器的运算结束后,一次迭代过程完成。将第二译码器的运算结果输入到第一解交织器,经第一解交织器进行解交织处理后获得数据。将数据再次输入到第一译码器,开始下一次的迭代运算。
第一译码器和第二译码器串行地完成一次运算处理的过程被称为一次迭代过程,在一次迭代过程中,第一次运算处理过程(即,在第一译码器中的处理过程)被称为偶处理,而第二次运算处理过程(即,在第二译码器中的处理过程)被称为奇处理。
对运算结果进行多次的迭代,当迭代次数满足译码增益收敛后,将运算结果输入到第二解交织器,经第二解交织器进行解交织处理后获得数据,将数据输入到判决器,以进行译码结果的判决。
步骤S103,输出该并行处理码块的译码数据。
由此,完成了一个并行处理码块的译码,并输出与该并行处理码块相对应的译码结果。
在本发明实施例中,各并行运算单元3041-304N完全相同,因此可以使用相同的运算控制来进行控制处理。
各并行运算单元3041-304N完成迭代运算后,根据迭代结果分别进行各自码块的译码结果判决,并同时输出译码结果。当数据输出完毕后,一次译码过程即结束。
在本发明实施例中,由于各个运算单元3041-304N并行地进行处理,并且处理过程和计算过程相同,所以本发明实施例的Turbo译码器的主控模块301、并行控制模块303和交织RAM 302对各个并行运算单元3041-304N都是相同的,所以,各并行运算单元3041-304N共享主控模块301、并行控制模块303和交织RAM 302,由此简化了控制,并同时降低了逻辑资源。
由上述结构和处理过程可知,通过并行处理多个码块的Turbo译码,可以满足不同的译码延时要求和数据吞吐率的要求。此外,只需通过配置不同数量的并行运算单元3041-304N就可以实现不同的译码速率,从而实现了灵活的Turbo译码器结构,并且实现了模块的可扩展性和可重用性。
在使用本发明实施例的实现方案的Turbo译码器的情况下,只需3个并行运算单元即可满足7.2Mbps的速率的要求,而只需5个并行运算单元即可满足21.6Mbps的速率的要求。
实施例二
本发明实施例还提供了一种Turbo译码方法,如图5所示,本发明实施例的Turbo译码方法包括以下步骤:
步骤S401,对译码前数据进行预处理,以根据要并行处理的码块个数将所述译码前数据分成数量与所述码块个数相同的多个并行处理码块,所述多个并行处理码块具有相同的码块长度。具体地说,接收译码前数据以及包括要并行处理的码块个数N的译码器输入参数,根据要并行处理的码块个数N以及所接收的译码前数据的码块长度,计算出各并行处理码块的译码前数据的信息符号序列Xk、校验序列Y1k和校验序列Y2k的长度。此外,还根据并行处理码块的长度计算交织地址。
步骤S402,使码块计数值j归0。
步骤S403,存储第j+1个并行处理码块的译码前数据的信息符号序列Xk,并且存储第j+1个并行处理码块的校验序列Y1k和校验序列Y2k。
步骤S404,使码块计数值j递增1,即,j=j+1。
步骤S405,判断码块计数值j是否等于要并行处理的码块个数N。如果j=N,则处理进行到步骤S407。如果j<N,则处理返回到步骤S403。
步骤S406,在步骤S402到步骤S405存储各并行处理码块的译码前数据的信息符号序列Xk、校验序列Y1k和校验序列Y2k的同时,存储所计算的交织地址,以用于Turbo译码过程中的交织/解交织处理。
这里,由于各并行处理码块的译码前数据的长度相同并且所有码块的处理时序相同,所以各并行处理码块可以共用同一个交织地址。
步骤S407,使用所存储的各并行处理码块的信息符号序列Xk、校验序列Y1k和校验序列Y2k以及所存储的共用交织地址分别进行各并行处理码块的迭代运算处理过程。
在本发明实施例中,迭代运算处理过程可以是图4所示的过程,在此不再赘述。
在本发明实施例中,各并行处理码块的迭代运算处理过程相同,因此可以使用相同的运算控制来进行控制处理。
在完成各并行处理码块的迭代运算处理后,根据迭代结果分别进行各自码块的译码结果判决,并同时输出译码结果。当数据输出完毕后,一次译码过程结束。
在本发明实施例中,由于并行地进行各并行处理码块的迭代运算处理过程,并且各并行处理码块的迭代运算处理过程都完全相同,由此简化了控制,并同时降低了逻辑资源。
由上述处理过程可知,通过并行处理多个码块的Turbo译码,可以满足不同的译码延时要求和数据吞吐率的要求。此外,只需通过配置不同数量的并行运算单元就可以实现不同的译码速率,从而实现了灵活的Turbo译码器结构,并且实现了模块的可扩展性和可重用性。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种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译码方法,其特征在于,还包括:
存储交织地址,为译码过程中的交织/解交织处理提供交织/解交织地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910204549A CN101741398A (zh) | 2009-12-01 | 2009-12-01 | Turbo译码器和Turbo译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910204549A CN101741398A (zh) | 2009-12-01 | 2009-12-01 | Turbo译码器和Turbo译码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101741398A true CN101741398A (zh) | 2010-06-16 |
Family
ID=42464369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910204549A Pending CN101741398A (zh) | 2009-12-01 | 2009-12-01 | Turbo译码器和Turbo译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101741398A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1328384A (zh) * | 2001-01-18 | 2001-12-26 | 深圳市中兴集成电路设计有限责任公司 | Turbo译码器及其实现方法 |
CN1398047A (zh) * | 2002-08-20 | 2003-02-19 | 北京邮电大学 | 并行滑动窗涡轮码译码器及其实现方法 |
CN1913368A (zh) * | 2005-08-11 | 2007-02-14 | 中兴通讯股份有限公司 | 一种自适应turbo译码的方法 |
-
2009
- 2009-12-01 CN CN200910204549A patent/CN101741398A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1328384A (zh) * | 2001-01-18 | 2001-12-26 | 深圳市中兴集成电路设计有限责任公司 | Turbo译码器及其实现方法 |
CN1398047A (zh) * | 2002-08-20 | 2003-02-19 | 北京邮电大学 | 并行滑动窗涡轮码译码器及其实现方法 |
CN1913368A (zh) * | 2005-08-11 | 2007-02-14 | 中兴通讯股份有限公司 | 一种自适应turbo译码的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2437208C2 (ru) | Способ и устройство кодирования и декодирования данных | |
CN1154236C (zh) | 纠错编码型的数字传输方法 | |
CN101217352B (zh) | 一阶段速率匹配的缓冲设置方法 | |
CN101309086A (zh) | 里德-所罗门码级联反馈系统卷积码的系统的译码方法 | |
CN100568744C (zh) | 一种卷积码速率匹配的方法和装置 | |
CN101183875A (zh) | 一种Turbo码的有限长度循环缓存的速率匹配方法 | |
CN107615691B (zh) | 基于不等差错保护的数据传输方法、装置和设备 | |
Gnaedig et al. | Design of three-dimensional multiple slice turbo codes | |
WO2012034097A1 (en) | Accessing memory during parallel turbo decoding | |
JP5122480B2 (ja) | 高速な符号化方法および復号方法ならびに関連する装置 | |
US20090158130A1 (en) | Method and apparatus for turbo encoding and decoding | |
CN101060481A (zh) | 一种Turbo码传输块的分段方法 | |
JP2023508449A (ja) | 復号化方法、装置、ネットワークデバイス及び記録媒体 | |
CN104135345A (zh) | 一种应用于长期演进系统的跨层编解码方法 | |
KR100628201B1 (ko) | 터보 디코딩 방법 | |
KR20090044178A (ko) | 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치 | |
EP1396096A1 (en) | System and method for interleaving data in a wireless transmitter | |
CN111130572B (zh) | Turbo码快速实现方法 | |
CN101777923B (zh) | Ctc编码器、内码交织器以及内码交织方法、编码处理方法 | |
CN1381096A (zh) | 自适应涡轮编码和解码 | |
CN101741398A (zh) | Turbo译码器和Turbo译码方法 | |
CN101667839B (zh) | 交织方法 | |
CN101771422B (zh) | 交织方法、编码方法、交织器与编码器 | |
WO2017121473A1 (en) | Window-interleaved turbo (wi-turbo) codes | |
CN100359831C (zh) | 均匀插入比特的并行级联码交织方法及交织器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100616 |