CN109379088A - 一种并行Turbo码迭代译码的方法及系统 - Google Patents
一种并行Turbo码迭代译码的方法及系统 Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/2771—Internal 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码是一类性能优异的信道编码。采用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进行硬判决得到译码结果。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021120729A1 (zh) * | 2019-12-18 | 2021-06-24 | 华为技术有限公司 | 译码方法、设备、可读存储介质、芯片及计算机程序产品 |
Citations (8)
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译码装置及方法 |
-
2018
- 2018-12-13 CN CN201811525383.9A patent/CN109379088B/zh active Active
Patent Citations (8)
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)
Title |
---|
TSUNG-HAN TSAI等: "A new memory-reduced architecture design for log-MAP algorithm in turbo decoding", 《IEEE》 * |
张勇生: "基于FPGA的Turbo码分块并行译码算法的研究及实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
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码译码方法和装置 | |
Sarkis et al. | Fast polar decoders: Algorithm and implementation | |
CN105720992B (zh) | 一种极化码的简化译码方法 | |
CN102412847B (zh) | 用联合节点处理来解码低密度奇偶校验码的方法和设备 | |
EP1648091A1 (en) | Method and apparatus for efficiently decoding low density parity check code | |
CN105634508B (zh) | 一种低复杂度近性能限的Turbo译码器的实现方法 | |
CN108847850A (zh) | 一种基于crc-sscl的分段极化码编译码方法 | |
CN101373978B (zh) | 一种Turbo码译码方法以及装置 | |
CN106936446A (zh) | 一种基于多进制ldpc码的高速译码器及其译码方法 | |
CN106371943A (zh) | 一种基于flash编程干扰错误感知的LDPC译码优化方法 | |
CN110391872A (zh) | 极化码的编译码方法和装置 | |
CN108958963A (zh) | 一种基于ldpc和循环冗余校验码的nand flash差错控制方法 | |
CN100512020C (zh) | 一种译码方法及译码装置 | |
CN107395214A (zh) | 一种基于闪存页错误特性降低ldpc译码延迟的方法 | |
CN108712232A (zh) | 一种用于连续变量量子密钥分发系统中的多码字并行译码方法 | |
CN102835062B (zh) | 确定码距的方法及计算装置 | |
CN102158235A (zh) | turbo译码的方法及装置 | |
CN109379088A (zh) | 一种并行Turbo码迭代译码的方法及系统 | |
CN106027200A (zh) | 一种基于gpu的卷积码高速并行译码方法及译码器 | |
CN103986557A (zh) | 低路径延迟的LTE Turbo码并行分块译码方法 | |
CN102571107B (zh) | LTE系统中高速并行Turbo码的解码系统及方法 | |
CN103595424A (zh) | 分量译码方法、译码器及Turbo译码方法、装置 | |
CN113131950B (zh) | 一种极化码的自适应连续消除优先译码方法 | |
CN103916141B (zh) | Turbo码译码方法及装置 | |
CN110601792B (zh) | 一种用于宽带电力载波通讯的前端编解码系统及方法 |
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 |