CN109379088A - 一种并行Turbo码迭代译码的方法及系统 - Google Patents

一种并行Turbo码迭代译码的方法及系统 Download PDF

Info

Publication number
CN109379088A
CN109379088A CN201811525383.9A CN201811525383A CN109379088A CN 109379088 A CN109379088 A CN 109379088A CN 201811525383 A CN201811525383 A CN 201811525383A CN 109379088 A CN109379088 A CN 109379088A
Authority
CN
China
Prior art keywords
random access
information
storage unit
check bit
bit
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.)
Granted
Application number
CN201811525383.9A
Other languages
English (en)
Other versions
CN109379088B (zh
Inventor
刘镇
张晓峰
胡俊杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Tianze Communication Technology Co Ltd
Original Assignee
Zhejiang Tianze Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Tianze Communication Technology Co Ltd filed Critical Zhejiang Tianze Communication Technology Co Ltd
Priority to CN201811525383.9A priority Critical patent/CN109379088B/zh
Publication of CN109379088A publication Critical patent/CN109379088A/zh
Application granted granted Critical
Publication of CN109379088B publication Critical patent/CN109379088B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种并行Turbo码迭代译码的方法及系统。该方法包括将串行接收编码后的Turbo码块按照设定的存储方式存储到随机存取存储单元中,然后将所有的随机存取存储单元中的数据从尾至头按照后向递推公式进行后向递推运算,将所有的随机存取存储单元中的数据从头至尾按照前向递推公式进行前向递推运算;最后判断当前迭代次数是否等于设定迭代总数,若是则根据递推运算结果计算对数似然比LLR并进行硬判得到译码结果,否则根据递推运算结果计算先验信息,并返回递推步骤。本发明采用较小的冗余存储资源,使得传统并行Turbo迭代译码结构中的各分块的初值预递推过程得到简化,合并到一个递推过程中,从而降低译码控制复杂度和优化设计时序的优点。

Description

一种并行Turbo码迭代译码的方法及系统
技术领域
本发明涉及Turbo码译码领域,特别是涉及一种并行Turbo码迭代译码的方法及系统。
背景技术
Turbo码是一类性能优异的信道编码。采用Log-MAP算法的迭代译码,在获得很好的译码性能的同时,也造成了巨大的译码延迟,因而限制了其实际应用。特别是当码块长度较长时,Turbo码的迭代译码过程和MAP算法中的递推计算给整个译码过程引入了较高的译码延迟,从而限制了吞吐率。
为了降低译码延迟,通常采用并行译码方案,将译码器接收到的长帧分割为长度较小的子帧。分块并行译码结构是并行译码,它将码块分成W个长度为M的子码块,W称为译码并行度,译码器由W个子译码器平铺组成,这也体现了以面积换时间的设计理念。
采用Log-MAP算法时前后向递推公式必须进行初始化。在串行迭代时,根据设计,Turbo块的前后向初值均为0;进行子码块分割后,除第一块的前向初值αinit和最后一块的后向初值βinit预设已知外,其它中间各子码块的前后向递推必须选择合适的初始值,才能保证其后续时刻各个分支度量的计算以完成迭代译码,而且这种初始化还应该保证使迭代译码过程收敛。
这种译码结构的各子码块前后向初始状态度量值(分别记为αinit和βinit)都是未知的(首子码块的αinit和末子码块的βinit已知为零,Turbo码设计中的起始为零和末尾归零处理)。译码器需要预递推计算各子码块的αinit和βinit,如图1所示。各子码块的初值递推可以通过相邻的块进行预递推得到。研究指出,当预递推的长度N0取4m至7m时,可认为预递推求得的αinit和βinit是可靠的,其中m是分量编码器的寄存器个数。这样分块并行译码就增添了一个新的状态就是分块前后向预递推初值计算过程,且预递推的计算来自相邻的信息块,当FPGA实现时,信息位存放在不同的RAM块中,此时计算初值预递推就需要从不同的RAM块中读取数据,控制明细复杂,且组合逻辑过多影响实际的吞吐能力。
根据传统的分块并行译码结构可知,Turbo码分量译码器一次完整的译码过程包括四个工作状态:
预递推计算子码块的初始前向状态度量值αx,0
预递推计算子码块的初始后向状态度量值βx,w-1
递推计算整个子码块的前向状态度量值α。
递推计算整个子码块的前向状态度量值β。
Turbo码译码器完成一次迭代译码包括信息位的译码和交织信息位的译码,因此两次译码合并下就共有8个工作状态,前4个工作状态为信息位译码,后4个工作状态为交织信息位的译码。对应于Turbo译码分支度量单元就存在多个数据输入的来源,如图2所示。
图2所示的分支度量计算的数据来源对应于Turbo译码器的8个状态。状态越多,RAM块的读写控制复杂度就越大,同时组合逻辑形成的关键路径的时序也就恶化的越严重。
发明内容
本发明的目的是提供一种并行Turbo码迭代译码的方法及系统,与传统的并行Turbo迭代译码相比,具有降低译码控制复杂度和优化设计时序的优点。
为实现上述目的,本发明提供了如下方案:
一种并行Turbo码迭代译码的方法,所述方法包括:
串行接收编码后的Turbo码块,并将所述Turbo码块的信息位按照设定的存储方式存储到随机存取存储单元中;所述存储方式为将所述Turbo码块的长度为K的信息位写入到W块长度为M的随机存取存储单元中;所述存储方式具体包括:将长度为K的信息位分成W块,分别为第1子块信息位、第2子块信息位、......、第W子块信息位;第1块随机存取存储单元的首部S段存储零,第1块随机存取存储单元的中间部分存储第1子块信息位,第1块随机存取存储单元的尾部S段存储K/W+1至K/W+S的信息位;第2块随机存取存储单元的首部S段存储第1块随机存取存储单元的尾部长度为S的信息位,第2块随机存取存储单元的中间部分存储第2子块信息位,第2块随机存取存储单元的尾部S段存储第3块随机存取存储单元的首部长度为S的信息位,依次类推,第W块随机存取存储单元的首部S段存储第W-1段随机存取存储单元的尾部长度为S的信息位,第W块随机存取存储单元的中间部分存储第W子块信息位,第W块随机存取存储单元的尾部S段填充零;W表示对应并行度;
将所述Turbo码块的校验位、交织校验位依次按照所述存储方式存储;
结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算,并将第k次的信息位校验位后向递推结果存储到随机存取存储单元内;其中,k取整数,k≥1;
结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从头至尾按照前向递推公式进行前向递推运算,并将第k次的信息位校验位前向递推结果存储到随机存取存储单元内;
根据第k次的信息位校验位后向递推结果和第k次的信息位校验位前向递推结果,计算第k次的先验信息La;
结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从尾至头按照后向递推公式进行后向递推运算,得到第k次的交织校验位后向递推结果;
结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从头至尾按照前向递推公式进行前向递推运算,得到第k次的交织校验位前向递推结果;
判断当前迭代次数k是否等于设定的迭代总数,得到判断结果;
若所述判断结果表示所述当前迭代次数k小于设定的迭代总数,则根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算下一次迭代的先验信息Lb,并返回将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算步骤;
若所述判断结果表示所述当前迭代次数k等于设定的迭代总数,则根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算第k次的对数似然比LLR,并根据第k次的对数似然比LLR进行硬判决得到译码结果。
可选的,在执行结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算之前,所述方法还包括将所有的随机存取存储单元中的数据进行解删余操作。
可选的,当k=1时,先验信息Lb为零。
可选的,所述后向递推公式为:
其中,βk-1(s′)表示第k-1次的后向递推结果,s′表示为第k-1次的状态,s表示第k次的状态,字母P是Probability概率的缩写,γk(s′,s)是状态s′与状态s之间的分支转移概率,表示检验位;
分支转移概率γk(s′,s)表示为:
其中,uk为引起状态s′到状态s转移的输入比特,P(uk)是uk的先验概率,P(yk|{s′,s})是条件转移概率,由信道转移概率决定;
先验信息表示uk判断为0或者1的概率,用对数表示,先验信息La(uk)对应计算状态转移概率γk(s′,s)中的P(uk);
先验信息表示uk判断为0或者1的概率,用对数表示,先验信息Lb(uk)对应计算状态转移概率γk(s′,s)中的P(uk)。
可选的,所述前向递推公式为
其中,αk(s)表示第k次的前向递推结果,s′表示为第k-1次的状态,s表示第k次的状态,字母P是Probability概率的缩写,γk(s′,s)是状态s′与状态s之间的分支转移概率,为第k次的校验信息。
可选的,编码后的Turbo码的数据格式为信息位、校验位、交织校验位依次排列。
可选的,所述首部S段或者所述尾部S段的长度均为4m~7m,m表示为Turbo分量编码器的寄存器个数。
可选的,每个所述随机存取存储单元均包括首部S段、中间部分以及尾部S段。
一种并行Turbo码迭代译码的系统,所述系统包括:
信息位存储模块,用于串行接收编码后的Turbo码块,并将所述Turbo码块的信息位按照设定的存储方式存储到随机存取存储单元中;所述存储方式为将所述Turbo码块的长度为K的信息位写入到W块长度为M的随机存取存储单元中;所述存储方式具体包括:将长度为K的信息位分成W块,分别为第1子块信息位、第2子块信息位、......、第W子块信息位;第1块随机存取存储单元的首部S段存储零,第1块随机存取存储单元的中间部分存储第1子块信息位,第1块随机存取存储单元的尾部S段存储K/W+1至K/W+S的信息位;第2块随机存取存储单元的首部S段存储第1块随机存取存储单元的尾部长度为S的信息位,第2块随机存取存储单元的中间部分存储第2子块信息位,第2块随机存取存储单元的尾部S段存储第3块随机存取存储单元的首部长度为S的信息位,依次类推,第W块随机存取存储单元的首部S段存储第W-1段随机存取存储单元的尾部长度为S的信息位,第W块随机存取存储单元的中间部分存储第W子块信息位,第W块随机存取存储单元的尾部S段填充零;W表示对应并行度;
校验位和交织校验位存储模块,用于将所述Turbo码块的校验位、交织校验位依次按照所述存储方式存储;
信息位校验位后向递推结果计算模块,用于结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算,并将第k次的信息位校验位后向递推结果存储到随机存取存储单元内;其中,k取整数,k≥1;
信息位校验位前向递推结果计算模块,用于结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从头至尾按照前向递推公式进行前向递推运算,并将第k次的信息位校验位前向递推结果存储到随机存取存储单元内;
先验信息La计算模块,用于根据第k次的信息位校验位后向递推结果和第k次的信息位校验位前向递推结果,计算第k次的先验信息La;
交织校验位后向递推结果计算模块,用于结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从尾至头按照后向递推公式进行后向递推运算,得到第k次的交织校验位后向递推结果;
交织校验位前向递推结果计算模块,用于结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从头至尾按照前向递推公式进行前向递推运算,得到第k次的交织校验位前向递推结果;
判断模块,用于判断当前迭代次数k是否等于设定的迭代总数,得到判断结果;
返回模块,用于当所述判断结果表示所述当前迭代次数k小于设定的迭代总数时,根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算下一次迭代的先验信息Lb,并返回将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算步骤;
译码模块,用于当所述判断结果表示所述当前迭代次数k等于设定的迭代总数时,根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算第k次的对数似然比LLR,并根据第k次的对数似然比LLR进行硬判决得到译码结果。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明的目的是提供一种并行Turbo码迭代译码的方法及系统。本发明采用较小的冗余存储资源,使得传统并行Turbo迭代译码结构中的各分块的初值预递推过程得到简化,合并到一个递推过程中。这个简化对于RAM的读写控制、组合逻辑的时序都有着很好的优化,使FPGA计划实现更多次Turbo迭代,获取更多的吞吐量成为可能,从而降低译码控制复杂度和优化设计时序的优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为传统分块并行初值预计算原理图;
图2为现有技术分支度量递推译码器的数据来源过程示意图;
图3为本发明实施例并行Turbo码迭代译码方法的流程示意图;
图4为本发明实施例并行Turbo码迭代译码系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种并行Turbo码迭代译码的方法及系统,与传统的并行Turbo迭代译码相比,具有降低译码控制复杂度和优化设计时序的优点。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
在Turbo码并行迭代译码的实现结构中,本发明采用特殊设计的数据存储方法,从而达到简化设计结构、精简迭代控制、优化设计时序的目的。
图3为本发明实施例并行Turbo码迭代译码方法的流程示意图,如图3所示,本发明实施例提供的并行Turbo码迭代译码的方法包括以下几个步骤。
步骤101:串行接收编码后的Turbo码块,并将所述Turbo码块的信息位按照设定的存储方式存储到随机存取存储单元中。
编码后的Turbo码的数据格式为信息位、校验位、交织校验位依次排列。
每个所述随机存取存储单元均包括首部S段、中间部分以及尾部S段。
所述存储方式为将所述Turbo码块的长度为K的信息位写入到W块长度为M的随机存取存储单元中;所述存储方式具体包括:将长度为K的信息位分成W块,分别为第1子块信息位、第2子块信息位、......、第W子块信息位;第1块随机存取存储单元的首部S段存储零,第1块随机存取存储单元的中间部分存储第1子块信息位,第1块随机存取存储单元的尾部S段存储K/W+1至K/W+S的信息位;第2块随机存取存储单元的首部S段存储第1块随机存取存储单元的尾部长度为S的信息位,第2块随机存取存储单元的中间部分存储第2子块信息位,第2块随机存取存储单元的尾部S段存储第3块随机存取存储单元的首部长度为S的信息位,依次类推,第W块随机存取存储单元的首部S段存储第W-1段随机存取存储单元的尾部长度为S的信息位,第W块随机存取存储单元的中间部分存储第W子块信息位,第W块随机存取存储单元的尾部S段填充零;W表示对应并行度。
所述首部S段或者所述尾部S段的长度均为4m~7m,m表示为Turbo分量编码器的寄存器个数。
步骤102:将所述Turbo码块的校验位、交织校验位依次按照所述存储方式存储。
其中所述编码后的Turbo码块的校验位、所述编码后的Turbo码块的交织校验位的存储大小以及存储块数均与编码后的Turbo码块的信息位保持一致。
例如:将所述Turbo码块的长度为K1的校验位写入到W块长度为M的随机存取存储单元中;所述存储方式具体包括:将长度为K1的校验位分成W块,分别为第1子块校验位、第2子块校验位、......、第W子块校验位;第1块随机存取存储单元的首部S段存储零,第1块随机存取存储单元的中间部分存储第1子块校验位,第1块随机存取存储单元的尾部S段存储K1/W+1至K1/W+S的校验位;第2块随机存取存储单元的首部S段存储第1块随机存取存储单元的尾部长度为S的校验位,第2块随机存取存储单元的中间部分存储第2子块校验位,第2块随机存取存储单元的尾部S段存储第3块随机存取存储单元的首部长度为S的校验位,依次类推,第W块随机存取存储单元的首部S段存储第W-1段随机存取存储单元的尾部长度为S的校验位,第W块随机存取存储单元的中间部分存储第W子块校验位,第W块随机存取存储单元的尾部S段填充零;W表示对应并行度。
同理,将所述Turbo码块的长度为K2的交织校验位写入到W块长度为M的随机存取存储单元中;所述存储方式具体包括:将长度为K2的交织校验位分成W块,分别为第1子块交织校验位、第2子块交织校验位、......、第W子块交织校验位;第1块随机存取存储单元的首部S段存储零,第1块随机存取存储单元的中间部分存储第1子块交织校验位,第1块随机存取存储单元的尾部S段存储K2/W+1至K2/W+S的交织校验位;第2块随机存取存储单元的首部S段存储第1块随机存取存储单元的尾部长度为S的交织校验位,第2块随机存取存储单元的中间部分存储第2子块交织校验位,第2块随机存取存储单元的尾部S段存储第3块随机存取存储单元的首部长度为S的交织校验位,依次类推,第W块随机存取存储单元的首部S段存储第W-1段随机存取存储单元的尾部长度为S的交织校验位,第W块随机存取存储单元的中间部分存储第W子块交织校验位,第W块随机存取存储单元的尾部S段填充零;W表示对应并行度
Turbo码编码时为了提升效率删除了一些校验位,接收译码时需要填充相应的位置,所以在执行步骤103之前,所述方法还包括将所有的随机存取存储单元中的数据进行解删余操作。
步骤103:结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算,并将第k次的信息位校验位后向递推结果存储到随机存取存储单元内;其中,k取整数,k≥1;当k=1时,先验信息Lb为零。
步骤104:结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从头至尾按照前向递推公式进行前向递推运算,并将第k次的信息位校验位前向递推结果存储到随机存取存储单元内。
步骤105:根据第k次的信息位校验位后向递推结果和第k次的信息位校验位前向递推结果,计算第k次的先验信息La。
步骤106:结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从尾至头按照后向递推公式进行后向递推运算,得到第k次的交织校验位后向递推结果。
步骤107:结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从头至尾按照前向递推公式进行前向递推运算,得到第k次的交织校验位前向递推结果。
步骤108:判断当前迭代次数k是否等于设定的迭代总数,得到判断结果。若所述判断结果表示所述当前迭代次数k小于设定的迭代总数,则执行步骤109;若所述判断结果表示所述当前迭代次数k等于设定的迭代总数,则执行步骤110。
步骤109:根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算下一次迭代的先验信息Lb,并返回步骤103。
步骤110:根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算第k次的对数似然比LLR,并根据第k次的对数似然比LLR进行硬判决得到译码结果。
硬判决是通过简单的设置阈值进行输出的。在译码中,硬判决与软判决对应。比如一堆数据{-0.1、0.5、1.3、-0.2},如果阈值设定为正负的话,硬判的结果即为{-1、+1、+1、-1}。
其中,用到的计算公式为:
所述后向递推公式:
其中,βk-1(s′)表示第k-1次的后向递推结果,s′表示为第k-1次的状态,s表示第k次的状态,字母P是Probability概率的缩写,γk(s′,s)是状态s′与状态s之间的分支转移概率,表示检验位。
分支转移概率γk(s′,s)表示为:
其中,uk为引起状态s′到状态s转移的输入比特,P(uk)是uk的先验概率,P(yk|{s′,s})是条件转移概率,由信道转移概率决定。
所述前向递推公式:
其中,αk(s)表示第k次的前向递推结果,s′表示为第k-1次的状态,s表示第k次的状态,字母P是Probability概率的缩写,γk(s′,s)是状态s′与状态s之间的分支转移概率,为第k次的校验信息。
先验信息表示uk判断为0或者1的概率,用对数表示,先验信息La(uk)对应计算状态转移概率γk(s′,s)中的P(uk)。
先验信息表示uk判断为0或者1的概率,用对数表示,先验信息Lb(uk)对应计算状态转移概率γk(s′,s)中的P(uk)。
为实现目的,本发明还提供了一种并行Turbo码迭代译码系统。
图4为本发明实施例并行Turbo码迭代译码系统的结构示意图,如图4所示,本发明实施例提供的并行Turbo码迭代译码系统包括:
信息位存储模块1,用于串行接收编码后的Turbo码块,并将所述Turbo码块的信息位按照设定的存储方式存储到随机存取存储单元中;所述存储方式为将所述Turbo码块的长度为K的信息位写入到W块长度为M的随机存取存储单元中;所述存储方式具体包括:将长度为K的信息位分成W块,分别为第1子块信息位、第2子块信息位、......、第W子块信息位;第1块随机存取存储单元的首部S段存储零,第1块随机存取存储单元的中间部分存储第1子块信息位,第1块随机存取存储单元的尾部S段存储K/W+1至K/W+S的信息位;第2块随机存取存储单元的首部S段存储第1块随机存取存储单元的尾部长度为S的信息位,第2块随机存取存储单元的中间部分存储第2子块信息位,第2块随机存取存储单元的尾部S段存储第3块随机存取存储单元的首部长度为S的信息位,依次类推,第W块随机存取存储单元的首部S段存储第W-1段随机存取存储单元的尾部长度为S的信息位,第W块随机存取存储单元的中间部分存储第W子块信息位,第W块随机存取存储单元的尾部S段填充零;W表示对应并行度;
校验位和交织校验位存储模块2,用于将所述Turbo码块的校验位、交织校验位依次按照所述存储方式存储;
信息位校验位后向递推结果计算模块3,用于结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算,并将第k次的信息位校验位后向递推结果存储到随机存取存储单元内;其中,k取整数,k≥1;
信息位校验位前向递推结果计算模块4,用于结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从头至尾按照前向递推公式进行前向递推运算,并将第k次的信息位校验位前向递推结果存储到随机存取存储单元内;
先验信息La计算模块5,用于根据第k次的信息位校验位后向递推结果和第k次的信息位校验位前向递推结果,计算第k次的先验信息La;
交织校验位后向递推结果计算模块6,用于结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从尾至头按照后向递推公式进行后向递推运算,得到第k次的交织校验位后向递推结果;
交织校验位前向递推结果计算模块7,用于结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从头至尾按照前向递推公式进行前向递推运算,得到第k次的交织校验位前向递推结果;
判断模块8,用于判断当前迭代次数k是否等于设定的迭代总数,得到判断结果;
返回模块9,用于当所述判断结果表示所述当前迭代次数k小于设定的迭代总数时,根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算下一次迭代的先验信息Lb,并返回将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算步骤;
译码模块10,用于当所述判断结果表示所述当前迭代次数k等于设定的迭代总数时,根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算第k次的对数似然比LLR,并根据第k次的对数似然比LLR进行硬判决得到译码结果。
相对于传统的并行Turbo迭代译码,本发明具有简化设计结构,降低译码控制复杂度和优化设计时序的优点。
本发明采用较小的冗余存储资源,使得传统并行Turbo迭代译码结构中的各分块的初值预递推过程得到简化,合并到一个递推过程中。这个简化对于RAM的读写控制、组合逻辑的时序都有着很好的优化,使FPGA计划实现更多次Turbo迭代,获取更多的吞吐量成为可能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (9)

1.一种并行Turbo码迭代译码的方法,其特征在于,所述方法包括:
串行接收编码后的Turbo码块,并将所述Turbo码块的信息位按照设定的存储方式存储到随机存取存储单元中;所述存储方式为将所述Turbo码块的长度为K的信息位写入到W块长度为M的随机存取存储单元中;所述存储方式具体包括:将长度为K的信息位分成W块,分别为第1子块信息位、第2子块信息位、......、第W子块信息位;第1块随机存取存储单元的首部S段存储零,第1块随机存取存储单元的中间部分存储第1子块信息位,第1块随机存取存储单元的尾部S段存储K/W+1至K/W+S的信息位;第2块随机存取存储单元的首部S段存储第1块随机存取存储单元的尾部长度为S的信息位,第2块随机存取存储单元的中间部分存储第2子块信息位,第2块随机存取存储单元的尾部S段存储第3块随机存取存储单元的首部长度为S的信息位,依次类推,第W块随机存取存储单元的首部S段存储第W-1段随机存取存储单元的尾部长度为S的信息位,第W块随机存取存储单元的中间部分存储第W子块信息位,第W块随机存取存储单元的尾部S段填充零;W表示对应并行度;
将所述Turbo码块的校验位、交织校验位依次按照所述存储方式存储;
结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算,并将第k次的信息位校验位后向递推结果存储到随机存取存储单元内;其中,k取整数,k≥1;
结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从头至尾按照前向递推公式进行前向递推运算,并将第k次的信息位校验位前向递推结果存储到随机存取存储单元内;
根据第k次的信息位校验位后向递推结果和第k次的信息位校验位前向递推结果,计算第k次的先验信息La;
结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从尾至头按照后向递推公式进行后向递推运算,得到第k次的交织校验位后向递推结果;
结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从头至尾按照前向递推公式进行前向递推运算,得到第k次的交织校验位前向递推结果;
判断当前迭代次数k是否等于设定的迭代总数,得到判断结果;
若所述判断结果表示所述当前迭代次数k小于设定的迭代总数,则根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算下一次迭代的先验信息Lb,并返回将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算步骤;
若所述判断结果表示所述当前迭代次数k等于设定的迭代总数,则根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算第k次的对数似然比LLR,并根据第k次的对数似然比LLR进行硬判决得到译码结果。
2.根据权利要求1所述的方法,其特征在于,在执行结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算之前,所述方法还包括将所有的随机存取存储单元中的数据进行解删余操作。
3.根据权利要求1所述的方法,其特征在于,当k=1时,先验信息Lb为零。
4.根据权利要求3所述的方法,其特征在于,所述后向递推公式为:
其中,βk-1(s′)表示第k-1次的后向递推结果,s′表示为第k-1次的状态,s表示第k次的状态,字母P是Probability概率的缩写,γk(s′,s)是状态s′与状态s之间的分支转移概率,表示检验位;
分支转移概率γk(s′,s)表示为:
其中,uk为引起状态s′到状态s转移的输入比特,P(uk)是uk的先验概率,P(yk|{s′,s})是条件转移概率,由信道转移概率决定;
先验信息表示uk判断为0或者1的概率,用对数表示,先验信息La(uk)对应计算状态转移概率γk(s′,s)中的P(uk);
先验信息表示uk判断为0或者1的概率,用对数表示,先验信息Lb(uk)对应计算状态转移概率γk(s′,s)中的P(uk)。
5.根据权利要求4所述的方法,其特征在于,所述前向递推公式为
其中,αk(s)表示第k次的前向递推结果,s′表示为第k-1次的状态,s表示第k次的状态,字母P是Probability概率的缩写,γk(s′,s)是状态s′与状态s之间的分支转移概率,为第k次的校验信息。
6.根据权利要求1所述的方法,其特征在于,编码后的Turbo码的数据格式为信息位、校验位、交织校验位依次排列。
7.根据权利要求1所述的方法,其特征在于,所述首部S段或者所述尾部S段的长度均为4m~7m,m表示为Turbo分量编码器的寄存器个数。
8.根据权利要求1所述的方法,其特征在于,每个所述随机存取存储单元均包括首部S段、中间部分以及尾部S段。
9.一种并行Turbo码迭代译码的系统,其特征在于,所述系统包括:
信息位存储模块,用于串行接收编码后的Turbo码块,并将所述Turbo码块的信息位按照设定的存储方式存储到随机存取存储单元中;所述存储方式为将所述Turbo码块的长度为K的信息位写入到W块长度为M的随机存取存储单元中;所述存储方式具体包括:将长度为K的信息位分成W块,分别为第1子块信息位、第2子块信息位、......、第W子块信息位;第1块随机存取存储单元的首部S段存储零,第1块随机存取存储单元的中间部分存储第1子块信息位,第1块随机存取存储单元的尾部S段存储K/W+1至K/W+S的信息位;第2块随机存取存储单元的首部S段存储第1块随机存取存储单元的尾部长度为S的信息位,第2块随机存取存储单元的中间部分存储第2子块信息位,第2块随机存取存储单元的尾部S段存储第3块随机存取存储单元的首部长度为S的信息位,依次类推,第W块随机存取存储单元的首部S段存储第W-1段随机存取存储单元的尾部长度为S的信息位,第W块随机存取存储单元的中间部分存储第W子块信息位,第W块随机存取存储单元的尾部S段填充零;W表示对应并行度;
校验位和交织校验位存储模块,用于将所述Turbo码块的校验位、交织校验位依次按照所述存储方式存储;
信息位校验位后向递推结果计算模块,用于结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算,并将第k次的信息位校验位后向递推结果存储到随机存取存储单元内;其中,k取整数,k≥1;
信息位校验位前向递推结果计算模块,用于结合第k次的先验信息Lb,将所有的随机存取存储单元中的信息位、校验位从头至尾按照前向递推公式进行前向递推运算,并将第k次的信息位校验位前向递推结果存储到随机存取存储单元内;
先验信息La计算模块,用于根据第k次的信息位校验位后向递推结果和第k次的信息位校验位前向递推结果,计算第k次的先验信息La;
交织校验位后向递推结果计算模块,用于结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从尾至头按照后向递推公式进行后向递推运算,得到第k次的交织校验位后向递推结果;
交织校验位前向递推结果计算模块,用于结合第k次的先验信息La,对所有的随机存取存储单元中的交织校验位从头至尾按照前向递推公式进行前向递推运算,得到第k次的交织校验位前向递推结果;
判断模块,用于判断当前迭代次数k是否等于设定的迭代总数,得到判断结果;
返回模块,用于当所述判断结果表示所述当前迭代次数k小于设定的迭代总数时,根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算下一次迭代的先验信息Lb,并返回将所有的随机存取存储单元中的信息位、校验位从尾至头按照后向递推公式进行后向递推运算步骤;
译码模块,用于当所述判断结果表示所述当前迭代次数k等于设定的迭代总数时,根据第k次的交织校验位后向递推结果和第k次的交织校验位前向递推结果,计算第k次的对数似然比LLR,并根据第k次的对数似然比LLR进行硬判决得到译码结果。
CN201811525383.9A 2018-12-13 2018-12-13 一种并行Turbo码迭代译码的方法及系统 Active CN109379088B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811525383.9A CN109379088B (zh) 2018-12-13 2018-12-13 一种并行Turbo码迭代译码的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811525383.9A CN109379088B (zh) 2018-12-13 2018-12-13 一种并行Turbo码迭代译码的方法及系统

Publications (2)

Publication Number Publication Date
CN109379088A true CN109379088A (zh) 2019-02-22
CN109379088B CN109379088B (zh) 2022-03-08

Family

ID=65373631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811525383.9A Active CN109379088B (zh) 2018-12-13 2018-12-13 一种并行Turbo码迭代译码的方法及系统

Country Status (1)

Country Link
CN (1) CN109379088B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021120729A1 (zh) * 2019-12-18 2021-06-24 华为技术有限公司 译码方法、设备、可读存储介质、芯片及计算机程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162908A (zh) * 2007-11-30 2008-04-16 北京卫星信息工程研究所 一种基于DVB-RCS标准的双二元Turbo码译码方法及译码器
CN101442321A (zh) * 2007-12-27 2009-05-27 美商威睿电通公司 涡轮码的并行译码以及数据处理方法和装置
CN102158235A (zh) * 2011-04-26 2011-08-17 中兴通讯股份有限公司 turbo译码的方法及装置
CN102356554A (zh) * 2011-08-23 2012-02-15 华为技术有限公司 Turbo码数据交织处理方法和用于交织Turbo码数据的交织器
US20120204081A1 (en) * 2011-02-08 2012-08-09 Infineon Technologies Ag Iterative Decoder
CN103475380A (zh) * 2013-09-06 2013-12-25 清华大学 用于图像处理器的并行Turbo 译码方法
US20150039963A1 (en) * 2010-09-10 2015-02-05 John P. Fonseka Encoding and decoding using constrained interleaving
CN106253912A (zh) * 2016-07-27 2016-12-21 西安电子科技大学 兼容两代DVB‑RCS的Turbo译码装置及方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162908A (zh) * 2007-11-30 2008-04-16 北京卫星信息工程研究所 一种基于DVB-RCS标准的双二元Turbo码译码方法及译码器
CN101442321A (zh) * 2007-12-27 2009-05-27 美商威睿电通公司 涡轮码的并行译码以及数据处理方法和装置
US20150039963A1 (en) * 2010-09-10 2015-02-05 John P. Fonseka Encoding and decoding using constrained interleaving
US20120204081A1 (en) * 2011-02-08 2012-08-09 Infineon Technologies Ag Iterative Decoder
CN102158235A (zh) * 2011-04-26 2011-08-17 中兴通讯股份有限公司 turbo译码的方法及装置
CN102356554A (zh) * 2011-08-23 2012-02-15 华为技术有限公司 Turbo码数据交织处理方法和用于交织Turbo码数据的交织器
CN103475380A (zh) * 2013-09-06 2013-12-25 清华大学 用于图像处理器的并行Turbo 译码方法
CN106253912A (zh) * 2016-07-27 2016-12-21 西安电子科技大学 兼容两代DVB‑RCS的Turbo译码装置及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TSUNG-HAN TSAI等: "A new memory-reduced architecture design for log-MAP algorithm in turbo decoding", 《IEEE》 *
张勇生: "基于FPGA的Turbo码分块并行译码算法的研究及实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021120729A1 (zh) * 2019-12-18 2021-06-24 华为技术有限公司 译码方法、设备、可读存储介质、芯片及计算机程序产品

Also Published As

Publication number Publication date
CN109379088B (zh) 2022-03-08

Similar Documents

Publication Publication Date Title
CN101777924B (zh) 一种Turbo码译码方法和装置
CN105720992B (zh) 一种极化码的简化译码方法
CN102412847B (zh) 用联合节点处理来解码低密度奇偶校验码的方法和设备
US8943384B2 (en) Using a soft decoder with hard data
KR101306645B1 (ko) 시행착오에 의한 에러 보정 디코딩
CN106849960B (zh) 基于极化码的分段crc校验堆栈译码方法及架构
CN106504796A (zh) 一种应用于nand闪存上的极化码纠错方案
CN105634508B (zh) 一种低复杂度近性能限的Turbo译码器的实现方法
CN106371943A (zh) 一种基于flash编程干扰错误感知的LDPC译码优化方法
CN101373978B (zh) 一种Turbo码译码方法以及装置
US11742879B2 (en) Machine-learning error-correcting code controller
CN100361397C (zh) 特播解码装置和方法
CN108712232A (zh) 一种用于连续变量量子密钥分发系统中的多码字并行译码方法
CN109379088A (zh) 一种并行Turbo码迭代译码的方法及系统
CN103856218B (zh) 译码处理方法及译码器
CN111294061A (zh) 一种原始比特错误率感知的译码软判决延迟降低方法
CN106027200A (zh) 一种基于gpu的卷积码高速并行译码方法及译码器
CN102158235A (zh) turbo译码的方法及装置
CN103986557A (zh) 低路径延迟的LTE Turbo码并行分块译码方法
CN102571107B (zh) LTE系统中高速并行Turbo码的解码系统及方法
CN103595424A (zh) 分量译码方法、译码器及Turbo译码方法、装置
CN103427849B (zh) 用于符号重组解码处理的系统和方法
CN103916141B (zh) Turbo码译码方法及装置
CN103475378A (zh) 一种适用于光通信的高吞吐率ldpc译码器
CN100589329C (zh) 一种双二进制ctc译码装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant