首页> 中国专利> Turbo码译码停止迭代准则判断系统、方法及装置

Turbo码译码停止迭代准则判断系统、方法及装置

摘要

本发明提出了一种Turbo码译码停止迭代准则判断系统,包括Turbo码编码端和Turbo码解码端,所述Turbo码解码端包括Turbo码译码器,所述Turbo码编码端用于对用户数据添加CRC校正数据,并对添加CRC校正数据的用户数据进行Turbo码编码后输出,所述Turbo码解码端接收所述Turbo码编码端输出的Turbo码编码数据,并对其顺序分段后送入所述Turbo码译码器进行译码。本发明还涉及一种Turbo码译码停止迭代准则判断方法及装置。实施本发明的Turbo码译码停止迭代准则判断系统、方法及装置,具有以下有益效果:效率较高、能增加Turbo码译码器的吞吐率。

著录项

  • 公开/公告号CN104796162A

    专利类型发明专利

  • 公开/公告日2015-07-22

    原文格式PDF

  • 申请/专利权人 深圳市三朋电子有限公司;

    申请/专利号CN201510167165.2

  • 申请日2015-04-09

  • 分类号

  • 代理机构北京联瑞联丰知识产权代理事务所(普通合伙);

  • 代理人曾少丽

  • 地址 518057 广东省深圳市南山区科技园科技南十路深圳技术创新大楼D座二层D207-208房

  • 入库时间 2023-12-18 09:57:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-24

    授权

    授权

  • 2015-08-19

    实质审查的生效 IPC(主分类):H03M13/29 申请日:20150409

    实质审查的生效

  • 2015-07-22

    公开

    公开

说明书

技术领域

本发明涉及译码领域,特别涉及一种Turbo码译码停止迭代准则判断系统、 方法及装置。

背景技术

Turbo码被广泛应用于现代无线通讯系统中,例如LTE系统等,具有接近香 农限的优异纠错能力。在Turbo码译码过程中,对于译码迭代停止准则的判断有 两类方法:一类是基于译码器输出似然比的软判决准则,另一类是基于译码器 输出判决符号的硬判决准则。这两类方法均存在实际译码纠错完成,但未达到 停止判决准则、需要继续额外迭代译码过程,或者达到停止判决准则、但并未 实际译码纠错完成的情况。这就造成了Turbo码译码器性能的降低,其效率较低。

为适应现代宽带通讯系统的高数据速率,实际使用的Turbo码译码器均分段 并行计算,以增加Turbo码译码器的吞吐率。在一轮迭代译码完成后,Turbo码 译码迭代停止准则的计算,还需要与一轮迭代译码近似、甚至超过一轮迭代译 码的额外计算时钟周期,这样就使一轮译码的总时钟周期增大,降低了Turbo 码译码器的吞吐率。

发明内容

本发明要解决的技术问题在于,针对现有技术的上述效率较低、Turbo码译 码器的吞吐率降低的缺陷,提供一种效率较高、能增加Turbo码译码器的吞吐率 的Turbo码译码停止迭代准则判断系统、方法及装置。

本发明解决其技术问题所采用的技术方案是:构造一种Turbo码译码停止迭 代准则判断系统,包括Turbo码编码端和Turbo码解码端,所述Turbo码解码端 包括Turbo码译码器,所述Turbo码编码端用于对用户数据添加CRC校正数据, 并对添加CRC校正数据的用户数据进行Turbo码编码后输出,所述Turbo码解 码端接收所述Turbo码编码端输出的Turbo码编码数据,并对其顺序分段后送入 所述Turbo码译码器进行译码。

在本发明所述的Turbo码译码停止迭代准则判断系统中,所述Turbo码译码 器包括多个Turbo码分段并行译码器,所述Turbo码解码端还包括多个串行CRC 计算模块、多个单周期乘法器、多个并行CRC计算模块和一个异或模块,每一 个所述串行CRC计算模块的输入端分别与对应的Turbo码分段并行译码器的输 出端连接,每一个所述单周期乘法器的一输入端分别与对应的串行CRC计算模 块的输出端连接,每一个所述并行CRC计算模块的输入端分别与对应的单周期 乘法器的输出端连接,每一个所述并行CRC计算模块的输出端与所述异或模块 的输入端连接,所述异或模块的输出端与所述Turbo码译码器连接,所述异或模 块的输入端还与其中一个串行CRC计算模块的输出端连接。

在本发明所述的Turbo码译码停止迭代准则判断系统中,所述串行CRC计 算模块的数量与所述Turbo码分段并行译码器的数量相等,所述单周期乘法器的 数量与所述并行CRC计算模块的数量相等,所述单周期乘法器的数量比所述串 行CRC计算模块的数量少一个。

本发明还涉及一种Turbo码译码停止迭代准则判断方法,包括如下步骤:

A)在用户数据的尾端添加CRC校验数据,并对添加了所述CRC校验数据 的用户数据进行Turbo码编码,将Turbo码编码的数据作为待译码数据输出;

B)将所述待译码数据顺序分成M个分段,送入Turbo码译码器,每个Turbo 码分段并行译码器对应一个分段的待译码数据;其中,M为大于1的整数;

C)根据使用的CRC生成多项式以及每个分段的长度,依次计算、装载M-1 个函数;

D)M个串行计算模块分别对其对应的硬判决输出数据进行CRC运算,并 分别输出对应的串行CRC值;

E)将其中M-1个串行CRC值分别与对应的函数在相应的单周期乘法器中 进行相乘得到M-1个乘积CRC值;

F)将所述M-1个乘积CRC值分别送入对应的并行CRC计算模块内进行计 算,并分别输出对应的M-1个并行CRC值;

G)将未在所述单周期乘法器中参与运算的串行CRC值与所述M-1个并行 CRC值进行异或运算得到所述待译码数据的CRC值;

H)判断所述待译码数据的CRC值是否为0,如是,执行步骤J);否则, 执行步骤I);

I)判断所述待译码数据的CRC值是否达到最大译码迭代次数,如是,执行 步骤J);否则,控制Turbo码译码器进行下一轮译码迭代;

J)控制Turbo码译码器停止译码迭代,完成译码过程。

在本发明所述的Turbo码译码停止迭代准则判断方法中,所述步骤A)进一 步包括:

A1)对用户数据进行CRC计算,并将CRC计算结果添加在所述用户数据 的尾端;

A2)对添加了所述CRC计算结果的用户数据进行Turbo码编码,并将Turbo 码编码的数据作为待译码数据输出。

本发明还涉及一种实现上述Turbo码译码停止迭代准则判断方法的装置,包 括:

数据添加编码单元:用于在用户数据的尾端添加CRC校验数据,并对添加 了所述CRC校验数据的用户数据进行Turbo码编码,将Turbo码编码的数据作 为待译码数据输出;

分段单元:用于对所述待译码数据进行顺序分成M个分段,送入Turbo码 译码器,每个Turbo码分段并行译码器对应一个分段的待译码数据;其中,M 为大于1的整数;

计算装载单元:用于根据使用的CRC生成多项式以及每个分段的长度,依 次计算、装载M-1个函数;

判决输出运算单元:用于使M个串行计算模块分别对其对应的硬判决输出 数据进行CRC运算,并分别输出对应的串行CRC值;

相乘单元:用于将其中M-1个串行CRC值分别与对应的函数在相应的单周 期乘法器中进行相乘得到M-1个乘积CRC值;

并行运算单元:用于将所述M-1个乘积CRC值分别送入对应的并行CRC 计算模块内进行计算,并分别输出对应的M-1个并行CRC值;

异或运算单元:用于将未在所述单周期乘法器中参与运算的串行CRC值与 所述M-1个并行CRC值进行异或运算得到所述待译码数据的CRC值;

CRC值判断单元:用于判断所述待译码数据的CRC值是否为0;

迭代次数判断单元:用于判断所述待译码数据的CRC值是否达到最大译码 迭代次数,如是,控制Turbo码译码器停止译码迭代,完成译码过程;否则,控 制Turbo码译码器进行下一轮译码迭代;

译码完成单元:用于控制Turbo码译码器停止译码迭代,完成译码过程。

在本发明所述的装置中,所述数据添加编码单元进一步包括:

CRC计算添加模块:用于对用户数据进行CRC计算,并将CRC计算结果 添加在所述用户数据的尾端;

编码模块:用于对添加了所述CRC计算结果的用户数据进行Turbo码编码, 并将Turbo码编码的数据作为待译码数据输出。

实施本发明的Turbo码译码停止迭代准则判断系统、方法及装置,具有以下 有益效果:由于使用Turbo码编码端和Turbo码解码端,Turbo码解码端包括Turbo 码译码器,Turbo码编码端用于对用户数据添加CRC校正数据,并对添加CRC 校正数据的用户数据进行Turbo码编码后输出,Turbo码解码端接收Turbo码编 码端输出的Turbo码编码数据,并对其顺序分段后送入Turbo码译码器进行译码, 通过对CRC进行改造,形成分段并行CRC算法,可以和Turbo码分段并行计算 方式同时进行运算,在一轮迭代完成后,仅需要与一轮迭代译码相比可忽略不 计的额外计算时钟周期,CRC校验结果也同时计算完成,不会降低Turbo码译 码器的吞吐率,所以其效率较高、能增加Turbo码译码器的吞吐率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明Turbo码译码停止迭代准则判断系统、方法及装置一个实施例 中Turbo码解码端的结构示意图;

图2为所述实施例中方法的流程图;

图3为所述实施例中在用户数据的尾端添加CRC校验数据,并对添加了 CRC校验数据的用户数据进行Turbo码编码,将Turbo码编码的数据作为待译 码数据输出的具体流程图;

图4为所述实施例中装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明Turbo码译码停止迭代准则判断系统、方法及装置实施例中,该 Turbo码译码停止迭代准则判断系统包括Turbo码编码端和Turbo码解码端,图 1为实施例中Turbo码解码端的结构示意图。图1中,Turbo码解码端包括Turbo 码译码器01,Turbo码编码端用于对用户数据添加CRC校正数据,并对添加CRC 校正数据的用户数据进行Turbo码编码后输出,Turbo码解码端接收Turbo码编 码端输出的Turbo码编码数据,并对其顺序分段后送入Turbo码译码器进行译码。 通过对CRC进行改造,形成分段并行CRC算法,可以和Turbo码分段并行计算 方式同时进行运算,在一轮迭代完成后,仅需要与一轮迭代译码相比可忽略不 计的额外计算时钟周期,CRC校验结果也同时计算完成,不会降低Turbo码译 码器的吞吐率,所以其效率较高、能增加Turbo码译码器的吞吐率。

本实施例中,Turbo码译码器01包括多个Turbo码分段并行译码器,Turbo 码解码端还包括多个串行CRC计算模块、多个单周期乘法器、多个并行CRC 计算模块和一个异或模块02,每一个串行CRC计算模块的输入端分别与对应的 Turbo码分段并行译码器的输出端连接,每一个单周期乘法器的一输入端分别与 对应的串行CRC计算模块的输出端连接,每一个并行CRC计算模块的输入端 分别与对应的单周期乘法器的输出端连接,每一个并行CRC计算模块的输出端 与异或模块的输入端连接,异或模块的输出端与Turbo码译码器连接,异或模块 02的输入端还与其中一个串行CRC计算模块的输出端连接。值得一提的是,串 行CRC计算模块的数量与Turbo码分段并行译码器的数量相等,单周期乘法器 的数量与并行CRC计算模块的数量相等,单周期乘法器的数量比串行CRC计 算模块的数量少一个。

本实施例中,具体的,Turbo码分段并行译码器的个数为M个,串行CRC 计算模块的个数为M个,单周期乘法器的个数为M-1个,并行CRC计算模块 的个数为M-1个,为了方便描述,将M个Turbo码分段并行译码器分别称为第 一Turbo码分段并行译码器011、第二Turbo码分段并行译码器012、…、第M Turbo码分段并行译码器01M,将M个串行CRC计算模块分别称为第一串行 CRC计算模块S-CRC_1、第二串行CRC计算模块S-CRC_2、…、第M串行CRC 计算模块S-CRC_M,将M-1个单周期乘法器分别称为第二单周期乘法器 MUL_2、…、第M单周期乘法器MUL_M,将M-1个并行CRC计算模块分别 称为第二并行CRC计算模块P-CRC_2、…、第M并行CRC计算模块P-CRC_M。 本发明的Turbo码译码停止迭代准则判断系统结构及实现简单,仅需要串行CRC 计算模块、并行CRC计算模块、单周期乘法器和异或模块02即可构建系统。

本实施例还涉及一种Turbo码译码停止迭代准则判断方法,其流程图如图2 所示。图2中,该Turbo码译码停止迭代准则判断方法包括如下步骤:

步骤S001在用户数据的尾端添加CRC校验数据,并对添加了CRC校验数 据的用户数据进行Turbo码编码,将Turbo码编码的数据作为待译码数据输出: 本步骤中,在用户数据的尾端添加CRC校验数据,并对添加了CRC校验数据 的用户数据进行Turbo码编码,将Turbo码编码的数据作为待译码数据输出,其 具体过程稍后会进行详细描述。

步骤S002将待译码数据顺序分成M个分段,送入Turbo码译码器,每个 Turbo码分段并行译码器对应一个分段的待译码数据:本步骤中,将待译码数据 顺序分成M个分段,送入Turbo码译码器进行译码,Turbo码译码器内部包含 M个分段并行译码器,每个Turbo码分段并行译码器对应一个分段的待译码数 据,M个译码器并行译码。值得一提的还,本实施例中,M为大于1的整数。

步骤S003根据使用的CRC生成多项式以及每个分段的长度,依次计算、 装载M-1个函数:本步骤中,根据使用的CRC生成多项式以及每个分段的长度, 依次计算、装载M-1个函数,具体的,对用户数据添加CRC校验数据的时候, CRC计算生成的多项式设为G,上述M个分段,每个分段长度设为L1、L2、…、 LM,则有函数F对G和L1、L2、…、LM,可确定函数数值F(G,L2)、…、F(G,LM)。

步骤S004M个串行计算模块分别对其对应的硬判决输出数据进行CRC运 算,并分别输出对应的串行CRC值:本步骤中,M个串行计算模块分别对其对 应的硬判决输出数据进行CRC运算,并分别输出对应的串行CRC值,具体的, M个串行CRC计算模块分别对硬判决输出数据d1i、d2i、…、dMi进行CRC计算, 分别输出对应的串行CRC值crc1、s_crc2、…、s_crcM。值得一提的是,d1i、d2i、…、 dMi分别是每个Turbo码分段并行译码器的硬判决输出数据,即分别为L1、L2、…、 LM长度的0/1位序列。

步骤S005将其中M-1个串行CRC值分别与对应的函数在相应的单周期乘 法器中进行相乘得到M-1个乘积CRC值:本步骤中,将其中M-1个串行CRC 值分别与对应的函数在相应的单周期乘法器中进行相乘得到M-1个乘积CRC 值,具体的,将s_crc2与F(G,L2)在第二单周期乘法器MUL_2中相乘,输出第二 乘积CRC值m_crc2、…,以此类推,将s_crcM与F(G,LM)在第M单周期乘法器 MUL_M中相乘,输出第M乘积CRC值m_crcM。换句话说,上述m_crc2、…、 s_crcM分别通过公式m_crc2=s_crc2×F(G,L2)、…、m_crcM=s_crcM×F(G,LM)得 到。

步骤S006将M-1个乘积CRC值分别送入对应的并行CRC计算模块内进 行计算,并分别输出对应的M-1个并行CRC值:本步骤中,将M-1个乘积CRC 值分别送入对应的并行CRC计算模块内进行计算,并分别输出对应的M-1个并 行CRC值,具体的,将m_crc2、…、m_crcM分别送入对应的并行CRC计算模 块内进行CRC计算,并分别输出对应的M-1个并行CRC值,这M-1个并行CRC 值分别称为第二并行CRC值p_crc2、…、第M并行CRC值p_crcM

步骤S007将未在单周期乘法器中参与运算的串行CRC值与M-1个并行 CRC值进行异或运算得到待译码数据的CRC值:本步骤中,将未在单周期乘法 器中参与运算的串行CRC值与M-1个并行CRC值进行异或运算得到待译码数 据的CRC值,也就是将crc1、p_crc2、…、p_crcM进行异或运算得到待译码数据 的CRC值crcfinal,也就是crcfinal=crc1⊕p_crc2⊕…⊕p_crcM

步骤S008判断待译码数据的CRC值是否为0:本步骤中,判断待译码数据 的CRC值crcfinal是否为0,如果判断的结果为是,则执行步骤S009;否则,执 行步骤S010。

步骤S009控制Turbo码译码器停止译码迭代,完成译码过程:如果上述步 骤S008的判断结果为是,则执行本步骤。本步骤中,控制Turbo码译码器停止 译码迭代,完成译码过程。

步骤S010判断待译码数据的CRC值是否达到最大译码迭代次数:如果上述 步骤S008的判断结果为否,则执行本步骤。本步骤中,判断待译码数据的CRC 值crcfinal是否达到最大译码迭代次数,如果判断的结果为是,即crcfinal值非0,且 达到最大译码迭代次数,则返回步骤S009;否则,即crcfinal值非0,且未达到最 大译码迭代次数,执行步骤S010。

步骤S011控制Turbo码译码器进行下一轮译码迭代:如果上述步骤S010 的判断结果为否,则执行本步骤。本步骤中,控制Turbo码译码器进行下一轮译 码迭代。

本实施例进行译码停止迭代准则判断的计算所需要的额外时钟周期较少。 根据所使用的CRC计算位数(8~32位)不同,需要额外的4~8个时钟周期, 与每轮Turbo码译码迭代的时钟周期(根据编码包长度及Turbo码分段并行译码 器个数的配置,需几百~几千时钟周期)相比,可忽略不计。其他迭代停止准 则判断计算则需要与一轮迭代译码近似、甚至超过一轮迭代译码的额外计算时 钟周期。

对于本实施例而言,上述步骤S001还可进一步细化,其细化后的流程图如 图3所示。图3中,上述步骤S001进一步包括:

步骤S11对用户数据进行CRC计算,并将CRC计算结果添加在所述用户 数据的尾端:本步骤中,对用户数据进行CRC计算,并将CRC计算结果添加 在用户数据的尾端。

步骤S12对添加了CRC计算结果的用户数据进行Turbo码编码,并将Turbo 码编码的数据作为待译码数据输出:本步骤中,对添加了CRC计算结果的用户 数据进行Turbo码编码,并将Turbo码编码的数据作为待译码数据输出。通过在 用户数据后附加CRC校验数据用于Turbo码解码端译码停止迭代准则判断,以 确定性地判断代替使用译码器输出似然比阀值,或译码器硬判决输出变化情况 的概率性判断。一方面可以及时停止不必要的译码迭代,提高译码器吞吐率; 另一方面,可以避免由于错误的阀值设置,在未完全纠正错误之前停止译码迭 代。

本实施例涉及一种实现上述Turbo码译码停止迭代准则判断方法的装置,其 结构示意图如图4所示。图4中,该装置包括数据添加编码单元1、分段单元2、 计算装载单元3、判决输出运算单元4、相乘单元5、并行运算单元6、异或运 算单元7、CRC值判断单元8、迭代次数判断单元9和译码完成单元10;其中, 数据添加编码单元1用于在用户数据的尾端添加CRC校验数据,并对添加了 CRC校验数据的用户数据进行Turbo码编码,将Turbo码编码的数据作为待译 码数据输出;分段单元2用于将待译码数据顺序分成M个分段,送入Turbo码 译码器,每个Turbo码分段并行译码器对应一个分段的待译码数据;其中,M 为大于1的整数;计算装载单元3用于根据使用的CRC生成多项式以及每个分 段的长度,依次计算、装载M-1个函数;判决输出运算单元4用于使M个串行 计算模块分别对其对应的硬判决输出数据进行CRC运算,并分别输出对应的串 行CRC值;相乘单元5用于将其中M-1个串行CRC值分别与对应的函数在相 应的单周期乘法器中进行相乘得到M-1个乘积CRC值;并行运算单元6用于将 所述M-1个乘积CRC值分别送入对应的并行CRC计算模块内进行计算,并分 别输出对应的M-1个并行CRC值;异或运算单元7用于将未在单周期乘法器中 参与运算的串行CRC值与M-1个并行CRC值进行异或运算得到待译码数据的 CRC值;CRC值判断单元8用于判断待译码数据的CRC值是否为0;迭代次数 判断单元9用于判断待译码数据的CRC值是否达到最大译码迭代次数,如是, 控制Turbo码译码器停止译码迭代,完成译码过程;否则,控制Turbo码译码器 进行下一轮译码迭代;译码完成单元10用于控制Turbo码译码器停止译码迭代, 完成译码过程。本实施例进行译码停止迭代准则判断的计算所需要的额外时钟 周期较少。根据所使用的CRC计算位数(8~32位)不同,需要额外的4~8个 时钟周期,与每轮Turbo码译码迭代的时钟周期(根据编码包长度及Turbo码分 段并行译码器个数的配置,需几百~几千时钟周期)相比,可忽略不计。其他 迭代停止准则判断计算则需要与一轮迭代译码近似、甚至超过一轮迭代译码的 额外计算时钟周期。

本实施例中,数据添加编码单元1进一步包括CRC计算添加模块11和编 码模块12;其中,CRC计算添加模块11用于对用户数据进行CRC计算,并将 CRC计算结果添加在用户数据的尾端;编码模块12用于对添加了CRC计算结 果的用户数据进行Turbo码编码,并将Turbo码编码的数据作为待译码数据输出。

总之,在本实施例中,通过使用CRC算法对译码后的硬判决输出进行校验, 以克服上述软判决/硬判决方法的判断不准问题。值得一提的是,在本实施例的 一些情况下,单周期乘法器可以用使用多周期乘法器代替,以减小芯片面积, 这样会增加额外的计算周期,但与整个迭代译码周期相比,仍可忽略不计。并 行CRC计算模块可以使用串行CRC计算模块代替,以减小芯片的面积,这样 会增加额外的计算周期,但与整个迭代译码周期相比,增加的周期仍非常小, 对引起的系统性能降低的影响很小。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发 明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号