CN104092470B - 一种Turbo码译码装置及方法 - Google Patents
一种Turbo码译码装置及方法 Download PDFInfo
- Publication number
- CN104092470B CN104092470B CN201410359510.8A CN201410359510A CN104092470B CN 104092470 B CN104092470 B CN 104092470B CN 201410359510 A CN201410359510 A CN 201410359510A CN 104092470 B CN104092470 B CN 104092470B
- Authority
- CN
- China
- Prior art keywords
- information
- sub
- decoding
- parallel
- block
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- URWAJWIAIPFPJE-YFMIWBNJSA-N sisomycin Chemical compound O1C[C@@](O)(C)[C@H](NC)[C@@H](O)[C@H]1O[C@@H]1[C@@H](O)[C@H](O[C@@H]2[C@@H](CC=C(CN)O2)N)[C@@H](N)C[C@H]1N URWAJWIAIPFPJE-YFMIWBNJSA-N 0.000 claims abstract 17
- 230000008569 process Effects 0.000 claims description 32
- 238000003860 storage Methods 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 12
- 238000010606 normalization Methods 0.000 claims description 11
- 238000005192 partition Methods 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 5
- 238000012937 correction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 102100031584 Cell division cycle-associated 7-like protein Human genes 0.000 description 1
- 101000777638 Homo sapiens Cell division cycle-associated 7-like protein Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明公开一种Turbo码译码装置及方法,所述装置包括子块划分模块、并行译码模块、解交织模块和硬判决模块。子块划分模块将待译码的Turbo码码块划分为P个子块;并行译码模块采用P/M个SISO译码单元对由P个子块分成的P/M个子块分组进行并行译码,得到各个子块相对应的判决软信息,其中,每个子块分组包括M个子块,每个SISO译码单元基于时分复用原理对相应子块分组所包括的M个子块进行译码;后续对判决软信息进行解交织和硬判决得到Turbo码码块的译码结果。可见,本发明利用时分复用原理通过对不同子块的译码操作进行合理调度,实现了M个子块共用一个SISO译码单元完成译码操作的功能,降低了硬件资源的消耗。
Description
技术领域
本发明属于移动通信系统技术领域,尤其涉及一种Turbo码译码装置及方法。
背景技术
Turbo码具有固有的并行性、高编码增益,且由于Turbo码很好地应用了香农信道编码定理中的随机性编译码条件而获得了接近香农限的译码性能和纠错性能,因此Turbo码被WiMax,CCSDS,3GPP LTE,HSDPA等诸多通信标准所采纳。
Turbo码译码器采用反馈结构,以迭代的方式进行译码。当前,主要采用子块并行译码方式实现Turbo码的迭代译码,即具体地,将待译码的Turbo码码块分成P个子块,进而对P个子块进行并行译码,直至达到设定的迭代次数为止。传统的子块并行Turbo码译码方案需要P个SISO(Soft input Soft Output,软输入软输出)译码单元来完成P个子块的并行译码操作,即每个子块的译码操作均需相应使用一个SISO译码单元来执行。而在现实应用中,例如,在高速数据传输的场景下,往往需要通过增加分块P的数目,即需要大数据量的子块并行译码来满足系统对吞吐量和处理时延的要求,此种情况下,上述并行译码方式需相应增加相同数目的SISO译码单元来实现译码需求,从而导致Turbo码译码所占用的硬件资源急剧增长,需要占用较多的硬件资源。
可见,现有并行译码方式由于每个子块需要占用一个SISO译码单元而存在占用硬件资源较多的问题,尤其在高速数据传输场景下,会明显增加硬件资源的消耗。
发明内容
有鉴于此,本发明的目的在于提供一种Turbo码译码装置及方法,以克服现有并行译码方式存在的占用硬件资源较多的问题,实现在不增加译码时延的基础上降低硬件资源消耗的目的。
为此,本发明公开如下技术方案:
一种Turbo码译码装置,包括子块划分模块、并行译码模块、解交织模块和硬判决模块,其中:
所述子块划分模块,用于将待译码的Turbo码码块划分为P个子块,所述P为大于1的自然数;
所述并行译码模块,用于采用P/M个软输入软输出SISO译码单元对由所述P个子块分成的P/M个子块分组进行并行译码,得到所述各个子块相对应的判决软信息,其中,每个子块分组包括M个子块,每个SISO译码单元基于时分复用原理对相应子块分组所包括的M个子块进行译码,所述M为大于1的自然数;
所述解交织模块,用于对所述判决软信息进行解交织处理,得到解交织后的判决软信息;
所述硬判决模块,用于对所述解交织后的判决软信息进行硬判决,得到所述Turbo码码块的译码结果。
上述装置,优选的,所述子块划分模块包括:
信道信息接收单元,用于接收如下四类数据:系统软信息λx1,k、系统软信息λx1,k经解交织处理后的系统软信息λx2,k以及校验软信息λz1,k和λz2,k;
信道信息存储单元,用于将每类所述数据分为P个子数据块进行存储,其中,P为不小于4的自然数,且P为2的幂次。
上述装置,优选的,所述并行译码模块包括设置模块、MAP并行译码模块、并行解交织模块、并行交织模块以及迭代控制模块,其中:
所述设置模块,用于设置迭代参数x,并为所述x赋值0,其中所述x表示所述MAP并行译码模块已执行的迭代译码次数;
所述MAP并行译码模块,包括P/M个SISO译码单元,每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k计算各子块相应的判决软信息和第一外信息;
所述并行解交织模块,用于对所述各子块相应的第一外信息进行解交织处理,得到第二先验信息,之后,触发所述MAP并行译码模块执行如下操作:每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx2,k、校验软信息λz2,k以及第二先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx2,k、校验软信息λz2,k以及第二先验信息计算各子块相应的判决软信息和第二外信息;
所述迭代控制模块,用于将所述x值加1,并判断所述x的值是否达到预设阈值,若判断结果为是,则将此时MAP并行译码模块计算得到的判决软信息输出,并在本轮译码完成后结束整个Turbo码译码过程;若判断结果为否,则触发所述并行交织模块;
所述并行交织模块,用于对所述各子块相应的第二外信息进行交织处理,得到第一先验信息,并触发所述MAP并行译码模块执行如下操作:
每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k以及第一先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k以及第一先验信息计算各子块相应的判决软信息和第一外信息;之后,触发所述并行解交织模块。
上述装置,优选的,所述SISO译码单元在计算过程中,具体采用延迟归一化原理,把未归一化状态度量的计算和上一组归一化状态度量的最大值的搜寻并行执行,利用上一组状态度量的最大值对新计算出的未归一化的状态度量进行归一化处理。
上述装置,优选的,所述并行交织模块包括外信息次序调整单元、并行交织地址产生单元和子块标号及子块内数据地址确定单元,其中:
所述外信息次序调整单元,用于将所述MAP并行译码模块输出的2P/M路外信息按照预设方式调整为P/2路;
所述并行交织地址产生单元,用于在所述外信息次序调整单元输出有效外信息期间,每个时钟周期产生P/4个交织地址,相应地用于P/2个外信息数据的存储;
所述子块标号及子块内数据地址确定单元,用于利用并行交织地址产生单元产生的P/4个交织地址确定P/2个外信息所对应的子块标号和子块内数据地址,并将所确定的子块标号、子块内数据地址与外信息发送至外信息缓存RAM实现外信息存储,得到后续译码操作所需的第一先验信息。
上述装置,优选的,所述并行交织地址产生单元包括:
QPP交织器,用于生成基地址Π(s),s=0,1,…,N/P,其中,N为Turbo码码块的长度;
并行地址生成器,用于在P/4的并行度下,利用所述基地址在每个时钟周期生成P/4个并行交织地址。
一种Turbo码译码方法,包括:
将待译码的Turbo码码块划分为P个子块,其中,所述P为大于1的自然数;
采用P/M个软输入软输出SISO译码单元对由所述P个子块分成的P/M个子块分组进行并行译码,得到所述各个子块相对应的判决软信息,其中,每个子块分组包括M个子块,每个SISO译码单元基于时分复用原理对相应子块分组所包括的M个子块进行译码,所述M为大于1的自然数;
对所述判决软信息进行解交织处理,得到解交织后的判决软信息;
对所述解交织后的判决软信息进行硬判决,得到所述Turbo码码块的译码结果。
上述方法,优选的,所述将待译码的Turbo码码块划分为P个子块,包括:
接收如下四类数据:系统软信息λx1,k、系统软信息λx1,k经解交织处理后的系统软信息λx2,k以及校验软信息λz1,k和λz2,k;
将每类所述数据分为P个子数据块进行存储,其中P为2的幂次。
上述方法,优选的,所述采用P/M个软输入软输出SISO译码单元对由所述P个子块分成的P/M个子块分组进行并行译码得到所述各个子块相对应的判决软信息,包括:
设置迭代参数x,并为所述x赋值0,其中所述x表示所述MAP并行译码模块已执行的迭代译码次数;
采用P/M个SISO译码单元,每个SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k计算各子块相应的判决软信息和第一外信息;
对所述各子块相应的第一外信息进行解交织处理,得到第二先验信息,之后,触发如下操作:每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx2,k、校验软信息λz2,k以及第二先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx2,k、校验软信息λz2,k以及第二先验信息计算各子块相应的判决软信息和第二外信息;
将所述x值加1,并判断所述x的值是否达到预设阈值,若判断结果为是,则将此时MAP并行译码模块计算得到的判决软信息输出,并在本轮译码完成后结束整个Turbo码译码过程;若判断结果为否,则继续执行以下操作;
对所述各子块相应的第二外信息进行交织处理,得到第一先验信息,并触发如下操作:每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k以及第一先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k以及第一先验信息计算各子块相应的第一外信息和判决软信息;之后,转至执行:对所述各子块相应的第一外信息进行解交织处理。
上述方法,优选的,所述对所述各子块相应的第二外信息进行交织处理得到第一先验信息,包括:
将所述MAP并行译码模块输出的2P/M路外信息按照预设方式调整为P/2路;
在所述外信息次序调整单元输出有效外信息期间,每个时钟周期产生P/4个交织地址,相应地用于P/2个外信息数据的存储;
利用并行交织地址产生单元产生的P/4个交织地址确定P/2个外信息所对应的子块标号和子块内数据地址,并将所确定的子块标号、子块内数据地址与外信息发送至外信息缓存RAM实现外信息存储,作为后续译码操作的第一先验信息。
上述方法,优选的,所述在所述外信息次序调整单元输出有效外信息期间每个时钟周期产生P/4个交织地址,包括:
生成基地址Π(s),s=0,1,…,N/P,其中,N为Turbo码码块的长度;
在P/4的并行度下,利用所述基地址在每个时钟周期生成P/4个并行交织地址。
本发明实施例提供的Turbo码译码装置包括子块划分模块、并行译码模块、解交织模块和硬判决模块。子块划分模块将待译码的Turbo码码块划分为P个子块;并行译码模块采用P/M个软输入软输出SISO译码单元对由所述P个子块分成的P/M个子块分组进行并行译码,得到各个子块相对应的判决软信息,其中,每个子块分组包括M个子块,每个SISO译码单元基于时分复用原理对相应子块分组所包括的M个子块进行译码;后续对判决软信息进行解交织和硬判决后,即可得到所述Turbo码码块的译码结果。实际应用场景中,可将M优选地设定为SISO译码单元完成子块的一次译码过程(一个译码阶段)所需的时钟周期个数,例如,针对SISO译码单元具体需要4个时钟周期完成一次前向/后向状态度量的更新,可将M设定为4,即在不增加译码时延的情况下,利用时分复用原理通过对不同子块的译码操作进行合理调度,使4个子块同时复用一个SISO译码单元来完成译码操作。
可见,针对划分为P个子块的Turbo码码块,本发明仅需P/M(例如P/4)个SISO译码单元即可实现所述P个子块的并行译码操作。从而,和现有的子块并行译码方案相比,本发明的装置能够在不增加译码时延的基础上显著降低硬件资源消耗,实现了硬件资源的最大化利用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一公开的Turbo码译码装置的结构示意图;
图2是本发明实施例一公开的并行译码模块的结构示意图;
图3是本发明实施例一公开的SISO译码单元的结构示意图;
图4(a)、4(b)是本发明实施例一公开的SISO译码单元中状态度量和软信息计算过程的时序图;
图5是本发明实施例一公开的并行交织模块中外信息次序调整单元的硬件结构图;
图6是本发明实施例一公开的并行交织模块中交织地址产生单元的硬件结构图;
图7是本发明实施例一公开的外信息存储过程示意图;
图8是本发明实施例二公开的Turbo码译码方法流程图;
图9是本发明实施例二公开的并行译码的迭代过程示意图;
图10是本发明实施例三公开的Turbo码译码装置实例图。
具体实施方式
为了引用和清楚起见,对下文中使用的技术名词、简写或缩写总结解释如下:
软信息也称为软比特、对数似然比(log-likelihood ratio,LLR),是对接收比特的另一种表示方式。假设发送端发送的比特为bT,接收端在判决时认为bT以P1的概率取值为1,而以P0=1-P1的概率取值为0,那么bT所对应的软信息表示为:
显然,L(bT)>0表明P1>P0,即bT=1的可能性要大于bT=0的可能性,同时L(bT)越大意味着bT=1的可能性就越大;同样地,当L(bT)<0时bT=0的可能性要大于bT=1的可能性。所以可以用L(bT)的符号表示bT=1或bT=0,同时用|L(x)|来衡量bT取当前值可能性的大小。
系统软信息:systematic LLR。
校验软信息:parity LLR。
判决软信息:intrinsic LLR或a-posteriori LLR。
先验信息:a-priori LLR。
外信息:extrinsic LLR。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一公开一种Turbo码译码装置,请参见图1,该装置包括子块划分模块100、并行译码模块200、解交织模块300和硬判决模块400。
子块划分模块100,用于将待译码的Turbo码码块划分为P个子块,所述P为大于1的自然数。
其中,子块划分模块具体包括信道信息接收单元和信道信息存储单元。信道信息接收单元,用于接收如下四类数据:系统软信息λx1,k、系统软信息λx1,k经解交织处理后的系统软信息λx2,k以及校验软信息λz1,k和λz2,k;信道信息存储单元,用于将每类所述数据分为P个子数据块进行存储,其中,P为2的幂次。
并行译码模块200,用于采用P/M个软输入软输出SISO译码单元对由所述P个子块分成的P/M个子块分组进行并行译码,得到所述各个子块相对应的判决软信息,其中,每个子块分组包括M个子块,每个SISO译码单元基于时分复用原理对相应子块分组所包括的M个子块进行译码,所述M为大于1的自然数。
Turbo码译码器一般采用反馈结构,以迭代的方式进行译码,迭代译码使得Turbo码在高码率、低信噪比的应用场景下仍然具备良好的纠错性能。与Turbo码编码端的两个分量码编码器相对应,传统Turbo码译码器的译码端包含两个SISO(Soft input SoftOutput,软输入软输出)的分量译码器:分量译码器1和分量译码器2,两个分量译码器以并行级联或串行级联的方式连接。在每一轮迭代过程中,每个分量译码器执行MAP类算法并利用另一个分量译码器提供的先验信息进行译码,再将输出的外信息序列变换次序后反馈至另一分量译码器,作为另一分量译码器进行译码的先验信息。
通过以上描述可知,在Turbo码的每一轮迭代译码过程中,需要执行两个分量译码器的译码操作。本发明实施例中,为了节省硬件资源,采用一个分量译码器的硬件结构,并将其分为两个译码阶段来完成两个分量译码器的译码操作。
基于此,以下对并行译码模块200的结构进行描述,并行译码模块200负责Turbo码码块的整个迭代译码过程。请参见图2,并行译码模块200包括设置模块210,MAP并行译码模块220、并行解交织模块230、并行交织模块240以及迭代控制模块250,其中:
设置模块210,用于设置迭代参数x,并为所述x赋值0,其中所述x表示所述MAP并行译码模块已执行的迭代译码次数;
MAP并行译码模块220,包括P/M个SISO译码单元,每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k计算各子块相应的判决软信息和第一外信息;
并行解交织模块230,用于对所述各子块相应的第一外信息进行解交织处理,得到第二先验信息,之后,触发所述MAP并行译码模块220执行如下操作:每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx2,k、校验软信息λz2,k以及第二先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx2,k、校验软信息λz2,k以及第二先验信息计算各子块相应的判决软信息和第二外信息;
迭代控制模块250,用于将所述x值加1,并判断所述x的值是否达到预设阈值,若判断结果为是,则将此时MAP并行译码模块计算得到的判决软信息输出,并在本轮译码完成后结束整个Turbo码译码过程;若判断结果为否,则触发所述并行交织模块240;
并行交织模块240,用于对所述各子块相应的第二外信息进行交织处理,得到第一先验信息,并触发所述MAP并行译码模块220执行如下操作:
每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k以及第一先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k以及第一先验信息计算各子块相应的判决软信息和第一外信息;之后,触发所述并行解交织模块230。
其中,MAP并行译码模块220逻辑上即相当于一个分量译码器,本发明采用MAP并行译码模块220通过使其执行两个阶段的译码来完成两个分量译码器的译码操作。即具体地,每一轮迭代译码分两个阶段完成,分别实现分量译码器1和分量译码器2所对应的译码操作,第一个阶段输入数据为系统软信息λx1,k、校验软信息λz1,k以及第一先验信息(第一轮迭代将第一先验信息全部置为0),第二个阶段输入数据为:系统软信息λx2,k、校验软信息λz2,k以及第二先验信息。除了输入数据有所区别外,SISO译码单元在不同阶段执行的操作完全相同,每个阶段的MAP并行译码模块输出的外信息经变换次序(交织或解交织)后作为另一个阶段的先验信息。
MAP并行译码模块220包括P/M个SISO译码单元,每个SISO译码单元由分支度量计算子单元、前向/反向状态度量计算子单元以及外信息/判决软信息计算子单元组成,SISO译码单元依据读取的信息通过状态度量的计算最终计算出所需的外信息或判决软信息。前向/反向状态度量计算子单元具体采用加比选(Add-compare-select,ACS)单元实现前向状态度量和后向状态度量的计算。
与现有技术相比,本发明中MAP并行译码模块220包括的各SISO译码单元作出了相应改进,具体地,本发明的各SISO译码单元基于延迟归一化的方法对状态度量进行计算,缩短了状态度量的更新周期、进而降低了译码时延。以下结合现有技术的SISO译码单元对本发明改进的SISO译码单元进行介绍。
在Turbo码译码过程中,两个分量译码器采用MAP类算法进行译码,适合于硬件实现的MAP类算法通常在对数域执行,代表方案包括log-MAP算法和Max-log-MAP算法,和其他的MAP类算法相比,Max-log-MAP算法的复杂度更低、更易实现,它忽略了log-MAP算法中的矫正项,以性能的轻微损失换取硬件结构的简化。当采用radix-4译码方法(现有技术的译码方法之一)实现Max-log-MAP算法时,编码网格图中的两步状态转移所对应的前向递推、后向递推和分支度量被合并计算,其中,前向递推过程和反向递推过程可以描述为:
此处,s′i和si,i=0,1,…,7分别表示2k时刻和2k+2时刻的8种状态。式(1)和式(2)描述了状态度量的计算方法,其中,β2k(s′i)表示第2k时刻状态s′i所对应的未归一化的后向状态度量;α2k+2(si)表示第2k+2时刻状态si所对应的未归一化的前向状态度量;表示第2k时刻状态s′i所对应的归一化的后向状态度量;表示第2k+2时刻状态si所对应的归一化的前向状态度量;γ2k,2k+2(s′,s)表示连接第2k时刻状态s′和第2k+2时刻状态s的分支度量。在Radix-4算法执行时,每1个状态度量与相连的4个分支度量相加,然后从相加所得的4个结果中选择最大值作为新的状态度量。利用硬件电路实现上述递推过程时,考虑到状态度量值均采用了定点制表示形式,为了避免数据的溢出,需要对每次递推得到的8个状态度量进行归一化处理。式(3)和式(4)描述了状态度量的归一化过程,根据Max-log-MAP算法的原理,进行归一化之前首先要求出当前的8个状态度量中的最大值,再从递推得到的当前8个状态中减去这一最大值,即实现了8个状态度量的归一化。这种方法的问题在于,状态度量最大值的寻找需要消耗额外的时钟周期,且在归一化的状态度量未计算出之前,又不能开始新一轮状态度量计算的递推过程。
为了缩短状态度量的更新周期,提高算法执行的效率,本发明对上述归一化方式进行如下改进:利用前一组状态度量的最大值对当前的8个状态度量进行归一化。相应地,将式(3)和式(4)更换为:
基于以上改进,归一化因子的搜寻与新的状态度量的计算可以并行执行,从而,与现有技术相比,本发明中状态度量的更新周期缩短了一半。请参见表1,以下表1以第2k时刻的状态度量计算过程为例(仅以1个状态度量的计算为例,实际上,8个状态度量的计算并行进行),描述了具体的操作方法。
表1
表中的CLK#1、CLK#2、CLK#3和CLK#4用于指代译码过程中连续的4个时钟周期。
另一方面,利用Radix-4算法计算判决软信息L(x2k),L(x2k+1)以及外信息Le(x2k),Le(x2k+1)的方法如下:
L(x2k)=max{Lm(x2k=1,x2k+1=1),Lm(x2k=1,x2k+1=0)}
-max{Lm(x2k=0,x2k+1=1),Lm(x2k=0,x2k+1=0)},
(7)
L(x2k+1)=max{Lm(x2k=1,x2k+1=1),Lm(x2k=0,x2k+1=1)}
-max{Lm(x2k=1,x2k+1=0),Lm(x2k=0,x2k+1=0)}.
Le(x2k)=L(x2k)-λx,2k-La(x2k),
(8)
Le(x2k+1)=L(x2k+1)-λx,2k+1-La(x2k+1).
其中La(x)表示比特x所对应的先验信息,对数似然比Lm(x2k=a,x2k+1=b),a,b∈{0,1}定义为:
结合(7)~(9)可知,前向/反向状态度量的更新速度直接影响到SISO译码单元的吞吐量。如果基于现有的子块并行译码方案进行译码,即使采用本发明所提出的延迟归一化方案,前向/后向状态度量也只能每隔4个时钟周期更新一次。这样一来,SISO译码单元的吞吐量最多达到系统时钟频率的1/4。
基于此,本发明利用并行译码阶段各个子块数据处理的独立性,并结合以上描述的状态度量的改进计算方案,采用时分复用的思想对不同子块的译码操作进行合理的调度,使得多个子块共用同一个SISO译码单元进行译码,以提升SISO译码单元的吞吐量。本发明中,改进SISO译码单元的硬件结构请参见图3,和现有译码器结构相比,本发明中的SISO译码单元可支持对多达4个子块的数据进行译码操作,实现了计算资源的最大化利用。
图4对本发明SISO译码单元内部的计算时序进行了说明:在图4(a)中,4个子块的信道信息和先验信息在时钟周期的上升沿依次读入SISO译码单元用于计算分支度量γ2k,2k+2(s′,s)和前向状态度量其中向下的箭头表示未归一化状态度量的生成,向上的箭头表示状态度量的归一化过程。需要指出的是,这一时序也适用于滑动窗译码算法中后向状态度量的预递推过程。图4(b)描述了后向状态度量与判决软信息L(x2k),L(x2k+1)以及外信息Le(x2k),Le(x2k+1)的计算时序,与信道信息和先验信息输入SISO译码单元的方式相对应,每4个时钟周期译码单元依次输出4个子块各自的2比特译码结果。
需要说明的是,以上针对每轮迭代中,SISO译码单元实现子块的一次译码过程(一个译码阶段)需4个时钟周期,优选M为4,即优选4个子块时分复用同一个SISO译码单元。在实际应用场景中,M的取值可由本领域技术人员依据实际译码需求进行设定。
本发明中,每个改进SISO译码单元采用radix-4滑动窗译码算法同时对M个子块进行译码,以一个译码阶段(即分量译码器1)的译码为例,当MAP并行译码模块执行分量译码器1的译码操作时,SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息、校验位信息以及先验信息进行处理,对各个子块数据的读取以max{M,4}个时钟周期为单位循环执行;
如果M<4,此时读取操作的循环周期为4个时钟周期,并将其中第i∈{1,…,M}时钟周期作为第i个子块的操作时隙;具体的数据读取方式为:在第1个时隙更新读地址aRD并读取第1个子块的数据,在第2至第M个时隙内用同样的地址aRD依次读取第2至第M个子块的数据,将第M+1个时隙至第4个时隙作为空闲时隙;
如果M≥4,此时读取操作的循环周期为M个时钟周期,并将其中第i∈{1,…,M}时钟周期分配给第i个子块作为操作时隙;此时的数据读取方式为:在第1个时隙更新读地址aRD并对读取第1个子块的数据,在随后的M-1个时隙内用同样的地址aRD依次读取第2至第M个子块的数据;
其中,在MAP并行译码模块执行第二个译码阶段(分量译码器2)的译码操作时,SISO译码单元的数据读取方式与上述过程相同。
为了配合M个子块对SISO译码单元的时分复用,用于计算前向状态度量和后向状态度量的加比选(Add-compare-select,ACS)单元中的反馈支路需要根据M的取值进行调整:
如果M≤4,在ACS单元的反馈支路上不添加移位寄存器;
如果M>4,在ACS单元的反馈支路上添加长度为M-4的移位寄存器。
相比于现有技术需要P个SISO译码单元来完成P个子块的并行译码操作,本发明仅需P/M个SISO译码单元,例如可优选采用P/4个SISO译码单元来实现P个子块的并行译码,在不增加译码时延的基础上,降低了硬件资源消耗。
现有技术中,在两个分量译码器的迭代译码过程中,交织器、解交织器也需要按照相应的并行度,即并行度为P进行设计,与此相对,本发明利用QPP(Quadratic permutationpolynomial)交织器的数学特性对并行交织地址的生成方式进行了简化,在P/4的并行度下设计了并行解交织模块230以及并行交织模块240。
并行交织模块240包括外信息次序调整单元、并行交织地址产生单元和子块标号及子块内数据地址确定单元。其中外信息次序调整单元在MAP并行译码模块输出有效外信息时启动,其输出数据触发并行交织地址产生单元工作,最后将次序调整后的外信息数据和相应的并行交织地址送至子块标号及子块内数据地址确定单元。
外信息次序调整单元,用于将所述MAP并行译码模块输出的2P/M路外信息按照预设方式调整为P/2路。具体而言,从MAP并行译码模块开始输出有效外信息数据的时刻起,外信息次序调整单元将每M个连续时钟周期内的2P/M路输入数据按照如下方式转换为P/2个输出端口在4个时钟周期内的输出:
将第1,3,…,2m1-1,…,M-1个时钟周期所对应的第1,3,…,2n1-1,…,2P/M-1条输入支路上的外信息作为第1,2,…,2n1+m1-1,…,P/2条输出支路在第1时刻的输出的外信息;
将第2,4,…,2m2,…,M个时钟周期所对应的第1,3,…,2n2-1,…,2P/M-1条输入支路上的外信息作为第1,2,…,2n2+m2-1,…,P/2条输出支路在第2时刻的输出的外信息;
将第1,3,…,2m3-1,…,M-1个时钟周期所对应的第2,4,…,2n3,…,2P/M条输入支路上的外信息作为第1,2,…,2n3+m3-1,…,P/2条输出支路在第3时刻的输出的外信息;
将第2,4,…,2m4,…,M个时钟周期所对应的第2,4,…,2n4,…,2P/M条输入支路上的外信息作为第1,2,…,2n4+m4-1,…,P/2条输出支路在第4时刻的输出的外信息;
具体地,以M=4的情况为例,此时本发明中P(P=2m,m=2,3,…)个子块的并行译码操作通过P/4个SISO译码单元完成。以下用表示第p个子块中第i个比特xi所对应的外信息,那么MAP并行译码模块在k~k+3这4个连续时刻输出的外信息可用矩阵Le表示为:
其中,Le的第2u-1与2u,u=1,…,P/4行对应于第u个SISO译码单元的输出。外信息的次序调整通过图5所示的电路来实现,该结构由4组移位寄存器单元和一个换向器组成,每组移位寄存器可以同时缓存P/4个外信息。换向器的控制信号可以利用位宽为2的计数器来生成,在输入有效外信息期间令计数器持续计数,则计数器的高位就可用于控制换向器改变数据流的流向。需要说明的是,该电路结构基于寄存器最小化技术进行设计,故而实现了对寄存器资源的高效利用。
调整后的外信息的输出形式可以用矩阵描述:
其中的每一列代表外信息次序调整单元在每个时钟周期输出的外信息数据。可以发现,虽然同一时刻输出的外信息分属于不同的子块,但它们所对应的比特在相应子块内处于同一位置。
并行交织地址产生单元,用于在所述外信息次序调整单元输出有效外信息期间,每个时钟周期产生P/4个交织地址,相应地用于P/2个外信息数据的存储。
并行交织地址产生单元进一步包括一个串行QPP交织器和一个并行地址生成器。其中,QPP交织器,用于生成基地址Π(s),s=0,1,…,N/P,N为Turbo码码块的长度;并行地址生成器,用于在P/4的并行度下,利用所述基地址在每个时钟周期生成P/4个并行交织地址。
具体地,Turbo码中常用的QPP交织器Π(k)定义为:
Π(k)=(f1·k+f2·k2)mod N,k=0,…,N-1 (10)
其中f1mod2=1,f2mod2=0,N表示Turbo码的码块长度。执行并行译码操作时,需要将长度为N的Turbo码码块平均划分为P个长度为S=N/P的子块,则k=sk+pk·S,sk=0,…,S-1,pk=0,…,P-1。将k=sk+pk·S对应的交织地址记作r=sr+pr·S=Π(sk+pk·S),sr=0,…,S-1,pr=0,…,P-1,如果原地址k1=sk,1+pk,1·S和k2=sk,2+pk,2·S满足sk,1=sk,2=s,pk,1≠pk,2,那么:
sr,1=Π(s+pk,1·S)mod S=Π(s+pk,2·S)mod S=sr,2 (12)
其中(11)由QPP交织器的最大无冲突特性所决定,它保证了并行交织模块在同一时刻的输出结果写入RAM的过程中不会出现访问冲突;(12)由QPP交织器的最大向量特性决定,它有助于简化并行交织模块的设计。
本发明以式(10)~(12)的结论为基础,公开一种低复杂度的并行交织模块的硬件实现方案。
假设Turbo码码块长度为N,分为P=2m,m=2,…个子块进行并行译码。定义S×P的交织地址矩阵R:
其中,p=0,…,P-1是R的第p+1列,表示第p个子块所对应的全部交织地址。利用(11)和(12)不难得出矩阵R满足如下特性:
Π(pS+s)=[Π(s)+Π(pS)]mod N,s=0,…,S-1,p=0,…,P-1 (15)
其中,表示维数为S×1的全1矢量。可以发现,在已知以及Π(0),Π(S),…,Π((P/2-1)S)的情况下,矩阵R中的所有元素都可以根据(14)和(15)求出。
基于上述特性本发明公开的并行交织模块如图6所示,QPP交织器生成基地址Π(s),s=0,…,S-1,并行地址生成器将基地址叠加在不同的初始地址Π(pS),p=0,…,P/2-1上得到Π(s)+Π(pS),并比较Π(s)+Π(pS)与Turbo码码块长度N的大小:如果Π(s)+Π(pS)<N,那么所要计算的交织地址Π(pS+s)=Π(s)+Π(pS);否则Π(pS+s)=Π(s)+Π(pS)-N。
具体地,以外信息次序调整单元开始输出有效外信息的时刻作为初始时刻,此后并行交织地址产生单元的内部操作以2个时钟周期为单位重复进行:
第1个时钟周期:运行串行QPP交织器产生基地址Π(s);并行地址生成器将基地址Π(s)与Π(0),Π(2S),…,Π((P/2-2)S)相加后进行mod N运算,以此得到P/4个并行交织地址,这里的S=N/P表示每个子块的长度;
第2个时钟周期:串行QPP交织器处于空闲状态;并行地址生成器利用与前一时刻相同的Π(s)与Π(0),Π(2S),…,Π((P/2-2)S)相加后进行mod N运算,以此得到P/4个并行交织地址。
进一步,针对传统的QPP交织器硬件实现结构中所存在的关键路径较长的问题,本发明提出了一种具有较短关键路径长度的交织地址计算方法。即具体地,请参见图6,用于产生基地址Π(s),s=0,1,…,N/P的串行QPP交织器包含Γ(·)计算单元601、Γ(·)叠加单元602以及Π(·)计算单元603三个子单元;分别执行(16)至(18)的运算:
Γ(k+1)=(Γ(k-1)+4f2)mod N (16)
Γsum(k+1)=(Γ(k)+Γ(k+1))mod N (17)
Π(k+2)=(Π(k)+Γsum(k+1))mod N (18)
其中,Γ(k)定义为Γ(k)=2f2k+f1+f2。除了加法器和取余(mod)运算单元外,Γ(·)计算单元包括两个寄存器R1和R2,Γ(·)叠加单元包括一个寄存器R0,Π(·)计算单元包括两个寄存器R3和R4;在电路开始工作时,需要根据系统参数分别将图中的移位寄存器R0~R4初始化为Γ(0),Γ(1),Γ(2),Π(0)和Π(1)。给定Turbo码码块长度N与QPP交织器参数f1与f2,当串行QPP交织器处于工作状态时,与(16)~(18)相对应,以上三个子单元在每个时钟周期内所执行的操作如下:
Γ(·)计算单元:寄存器R2的输出数据进行mod N运算后存入R1;R1中前一时刻缓存的数据一方面与4f2mod N相加后存入R2,另一方面输出至Γ(·)叠加单元;
Γ(·)叠加单元:输入数据一方面送入寄存器R0进行存储,另一方面与R0中前一时刻缓存的数据相加并执行mod N运算后作为Π(·)计算单元的输入;
Π(·)计算单元:寄存器R4的输出数据进行mod N运算后存入R3;R3中前一时刻缓存的数据一方面与输入数据相加后存入R4,另一方面作为交织地址生成单元的输出。
基于以上结构,本发明中交织地址生成单元的关键路径长度为tadd+tMUX,其中tadd和tMUX分别表示执行一次加法运算和一次数据选择所需的时间。由于tadd>>tMUX,和现有结构中2tadd+tMUX的关键路径长度相比,本发明所公开结构下生成交织地址所需的关键路径长度大约只有现有结构的一半,因此交织地址生成单元的最大工作时钟频率可以近似提升为现有方案的2倍。
子块标号及子块内数据地址确定单元,用于利用并行交织地址产生单元产生的P/4个交织地址确定P/2个外信息所对应的子块标号和子块内数据地址,并将所确定的子块标号、子块内数据地址与外信息发送至外信息缓存RAM(Random-Access Memory,随机存取存储器)实现外信息存储,得到后续译码操作所需的先验信息。
首先说明子块标号及子块内数据地址确定单元所基于的数学原理。此处,将第k时刻输入的交织地址和外信息分别表示为wk=[w0,k,…,wi,k,…,wP/4-1,k]和ek=[e0,k,…,ej,k,…,eP/2-1,k],其中:
i=0,…,P/4-1,j=0,…,P/2-1。以N/2,N/4,…,N/P为因子对wk中的元素进行展开,那么:
根据(12),wk中的每一个元素对应于相同的展开式余项wRAM,该余项即为外信息所对应的子块内数据地址。另一方面,外信息次序调整单元由log2P-1级构成,其中第m(m=1,…,log2P-1)级所需的控制信号个数为P/2m+1个。用cuv,u=0,…,log2P-1,v=0,…,P/2m+1表示排序网络第u级的第v个控制信号,那么:
cuv=zvu (21)
在将外信息次序调整单元输出的外信息写入存储单元之前,还需要利用cw对P/2个外信息的数据流向进行最后调整。与控制信号cuv类似,cw也可以从(20)中得到:
当cw=0时,P/2个外信息并行写入子块0,2,…,P-2对应的外信息缓存RAM;否则,需要将外信息写入子块1,3,…,P-1对应的外信息缓存RAM。
利用上述原理所设计的子块标号及子块内数据地址确定单元硬件实现方案通过如下的log2P-1轮比较操作来确定P/2个外信息所对应的子块标号和子块内数据地址,其中前一轮操作执行完毕所得到的交织地址和外信息作为后一轮比较操作的操作对象;具体而言,第r∈{2,3,…log2P-1}轮比较操作只考虑P/4交织地址中的个前P/2r+1个,如果其中的第i个地址不小于N/2r,则将这一地址减去N/2r同时把第i,i+P/2r,…,i+(2r-1-1)P/2r个外信息分别与第i+P/2r+1,i+P/2r+1+P/2r,…,i+P/2r+1+(2r-1-1)P/2r个外信息进行对换;
最后将第log2P-1轮比较操作结束后得到P/4个地址值中的第一个与N/P进行比较,如果该地址不小于N/P,将其减去N/P后作为外信息的子块内数据地址,然后将第log2P-1轮比较操作输出的P/2个外信息依次写入外信息缓存RAM中子块1,3,…,P-1对应的存储单元;反之直接将该地址作为外信息的子块内数据地址,并把P/2个外信息依次写入外信息缓存RAM中子块0,2,…,P-2对应的存储单元。
请参见图7,图7以子块数目P=16为例示出了外信息的存储过程,此时每个时钟周期需要利用P/4=4个并行交织地址向存储单元写入P/2=8个外信息。图7中的硬件电路由两部分构成,并行交织地址生成单元在计算子块内数据地址的同时产生控制信号以调节外信息次序调整单元中数据流的流向;外信息次序调整单元数据流的连接方式与radix-2DIF信号流图类似,它利用各级的数据选择器组将外信息映射到相应的存储RAM,从而间接地实现了外信息所对应的子块序号的确定。
通过并行度的降低,本发明公开的外信息存储方案比现有结构占用了更少的硬件资源。
并行解交织模块230的结构与并行交织模块240的结构相同,不再详述。
解交织模块300,用于对所述判决软信息进行解交织处理,得到解交织后的判决软信息。
硬判决模块400,用于对所述解交织后的判决软信息进行硬判决,得到所述Turbo码码块的译码结果。
为了得到Turbo码译码装置的最终输出比特,还需要利用解交织模块300和硬判决模块400分别对并行译码模块200输出的判决软信息进行次序调整和硬判决。其中,解交织模块300的结构与以上介绍的并行交织模块240以及并行解交织模块230的结构相同,此处不再赘述。
综上,本发明实施例提供的Turbo码译码装置包括子块划分模块100、并行译码模块200、解交织模块300和硬判决模块400。子块划分模块100将待译码的Turbo码码块划分为P个子块;并行译码模块200采用P/M个软输入软输出SISO译码单元对由所述P个子块分成的P/M个子块分组进行并行译码,得到各个子块相对应的判决软信息,其中,每个子块分组包括M个子块,每个SISO译码单元基于时分复用原理对相应子块分组所包括的M个子块进行译码;后续对判决软信息进行解交织和硬判决后,即可得到所述Turbo码码块的译码结果。实际应用场景中,可将M优选地设定为SISO译码单元完成子块的一次译码过程所需的时钟周期个数,例如,针对SISO译码单元具体需要4个时钟周期完成一次前向/后向状态度量的更新,可将M设定为4,即在不增加译码时延的情况下,利用时分复用原理通过对不同子块的译码操作进行合理的调度,使4个子块同时复用一个SISO译码单元来完成译码操作。
可见,针对划分为P个子块的Turbo码码块,本发明仅需P/M(例如P/4)个SISO译码单元即可实现所述P个子块的并行译码操作。从而和现有的子块并行译码方案相比,本发明的装置能够在不增加译码时延的基础上显著降低硬件资源消耗,实现了硬件资源的最大化利用。
实施例二
本发明实施例二公开一种Turbo码译码方法,请参见图8,该方法包括:
S1:将待译码的Turbo码码块划分为P个子块,其中,所述P为大于1的自然数。
具体地,步骤S1包括:
接收如下四类数据:系统软信息λx1,k、系统软信息λx1,k经解交织处理后的系统软信息λx2,k以及校验软信息λz1,k和λz2,k;
将每类所述数据分为P个子数据块进行存储,其中,P为不小于4的自然数,且P为2的幂次。
S2:采用P/M个软输入软输出SISO译码单元对由所述P个子块分成的P/M个子块分组进行并行译码,得到所述各个子块相对应的判决软信息,其中,每个子块分组包括M个子块,每个SISO译码单元基于时分复用原理对相应子块分组所包括的M个子块进行译码,所述M为大于1的自然数。
其中,请参见图9,步骤S2具体包括:
S201:设置迭代参数x,并为所述x赋值0,其中所述x表示所述MAP并行译码模块已执行的迭代译码次数;
S202:采用P/M个SISO译码单元,每个SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k计算各子块相应的判决软信息和第一外信息;
S203:对所述各子块相应的第一外信息进行解交织处理,得到第二先验信息;
其中,步骤S203具体包括:将所述MAP并行译码模块输出的2P/M路外信息按照预设方式调整为P/2路;在所述外信息次序调整单元输出有效外信息期间,每个时钟周期产生P/4个交织地址,相应地用于P/2个外信息数据的存储;利用并行交织地址产生单元产生的P/4个交织地址确定P/2个外信息所对应的子块标号和子块内数据地址,并将所确定的子块标号、子块内数据地址与外信息发送至外信息缓存RAM实现外信息存储,得到后续译码操作所需的先验信息。
具体地,在所述外信息次序调整单元输出有效外信息期间每个时钟周期产生P/4个交织地址包括:生成基地址Π(s),s=0,1,…,N/P,其中,N为Turbo码码块的长度;在P/4的并行度下,利用所述基地址在每个时钟周期生成P/4个并行交织地址。
S204:每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx2,k、校验软信息λz2,k以及第二先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx2,k、校验软信息λz2,k以及第二先验信息计算各子块相应的判决软信息和第二外信息;
S205:将所述x值加1,并判断所述x的值是否达到预设阈值,若判断结果为是,则执行步骤S206:若判断结果为否,则执行步骤S207;
S206:将此时MAP并行译码模块计算得到的判决软信息输出,并在本轮译码完成后结束整个Turbo码译码过程;
S207:对所述各子块相应的第二外信息进行交织处理,得到第一先验信息;
S208:每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k以及第一先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k以及第一先验信息计算各子块相应的判决软信息和第一外信息;之后,转至执行步骤S203。
S3:对所述判决软信息进行解交织处理,得到解交织后的判决软信息。
S4:对所述解交织后的判决软信息进行硬判决,得到所述Turbo码码块的译码结果。
对于本发明实施例二公开的Turbo码译码方法而言,由于其与以上实施例一公开的Turbo码译码装置相对应,所以描述的比较简单,相关相似之处请参见实施例一中Turbo码译码装置部分的说明即可,此处不再详述。
实施例三
本实施例三公开本发明装置或方法的一具体应用实例。
如图10所示,本实例中采用的Turbo码译码装置具体包括交织器1、输入缓存RAM2、MAP并行译码模块3、并行交织器4、并行解交织器5、外信息缓存RAM6、控制单元7、解交织器8以及硬判决器9。其中,MAP并行译码模块3包括P/4个改进的SISO译码单元:改进SISO译码单元1、改进SISO译码单元2、改进SISO译码单元P/4。所采用的并行交织器4、以及交织器1的交织参数为(N,f1,f2),相应的并行解交织器5以及解交织器8的解交织参数为(N,g1,g2)。
本实例设定长度为N的Turbo码码块被划分P=2m个长度为S=N/P的子块进行译码。以下对利用所述Turbo码译码装置实现Turbo码码块的译码过程进行说明。
反打孔模块输出系统软信息λx1,k以及校验软信息λz1,k,λz2,k,Turbo码译码装置接收这些软信息,如图10所示,一方面将系统软信息λx1,k以及校验软信息λz1,k,λz2,k按照顺序地址存入相应的RAM中,另一方面利用解交织参数为(N,g1,g2)的解交织器产生交织地址将λx1,k写入另一组RAM,以得到分量译码器2(第二个译码阶段)所对应的系统软信息λx2,k。为了支持所有子块对数据的并行访问,每组RAM被划分为P个深度为S=N/P的独立存储单元,分别用于存储每个子块的输入数据。
并行译码操作在数据输入完毕后开始执行。MAP并行译码模块3由P/4个改进SISO译码单元组成,其中第i=1,…,P/4个译码单元用于处理第4i-3个至第4i个子块数据的译码,各个SISO译码单元执行滑动窗译码算法进行并行的迭代译码,每一轮迭代译码分两个阶段完成,分别实现分量译码器1和分量译码器2所对应的译码操作。
在第一阶段,MAP并行译码模块3中的每个SISO译码单元顺序读入λx1,k,λz1,k以及相应的先验信息La(xk)(其中,第一轮迭代时将先验信息La(xk)置为0),按照图4所示的时序完成状态度量、外信息或判决软信息的计算,并输出外信息数据,当MAP并行译码模块3输出有效的外信息数据时,参数为(N,g1,g2)的并行解交织器5产生并行解交织地址,同时对外信息数据流进行次序调整,然后将并行交织地址以及经过次序调整后的外信息数据流送入外信息缓存RAM6,在得到每路外信息所对应的子块序号和子块内数据地址后完成存储,存储的外信息作为第二阶段译码的先验信息。当外信息全部存储完毕之后,MAP并行译码模块3中的各SISO译码单元顺序读入λx2,k,λz2,k以及La(xk)开始分量译码器2所对应的译码操作,这时SISO译码单元内部的工作方式与第一阶段相同,该阶段MAP并行译码模块3输出有效的外信息数据时,参数为(N,f1,f2)的并行交织器4产生并行交织地址,同时对外信息数据流进行次序调整,然后将并行解交织地址以及经过次序调整后的外信息数据流送入外信息缓存RAM6进行存储,存储的外信息作为第一阶段译码的先验信息。
之后重复以上的两个译码阶段,并统计MAP并行译码模块所执行的迭代译码次数。当迭代译码次数达到预设次数后,利用解交织器8以及硬判决器9对分量译码器2输出的信息比特后验信息(判决软信息)做解交织以及硬判决得到最终的译码序列。至此,完成了Turbo码码块的并行迭代译码过程。
综上所述,本发明具有如下优势:基于时分复用原理的SISO译码单元使得MAP并行译码模块所需的SISO译码单元个数降低为现有技术的1/4,即本发明采用P/4个SISO译码单元即可实现Turbo码P个子块的并行译码;本发明中低复杂度的并行交织模块充分利用了QPP交织器的最大向量特性和最大无冲突特性,简化了并行交织地址的生成、子块内数据地址的求解以及外信息所对应的子块序号的确定;依据交织操作与解交织操作的对偶特性优化了Turbo码译码器内的数据存取方法,通过调整信道信息以及外信息的存储方式,保证了SISO译码单元在整个译码过程中均能够以顺序地址来获取信道信息和先验信息,从而进一步简化了SISO译码单元内部的电路设计。
可见,本发明公开的Turbo码译码装置和方法在不增加译码时延的基础上显著降低了硬件资源的消耗。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各模块、单元的功能在同一个或多个硬件中实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种Turbo码译码装置,其特征在于,包括子块划分模块、并行译码模块、解交织模块和硬判决模块,其中:
所述子块划分模块,用于将待译码的Turbo码码块划分为P个子块,所述P为大于1的自然数;
所述并行译码模块,用于采用P/M个软输入软输出SISO译码单元对由所述P个子块分成的P/M个子块分组进行并行译码,得到所述各个子块相对应的判决软信息,其中,每个子块分组包括M个子块,每个SISO译码单元基于时分复用原理对相应子块分组所包括的M个子块进行译码,所述M为大于1的自然数;
所述解交织模块,用于对所述判决软信息进行解交织处理,得到解交织后的判决软信息;
所述硬判决模块,用于对所述解交织后的判决软信息进行硬判决,得到所述Turbo码码块的译码结果;
所述子块划分模块包括:信道信息接收单元,用于接收如下四类数据:系统软信息λx1,k、系统软信息λx1,k经解交织处理后的系统软信息λx2,k以及校验软信息λz1,k和λz2,k;信道信息存储单元,用于将每类所述数据分为P个子数据块进行存储,其中,P为不小于4的自然数,且P为2的幂次;
所述并行译码模块包括设置模块、MAP并行译码模块、并行解交织模块、并行交织模块以及迭代控制模块,其中:
所述设置模块,用于设置迭代参数x,并为所述x赋值0,其中所述x表示所述MAP并行译码模块已执行的迭代译码次数;
所述MAP并行译码模块,包括P/M个SISO译码单元,每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k计算各子块相应的判决软信息和第一外信息;
所述并行解交织模块,用于对所述各子块相应的第一外信息进行解交织处理,得到第二先验信息,之后,触发所述MAP并行译码模块执行如下操作:每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx2,k、校验软信息λz2,k以及第二先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx2,k、校验软信息λz2,k以及第二先验信息计算各子块相应的判决软信息和第二外信息;
所述迭代控制模块,用于将所述x值加1,并判断所述x的值是否达到预设阈值,若判断结果为是,则将此时MAP并行译码模块计算得到的判决软信息输出,并在本轮译码完成后结束整个Turbo码译码过程;若判断结果为否,则触发所述并行交织模块;
所述并行交织模块,用于对所述各子块相应的第二外信息进行交织处理,得到第一先验信息,并触发所述MAP并行译码模块执行如下操作:
每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k以及第一先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k以及第一先验信息计算各子块相应的判决软信息和第一外信息;之后,触发所述并行解交织模块。
2.根据权利要求1所述的Turbo码译码装置,其特征在于,所述SISO译码单元在计算过程中,具体采用延迟归一化原理,把未归一化状态度量的计算和上一组归一化状态度量的最大值的搜寻并行执行,利用上一组状态度量的最大值对新计算出的未归一化的状态度量进行归一化处理。
3.根据权利要求1所述的Turbo码译码装置,其特征在于,所述并行交织模块包括外信息次序调整单元、并行交织地址产生单元和子块标号及子块内数据地址确定单元,其中:
所述外信息次序调整单元,用于将所述MAP并行译码模块输出的2P/M路外信息按照预设方式调整为P/2路;
所述并行交织地址产生单元,用于在所述外信息次序调整单元输出有效外信息期间,每个时钟周期产生P/4个交织地址,相应地用于P/2个外信息数据的存储;
所述子块标号及子块内数据地址确定单元,用于利用并行交织地址产生单元产生的P/4个交织地址确定P/2个外信息所对应的子块标号和子块内数据地址,并将所确定的子块标号、子块内数据地址与外信息发送至外信息缓存RAM实现外信息存储,得到后续译码操作所需的第一先验信息。
4.根据权利要求3所述的Turbo码译码装置,其特征在于,所述并行交织地址产生单元包括:
QPP交织器,用于生成基地址Π(s),s=0,1,…,N/P,其中,N为Turbo码码块的长度;
并行地址生成器,用于在P/4的并行度下,利用所述基地址在每个时钟周期生成P/4个并行交织地址。
5.一种Turbo码译码方法,其特征在于,基于如权利要求1-4任一项所述的Turbo码译码装置,所述方法包括:
将待译码的Turbo码码块划分为P个子块,其中,所述P为大于1的自然数;
采用P/M个软输入软输出SISO译码单元对由所述P个子块分成的P/M个子块分组进行并行译码,得到所述各个子块相对应的判决软信息,其中,每个子块分组包括M个子块,每个SISO译码单元基于时分复用原理对相应子块分组所包括的M个子块进行译码,所述M为大于1的自然数;
对所述判决软信息进行解交织处理,得到解交织后的判决软信息;
对所述解交织后的判决软信息进行硬判决,得到所述Turbo码码块的译码结果;
所述将待译码的Turbo码码块划分为P个子块,包括:接收如下四类数据:系统软信息λx1,k、系统软信息λx1,k经解交织处理后的系统软信息λx2,k以及校验软信息λz1,k和λz2,k;将每类所述数据分为P个子数据块进行存储,其中P为2的幂次;
所述采用P/M个软输入软输出SISO译码单元对由所述P个子块分成的P/M个子块分组进行并行译码得到所述各个子块相对应的判决软信息,包括:
设置迭代参数x,并为所述x赋值0,其中所述x表示所述MAP并行译码模块已执行的迭代译码次数;
采用P/M个SISO译码单元,每个SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k计算各子块相应的判决软信息和第一外信息;
对所述各子块相应的第一外信息进行解交织处理,得到第二先验信息,之后,触发如下操作:每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx2,k、校验软信息λz2,k以及第二先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx2,k、校验软信息λz2,k以及第二先验信息计算各子块相应的判决软信息和第二外信息;
将所述x值加1,并判断所述x的值是否达到预设阈值,若判断结果为是,则将此时MAP并行译码模块计算得到的判决软信息输出,并在本轮译码完成后结束整个Turbo码译码过程;若判断结果为否,则继续执行以下操作;
对所述各子块相应的第二外信息进行交织处理,得到第一先验信息,并触发如下操作:每个所述SISO译码单元以时分复用的方式产生顺序地址来读取所对应的M个子块的系统软信息λx1,k、校验软信息λz1,k以及第一先验信息,所述读取以max{M,4}个时钟周期为单位循环执行;并利用所述系统软信息λx1,k、校验软信息λz1,k以及第一先验信息计算各子块相应的第一外信息和判决软信息;之后,转至执行:对所述各子块相应的第一外信息进行解交织处理。
6.根据权利要求5所述的Turbo码译码方法,其特征在于,所述对所述各子块相应的第二外信息进行交织处理得到第一先验信息,包括:
将所述MAP并行译码模块输出的2P/M路外信息按照预设方式调整为P/2路;
在所述外信息次序调整单元输出有效外信息期间,每个时钟周期产生P/4个交织地址,相应地用于P/2个外信息数据的存储;
利用并行交织地址产生单元产生的P/4个交织地址确定P/2个外信息所对应的子块标号和子块内数据地址,并将所确定的子块标号、子块内数据地址与外信息发送至外信息缓存RAM实现外信息存储,作为后续译码操作的第一先验信息。
7.根据权利要求6所述的Turbo码译码方法,其特征在于,所述在所述外信息次序调整单元输出有效外信息期间每个时钟周期产生P/4个交织地址,包括:
生成基地址Π(s),s=0,1,…,N/P,其中,N为Turbo码码块的长度;
在P/4的并行度下,利用所述基地址在每个时钟周期生成P/4个并行交织地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410359510.8A CN104092470B (zh) | 2014-07-25 | 2014-07-25 | 一种Turbo码译码装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410359510.8A CN104092470B (zh) | 2014-07-25 | 2014-07-25 | 一种Turbo码译码装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104092470A CN104092470A (zh) | 2014-10-08 |
CN104092470B true CN104092470B (zh) | 2017-07-07 |
Family
ID=51640157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410359510.8A Active CN104092470B (zh) | 2014-07-25 | 2014-07-25 | 一种Turbo码译码装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104092470B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107528670B (zh) * | 2017-07-26 | 2020-08-14 | 西安空间无线电技术研究所 | 一种Turbo码交织地址的生成方法 |
CN111211792B (zh) * | 2018-11-22 | 2023-05-30 | 北京小米松果电子有限公司 | Turbo译码方法、装置及系统 |
CN109831217B (zh) * | 2018-12-24 | 2023-04-14 | 北京时代民芯科技有限公司 | 一种Turbo码译码器、用于Turbo码的分量译码器及分量译码方法 |
CN113131947B (zh) * | 2019-12-30 | 2023-11-10 | 华为技术有限公司 | 译码方法、译码器和译码装置 |
CN112398487B (zh) * | 2020-12-14 | 2024-06-04 | 中科南京移动通信与计算创新研究院 | 一种降低Turbo并行译码复杂度的实现方法及系统 |
CN113114278B (zh) * | 2021-03-07 | 2023-03-14 | 西安电子科技大学 | 双二进制Turbo译码实现方法、系统、设备及应用 |
CN113258940B (zh) * | 2021-06-15 | 2021-10-08 | 成都星联芯通科技有限公司 | turbo译码方法、装置、译码设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6715120B1 (en) * | 1999-04-30 | 2004-03-30 | General Electric Company | Turbo decoder with modified input for increased code word length and data rate |
CN101373978A (zh) * | 2007-08-20 | 2009-02-25 | 华为技术有限公司 | 一种Turbo码译码方法以及装置 |
CN101707510A (zh) * | 2009-11-18 | 2010-05-12 | 深圳华为通信技术有限公司 | 一种高速Turbo译码方法和装置 |
CN102064838A (zh) * | 2010-12-07 | 2011-05-18 | 西安电子科技大学 | 基于新型无冲突交织器的低延迟并行Turbo译码方法 |
CN102710366A (zh) * | 2012-03-21 | 2012-10-03 | 华为技术有限公司 | 数据译码的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8433986B2 (en) * | 2008-06-11 | 2013-04-30 | Icoding Technology Inc | Method and apparatus for low latency turbo code encoding |
-
2014
- 2014-07-25 CN CN201410359510.8A patent/CN104092470B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6715120B1 (en) * | 1999-04-30 | 2004-03-30 | General Electric Company | Turbo decoder with modified input for increased code word length and data rate |
CN101373978A (zh) * | 2007-08-20 | 2009-02-25 | 华为技术有限公司 | 一种Turbo码译码方法以及装置 |
CN101707510A (zh) * | 2009-11-18 | 2010-05-12 | 深圳华为通信技术有限公司 | 一种高速Turbo译码方法和装置 |
CN102064838A (zh) * | 2010-12-07 | 2011-05-18 | 西安电子科技大学 | 基于新型无冲突交织器的低延迟并行Turbo译码方法 |
CN102710366A (zh) * | 2012-03-21 | 2012-10-03 | 华为技术有限公司 | 数据译码的方法及装置 |
Non-Patent Citations (1)
Title |
---|
分组空时块码系统中的Turbo接收技术研究;张晓瀛;《系统仿真学报》;20080131;第20卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104092470A (zh) | 2014-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104092470B (zh) | 一种Turbo码译码装置及方法 | |
KR101323444B1 (ko) | 반복적 디코더 및 반복적 디코딩 방법 | |
JP5479580B2 (ja) | Lteにおける並列turboデコーディングの方法及び装置 | |
May et al. | A 150Mbit/s 3GPP LTE turbo code decoder | |
JP3861084B2 (ja) | 特に移動無線システム用とした、複合型ターボ符号/畳み込み符号デコーダ | |
US9048877B2 (en) | Turbo code parallel interleaver and parallel interleaving method thereof | |
US6799295B2 (en) | High speed turbo codes decoder for 3G using pipelined SISO log-map decoders architecture | |
Liang et al. | Hardware efficient and low-latency CA-SCL decoder based on distributed sorting | |
US8112698B2 (en) | High speed turbo codes decoder for 3G using pipelined SISO Log-MAP decoders architecture | |
JP5700035B2 (ja) | 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム | |
CN103501210A (zh) | 一种高性能多标准fec译码器 | |
CN104168032A (zh) | 兼容LTE和WiMAX的4并行度、基-16高性能Turbo译码器 | |
TWI422166B (zh) | Turbo解碼器裝置及解碼turbo編碼信號的方法 | |
Yan et al. | High performance parallel turbo decoder with configurable interleaving network for LTE application | |
Lin et al. | Reconfigurable parallel turbo decoder design for multiple high-mobility 4G systems | |
US8032811B2 (en) | Efficient almost regular permutation (ARP) interleaver and method | |
Ahmed et al. | A high throughput turbo decoder VLSI architecture for 3GPP LTE standard | |
Chen et al. | A 691 Mbps 1.392 mm 2 configurable radix-16 turbo decoder ASIC for 3GPP-LTE and WiMAX systems in 65nm CMOS | |
Huang et al. | A high speed turbo decoder implementation for CPU-based SDR system | |
CN110402545B (zh) | 利用非均匀窗口大小的并行turbo解码 | |
May et al. | Evaluation of high throughput turbo-decoder architectures | |
Liu et al. | Benefit and cost of cross sliding window scheduling for low latency 5G Turbo decoding | |
CN103701475A (zh) | 移动通信系统中8比特运算字长Turbo码的译码方法 | |
Parvathy et al. | Throughput enhancement of SISO parallel LTE turbo decoders using floating point turbo decoding algorithm | |
Bahirgonde et al. | BER analysis of turbo code interleaver |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |