CN113258940B - turbo译码方法、装置、译码设备及存储介质 - Google Patents

turbo译码方法、装置、译码设备及存储介质 Download PDF

Info

Publication number
CN113258940B
CN113258940B CN202110658186.XA CN202110658186A CN113258940B CN 113258940 B CN113258940 B CN 113258940B CN 202110658186 A CN202110658186 A CN 202110658186A CN 113258940 B CN113258940 B CN 113258940B
Authority
CN
China
Prior art keywords
data
decoding
target
decoder
decoded
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
Application number
CN202110658186.XA
Other languages
English (en)
Other versions
CN113258940A (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.)
Wuxi Xinglian Xintong Technology Co.,Ltd.
Original Assignee
Wuxi Xinglian Xintong Technology Co ltd
Chengdu Xinglian Xintong 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 Wuxi Xinglian Xintong Technology Co ltd, Chengdu Xinglian Xintong Technology Co ltd filed Critical Wuxi Xinglian Xintong Technology Co ltd
Priority to CN202110658186.XA priority Critical patent/CN113258940B/zh
Publication of CN113258940A publication Critical patent/CN113258940A/zh
Application granted granted Critical
Publication of CN113258940B publication Critical patent/CN113258940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

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译码的兼容性和灵活性。

Description

turbo译码方法、装置、译码设备及存储介质
技术领域
本发明涉及通信技术领域,具体而言,涉及一种turbo译码方法、装置、译码设备及存储介质。
背景技术
Turbo码是在卷积码和迭代思想的基础上发展而来的,双二元卷积turbo码不同于传统turbo码,其在每个时钟节拍编码两个信息比特。在接收端采用软输入软输出SISO(Soft In Soft Out,SISO)的迭代思想,不但发挥了级联码的优势,还近似实现了随机编码,并把短码变成长码。由于充分利用了信道编码定理中的随机性条件,turbo码得到了非常接近信道容量极限的性能。在实际应用中还引入了交织器的原理,来提升turbo码的性能。
不同协议的码型不同,不同的码型在译码时采用的交织规则也有差别,由此导致译码的并行度也不同。
发明内容
本发明的目的在于提供了一种turbo译码方法、装置、译码设备及存储介质,能够兼顾各种不同协议的不同码型,实现自动适应码型的需求,增强译码方案的兼容性和灵活性。
为了实现上述目的,本发明采用的技术方案如下:
第一方面,本发明提供一种turbo译码方法,应用于译码设备,所述译码设备包括子译码器及多个分量译码器,所述方法包括:获取待译码数据及所述多个分量译码器的数量;根据所述数量、所述待译码数据的长度及预设交织规则,确定为所述子译码器分配的目标分量译码器的目标个数;将所述待译码数据输入所述子译码器进行迭代译码,直至满足预设条件,得到译码后的数据。
第二方面,本发明提供一种turbo译码装置,应用于译码设备,所述译码设备包括子译码器及多个分量译码器,所述装置包括:获取模块,用于获取待译码数据及所述多个分量译码器的数量;确定模块,用于根据所述数量、所述待译码数据的长度及预设交织规则,确定为所述子译码器分配的目标分量译码器的目标个数;译码模块,用于将所述待译码数据输入所述子译码器进行迭代译码,直至满足预设条件,得到译码后的数据。
第三方面,本发明提供一种译码设备,所述译码设备执行所述计算机程序时实现如上述的turbo译码方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被译码设备执行时实现如上述的turbo译码方法。
相对于现有技术,本发明根据分量译码器的数量、待译码数据的长度及预设交织规则,确定迭代译码时可以使用的目标分量译码器的目标个数,再将待译码数据输入子译码器进行迭代译码,直至满足预设条件,得到译码后的数据,由此实现了针对不同的码型在译码时采用的不同交织规则确定需要的目标分量译码器,故而兼顾了各种不同协议的不同码型,自动适应码型的需求,增强了turbo译码的兼容性和灵活性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种turbo译码方法的流程示意图。
图2为本发明实施例提供的确定目标分量译码器的目标个数的流程示意图。
图3为本发明实施例提供的写数据至存储器C时出现地址访问冲突的示例图。
图4为本发明实施例提供的读存储器C时出现地址访问冲突的示例图。
图5为本发明实施例提供的图1中步骤S120的子步骤的流程示意图。
图6为本发明实施例提供的图5中子步骤S1201的流程示意图。
图7为本发明实施例提供的一次迭代译码的示例图。
图8为本发明实施例提供的图6中子步骤S12010的子步骤的流程示意图。
图9为本发明实施例提供一次迭代译码中第一次译码的示例图。
图10为本发明实施例提供的应用于每一目标分量译码器的迭代译码方法的流程示意图。
图11为本发明实施例提供的咬尾卷积的状态转换的示意图。
图12为本发明实施例提供的第一递推的过程示意图。
图13为本发明实施例提供的第二递推的过程示意图。
图14为本发明实施例提供硬判决的流程示意图。
图15为本发明实施例提供提前结束迭代译码实现方法的流程示意图。
图16为本发明实施例提供的判定满足预设条件的方法的流程示意图。
图17为本发明实施例提供的turbo译码装置的方框示意图。
图18为本发明实施例提供的译码设备的方框示意图。
图标:10-译码设备;11-译码控制器;12-存储器;13-总线;14-通信接口;15-子译码器;100-turbo译码装置;110-获取模块;120-确定模块;130-译码模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
自本世纪60年代以来,人类已经将数以百计的通信广播卫星送入高轨,在实现国际远距离通信和电视传输方面,这些卫星一直担当主角。
高轨道卫星移动通信业务的特征来源于使用赤道上方的35800km的对地同步卫星开展通信业务的条件。在这个高度上,一颗卫星可以覆盖半个地球,形成一个区域性卫星通信***,该***可以为其卫星覆盖范围内的任何地点提供服务。但是高轨道卫星之间必须相隔一定的距离,所以高轨道卫星数量比较少。
高轨的缺点也是比较明显:自由空间中,信号经过远距离传输会带来较大的时间延时;轨道资源紧张,每一个高轨道卫星服务的用户数量庞大。
基于高轨的以上的缺点,需要提高高轨道卫星的数据吞吐量,增加服务用户数量;提高信号处理的性能,避免信号重复传输,给信道减轻负担;减小数据处理带来的时延,提高工作效率;其中编解码是高轨卫星通信中最重要的技术之一,也是高轨道卫星吞吐量和性能提升的瓶颈,提高了编解码的吞吐量和性能,高轨道卫星的吞吐量和性能会得到很大的改善。
目前高轨的技术协议DVB-RCS2中就是以turbo码作为主要的编解码算法,它能提高高轨道自身纠错能力,该turbo码是双二元、16状态turbo码,其使用了咬尾卷积的特性。
但是随着turbo码性能的不断提升,结构不断复杂化,也带来了不小的问题。由于turbo码的交织方式限制了译码时数据存取,导致迭代译码并行度不高,译码时延大,吞吐量不高;译码过程中由于反向递推过程需要消耗大量的存储器,对硬件资源消耗很大,增加了译码难度。目前,在turbo译码方案中用得比较多的是滑窗译码算法和全并行译码算法,滑窗译码算法是串行译码算法,时延大,吞吐量不高;全并行译码算法是有效提高了译码并行度,但受到交织器的限制,大部分协议规定的码型不能使用全并行译码算法,并且每种码型交织规则的不同,其并行度(即并行运行的分量译码器的数量)也不一样。
有鉴于此,本发明实施例提供了一种turbo译码方法、装置、译码设备及存储介质,能够自动根据交织规则确定可以并行运行的分量译码器的数量,从而可以兼顾各种不同协议的不同码型,实现自动适应码型的需求,增强译码方案的兼容性和灵活性,同时在保证译码性能的前提下,提升了并行度、提高了吞吐量、减小延时、降低数据存储量,下面将对其进行详细描述。
请参考图1,图1为本发明实施例提供一种turbo译码方法的流程示意图,该方法包括以下步骤:
步骤S100,获取待译码数据及多个分量译码器的数量。
在本实施例中,作为一种具体实施方式,待译码数据可以是对译码设备接收到的数据进行处理之后的数据,该处理包括、但不限于归一化处理、解速率匹配、或者解调处理等。
在本实施例中,译码设备包括多个分量译码器,分量译码器的数量可以是该译码设备能够支持的最大分量译码器的个数。
需要说明的是,作为一种具体实施方式,可以预先对译码设备进行设置,也可以根据码率解速率匹配。
步骤S110,根据数量、待译码数据的长度及预设交织规则,确定为子译码器分配的目标分量译码器的目标个数。
在本实施例中,译码设备还包括子译码器,该子译码器可以包括多个可以并行运行的分量译码器,待译码数据为turbo码,turbo码的每一个码型采用预设交织规则交织后对应一个交织序列,交织序列决定并行度(即子译码器中分量译码器的个数)。
在本实施例中,待译码数据的码型不一样,其采用的预设交织规则也不同,由此导致分配给子译码器的目标分量译码器的目标个数也不一样。本发明实施例可以根据预设交织规则确定子译码器的目标分量译码器的目标个数,从而可以兼容不同的待译码数据的码型。
步骤S120,将待译码数据输入子译码器进行迭代译码,直至满足预设条件,得到译码后的数据。
在本实施例中,待译码数据输入子译码器后,子译码器中的目标分量译码器并行进行迭代译码,由此提高了待译码数据迭代译码的效率。
本发明实施例提供的上述方法,为采用不同交织规则的不同协议的不同码型确定迭代译码使用的目标分量译码器的目标个数,可以针对不同类型采用不同交织规则的交织器及不同码型自动计算出迭代译码的并行度(即目标分量译码器的目标个数),无需人为的分析交织器类型与结构,从而可以兼顾各种不同协议的不同码型,实现了自动适应码型的需求,增强了译码方案的兼容性和灵活性。
在图1的基础上,本发明实施例还提供了一种确定目标分量译码器的目标个数的具体实施方式,请参照图2,图2为本发明实施例提供的确定目标分量译码器的目标个数的流程示意图,步骤S110包括以下子步骤:
子步骤S1101,将数量确定为待选个数。
子步骤S1102,按照待选个数及待译码数据的长度将待译码数据分成多个数据段。
子步骤S1103,将多个数据段中每一数据段均按照预设交织规则进行交织,得到每一数据段交织后的存储地址序列。
在本实施例中,作为一种具体实现方式,如果是串行译码,存储器和交织序列分别在不同的两个存储器中,并且每一个时刻读(或写)一个数据,因此每一个时刻只对存储器进行一次读(或写)操作,并不会出现地址争用和访问冲突的问题。
在本实施例中,作为另一种具体实现方式,如果是并行译码,例如M个分量译码器并行译码时,某一个时刻将M个数据(也称为外信息)同时交叉写入或读出存储器。假设M=4,需要将4个分量译码器的数据a~d分别写入存储器A~D中,其中j表示在4个分量译码器中的数据偏移量,由于分量译码器a和分量译码器d的数据需要同时写入存储器C中,因此出现地址争用,存储器访问冲突。请参照图3,图3为本发明实施例提供的写数据至存储器C时出现地址访问冲突的示例图。同样的,对于并行的4个分量译码器,在某一时刻,需要同时从存储器C中读取分块a和d的第j个数据,这在实际硬件实现中不允许,因此会产生地址争用的问题,进而造成存储器访问冲突,请参照图4,图4为本发明实施例提供的读存储器C时出现地址访问冲突的示例图。
为了避免出现地址访问冲突,以M个分量译码器为例,在译码的过程中,任意一个时刻,M个分量译码器通过预设交织规则访问内存中的数据时,不产生地址冲突。
所以M个分量译码器能并行的条件是:
Figure F_210611093242517_517067001
,第u个分量译码器和第v个分量译码器的第j个数据被同时访问时,内存访问地址没有冲突。其中u和v代表M个分量译码器中的任意两个分量译码器,且
Figure F_210611093242644_644398002
。其中:
Figure F_210611093242754_754862003
:是每一个分量译码器处理的数据段的长度;
j :分量译码器内第j个数据,
Figure F_210611093242864_864294004
v、u:分量译码器序号,
Figure F_210611093243044_044830005
Figure F_210611093243156_156228006
Figure F_210611093243281_281359007
Figure F_210611093243392_392117008
:表示按照预设交织规则进行交织运算;
Figure F_210611093243501_501003009
:j+uL第u个分量译码器内的第j个数据,
Figure F_210611093243629_629133010
表示第j个数据交织后的数据存储地址。
Figure F_210611093243821_821995011
:j+vL第v个分量译码器内的第j个数据,
Figure F_210611093243979_979600012
表示第j个数据交织后的数据存储地址。
子步骤S1104,若多个存储地址序列中两两之间均不存在访问冲突,则将待选个数作为目标个数。
在本实施例中,多个存储地址序列中两两之间均不存在访问冲突是指多个数据段的同一位置偏移的数据的存储地址被任意两个分量译码器访问时均不存在访问冲突。
子步骤S1105,若多个存储地址序列中任意两个存储地址存在访问冲突,则将待选个数递减,以递减后的待选个数替换待选个数,并重复执行对待译码数据进行分段,并对每一数据段按照预设交织规则进行交织,直至确定出目标个数。
在本实施例中,将待选个数递减,以递减后的待选个数替换待选个数,重复执行子步骤S1102~子步骤S1105,直至确定出目标个数。
本发明实施例提供的上述方法,从分量译码器的数量开始,采用对分量译码器的数量逐步递减的方式,最终得到满足预设交织规则的目标分量译码器的目标个数,实现了快速确定最合适的目标个数,从而提高了迭代译码的效率。
在图1的基础上,本发明实施例还提供了一种迭代译码的具体实施方式,请参照图5,图5为本发明实施例提供的图1中步骤S120的子步骤的流程示意图,步骤S120包括以下子步骤:
子步骤S1201,将待译码数据及预设先验概率数据输入至子译码器进行迭代译码,得到外信息数据及后验概率数据。
在本实施例中,迭代译码可以进行多次,直至满足预设条件,第一次迭代译码时,预设先验概率数据为预先设置的初始值,例如,初始值为全0,除第一次之外的迭代译码时,当次迭代译码的预设先验概率数据是根据上一次迭代译码输出的外信息数据进行解交织得到的。
子步骤S1202,将外信息数据进行解交织,并用解交织后的结果替换预设先验概率数据后进行下一次迭代译码,直至满足预设条件。
在本实施例中,将外信息数据进行解交织,并用解交织后的结果替换预设先验概率数据后,重复子步骤S1201~S1202,当满足预设条件时,则结束迭代译码。
在本实施例中,每次迭代译码包括第一次译码和第二次译码,在图5的基础上,本发明实施例还提供了一种通过第一次译码和第二次译码得到外信息数据及后验概率数据的具体实现方式,请参照图6,图6为本发明实施例提供的图5中子步骤S1201的流程示意图,子步骤S1201包括以下子步骤:
子步骤S12010,将原始数据、第一校验数据及预设先验概率数据输入至子译码器进行第一次译码,得到中间外信息数据及中间后验概率数据。
在本实施例中,待译码数据包括原始数据及与原始数据对应的第一校验数据和第二校验数据。由于turbo码是二元输入turbo码,对于原始数据中的每一个码元而言,每一个码元用两个bit为表示,每一个码元对应两个校验数据:第一校验数据和第二校验数据,第一校验数据和第二校验数据分别包括两个bit,第一校验数据的第一个bit和第二校验数据的第一个bit均为第一校验位,第一校验数据的第二个bit和第二校验数据的第二个bit均为第二校验位。
子步骤S12011,将中间外信息数据进行解交织,得到中间先验概率数据。
子步骤S12012,将原始数据按照预设交织则进行交织、并将交织后的原始数据、第二校验数据及中间先验概率数据输入至子译码器进行第二次译码,得到外信息数据及后验概率数据。
在本实施例中,每次迭代译码的第二次译码的输出的外信息数据经过解交织后,其交织结果作为下一次迭代译码的先验概率数据。请参照图7,图7为本发明实施例提供的一次迭代译码的示例图。图7中,SISIO1和SISIO2分别表示一次迭代译码的第一次译码和第二次译码,
Figure F_210611093244160_160619013
:表示按照预设交织规则进行交织运算,
Figure F_210611093244334_334008014
:表示按照预设交织规则进行解交织运算,
Figure F_210611093244522_522900015
表示原始数据、
Figure F_210611093244689_689466016
表示原始数据经过交织后得到的数据,
Figure F_210611093244848_848618017
表示第一校验数据、
Figure F_210611093245007_007305018
表示第二校验数据,i表示第i次迭代译码,
Figure F_210611093245135_135730019
Figure F_210611093245331_331065020
分别表示第i次迭代译码的第一次译码和第二次译码输出的后验概率数据,
Figure F_210611093245519_519106021
表示第i+1次迭代译码的第一次译码的先验概率数据,
Figure F_210611093245733_733433022
表示第i次迭代译码的第二次译码的先验概率数据,
Figure F_210611093245890_890130023
Figure F_210611093246063_063980024
分别表示第i次迭代译码的第一次译码和第二次译码的外信息数据。为了便于表述,本发明实施例将待编码的码元序列表示为:
Figure F_210611093246206_206029025
,N表示编码码元的个数(即为序列长度),经过BPSK调制后,
Figure F_210611093246386_386204026
,编码产生的码元经过BPSK调制后的序列表示为
Figure F_210611093246624_624112027
Figure F_210611093246836_836887028
Figure F_210611093247105_105040029
Figure F_210611093247317_317165030
Figure F_210611093247524_524331031
,其中,
Figure F_210611093247792_792412032
表示发送数据的码元,
Figure F_210611093248050_050392033
Figure F_210611093248302_302307034
分别表示第一校验位和第二校验位,在接收端,对应于发送序列x的接收序列为
Figure F_210611093248546_546951035
Figure F_210611093248754_754908036
Figure F_210611093248916_916932037
,其中,
Figure F_210611093249080_080112038
代表原始数据中的一个码元;一个码元包括2个bit:
Figure F_210611093249350_350645039
Figure F_210611093249592_592779040
Figure F_210611093249753_753347041
Figure F_210611093249996_996111042
Figure F_210611093250207_207578043
交织得到;
Figure F_210611093250396_396955044
,其中,
Figure F_210611093250572_572774045
Figure F_210611093250840_840805046
表示第一校验位,
Figure F_210611093251052_052743047
是第二校验位;
Figure F_210611093251281_281224048
,其中,
Figure F_210611093251485_485797049
Figure F_210611093251650_650337050
是第一校验位,
Figure F_210611093251810_810001051
是第二校验位。
在逻辑层面上,第i次迭代译码的SISO1输出的外信息数据是
Figure F_210611093251999_999512052
,后验概率数据是
Figure F_210611093252131_131799053
;第i次迭代译码的SISO2输出的外信息数据是
Figure F_210611093252288_288533054
,后验概率数据
Figure F_210611093252462_462418055
;逻辑上,第i次迭代译码的SISO1输出的
Figure F_210611093252604_604501056
,经过交织后得到
Figure F_210611093252740_740250057
,在第i次迭代译码时输入至SISO2迭代使用。同样地,第i次迭代译码的SISO2的输出
Figure F_210611093252880_880426058
,经过解交织后得到
Figure F_210611093253008_008738059
,在i+1次迭代译码时输入至SISO1。
在物理层面,SISO1和SISO2用同一个硬件结构完成,第i次迭代译码时, SISO1和SISO2串行执行,SISO1先执行,SISO2后执行,然后是第i+1次迭代译码,同样地,SISO1和SISO2串行执行,SISO1先执行,SISO2后执行。
在本实施例中,子译码器包括的目标分量译码器为多个时,为了实现多个目标分量译码器并发处理,本发明实施例还提供一种并发处理的具体实现方式,请参照图8,图8为本发明实施例提供的图6中子步骤S12010的子步骤的流程示意图,子步骤S12010包括以下子步骤:
子步骤S12010-10,按照目标个数分别将原始数据、第一校验数据及预设先验概率数据分成多个原始数据分段、多个第一校验数据分段及多个先验概率数据分段。
子步骤S12010-11,将每一原始数据分段及对应的每一第一校验数据分段、每一先验概率数据分段输入每一目标分量译码器进行第一次译码,得到每一目标分量译码器输出的中间外信息数据分段及中间后验概率数据分段。
子步骤S12010-12,将所有目标分量译码器输出的多个中间外信息数据分段进行组合,得到中间外信息数据。
子步骤S12010-13,将所有目标分量译码器输出的多个中间后验概率数据分段进行组合,得到中间后验概率数据。
本实施例提供的上述方法,将原始数据、第一校验数据及预设先验概率数据分成多个原始数据分段、多个第一校验数据分段及多个先验概率数据分段,由此减小了迭代译码所需的存储量,有效节省了硬件存储量,同时,多个目标分量译码器并行处理多个原始数据分段及对应的多个第一校验数据分段和多个先验概率数据分段,增加了子译码器的并行度和吞吐量,减小了迭代译码时延。
请参照图9,图9为本发明实施例提供一次迭代译码中第一次译码的示例图,目标个数为M,即子译码器包括M个目标分量译码器,将原始数据、第一校验数据及预设先验概率数据分成M个原始数据分段、M个第一校验数据分段及M个先验概率数据分段,每一个目标分量译码器负责根据一个原始数据分段及对应的第一校验数据分段、先验概率数据分段进行译码,最后再将所有目标分量译码器输出的中间外信息数据分段组合成第一次译码输出的中间外信息数据、将所有目标分量译码器输出的中间后验概率数据分段组合成第一次译码输出的中间后验概率数据。
在本实施例中,为了减小数据的幅度和保存数据的存储量,降低内存消耗和计算量,本发明实施例还提供了另一种应用于每一所述目标分量译码器的迭代译码方法,请参照图10,图10为本发明实施例提供的应用于每一目标分量译码器的迭代译码方法的流程示意图,子步骤S12010-11包括以下子步骤:
子步骤S12010-110,根据每一目标分量译码器中每一处理窗口对应的原始数据单元、第一校验数据单元及先验概率数据单元,计算每一目标分量译码器的每一处理窗口对应的中间外信息数据单元及中间后验概率数据单元。
在本实施例中,每一目标分量译码器划分为预设个数的处理窗口,每一原始数据分段、第一校验数据分段及先验概率数据分段分别包括预设个数的原始数据单元、预设个数的第一校验数据单元及预设个数的先验概率数据单元;一个处理窗口用于处理一个原始数据单元及对应的第一校验数据单元和先验概率数据单元。
在本实施例中,对于每一目标分量译码器而言,划分预设个数的处理窗口,每一处理窗口处理每一原始数据分段中的第一个原始数据单元及对应的第一校验数据单元和先验概率数据单元,预设个数的处理窗口之间串行译码,有效减小了译码长度,再次降低了译码过程中数据的存储量,同时也降低了计算量。
在本实施例中,迭代译码包括多次,为了便于说明,以目标分量译码器包括第1至第M目标分量译码器,每个目标分量译码器均包括第1至第Q个处理窗口为例进行描述,其中,M和Q为正整数。
对于第L次迭代译码的第X目标分量译码器的第Y处理窗口而言,其中,L为任意一次迭代译码,计算该处理窗口对应的中间外信息数据单元及中间后验概率数据单元的方法可以是:
第一,将第L次迭代译码的第X目标分量译码器的第Y处理窗口对应的原始数据单元、第一校验数据单元及先验概率数据单元分别作为目标原始数据单元、目标第一校验数据单元及目标先验概率数据单元,其中,L为正整数、1≤X≤M、1≤Y≤Q。
第二,根据目标原始数据单元、目标第一校验数据单元及目标先验概率数据单元,得到状态转移度量值。
在本实施例中,状态转移度量值可以采用如下公式计算:
Figure F_210611093253135_135191060
,其中,
Figure F_210611093253266_266618061
表示状态转移度量值,
Figure F_210611093253393_393569062
Figure F_210611093253520_520436063
分别表示k-1时刻和k时刻的目标分量译码器的状态,由于分量译码器时按照码元序列进行顺序译码,每一个时刻处理一个码元,即每一个时刻递推一个码元的状态,因此,k也是码元序列中第k个码元,也就是说,k-1时刻处理的是第k-1个码元,第k时刻处理的是第k个码元,j=1表示第L次迭代译码的第一次译码,j=2表示第L次迭代译码的第二次译码,
Figure F_210611093253645_645988064
Figure F_210611093253767_767082065
分别表示目标原始数据单元中的一个码元的2个bit,
Figure F_210611093253907_907735066
Figure F_210611093254034_034765067
分别表示与目标原始数据单元对应的发送数据单元中的一个码元的2个bit,
Figure F_210611093254199_199363068
Figure F_210611093254361_361326069
分别表示与目标原始数据单元对应的发送数据的第一校验位和第二校验位,
Figure F_210611093254486_486299070
Figure F_210611093254628_628381071
在j=1时表示第一校验数据,在j=2时表示第二校验数据,
Figure F_210611093254761_761109072
表示目标先验概率,其中,z=1,2,3。
由于turbo码是二元输入咬尾卷积码,卷积编码过程中一共有16个状态,本发明实施例还给出了一种咬尾卷积的状态转换的示意图,请参照图11,图11为本发明实施例提供的咬尾卷积的状态转换的示意图,由图11可以看出,咬尾卷积的状态转换是首尾相接环形,可以永远的闭环转换,也就是说,turbo码的状态是一个闭环的循环状态转换过程,根据这个特性,就能完成状态的无限连续传递。根据turbo码咬尾卷积的特点,可以在递推过程中充分利用之前的信息对后续递推中的信息进行初始化。在本实施例中,递推包括第一递推和第二递推,第一递推也称alpha正向递推,在alpha正向递推时,采用循环状态反馈方式初始化,这样即使不知道初始状态,也能得到很好的译码性能。第二递推也称beta反向递推,在beta反向递推时,不采用滑窗反推初始值的方式,而采用保存循环边界状态的方式,下次迭代用这次保存的状态初始化边界状态,令beta反推节省了计算初始值的时间。下面对第一递推和第二递推进行详细描述。
第三,根据第一初始值及状态转移度量值进行第一递推,得到第一度量值,其中,当L=1、且Y=1时,则第一初始值为第一预设值;当L≠1、且Y=1、且X=1时,则第一初始值为第L-1次迭代译码时的第M目标分量译码器的第Q处理窗口的第一度量值;当L≠1、且Y=1、且X≠1时,则第一初始值为第L-1次迭代译码时的第X-1目标分量译码器的第Q处理窗口的第一度量值;当Y≠1时,则第一初始值为第L次迭代译码时的第X目标分量译码器的第Y-1处理窗口的第一度量值。
在本实施例中,第一预设值可以通过如下方式得到:
Figure F_210611093254917_917543073
,其中,
Figure F_210611093255106_106897074
为第一预设值,M为目标分量译码器的目标个数,N为表示目标原始数据单元的码元个数。
第一度量值可以通过如下方式得到:
Figure F_210611093255249_249507075
,其中,
Figure F_210611093255413_413628076
为第一度量值,
Figure F_210611093255557_557676077
为第一初始值,
Figure F_210611093255698_698224078
为状态转移度量值,
Figure F_210611093255831_831860079
Figure F_210611093255959_959014080
Figure F_210611093256099_099154081
第一递推从第一个处理窗口开始,第一个处理窗口计算到最后一组状态度量值(即第一个处理窗口的第一度量值)时(一组是16个状态度量值),将最后一组状态度量值传递给第二个处理窗口,作为第二个处理窗口的初始值,接下来计算第二个处理窗口的第一度量值,直到计算到最后一组状态度量值(即第二个处理窗口的第一度量值),将最后一组状态度量值传递给第三个处理窗口,依次类推,直到最后一个处理窗口,最后一个处理窗口的最后一组状态度量值(即最后一个处理窗口的第一度量值)传递给第二次迭代,作为第二次迭代的初始值。
为了更清楚地表达第一递推的过程,请参照图12,图12为本发明实施例提供的第一递推的过程示意图,图12中,目标分量译码器一共有M个:第1个分量译码器~第M个分量译码器,第一次迭代为L=1时的迭代译码,第二次迭代为L=2时的迭代译码,例如,第一递推包括以下情况:情况1:第一次迭代的第1个分量译码器的第一个处理窗口为L=1、且Y=1的一个示例,此时第一初始值为第一预设值;情况2:第二次迭代的第1个分量译码器的第一个处理窗口为L≠1、且Y=1、且X=1的一个示例,则第一初始值为第一次迭代译码时的第M个分量译码器的第Q处理窗口的第一度量值;情况3:第二次迭代的第2个分量译码器的第一个处理窗口为L≠1、且Y=1、且X≠1的一个示例,则第一初始值为第1次迭代译码时的第1个分量译码器的第Q处理窗口的第一度量值;情况4:第1个分量译码器的第2个处理窗口为Y≠1的一个示例,则第一初始值为第一次迭代译码时的第1目标分量译码器的第1处理窗口的第一度量值。
在本实施例中,在第一递推时采用目标分量译码器内部连续递推,并对递推值做了循环边界处理,和全并行译码算法相比,加快了译码收敛速度,并且保证了译码的误码性能。
需要说明的是,为了防止
Figure F_210611093256227_227501082
数值过大溢出,将在
Figure F_210611093256359_359084083
第一递推的过程中进行动态归一化操作,归一化的原则就是每计算完一个目标原始数据单元中的一个码元的
Figure F_210611093256484_484407084
时,用公式
Figure F_210611093256626_626991085
归一化
Figure F_210611093256753_753049086
,其中
Figure F_210611093256896_896501087
。归一化后
Figure F_210611093257027_027307088
的幅度明显变小,减小计算量的同时,还能降低存储量,有效的提高计算效率。
第四,根据第二初始值及根据状态转移度量值进行第二递推,得到第二度量值,其中,当L=1、且Y=Q时,则第二初始值为第二预设值;当L≠1、且Y=Q、且X=M时,则第二初始值为第L-1次迭代译码时的第1目标分量译码器的第1处理窗口的第二度量值;当L≠1、且Y=Q、且X≠M时,则第二初始值为第L-1次迭代译码时第X+1目标分量译码器的第1个处理窗口的第二度量值;当L=1、且Y≠Q,则第二初始值为第二预设值;当L≠1、且Y≠Q,则第二初始值为第L-1次迭代译码时第X目标分量译码器的第Y+1处理窗口的第二度量值。
在本实施例中,第二预设值可以通过如下方式得到:
Figure F_210611093257152_152343089
,其中,
Figure F_210611093257277_277345090
为第二预设值,M为目标分量译码器的目标个数,N为目标原始数据单元的码元的个数,g为第二预设值在整个反向递推中的位置。
第二度量值可以采用如下公式计算得到:
Figure F_210611093257425_425107091
,其中,
Figure F_210611093257552_552774092
为第二度量值,
Figure F_210611093257693_693352093
为第二初始值,
Figure F_210611093257804_804664094
为状态转移度量值,
Figure F_210611093257914_914039095
Figure F_210611093258032_032184096
Figure F_210611093258158_158731097
为了更清楚地表达第二递推的过程,请参照图13,图13为本发明实施例提供的第二递推的过程示意图,图13中,在第一次迭代的第一个目标分量译码器内的每个处理窗口,用等概率log(1/16)来初始化
Figure F_210611093258314_314951098
的16个状态初值,其中,
Figure F_210611093258440_440029099
是每个处理窗口的反向递推的第一个值,其中,g为第二递推的前一个第二度量值的位置,k为当前计算的第二度量值的序号。然后保存
Figure F_210611093258592_592298100
递推的最后一组状态度量值(即第二度量值),然后将第二度量值的16个状态传递给第二次迭代,并用其初始化第二次迭代的第二初始值,第二次迭代保存的值传递给第三次迭代,依次类推,传递方式如图13所示,图13中,目标分量译码器一共有M个:第1个分量译码器~第M个分量译码器,第一次迭代为L=1时的迭代译码,第二次迭代为L=2时的迭代译码,例如,第二递推包括以下情况:情况1:第一次迭代的第1个分量译码器的第Q处理窗口为L=1、且Y=Q的一个示例,则第二初始值为第二预设值;情况2:第二次迭代的第M个分量译码器的第Q处理窗口为L≠1、且Y=Q、且X=M的一个示例,则第二初始值为第一次迭代译码时的第1目标分量译码器的第1处理窗口的第二度量值;情况3:第二次迭代的第1个分量译码器的第Q个处理窗口为L≠1、且Y=Q、且X≠M的一个示例,则第二初始值为第一次迭代译码时第2个分量译码器的第1个处理窗口的第二度量值;情况4:第一次迭代译码时第2个处理窗口为L=1、且Y≠Q的一个示例,则第二初始值为第二预设值;情况5:第二次迭代译码时第1个分量译码器的第2处理窗口为L≠1、且Y≠Q的一个示例,则第二初始值为第一次迭代译码时第2个分量译码器的第3处理窗口的第二度量值。
在本实施例中,在第二递推时,与滑窗算法相比,去掉滑窗的反推求初始值这一过程,用上次迭代的保存值来代替,这一过程保证了译码的收敛速度,保证译码的性能,同时降低了译码计算量,提高译码吞吐量,减小时延。
需要说明的是,为了防止
Figure F_210611093258784_784737101
数值过大溢出,将在
Figure F_210611093258992_992617102
第二递推的过程中进行动态归一化操作,归一化的原则就是每计算完一个目标原始数据单元中的一个码元的
Figure F_210611093259126_126463103
时,用公式
Figure F_210611093259301_301226104
来归一化
Figure F_210611093259431_431179105
,其中
Figure F_210611093259580_580598106
。归一化后
Figure F_210611093259705_705593107
的幅度明显变小,减小计算量的同时,还能降低存储空间,有效的提高计算效率。
在本实施例中,第一递推和第二递推均使用了边界状态度量反馈,可以很好地利用前一次迭代递推得到的度量值用于下一次迭代递推中,解决了循环状态未知的问题,完成了状态转移度量值的无限连续传递。
第五,根据第一度量值、第二度量值及状态转移度量值,得到目标处理窗口对应的中间后验概率数据单元。
在本实施例中,中间外信息数据单元可以通过如下公式计算:
Figure F_210611093259831_831985108
,其中,
Figure F_210611093300099_099858109
为第k时刻的中间后验概率数据单元,
Figure F_210611093300242_242168110
为第k-1时刻的第一度量值;
Figure F_210611093300369_369149111
为第k时刻的状态转移度量值,
Figure F_210611093300494_494639112
Figure F_210611093300626_626125113
为第k+1时刻的第二度量值,
Figure F_210611093300756_756823114
为第k时刻z为00时的状态转移度量值。
第六,根据信道可靠度、目标原始数据单元、中间后验概率数据单元、目标先验概率数据单元,得到目标处理窗口对应的中间外信息数据单元。
在本实施例中,中间外信息数据单元可以通过如下公式计算:
Figure F_210611093300897_897466115
其中:
z=1时,
Figure F_210611093301053_053715116
;
z=2时,
Figure F_210611093301190_190502117
;
z=3时,
Figure F_210611093301332_332493118
;
Figure F_210611093301488_488778119
为中间外信息数据单元,
Figure F_210611093301629_629522120
为输入是z时的第k时刻的中间后验概率数据单元,z=1,2,3,该中间后验概率数据单元是一个相对值,是z=1,2,3时的中间后验概率数据单元减去输入数据是0的概率值;
Figure F_210611093301776_776805121
为目标先验概率数据单元,
Figure F_210611093301933_933274122
是信道可靠度,
Figure F_210611093302122_122344123
Figure F_210611093302285_285371124
是高斯信道的噪声方差,alp是归一化参数,可以设置为0.7或者0.75。
在本实施例中,上述第一~第六步骤的处理方法也称为max-log-map译码算法。
需要说明的是,目标原始数据单元还可以包括多个码元,每个码元包括两个bit,因此,每一码元也称为一个比特对。当目标原始数据单元包括多个码元时,每一个码元都需要进行上述第一~第六的6个步骤,得到每一个码元对应的中间后验概率数据码元,最后将目标原始数据单元的所***元进行组合,得到中间后验概率数据单元。
还需要说明的是,当目标原始数据单元包括多个码元时,目标处理窗口的第一度量值为该目标处理窗口对应的目标原始数据单元中最后一个码元进行第一递推得到的第一度量值,目标处理窗口的第二度量值为该目标处理窗口对应的目标原始数据单元中第一个码元进行第二递推得到的第二度量值。
还需要说明的是,当目标原始数据单元包括多个码元时,例如,包括1~T个码元,对于第一递推而言,当L=1、且Y=1、且Z=1(即当前是第一迭代译码的第1处理窗口的第1码元)时,则第一初始值为第一预设值;当L=1、且Y=1、且Z≠1(1<Z≤T)时,则第一初始值为第L次迭代译码时的第X目标分量译码器的第Y处理窗口的第Z-1个码元处理后得到的第一度量值;对于第二递推而言,当L=1、且Y= Q、且Z=T时,则第二初始值为第二预设值;当L=1、且Y=Q、且Z≠T(1≤Z<T)时,则第二初始值为第L次迭代译码时的第X目标分量译码器的第Y处理窗口的第Z+1个码元处理后得到的第二度量值。
子步骤S12010-111,将每一目标分量译码器的所有处理窗口对应的多个中间外信息数据单元进行组合,得到每一目标分量译码器对应的中间外信息数据分段。
子步骤S12010-112,将每一目标分量译码器的所有处理窗口对应的多个中间后验概率数据单元进行组合,得到每一目标分量译码器对应的中间后验概率数据分段。
在本实施例中,为了充分发挥了turbo码二元输入的特点,降低硬判决误判的情况,本发明实施例还提供了一种硬判决的具体实现方式,请参照图14,图14为本发明实施例提供硬判决的流程示意图,该方法包括以下步骤:
步骤S200,将后验概率数据进行解交织,得到多个判决值,其中,每一判决值对应一个译码结果。
在本实施例中,解交织后的后验概率数据表示为:
Figure F_210611093302411_411646125
,其中对应每一个k值有
Figure F_210611093302539_539132126
三个数值,每一个z对应一个判决值,即
Figure F_210611093302695_695324127
步骤S210,若多个判决值均小于或者等于0,则将预设译码结果作为迭代译码的目标译码结果。
在本实施例中,硬判决时按照如下的顺序
Figure F_210611093302843_843726128
,对G寻找最大值,并获得最大值的顺序号,
Figure F_210611093302999_999055129
,如果index=1,译码结果为[0,0];如果index=2,译码结果为[0,1] ;如果index=3,译码结果为[1,0],否则译码结果为[1,1]。
在本实施例中,若
Figure F_210611093303158_158295130
均小于0,则G的最大值为0,则与0对应的译码结果为预设译码结果,此处的预设译码结果为[1,1]。
步骤S220,若多个判决值中至少一个判决值大于0,得到的将最大的判决值对应的译码结果作为迭代译码的目标译码结果。
在本实施例中,若
Figure F_210611093303288_288904131
中至少一个大于0,则其中值最大的index对应的译码结果为目标译码结果。
本发明实施例提供的上述方法,利用多个判决值和零之间的关系充分验证,多方矫正方式,减小硬判决时误判的可能性,降低硬判决误判的情况。
在本实施例中,迭代译码一般是设置最大的迭代次数,但是根据信道质量的不同,有些数据无需达到最大迭代次数就已经收敛到正确的码元,为了有效减少迭代译码次数,在数据已经收敛的情况下,提前退出迭代,本发明实施例还提供了一种提前结束迭代译码的具体实现方式,请参照图15,图15为本发明实施例提供提前结束迭代译码实现方法的流程示意图,该方法包括以下步骤:
步骤S300,获取相邻两次迭代译码的目标译码结果。
步骤S310,若相邻两次迭代译码的目标译码结果的校验值相同,则判定满足预设条件。
在本实施例中,作为一种具体校验方式,可以采用CRC32校验。
例如,第i次迭代译码的目标译码结果是
Figure F_210611093303415_415476132
,其中,N为编码前数据对个数,也就是码元的个数,用
Figure F_210611093303544_544405133
计算CRC32得到CRCi。第i+1次迭代译码的目标译码结果是
Figure F_210611093303685_685096134
,用
Figure F_210611093303816_816563135
计算CRCi+1,若CRCi等于CRCi+1,则译码提前退出。为了降低CRC32计算的误码率,将CRC32的计算多项式量化为:
Figure F_210611093303951_951657136
,其中,x为数据的位置,例如,目标译码结果的数据序列为:1111 1111 1010 1101 00001100 0011 0101 1,该数据序列的CRC32的计算方式为:
Figure F_210611093304126_126426137
本发明实施例提供的上述方法,在相邻两次迭代译码的目标译码结果的校验值一致的情况下提前退出迭代译码,大大降低了迭代译码的迭代次数,节省了迭代译码的时间,增加了迭代译码的吞吐量,有效降低了迭代译码的时延。
在本实施例中,根据实际的需要,为了简化处理,本发明实施例还提供了另一种判定满足预设条件的方式,请参照图16,图16为本发明实施例提供的判定满足预设条件的方法的流程示意图,该方法包括以下步骤:
步骤S400,若迭代译码的迭代次数达到预设次数,则判定满足预设条件。
在本实施例中,预设次数可以根据具体的应用场景进行设定。
为了执行上述实施例及各个可能的实施方式中数据访问方法的相应步骤,下面给出一种turbo译码装置100的实现方式。请参照图17,图17示出了本发明实施例提供的turbo译码装置100的方框示意图。需要说明的是,本实施例所提供的turbo译码装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
turbo译码装置100包括获取模块110、确定模块120及译码模块130。
获取模块110,用于获取待译码数据及多个分量译码器的数量。
确定模块120,用于根据数量、待译码数据的长度及预设交织规则,确定为子译码器分配的目标分量译码器的目标个数。
作为一种具体实施方式,确定模块120具体用于:将数量确定为待选个数;按照待选个数及待译码数据的长度将待译码数据分成多个数据段;将多个数据段中每一数据段均按照预设交织规则进行交织,得到每一数据段交织后的存储地址序列;若多个存储地址序列中两两之间均不存在访问冲突,则将待选个数作为目标个数;若多个存储地址序列中任意两个存储地址存在访问冲突,则将待选个数递减,以递减后的待选个数替换待选个数,并重复执行对待译码数据进行分段,并对每一数据段按照预设交织规则进行交织,直至确定出目标个数。
译码模块130,用于将待译码数据输入子译码器进行迭代译码,直至满足预设条件,得到译码后的数据。
作为一种具体实施方式,译码模块130具体用于:将待译码数据及预设先验概率数据输入至子译码器进行迭代译码,得到外信息数据及后验概率数据;将外信息数据进行解交织,并用解交织后的结果替换预设先验概率数据后进行下一次迭代译码,直至满足预设条件。
作为一种具体实施方式,每次迭代译码包括第一次译码和第二次译码,待译码数据包括原始数据及与原始数据对应的第一校验数据和第二校验数据,译码模块130用于将待译码数据及预设先验概率数据输入至子译码器进行迭代译码,得到外信息数据及后验概率数据时,具体用于:将原始数据、第一校验数据及预设先验概率数据输入至子译码器进行第一次译码,得到中间外信息数据及中间后验概率数据;将中间外信息数据进行解交织,得到中间先验概率数据;将原始数据按照预设交织则进行交织、并将交织后的原始数据、第二校验数据及中间先验概率数据输入至子译码器进行第二次译码,得到外信息数据及后验概率数据。
作为一种具体实施方式,译码模块130在用于将原始数据、第一校验数据及预设先验概率数据输入至子译码器进行第一次译码,得到中间外信息数据及中间后验概率数据时,具体用于:按照目标个数分别将原始数据、第一校验数据及预设先验概率数据分成多个原始数据分段、多个第一校验数据分段及多个先验概率数据分段;将每一原始数据分段及对应的每一第一校验数据分段、每一先验概率数据分段输入每一目标分量译码器进行第一次译码,得到每一目标分量译码器输出的中间外信息数据分段及中间后验概率数据分段;将所有目标分量译码器输出的多个中间外信息数据分段进行组合,得到中间外信息数据;将所有目标分量译码器输出的多个中间后验概率数据分段进行组合,得到中间后验概率数据。
作为一种具体实施方式,每一目标分量译码器包括预设个数的处理窗口,每一原始数据分段、第一校验数据分段及先验概率数据分段分别包括预设个数的原始数据单元、预设个数的第一校验数据单元及预设个数的先验概率数据单元;一个处理窗口用于处理一个原始数据单元及对应的第一校验数据单元和先验概率数据单元,译码模块130在用于将每一原始数据分段及对应的每一第一校验数据分段、每一先验概率数据分段输入每一目标分量译码器进行第一次译码,得到每一目标分量译码器输出的中间外信息数据分段及中间后验概率数据分段时,具体用于:根据每一目标分量译码器中每一处理窗口对应的原始数据单元、第一校验数据单元及先验概率数据单元,计算每一目标分量译码器的每一处理窗口对应的中间外信息数据单元及中间后验概率数据单元;将每一目标分量译码器的所有处理窗口对应的多个中间外信息数据单元进行组合,得到每一目标分量译码器对应的中间外信息数据分段;将每一目标分量译码器的所有处理窗口对应的多个中间后验概率数据单元进行组合,得到每一目标分量译码器对应的中间后验概率数据分段。
作为一种具体实施方式,迭代译码包括多次,目标分量译码器包括第1至第M目标分量译码器,每个目标分量译码器均包括第1至第Q个处理窗口,其中,M和Q为正整数;译码模块130在用于根据每一目标分量译码器中每一处理窗口对应的原始数据单元、第一校验数据单元及先验概率数据单元,计算每一目标分量译码器的每一处理窗口对应的中间外信息数据单元及中间后验概率数据单元时,对于用于计算第L次迭代译码的第X目标分量译码器的第Y处理窗口对应的中间外信息数据单元及中间后验概率数据单元时,具体用于:根据第一初始值及状态转移度量值进行第一递推,得到第一度量值,其中,当L=1、且Y=1时,则第一初始值为第一预设值;当L≠1、且Y=1、且X=1时,则第一初始值为第L-1次迭代译码时的第M目标分量译码器的第Q处理窗口的第一度量值;当L≠1、且Y=1、且X≠1时,则第一初始值为第L-1次迭代译码时的第X-1目标分量译码器的第Q处理窗口的第一度量值;当Y≠1时,则第一初始值为第L次迭代译码时的第X目标分量译码器的第Y-1处理窗口的第一度量值;根据第二初始值及根据状态转移度量值进行第二递推,得到第二度量值,其中,当L=1、且Y=Q时,则第二初始值为第二预设值;当L≠1、且Y=Q、且X=M时,则第二初始值为第L-1次迭代译码时的第1目标分量译码器的第1处理窗口的第二度量值;当L≠1、且Y=Q、且X≠M时,则第二初始值为第L-1次迭代译码时第X+1目标分量译码器的第1个处理窗口的第二度量值;当L=1、且Y≠Q,则第二初始值为第二预设值;当L≠1、且Y≠Q,则第二初始值为第L-1次迭代译码时第X目标分量译码器的第Y+1处理窗口的第二度量值;根据第一度量值、第二度量值及状态转移度量值,得到目标处理窗口对应的中间外信息数据单元;根据信道可靠度、目标原始数据单元、中间外信息数据单元、目标先验概率数据单元,得到目标处理窗口对应的中间后验概率数据单元。
作为一种具体实施方式,译码模块130具体还用于:将后验概率数据进行解交织,得到多个判决值,其中,每一判决值对应一个译码结果;若多个判决值均小于或者等于0,则将预设译码结果作为迭代译码的目标译码结果;若多个判决值中至少一个判决值大于0,则将最大的判决值对应的译码结果作为迭代译码的目标译码结果。
作为一种具体实施方式,译码模块130具体还用于:获取相邻两次迭代译码的目标译码结果;若相邻两次迭代译码的目标译码结果的校验值相同,则判定满足预设条件。
作为一种具体实施方式,译码模块130具体还用于:若迭代译码的迭代次数达到预设次数,则判定满足预设条件。
本发明实施例还提供了一种译码设备,请参照图18,图18为本发明实施例提供的译码设备10的方框示意图,译码设备10包括译码控制器11、存储器12、总线13、通信接口14、子译码器15,子译码器15内部包括多个分量译码器。译码控制器11、存储器12通过总线13连接,译码控制器11通过通信接口14与外部设备通信,译码控制器11通过总线与子译码器15通过总线13连接,译码控制器11用于控制子译码器15中的各分量译码器协调工作。
译码控制器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过译码控制器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的译码控制器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器12用于存储程序,例如本发明实施例中的turbo译码装置100,turbo译码装置100包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,译码控制器11在接收到执行指令后,执行所述程序以实现本发明实施例中turbo译码方法中图1、图2中步骤S100、步骤S110极其子步骤S1101~S1105,子译码器中的分量译码器在接收到执行指令后,执行所述程序以实现本发明实施例中turbo译码方法中图1、图2中步骤S120极其子步骤S1201~S1202,以及图6、图8、图10、图14、图15及图16中的各步骤及子步骤。
存储器12可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory)。可选地,存储器12可以是内置于译码控制器11中的存储装置,也可以是独立于译码控制器11的存储装置。
总线13可以是ISA总线、PCI总线或EISA总线等。图18仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被译码设备执行时实现如上述的turbo译码方法。
综上所述,本发明实施例提供了一种turbo译码方法、装置、译码设备及存储介质,应用于译码设备,译码设备包括子译码器及多个分量译码器,所述方法包括:获取待译码数据及多个分量译码器的数量;所述数量、待译码数据的长度及预设交织规则,确定为子译码器分配的目标分量译码器的目标个数;将待译码数据输入子译码器进行迭代译码,直至满足预设条件,得到译码后的数据。相对于现有技术,本发明实施例根据分量译码器的数量、待译码数据的长度及预设交织规则,确定迭代译码时可以使用的目标分量译码器的目标个数,再将待译码数据输入子译码器进行迭代译码,直至满足预设条件,得到译码后的数据,由此实现了针对不同的码型在译码时采用的不同交织规则确定需要的目标分量译码器,故而兼顾了各种不同协议的不同码型,自动适应码型的需求,增强了turbo译码的兼容性和灵活性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种turbo译码方法,其特征在于,应用于译码设备,所述译码设备包括子译码器及多个分量译码器,所述方法包括:
获取待译码数据及所述多个分量译码器的数量;
根据所述数量、所述待译码数据的长度及预设交织规则,确定为所述子译码器分配的目标分量译码器的目标个数;
将所述待译码数据输入所述子译码器进行迭代译码,直至满足预设条件,得到译码后的数据;所述根据所述数量、所述待译码数据的长度及预设交织规则,确定为所述子译码器分配的目标分量译码器的目标个数的步骤包括:
将所述数量确定为待选个数;
按照所述待选个数及所述待译码数据的长度将所述待译码数据分成多个数据段;
将所述多个数据段中每一数据段均按照所述预设交织规则进行交织,得到所述每一数据段交织后的存储地址序列;
若多个所述存储地址序列中两两之间均不存在访问冲突,则将所述待选个数作为所述目标个数;
若多个所述存储地址序列中任意两个存储地址存在访问冲突,则将所述待选个数递减,以递减后的待选个数替换所述待选个数,并重复执行对所述待译码数据进行分段,并对每一数据段按照所述预设交织规则进行交织,直至确定出所述目标个数。
2.如权利要求1所述的turbo译码方法,其特征在于,所述将所述待译码数据输入所述子译码器进行迭代译码,直至满足预设条件,得到译码后的数据的步骤包括:
将所述待译码数据及预设先验概率数据输入至所述子译码器进行迭代译码,得到外信息数据及后验概率数据;
将所述外信息数据进行解交织,并用解交织后的结果替换所述预设先验概率数据后进行下一次迭代译码,直至满足所述预设条件。
3.如权利要求2所述的turbo译码方法,其特征在于,每次迭代译码包括第一次译码和第二次译码,所述待译码数据包括原始数据及与所述原始数据对应的第一校验数据和第二校验数据,所述将所述待译码数据及预设先验概率数据输入至所述子译码器进行迭代译码,得到外信息数据及后验概率数据的步骤包括:
将所述原始数据、所述第一校验数据及所述预设先验概率数据输入至所述子译码器进行第一次译码,得到中间外信息数据及中间后验概率数据;
将所述中间外信息数据进行解交织,得到中间先验概率数据;
将所述原始数据按照所述预设交织则进行交织、并将交织后的原始数据、所述第二校验数据及所述中间先验概率数据输入至所述子译码器进行第二次译码,得到所述外信息数据及所述后验概率数据。
4.如权利要求3所述的turbo译码方法,其特征在于,所述将所述原始数据、所述第一校验数据及所述预设先验概率数据输入至所述子译码器进行第一次译码,得到中间外信息数据及中间后验概率数据的步骤包括:
按照所述目标个数分别将所述原始数据、所述第一校验数据及所述预设先验概率数据分成多个原始数据分段、多个第一校验数据分段及多个先验概率数据分段;
将每一所述原始数据分段及对应的每一所述第一校验数据分段、每一所述先验概率数据分段输入每一所述目标分量译码器进行第一次译码,得到每一所述目标分量译码器输出的中间外信息数据分段及中间后验概率数据分段;
将所有所述目标分量译码器输出的多个所述中间外信息数据分段进行组合,得到所述中间外信息数据;
将所有所述目标分量译码器输出的多个所述中间后验概率数据分段进行组合,得到所述中间后验概率数据。
5.如权利要求4所述的turbo译码方法,其特征在于,每一所述目标分量译码器包括预设个数的处理窗口,每一所述原始数据分段、所述第一校验数据分段及所述先验概率数据分段分别包括所述预设个数的原始数据单元、所述预设个数的第一校验数据单元及所述预设个数的先验概率数据单元;一个所述处理窗口用于处理一个原始数据单元及对应的第一校验数据单元和先验概率数据单元;
所述将每一所述原始数据分段及对应的每一所述第一校验数据分段、每一所述先验概率数据分段输入每一所述目标分量译码器进行第一次译码,得到每一所述目标分量译码器输出的中间外信息数据分段及中间后验概率数据分段的步骤包括:
根据每一所述目标分量译码器中每一所述处理窗口对应的所述原始数据单元、所述第一校验数据单元及所述先验概率数据单元,计算每一所述目标分量译码器的每一所述处理窗口对应的中间外信息数据单元及中间后验概率数据单元;
将每一所述目标分量译码器的所有处理窗口对应的多个所述中间外信息数据单元进行组合,得到每一所述目标分量译码器对应的所述中间外信息数据分段;
将每一所述目标分量译码器的所有处理窗口对应的多个所述中间后验概率数据单元进行组合,得到每一所述目标分量译码器对应的所述中间后验概率数据分段。
6.如权利要求5所述的turbo译码方法,其特征在于,所述迭代译码包括多次,所述目标分量译码器包括第1至第M目标分量译码器,每个所述目标分量译码器均包括第1至第Q个处理窗口,其中,所述M和所述Q为正整数;
所述根据每一所述目标分量译码器中每一所述处理窗口对应的所述原始数据单元、第一校验数据单元及先验概率数据单元,计算每一所述目标分量译码器的每一所述处理窗口对应的中间外信息数据单元及中间后验概率数据单元的步骤包括:
计算第L次迭代译码的第X目标分量译码器的第Y处理窗口对应的中间外信息数据单元及中间后验概率数据单元的步骤包括:
将第L次迭代译码的第X目标分量译码器的第Y处理窗口对应的所述原始数据单元、所述第一校验数据单元及所述先验概率数据单元分别作为目标原始数据单元、目标第一校验数据单元及目标先验概率数据单元,其中,L为正整数、1≤X≤M、1≤Y≤Q;
根据所述目标原始数据单元、所述目标第一校验数据单元及所述目标先验概率数据单元,得到状态转移度量值;
根据第一初始值及所述状态转移度量值进行第一递推,得到第一度量值,其中,当所述L=1、且所述Y=1时,则所述第一初始值为第一预设值;当所述L≠1、且所述Y=1、且所述X=1时,则所述第一初始值为第L-1次迭代译码时的第M目标分量译码器的第Q处理窗口的第一度量值;当所述L≠1、且所述Y=1、且所述X≠1时,则所述第一初始值为第L-1次迭代译码时的第X-1目标分量译码器的第Q处理窗口的第一度量值;当所述Y≠1时,则所述第一初始值为第L次迭代译码时的第X目标分量译码器的第Y-1处理窗口的第一度量值;
根据第二初始值及根据所述状态转移度量值进行第二递推,得到第二度量值,其中,当所述L=1、且所述Y=所述Q时,则所述第二初始值为第二预设值;当所述L≠1、且所述Y=所述Q、且所述X=所述M时,则所述第二初始值为第L-1次迭代译码时的第1目标分量译码器的第1处理窗口的第二度量值;当所述L≠1、且所述Y=所述Q、且所述X≠所述M时,则所述第二初始值为第L-1次迭代译码时第X+1目标分量译码器的第1个处理窗口的第二度量值;当所述L=1、且所述Y≠所述Q,则所述第二初始值为所述第二预设值;当所述L≠1、且所述Y≠所述Q,则所述第二初始值为第L-1次迭代译码时第X目标分量译码器的第Y+1处理窗口的第二度量值;
根据所述第一度量值、所述第二度量值及所述状态转移度量值,得到所述目标处理窗口对应的所述中间外信息数据单元;
根据信道可靠度、所述目标原始数据单元、所述中间外信息数据单元、所述目标先验概率数据单元,得到所述目标处理窗口对应的所述中间后验概率数据单元。
7.如权利要求2所述的turbo译码方法,其特征在于,所述将所述待译码数据及预设先验概率数据输入至所述子译码器进行迭代译码,得到外信息数据及后验概率数据的步骤之后还包括:
将所述后验概率数据进行解交织,得到多个判决值,其中,每一所述判决值对应一个译码结果;
若所述多个判决值均小于或者等于0,则将预设译码结果作为所述迭代译码的目标译码结果;
若所述多个判决值中至少一个判决值大于0,则将最大的判决值对应的译码结果作为所述迭代译码的目标译码结果。
8.如权利要求7所述的turbo译码方法,其特征在于,所述方法还包括:
获取相邻两次所述迭代译码的目标译码结果;
若相邻两次所述迭代译码的目标译码结果的校验值相同,则判定满足所述预设条件。
9.如权利要求2所述的turbo译码方法,其特征在于,所述方法还包括:
若迭代译码的迭代次数达到预设次数,则判定满足所述预设条件。
10.一种turbo译码装置,其特征在于,应用于译码设备,所述译码设备包括子译码器及多个分量译码器,所述装置包括:
获取模块,用于获取待译码数据及所述多个分量译码器的数量;
确定模块,用于根据所述数量、所述待译码数据的长度及预设交织规则,确定为所述子译码器分配的目标分量译码器的目标个数;
译码模块,用于将所述待译码数据输入所述子译码器进行迭代译码,直至满足预设条件,得到译码后的数据;
所述确定模块具体用于:将所述数量确定为待选个数;按照所述待选个数及所述待译码数据的长度将所述待译码数据分成多个数据段;将所述多个数据段中每一数据段均按照所述预设交织规则进行交织,得到所述每一数据段交织后的存储地址序列;若多个所述存储地址序列中两两之间均不存在访问冲突,则将所述待选个数作为所述目标个数;若多个所述存储地址序列中任意两个存储地址存在访问冲突,则将所述待选个数递减,以递减后的待选个数替换所述待选个数,并重复执行对所述待译码数据进行分段,并对每一数据段按照所述预设交织规则进行交织,直至确定出所述目标个数。
11.一种译码设备,其特征在于,所述译码设备执行计算机程序时实现如权利要求1-9中任一项所述的turbo译码方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被译码设备执行时实现如权利要求1-9中任一项所述的turbo译码方法。
CN202110658186.XA 2021-06-15 2021-06-15 turbo译码方法、装置、译码设备及存储介质 Active CN113258940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110658186.XA CN113258940B (zh) 2021-06-15 2021-06-15 turbo译码方法、装置、译码设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110658186.XA CN113258940B (zh) 2021-06-15 2021-06-15 turbo译码方法、装置、译码设备及存储介质

Publications (2)

Publication Number Publication Date
CN113258940A CN113258940A (zh) 2021-08-13
CN113258940B true CN113258940B (zh) 2021-10-08

Family

ID=77188021

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110658186.XA Active CN113258940B (zh) 2021-06-15 2021-06-15 turbo译码方法、装置、译码设备及存储介质

Country Status (1)

Country Link
CN (1) CN113258940B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992213B (zh) * 2021-10-28 2024-06-04 成都星联芯通科技有限公司 一种双路并行译码存储设备及方法
CN113890546B (zh) * 2021-12-06 2022-03-04 成都星联芯通科技有限公司 交织器配置方法、装置、电子设备及计算机可读存储介质
CN113992212B (zh) * 2021-12-27 2022-03-22 成都星联芯通科技有限公司 数据交织方法及fpga

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110299921A (zh) * 2019-06-11 2019-10-01 东南大学 一种模型驱动的Turbo码深度学习译码方法
CN111130572A (zh) * 2020-01-06 2020-05-08 西南电子技术研究所(中国电子科技集团公司第十研究所) Turbo码快速实现方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100512249C (zh) * 2004-03-18 2009-07-08 上海交通大学 正交频分复用调制子载波分割与子带交叉排列的方法
CN101777924B (zh) * 2010-01-11 2014-02-19 新邮通信设备有限公司 一种Turbo码译码方法和装置
CN102064838B (zh) * 2010-12-07 2014-01-15 西安电子科技大学 基于新型无冲突交织器的低延迟并行Turbo译码方法
CN102611464B (zh) * 2012-03-30 2015-01-28 电子科技大学 基于外信息并行更新的Turbo译码器
CN103595424B (zh) * 2012-08-15 2017-02-08 重庆重邮信科通信技术有限公司 分量译码方法、译码器及Turbo译码方法、装置
CN103916142A (zh) * 2013-01-04 2014-07-09 联想(北京)有限公司 信道译码器和译码方法
US20150236723A1 (en) * 2014-02-19 2015-08-20 Eric Morgan Dowling Parallel VLSI architectures for constrained turbo block convolutional decoding
CN104092470B (zh) * 2014-07-25 2017-07-07 中国人民解放军国防科学技术大学 一种Turbo码译码装置及方法
TWI589125B (zh) * 2016-08-26 2017-06-21 國立交通大學 渦輪編碼的數位資料之去穿刺方法與裝置及渦輪解碼器系統
CN112436843B (zh) * 2020-11-27 2024-03-15 西安空间无线电技术研究所 一种Turbo码信道外交织器的设计方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110299921A (zh) * 2019-06-11 2019-10-01 东南大学 一种模型驱动的Turbo码深度学习译码方法
CN111130572A (zh) * 2020-01-06 2020-05-08 西南电子技术研究所(中国电子科技集团公司第十研究所) Turbo码快速实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AMP Dual-Turbo Iterative Detection and Decoding for LDPC Coded Multibeam MSC Uplink;Yang Yang等;《中国通信》;20180615(第06期);135-138 *
Improving the Structure of Multiple Dimension Turbo Codes Using Multiple Identical Component Encoders;《Wuhan University Journal of Natural Sciences》;20100824(第04期);323-326 *

Also Published As

Publication number Publication date
CN113258940A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN113258940B (zh) turbo译码方法、装置、译码设备及存储介质
JP3677257B2 (ja) 畳込み復号装置
KR101323444B1 (ko) 반복적 디코더 및 반복적 디코딩 방법
US6603412B2 (en) Interleaved coder and method
CN1168237C (zh) 移动通信***中的分量解码器及其方法
US6038696A (en) Digital transmission system and method comprising a product code combined with a multidimensional modulation
US7020827B2 (en) Cascade map decoder and method
CN104025459A (zh) 译码处理方法及译码器
RU2571597C2 (ru) Способ и устройство для декодирования турбокода
KR100346529B1 (ko) 디지탈신호프로세서
US20090172495A1 (en) Methods and Apparatuses for Parallel Decoding and Data Processing of Turbo Codes
WO2011111654A1 (ja) 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
US20070113161A1 (en) Cascaded radix architecture for high-speed viterbi decoder
CN106209117B (zh) 一种低资源消耗的多参数可配置Viterbi译码器
JP5169771B2 (ja) 復号器および復号方法
CN107565983B (zh) 一种Turbo码的译码方法及装置
CN1335684A (zh) 一种高速Turbo码解码器
CN1129257C (zh) 串行回溯的最大似然解码方法及其使用该方法的解码器
CN113872615A (zh) 一种可变长度的Turbo码译码器装置
CN108880569B (zh) 一种基于反馈分组马尔科夫叠加编码的速率兼容编码方法
JP2003152556A (ja) 誤り訂正符号復号装置
US10116337B2 (en) Decoding method for convolutionally coded signal
CN112332868A (zh) 一种基于DVB-RCS2的turbo并行译码方法
TWI650954B (zh) 用於通訊系統中迴旋碼解碼裝置的解碼方法及相關的判斷模組
CN113765622B (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
TR01 Transfer of patent right

Effective date of registration: 20211019

Address after: 801-406, Hongqiao Road, Binhu District, Wuxi City, Jiangsu Province, 214100

Patentee after: Wuxi Xinglian Xintong Technology Co.,Ltd.

Address before: No.1, 7th floor, building 6, No.5, Xixin Avenue, high tech Zone, Chengdu, Sichuan 610000

Patentee before: Chengdu Xinglian Xintong Technology Co.,Ltd.

Patentee before: Wuxi Xinglian Xintong Technology Co.,Ltd.

TR01 Transfer of patent right