CN116505961B - 一种译码方法及相关装置 - Google Patents
一种译码方法及相关装置 Download PDFInfo
- Publication number
- CN116505961B CN116505961B CN202310778381.5A CN202310778381A CN116505961B CN 116505961 B CN116505961 B CN 116505961B CN 202310778381 A CN202310778381 A CN 202310778381A CN 116505961 B CN116505961 B CN 116505961B
- Authority
- CN
- China
- Prior art keywords
- sequence
- decoding
- decoded
- syndrome
- updating
- 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 119
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 174
- 239000011159 matrix material Substances 0.000 claims abstract description 52
- 230000008569 process Effects 0.000 claims description 74
- 238000004590 computer program Methods 0.000 claims description 28
- 230000009471 action Effects 0.000 claims description 23
- 230000006399 behavior Effects 0.000 claims description 12
- 238000012795 verification Methods 0.000 claims description 6
- 238000012937 correction Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3723—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明实施例提供了一种译码方法及译码装置,用于提升对待译码序列的纠错性能。本发明实施例方法包括:获取校验矩阵和待译码序列;根据所述校验矩阵和所述待译码序列所生成的伴随式,校验所述待译码序列是否有误;若是,则根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对所述待译码序列进行译码,所述初始化后的译码参数包括熵值阈值、位翻转序列、惩罚因子序列、第一伴随式和第二伴随式;输出译码结果。
Description
技术领域
本发明涉及芯片数据处理技术领域,尤其涉及一种译码方法及相关装置。
背景技术
低密度奇偶校验码(Low-Density Parity-Check Code,LDPC)被广泛应用于NANDflash应用中。为了覆盖不同老化条件下的Nand信道,多译码器集成系统成为一种多类型解决方案,以平衡纠错性能、吞吐量、功率与面积之间的权衡。在众多译码算法中,最小和译码器(Min-Sum Decoder,MS)提供了出色的译码性能,但牺牲了硬件的面积和功耗。相反,比特翻转译码器(Bit-Flipping Decoder,BF)通过牺牲纠错性能,来实现轻量级计算。
故如何在轻量级计算的基础上,提升比特翻转译码器BF的纠错性能,是目前亟待解决的一个问题。
发明内容
本发明实施例提供了一种译码方法及译码装置,用于根据初始化的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码,从而在轻量化计算的基础上,提升了对待译码序列的纠错性能。
本申请实施例第一方面提供了一种译码方法,包括:
获取校验矩阵和待译码序列;
根据校验矩阵和待译码序列所生成的伴随式,校验待译码序列是否有误;
若是,则根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码,初始化后的译码参数包括熵值阈值、位翻转序列、惩罚因子序列、第一伴随式和第二伴随式;
输出译码结果。
优选的,在根据初始化后的译码参数进行迭代计算之前,方法还包括:
根据伴随式和校验矩阵的最大列重,对译码参数进行初始化,以得到初始化后的译码参数。
优选的,根据伴随式和校验矩阵的最大列重,对译码参数进行初始化,包括:
根据校验矩阵的最大列重,计算熵值阈值;
令第一伴随式和第二伴随式均等于伴随式;
令位翻转序列的序列长度等于待译码序列的长度,且位翻转序列中的序列元素为相同值;
令惩罚因子序列的序列长度等于待译码序列的长度,且惩罚因子序列中的序列元素为相同值。
优选的,根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码,包括:
根据位翻转序列、第一伴随式和惩罚因子序列,计算熵值;
根据熵值和熵值阈值的比较结果,更新迭代位翻转序列和第二伴随式;
根据更新迭代后的第二伴随式,校验待译码序列是否有误;
若待译码序列无误,则根据更新迭代后的位翻转序列对待译码序列进行译码。
优选的,若根据更新后的第二伴随式,校验待译码序列有误,方法还包括:
根据熵值、熵值阈值、位翻转序列、第一伴随式计算更新迭代后的惩罚因子序列;
根据更新迭代后的第二伴随式,计算更新迭代后的第一伴随式;
根据更新迭代后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码。
优选的,若根据更新后的第二伴随式,校验待译码序列有误,方法还包括:
根据更新迭代后的位翻转序列、更新迭代后的第二伴随式和更新迭代后的惩罚因子序列计算更新迭代后的熵值阈值。
优选的,根据熵值、熵值阈值、位翻转序列、第一伴随式计算更新后的惩罚因子序列,包括:
若判断待译码序列的序列元素有误,则根据熵值和熵值阈值,对惩罚因子序列执行第一更新指令;
若译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则根据熵值、熵值阈值、位翻转序列和第一伴随式,对惩罚因子序列执行第二更新指令,其中,判断行为用于表征判断待译码序列的序列元素有误;
若译码过程未出现极大局部陷阱,或判断行为的正确率大于第二阈值时,则根据位翻转序列和第一伴随式,对惩罚因子序列执行第三更新指令,其中,第一更新指令、第二更新指令和第三更新指令互不相同。
优选的,根据熵值和熵值阈值的比较结果,更新位翻转序列和第二伴随式,包括:
若熵值大于或等于熵值阈值,或,
若熵值小于熵值阈值,译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则对位翻转序列和第二伴随式执行更新;
若译码过程未出现极大局部陷阱,或判断行为的正确率大于第二阈值时,则对位翻转序列和第二伴随式不执行更新。
优选的,译码过程出现极大局部陷阱,包括:
译码过程中的译码序列错误比特数目小于第三阈值,但迭代不收敛;
或,
译码过程中的译码序列的误翻转数目大于第四阈值。
本申请实施例第二方面提供了一种译码装置,包括:
获取单元,用于获取校验矩阵和待译码序列;
校验单元,用于根据校验矩阵和待译码序列所生成的伴随式,校验待译码序列是否有误;
译码单元,用于在待译码序列有误时,则根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码,初始化后的译码参数包括熵值阈值、位翻转序列、惩罚因子序列、第一伴随式和第二伴随式;
输出单元,用于输出译码结果。
优选的,装置还包括:
初始化单元,用于在根据初始化后的译码参数进行迭代计算之前,根据伴随式和校验矩阵的最大列重,对译码参数进行初始化,以得到初始化后的译码参数。
优选的,初始化单元具体用于:
根据校验矩阵的最大列重,计算熵值阈值;
令第一伴随式和第二伴随式均等于伴随式;
令位翻转序列的序列长度等于待译码序列的长度,且位翻转序列中的序列元素为相同值;
令惩罚因子序列的序列长度等于待译码序列的长度,且惩罚因子序列中的序列元素为相同值。
优选的,译码单元具体用于:
根据位翻转序列、第一伴随式和惩罚因子序列,计算熵值;
根据熵值和熵值阈值的比较结果,更新迭代位翻转序列和第二伴随式;
根据更新迭代后的第二伴随式,校验待译码序列是否有误;
若待译码序列无误,则根据更新迭代后的位翻转序列对待译码序列进行译码。
优选的,译码单元还用于:
若根据更新后的第二伴随式,校验待译码序列有误,根据熵值、熵值阈值、位翻转序列、第一伴随式计算更新迭代后的惩罚因子序列;
根据更新迭代后的第二伴随式,计算更新迭代后的第一伴随式;
根据更新迭代后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码。
优选的,译码单元还用于:
若根据更新后的第二伴随式,校验待译码序列有误,根据更新迭代后的位翻转序列、更新迭代后的第二伴随式和更新迭代后的惩罚因子序列计算更新迭代后的熵值阈值。
优选的,译码单元具体用于:
若判断待译码序列的序列元素有误,则根据熵值和熵值阈值,对惩罚因子序列执行第一更新指令;
若译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则根据熵值、熵值阈值、位翻转序列和第一伴随式,对惩罚因子序列执行第二更新指令,其中,判断行为用于表征判断待译码序列的序列元素有误;
若译码过程未出现极大局部陷阱,或判断行为的正确率大于第二阈值时,则根据位翻转序列和第一伴随式,对惩罚因子序列执行第三更新指令,其中,第一更新指令、第二更新指令和第三更新指令互不相同。
优选的,译码单元具体用于:
若熵值大于或等于熵值阈值,或,
若熵值小于熵值阈值,译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则对位翻转序列和第二伴随式执行更新;
若译码过程未出现极大局部陷阱,或判断行为的正确率大于第二阈值时,则对位翻转序列和第二伴随式不执行更新。
优选的,极大局部陷阱,包括:
译码过程中的译码序列错误比特数目小于第三阈值,但迭代不收敛;
或,
译码过程中的译码序列的误翻转数目大于第四阈值。
本申请实施例第三方面提供了一种计算机装置,包括处理器,该处理器在执行存储于存储器上的计算机程序时,用于实现本申请实施例第一方面提供的译码方法。
本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,用于实现本申请实施例第一方面提供的译码方法。
本申请实施例中,获取校验矩阵和待译码序列;根据校验矩阵和待译码序列所生成的伴随式,校验待译码序列是否有误;若是,则根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码,初始化后的译码参数包括熵值阈值、位翻转序列、惩罚因子序列、第一伴随式和第二伴随式;输出译码结果。
因为本申请实施例的初始化参数中引入了惩罚因子序列,且在迭代过程中,不断对惩罚因子序列进行更新迭代,使得在译码过程中的译码序列能从极大局部陷阱中逃离,从而提升了对待译码序列的纠错性能。
附图说明
图1为本申请实施例中译码方法的一个实施例示意图;
图2为本申请实施例中译码参数初始化过程的一个实施例示意图;
图3为图1实施例中步骤103的细化步骤;
图4为本申请实施例的译码方法与现有技术中译码方法的译码效果对比示意图;
图5为本申请实施例中译码方法的硬件装置示意图;
图6为本申请实施例中译码过程的示意图;
图7为本申请实施例中译码装置的一个实施例示意图。
具体实施方式
本发明实施例提供了一种译码方法及译码装置,用于根据初始化的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码,从而在轻量化计算的基础上,提升了对待译码序列的纠错性能。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为方便理解,下面对本申请实施例中的译码方法进行描述,请参阅图1,本申请实施例中译码方法的一个实施例,包括:
101、获取校验矩阵和待译码序列;
具体的,本申请实施例中在对待译码序列进行纠错时,一般是通过校验矩阵,对待译码序列进行正误校验,其中,在比特翻转译码方法中,校验矩阵为由0和1组成的矩阵,为方便描述,我们将校验矩阵称之为H,待译码序列称之为C其中,H可以为如下所述的矩阵:
而待译码序列C可以如下所述:C={c1,c2,...,cn}。
102、根据校验矩阵和待译码序列所生成的伴随式,校验待译码序列是否有误,若是,则执行步骤103,若否,则输出上述待译码序列;
具体的,校验矩阵对待译码序列进行校验时,一般是根据以下公式计算伴随式s,并利用s对待译码序列进行校验:
其中,若s=0,则表明待译码序列中不存在错误比特,若s≠0,则表明待译码序列中存在错误比特。
103、根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码,初始化后的译码参数包括熵值阈值、位翻转序列、惩罚因子序列、第一伴随式和第二伴随式;
若在步骤102中确定待译码序列有误,则根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码,其中,初始化的译码参数包括熵值阈值、位翻转序列、惩罚因子序列、第一伴随式和第二伴随式。
为描述方便,我们将位翻转序列记为e,将惩罚因子序列记为p,将熵值阈值记为En_max,将第一伴随式记为s1,将第二伴随式记为s2。
具体的,本申请实施例中的位翻转序列用于对待译码序列进行译码;熵值阈值用于确定是否对待译码序列中的当前比特进行翻转,若判断待译码序列中的当前比特有误,则对当前比特进行翻转,否则,则对当前比特不执行翻转;惩罚因子序列用于对译码过程的误判行为进行修正,第一伴随式用于计算校验接矩阵中变量节点的阈值,第二伴随式用于执行熵值阈值的计算,以及判断当前译码是否成功。
具体的,对于初始化后译码参数的由来,以及根据初始化后的译码参数进行迭代计算的过程,将在下面的实施例中进行描述,此处不再赘述。
104、输出译码结果。
进一步,对待译码序列译码后,若译码成功,则输出译码后的译码序列,若译码失败,则提示译码结束。
因为本申请实施例初始化后的译码参数中引入了惩罚因子序列,且在迭代过程中,不断对惩罚因子序列进行更新迭代(也即进行修正),使得在译码过程中的译码序列能够从极大局部陷阱中逃离,从而提升了对待译码序列的纠错性能。
图1实施例在执行步骤103之前,需要先对译码参数进行初始化,以得到初始化后的译码参数,下面对译码参数执行初始化的过程进行描述,请参阅图2,图2为译码参数初始化过程的一个实施例:
201、根据校验矩阵的最大列重,计算熵值阈值;
在描述本方法之前,先对比特翻转译码方法中的Tanner(泰纳)图进行说明,因为二进制LDPC码由具有m行和n列的奇偶校验矩阵H定义,而泰纳图是由基数n个变量节点集合v={v1,v2,…,vn}和基数m个校验节点集合x={x1,x2,…,xm}组成的二分图,这些节点通过边线连接。
如果校验矩阵H中的元素Hij=1,则说明节点vj和xi之间存在边线连接,其中。H中列(或者行)的权重是指该列或该行含有非零值的数目,故变量节点(或校验节点)的度等于H中对应列(或者对应行)的权重,也就是说变量节点vj(或者校验节点xi)的度,等于H中第j列的权重(或者H中第i行的权重)。
进一步,如果H中每个列都具有固定的权重dv,则二进制LDPC码被视为具有固定的列权重dv,如果H中存在至少两个不同权重的列,那么LDPC码具有可变列权重。
对应于步骤101中的校验矩阵,假设校验矩阵的最大列重为dv,则本申请实施例根据下述公式计算熵值阈值:
En_max=dv+1,
故对应于步骤101中的校验矩阵,则本申请实施例中的En_max为dv+1。
202、令第一伴随式和第二伴随式均等于伴随式;
在初始化过程中,本申请实施例令第一伴随式和所述第二伴随式均等于所述伴随式。
也即s1=s ,s2=s。
203、令位翻转序列的序列长度等于待译码序列的长度,且位翻转序列中的序列元素为相同值;
对应于图1实施例中的待译码序列C={c1,c2,...,cn},因为待译码序列的长度为n,故本申请实施例中的e={e1,e2,...,en},且e1至en都为一个相同的数值,为描述方便,本申请实施例令e1至en中的每个元素都为0。
也即:e={e1,e2,...,en},其中,ej=0,
204、令惩罚因子序列的序列长度等于待译码序列的长度,且惩罚因子序列中的序列元素为相同值。
同理,本申请实施例令:
p={p1,p2,...,pn},其中,pj=1,。
上述实施例对译码参数的初始化过程做了详细描述,从而提升了本申请实施例译码过程的可靠性。
基于图1实施例中的步骤103,下面对初始化后译码参数的迭代计算过程,以及根据迭代后的译码参数对待译码序列的译码过程进行描述,请参阅图3,图3为步骤103的细化步骤:
301、根据位翻转序列、第一伴随式和惩罚因子序列,计算熵值;
为便于理解,下面以分层比特翻转方法中的列分层为例,对待译码序列的译码过程进行描述:
因为待译码序列中的校验矩阵为m*n,故本申请中的列分层为n层,而根据校验矩阵H所确定的变量节点的个数为m,校验节点的个数为n。
具体的,针对每一层中的变量节点,按照以下公式计算对应变量节点的熵值:
其中,Ej表示第j个变量节点的熵值,ej表示e序列中第j个序列元素,S1j表示连接到第j个变量节点上的不满足的校验节点的个数,pj表示p序列中第j个序列元素。
其中:
表示连接到第j个变量节点上所有校验节点的集合。
302、根据熵值和熵值阈值的比较结果,更新迭代位翻转序列和第二伴随式;
得到每一层中对应变量节点的熵值后,则将对应变量节点的熵值与熵值阈值进行比较,并根据比较结果更新位翻转序列和第二伴随式。
具体的:
(1)若变量节点的熵值大于熵值阈值,则对位翻转序列和第二伴随式进行更新,也即:
若Ej≥En_max,则,/>,/>表示连接到第j个变量节点上所有校验节点的集合。
(2)若变量节点的熵值小于熵值阈值,译码过程出现极大局部陷阱,且对待译码序列中比特错误的误判率大于第一阈值时,也对位翻转序列和第二伴随式进行更新,也即:
若Ej<En_max,译码过程出现极大局部陷阱,ej=1,且S1j≠0时,则,,/>表示连接到第j个变量节点上所有校验节点的集合,其中,ej=1,且S1j≠0时,表征在译码过程中对比特错误的误判率大于第一阈值。
(3)若译码过程未出现所述极大局部陷阱,或所述判断行为的正确率大于第二阈值时,则对所述位翻转序列和所述第二伴随式不执行更新,也即:
译码过程未出现所述极大局部陷阱,或ej=0,或S1j=0,则ej=ej,s2i=s2i,,表示连接到第j个变量节点上所有校验节点的集合。
进一步,上述(2)和(3)中的极大局部陷阱,指的是:
A、译码过程中译码序列的错误比特数目小于第三阈值,但迭代不收敛;
或,
B、译码过程中的译码序列的误翻转数目大于第四阈值。
具体的,在数学表示中,若要判断A情况,可以统计第二伴随式中的数值为“1”的数目s_num,以及统计前后两次迭代更新中位翻转序列发生变化的数目e_num,若s_num和e_num在连续几次迭代中都小于设定的阈值,则判定发生了极大局部陷阱中的A情况;
在数学表示中,若要判断B情况,可以统计前后两次迭代更新中位翻转序列发生变化的数目e_num,以及当前的熵值阈值En_max,若e_num大于设定的阈值,而En_max小于设定的阈值,则判定发生了极大局部陷阱中的B情况。
303、根据更新迭代后的第二伴随式,校验待译码序列是否有误;
得到更新迭代后的第二伴随式后,则判断第二伴随式是否为0,若第二伴随式为0,则表明待译码序列无误,否则,待译码序列有误。
因为本申请实施例中有n个变量节点,故本申请实施例需要分别计算每个变量节点的熵值,然后根据每个变量节点的熵值和熵值阈值的比较结果,对位翻转序列和第二伴随式进行更新。
304、若待译码序列无误,则根据更新迭代后的位翻转序列对待译码序列进行译码。
若根据更新迭代后的第二伴随式校验待译码序列无误,则根据以下公式对待译码序列进行译码:
其中,表示译码后的序列,/>表示待译码序列,/>表示位翻转序列。
305、若待译码序列有误,则根据熵值、熵值阈值、位翻转序列、第一伴随式计算更新迭代后的惩罚因子序列;
具体的:
(1)若判断待译码序列的序列元素有误,则根据所述熵值和所述熵值阈值,对所述惩罚因子序列中的当前序列元素执行第一更新指令,也即:
若Ej≥En_max,令pj=0;
(2)若译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则根据所述熵值、所述熵值阈值、所述位翻转序列和所述第一伴随式,对所述惩罚因子序列执行第二更新指令,其中,判断行为用于表征判断待译码序列的序列元素有误,也即:
若Ej<En_max,译码过程出现极大局部陷阱,ej=1,且S1j≠0时,则令pj=2;
(3)若译码过程未出现所述极大局部陷阱,或所述判断行为的正确率大于所述第二阈值时,则根据所述位翻转序列和所述第一伴随式,对所述惩罚因子序列执行第三更新指令,其中,所述第一更新指令、所述第二更新指令和所述第三更新指令互不相同,也即:
若译码过程未出现所述极大局部陷阱,或ej=0,或S1j=0,则令pj=1。
其中,关于极大局部陷阱的描述与步骤302的描述类似,此处不再赘述。
具体的,在译码过程中,针对所有变量节点中的每个变量节点,分别执行步骤301至305,直至译码成功(第二伴随式为0),或所有的变量节点都执行完一个轮次的译码参数迭代计算后(也即所有的节点都执行完步骤301至步骤305),但仍然译码失败,则执行步骤306。
306、根据更新迭代后的第二伴随式,计算更新迭代后的第一伴随式;
具体的,在根据更新迭代后的第二伴随式,计算更新迭代后的第一伴随式,也即:
令s1=s2;
307、根据更新迭代后的位翻转序列、更新迭代后的第二伴随式和更新迭代后的惩罚因子序列计算更新迭代后的熵值阈值;
若对所有的变量节点都执行完一个轮次的译码参数的迭代计算后,则根据迭更新迭代后的位翻转序列、更新迭代后的第二伴随式和更新迭代后的惩罚因子序列计算更新迭代后的熵值阈值,也即:
308、根据更新迭代后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码。
若完成对所有译码参数的更新迭代后,则根据更新迭代后的译码参数继续进行迭代计算,并根据迭代计算后的译码参数继续对待译码序列进行译码。
也即对所有变量节点的译码参数完成一个轮次的迭代计算后,则根据更新迭代后的译码参数,对所有的变量节点执行第二个轮次的迭代计算,直至译码成功,或迭代轮次达到预设的最大迭代次数,待译码序列仍然有误,则输出译码失败。
本申请实施例中,一方面将伴随式延伸为两组,一组是用于计算变量节点熵值的第一伴随式,另一组是用于判断译码是否成功的第二伴随式,且熵值阈值的更新较现有技术的全比较器而言,降低了硬件实现的复杂度;另一方面本申请实施例根据极大局部陷阱动态调整惩罚因子序列,使得译码过程中的译码序列从极大局部陷阱中逃离 ,从而提升了纠错性能。
为方便比较,图4给出了本申请实施例中的译码方法与现有技术中译码方法性能的对比差异图。
进一步,为方便理解,下面结合具体的实施例举例说明:
假设分层比特翻转(Layered Bit-Flipping,LBF)译码方法的硬件装置如图5所示,其中:
LBF输入校验:此单元通过接收待译码序列 C,进行伴随式校验,若s =0,则C中不存在错误比特,直接由LBF输出单元输出译码序列 z,z = C;否则,C中存在错误比特,需要进行译码操作。
LBF初始化:此单元基于LBF输入校验单元中生成的伴随式s,为LBF译码器进行相关参数初始化配置,包括第一伴随式s1 = s和第二伴随式s2 = s。另外初始化参数还包括:位翻转序列 e=0;惩罚因子序列 p=1;熵值阈值En_max=dv+1。
LBF解码:此单元负责在每一次更新迭代中对变量节点的译码参数进行迭代计算,包括熵值计算、位翻转序列迭代计算、第二伴随式迭代计算、第二伴随式判断、惩罚因子序列调整、熵值阈值迭代计算,第一伴随式迭代计算。
LBF状态机:此单元主要负责管理发送到LBF解码模块和LBF输出模块的所有控制信号,以及它从LBF解码模块接收的控制信号。如果LBF状态机从LBF解码模块接收指示解码成功的中断信号,那么LBF状态机向LBF输出模块发送信号以指示当前译码成功;并且向LBF解码模块发送信号以指示可以接收下一组待译码序列。如果LBF状态机从LBF解码模块接收指示解码失败的中断信号,那么LBF状态机向LBF输出模块发送信号以指示当前译码失败;并且向LBF解码模块发送信号以指示可以接收下一组待译码序列。
LBF输出:此单元负责以下两个事件:第一,它存储从LBF解码模块输出的译码序列z。第二,它存储从LBF输入校验模块输出的待译码序列C。
进一步,图6给出了循环译码的过程图,在LBF解码模块中,熵值阈值En_max和第一伴随式s1是在一个轮次(一个轮次也即对所有的变量节点执行完一次译码参数的迭代更新)后更新迭代,而在当前轮次的译码过程中保持恒定不变。具体的说,在第一轮更新中,熵值阈值En_max和第一伴随式s1都来源于初始化的译码器,而在第二轮及其以后的迭代中,熵值阈值En_max和第一伴随式s1都来源于上一轮的更新。
而位翻转序列、惩罚因子序列和第一伴随式则是在每个变量节点的熵值计算后都一直在更新,但位翻转序列、惩罚因子序列和第一伴随式的初始值都来源于初始化参数。
基于图5的硬件装置,下面对译码过程进行详细描述:
硬件的输入参数包括:校验矩阵H、校验阵行数m、列数n,预设的最大循环次数,待译码序列C={c1,c2,...,cn};
输出参数包括:译码序列z={z1,z2,...,zn}
其中,硬件的初始化包括:
1、计算伴随式:s={s1,s2,...sm},si=Cj,j/>Nv(i),i/>[1,m],Nv(i)表示与第i个校验节点相连的变量节点的集合。
2、位翻转序列初始化:e={e1,e2,...en},ej=0,j[1,n]
3、惩罚因子序列初始化:p={p1,p2,...pn},其中,pj=1,j[1,n]
4、熵值阈值初始化:En_max=dv+1,其中,dv为校验矩阵H的最大列重;
5、第一伴随式和第二伴随式初始化,其中,s1=s,s2=s
其中,译码过程包括:
1、采用分层比特翻转译码方法对每个变量节点的熵值进行计算;
2、针对每个变量节点,根据计算后的熵值Ej与熵值阈值En_max进行比较,并且根据当前译码过程是否陷入极大局部陷阱进行分类:
2.1,若 Ej≥En_max,则ej=ej 1,Pj=0,s2i= s2i/>1,i/>Nx(j),Nx(j)表示连接到第j个变量节点上的所有校验节点的集合。
2.2,若 Ej<En_max,ej=1,S1j≠0,且译码过程出现极大局部陷阱,则ej=ej 1,Pj=2,s2i= s2i/>1,j/>[1,n],i/>Nx(j),Nx(j)表示连接到第j个变量节点上的所有校验节点的集合。
2.3,若译码过程未出现极大局部陷阱,或ej≠1,或S1j=0,则ej=ej,Pj=1,s2i= s2i,j[1,n],i/>Nx(j),Nx(j)表示连接到第j个变量节点上的所有校验节点的集合。
3、判断第二伴随式是否为0,如果为0,则输出译码序列z,如果不为0,则获取分层比特翻转译码中的当前层数,并判断当前层的层数是否小于n,若小于n,则针对下一层,继续更新译码参数,直至更新至第n层,若等于n,则进行下一轮次的更新(即执行下一轮次的译码),直至在预设的最大译码次数内译码成功,或者在达到预设的最大译码次数时,待译码序列仍然有误,则提示译码结束。
上面对本申请实施例中的译码方法做了详细描述,下面接着对本申请实施例中的译码装置进行描述,请参阅图7,本申请实施例中译码装置的一个实施例,包括:
获取单元701,用于获取校验矩阵和待译码序列;
校验单元702,用于根据校验矩阵和待译码序列所生成的伴随式,校验待译码序列是否有误;
译码单元703,用于在待译码序列有误时,则根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码,初始化后的译码参数包括熵值阈值、位翻转序列、惩罚因子序列、第一伴随式和第二伴随式;
输出单元704,用于输出译码结果。
优选的,装置还包括:
初始化单元705,用于在根据初始化后的译码参数进行迭代计算之前,根据伴随式和校验矩阵的最大列重,对译码参数进行初始化,以得到初始化后的译码参数。
优选的,初始化单元705具体用于:
根据校验矩阵的最大列重,计算熵值阈值;
令第一伴随式和第二伴随式均等于伴随式;
令位翻转序列的序列长度等于待译码序列的长度,且位翻转序列中的序列元素为相同值;
令惩罚因子序列的序列长度等于待译码序列的长度,且惩罚因子序列中的序列元素为相同值。
优选的,译码单元703具体用于:
根据位翻转序列、第一伴随式和惩罚因子序列,计算熵值;
根据熵值和熵值阈值的比较结果,更新迭代位翻转序列和第二伴随式;
根据更新迭代后的第二伴随式,校验待译码序列是否有误;
若待译码序列无误,则根据更新迭代后的位翻转序列对待译码序列进行译码。
优选的,译码单元703还用于:
若根据更新后的第二伴随式,校验待译码序列有误,根据熵值、熵值阈值、位翻转序列、第一伴随式计算更新迭代后的惩罚因子序列;
根据更新迭代后的第二伴随式,计算更新迭代后的第一伴随式;
根据更新迭代后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码。
优选的,译码单元703还用于:
若根据更新后的第二伴随式,校验待译码序列有误,根据更新迭代后的位翻转序列、更新迭代后的第二伴随式和更新迭代后的惩罚因子序列计算更新迭代后的熵值阈值。
优选的,译码单元703具体用于:
若判断待译码序列的序列元素有误,则根据熵值和熵值阈值,对惩罚因子序列执行第一更新指令;
若译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则根据熵值、熵值阈值、位翻转序列和第一伴随式,对惩罚因子序列执行第二更新指令,其中,判断行为用于表征判断待译码序列的序列元素有误;
若译码过程未出现极大局部陷阱,或判断行为的正确率大于第二阈值时,则根据位翻转序列和第一伴随式,对惩罚因子序列执行第三更新指令,其中,第一更新指令、第二更新指令和第三更新指令互不相同。
优选的,译码单元703具体用于:
若熵值大于或等于熵值阈值,或,
若熵值小于熵值阈值,译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则对位翻转序列和第二伴随式执行更新;
若译码过程未出现极大局部陷阱,或判断行为的正确率大于第二阈值时,则对位翻转序列和第二伴随式不执行更新。
优选的,极大局部陷阱,包括:
译码过程中的译码序列错误比特数目小于第三阈值,但迭代不收敛;
或,
译码过程中的译码序列的误翻转数目大于第四阈值。
需要说明的是,本申请实施例中各单元的作用与图1至图6实施例中描述的类似,此处不再赘述。
因为本申请实施例初始化后的译码参数中引入了惩罚因子序列,且在迭代过程中,通过译码单元703不断对惩罚因子序列进行更新迭代(也即进行修正),使得在译码过程中的译码序列能够从极大局部陷阱中逃离,从而提升了对待译码序列的纠错性能。
上面从模块化功能实体的角度对本发明实施例中的译码装置进行了描述,下面从硬件处理的角度对本发明实施例中的计算机装置进行描述:
该计算机装置用于实现译码装置的功能,本发明实施例中计算机装置一个实施例包括:
处理器以及存储器;
存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序时,可以实现如下步骤:
获取校验矩阵和待译码序列;
根据校验矩阵和待译码序列所生成的伴随式,校验待译码序列是否有误;
若是,则根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码,初始化后的译码参数包括熵值阈值、位翻转序列、惩罚因子序列、第一伴随式和第二伴随式;
输出译码结果。
在本发明的一些实施例中,在根据初始化后的译码参数进行迭代计算之前,处理器,还可以用于实现如下步骤:
根据伴随式和校验矩阵的最大列重,对译码参数进行初始化,以得到初始化后的译码参数。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
根据校验矩阵的最大列重,计算熵值阈值;
令第一伴随式和第二伴随式均等于伴随式;
令位翻转序列的序列长度等于待译码序列的长度,且位翻转序列中的序列元素为相同值;
令惩罚因子序列的序列长度等于待译码序列的长度,且惩罚因子序列中的序列元素为相同值。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
根据位翻转序列、第一伴随式和惩罚因子序列,计算熵值;
根据熵值和熵值阈值的比较结果,更新迭代位翻转序列和第二伴随式;
根据更新迭代后的第二伴随式,校验待译码序列是否有误;
若待译码序列无误,则根据更新迭代后的位翻转序列对待译码序列进行译码。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
根据熵值、熵值阈值、位翻转序列、第一伴随式计算更新迭代后的惩罚因子序列;
根据更新迭代后的第二伴随式,计算更新迭代后的第一伴随式;
根据更新迭代后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
根据更新迭代后的位翻转序列、更新迭代后的第二伴随式和更新迭代后的惩罚因子序列计算更新迭代后的熵值阈值。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
若判断待译码序列的序列元素有误,则根据熵值和熵值阈值,对惩罚因子序列执行第一更新指令;
若译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则根据熵值、熵值阈值、位翻转序列和第一伴随式,对惩罚因子序列执行第二更新指令,其中,判断行为用于表征判断待译码序列的序列元素有误;
若译码过程未出现极大局部陷阱,或判断行为的正确率大于第二阈值时,则根据位翻转序列和第一伴随式,对惩罚因子序列执行第三更新指令,其中,第一更新指令、第二更新指令和第三更新指令互不相同。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
若熵值大于或等于熵值阈值,或,
若熵值小于熵值阈值,译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则对位翻转序列和第二伴随式执行更新;
若译码过程未出现极大局部陷阱,或判断行为的正确率大于第二阈值时,则对位翻转序列和第二伴随式不执行更新。
在本发明的一些实施例中,极大局部陷阱,包括:
译码过程中的译码序列错误比特数目小于第三阈值,但迭代不收敛;
或,
译码过程中的译码序列的误翻转数目大于第四阈值。
可以理解的是,上述说明的计算机装置中的处理器执行计算机程序时,也可以实现上述对应的各装置实施例中各单元的功能,此处不再赘述。示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在译码装置中的执行过程。例如,计算机程序可以被分割成上述译码装置中的各单元,各单元可以实现如上述相应译码装置说明的具体功能。
计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机装置可包括但不仅限于处理器、存储器。本领域技术人员可以理解,处理器、存储器仅仅是计算机装置的示例,并不构成对计算机装置的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机装置还可以包括输入输出设备、网络接入设备、总线等。
处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质用于实现译码装置的功能,其上存储有计算机程序,计算机程序被处理器执行时,处理器,可以用于执行如下步骤:
获取校验矩阵和待译码序列;
根据校验矩阵和待译码序列所生成的伴随式,校验待译码序列是否有误;
若是,则根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码,初始化后的译码参数包括熵值阈值、位翻转序列、惩罚因子序列、第一伴随式和第二伴随式;
输出译码结果。
在本发明的一些实施例中,在根据初始化后的译码参数进行迭代计算之前,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,还可以用于实现如下步骤:
根据伴随式和校验矩阵的最大列重,对译码参数进行初始化,以得到初始化后的译码参数。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,还可以用于实现如下步骤:
根据校验矩阵的最大列重,计算熵值阈值;
令第一伴随式和第二伴随式均等于伴随式;
令位翻转序列的序列长度等于待译码序列的长度,且位翻转序列中的序列元素为相同值;
令惩罚因子序列的序列长度等于待译码序列的长度,且惩罚因子序列中的序列元素为相同值。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,还可以用于实现如下步骤:
根据位翻转序列、第一伴随式和惩罚因子序列,计算熵值;
根据熵值和熵值阈值的比较结果,更新迭代位翻转序列和第二伴随式;
根据更新迭代后的第二伴随式,校验待译码序列是否有误;
若待译码序列无误,则根据更新迭代后的位翻转序列对待译码序列进行译码。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,还可以用于实现如下步骤:
根据熵值、熵值阈值、位翻转序列、第一伴随式计算更新迭代后的惩罚因子序列;
根据更新迭代后的第二伴随式,计算更新迭代后的第一伴随式;
根据更新迭代后的译码参数进行迭代计算,并根据迭代计算后的译码参数对待译码序列进行译码。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,还可以用于实现如下步骤:
根据更新迭代后的位翻转序列、更新迭代后的第二伴随式和更新迭代后的惩罚因子序列计算更新迭代后的熵值阈值。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,还可以用于实现如下步骤:
若判断待译码序列的序列元素有误,则根据熵值和熵值阈值,对惩罚因子序列执行第一更新指令;
若译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则根据熵值、熵值阈值、位翻转序列和第一伴随式,对惩罚因子序列执行第二更新指令,其中,判断行为用于表征判断待译码序列的序列元素有误;
若译码过程未出现极大局部陷阱,或判断行为的正确率大于第二阈值时,则根据位翻转序列和第一伴随式,对惩罚因子序列执行第三更新指令,其中,第一更新指令、第二更新指令和第三更新指令互不相同。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,还可以用于实现如下步骤:
若熵值大于或等于熵值阈值,或,
若熵值小于熵值阈值,译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则对位翻转序列和第二伴随式执行更新;
若译码过程未出现极大局部陷阱,或判断行为的正确率大于第二阈值时,则对位翻转序列和第二伴随式不执行更新。
在本发明的一些实施例中,极大局部陷阱,包括:
译码过程中的译码序列错误比特数目小于第三阈值,但迭代不收敛;
或,
译码过程中的译码序列的误翻转数目大于第四阈值。
可以理解的是,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在相应的一个计算机可读取存储介质中。基于这样的理解,本发明实现上述相应的实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种译码方法,其特征在于,包括:
获取校验矩阵和待译码序列;
根据所述校验矩阵和所述待译码序列所生成的伴随式,校验所述待译码序列是否有误;
若是,则根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对所述待译码序列进行译码,所述初始化后的译码参数包括熵值阈值、位翻转序列、惩罚因子序列、第一伴随式和第二伴随式;
输出译码结果;
所述根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对所述待译码序列进行译码,包括:
根据所述位翻转序列、所述第一伴随式和所述惩罚因子序列,计算熵值;
根据所述熵值和所述熵值阈值的比较结果,更新迭代所述位翻转序列和所述第二伴随式;
根据更新迭代后的第二伴随式,校验所述待译码序列是否有误;
若所述待译码序列无误,则根据更新迭代后的位翻转序列对所述待译码序列进行译码。
2.根据权利要求1所述的方法,其特征在于,在根据初始化后的译码参数进行迭代计算之前,所述方法还包括:
根据所述伴随式和所述校验矩阵的最大列重,对译码参数进行初始化,以得到所述初始化后的译码参数。
3.根据权利要求2所述的方法,其特征在于,所述根据所述伴随式和所述校验矩阵的最大列重,对译码参数进行初始化,包括:
根据所述校验矩阵的最大列重,计算所述熵值阈值;
令所述第一伴随式和所述第二伴随式均等于所述伴随式;
令所述位翻转序列的序列长度等于所述待译码序列的长度,且所述位翻转序列中的序列元素为相同值;
令所述惩罚因子序列的序列长度等于所述待译码序列的长度,且所述惩罚因子序列中的序列元素为相同值。
4.根据权利要求1所述的方法,其特征在于,若根据更新迭代后的第二伴随式,校验所述待译码序列有误,所述方法还包括:
根据所述熵值、所述熵值阈值、所述位翻转序列、所述第一伴随式计算更新迭代后的惩罚因子序列;
根据更新迭代后的第二伴随式,计算更新迭代后的第一伴随式;
根据更新迭代后的译码参数进行迭代计算,并根据迭代计算后的译码参数对所述待译码序列进行译码。
5.根据权利要求4所述的方法,其特征在于,若根据更新后的第二伴随式,校验所述待译码序列有误,所述方法还包括:
根据所述更新迭代后的位翻转序列、所述更新迭代后的第二伴随式和所述更新迭代后的惩罚因子序列计算更新迭代后的熵值阈值。
6.根据权利要求4所述的方法,其特征在于,根据所述熵值、所述熵值阈值、所述位翻转序列、所述第一伴随式计算更新后的惩罚因子序列,包括:
若判断所述待译码序列的序列元素有误,则根据所述熵值和所述熵值阈值,对所述惩罚因子序列执行第一更新指令;
若译码过程出现极大局部陷阱,且判断行为的误判率大于第一阈值时,则根据所述熵值、所述熵值阈值、所述位翻转序列和所述第一伴随式,对所述惩罚因子序列执行第二更新指令,其中,所述判断行为用于表征判断所述待译码序列的序列元素有误;
若译码过程未出现极大局部陷阱,或所述判断行为的正确率大于第二阈值时,则根据所述位翻转序列和所述第一伴随式,对所述惩罚因子序列执行第三更新指令,其中,所述第一更新指令、所述第二更新指令和所述第三更新指令互不相同。
7.根据权利要求6所述的方法,其特征在于,根据所述熵值和所述熵值阈值的比较结果,更新所述位翻转序列和所述第二伴随式,包括:
若所述熵值大于或等于所述熵值阈值,或,
若所述熵值小于所述熵值阈值,译码过程出现所述极大局部陷阱,且所述判断行为的误判率大于所述第一阈值时,则对所述位翻转序列和所述第二伴随式执行更新;
若译码过程未出现所述极大局部陷阱,或所述判断行为的正确率大于所述第二阈值时,则对所述位翻转序列和所述第二伴随式不执行更新。
8.根据权利要求6所述的方法,其特征在于,所述译码过程出现极大局部陷阱,包括:
译码过程中的译码序列错误比特数目小于第三阈值,但迭代不收敛;
或,
译码过程中的译码序列的误翻转数目大于第四阈值。
9.一种译码装置,其特征在于,包括:
获取单元,用于获取校验矩阵和待译码序列;
校验单元,用于根据所述校验矩阵和所述待译码序列所生成的伴随式,校验所述待译码序列是否有误;
译码单元,用于在所述待译码序列有误时,则根据初始化后的译码参数进行迭代计算,并根据迭代计算后的译码参数对所述待译码序列进行译码,所述初始化后的译码参数包括熵值阈值、位翻转序列、惩罚因子序列、第一伴随式和第二伴随式;
输出单元,用于输出译码结果;
所述译码单元具体用于:
根据位翻转序列、第一伴随式和惩罚因子序列,计算熵值;
根据熵值和熵值阈值的比较结果,更新迭代位翻转序列和第二伴随式;
根据更新迭代后的第二伴随式,校验待译码序列是否有误;
若待译码序列无误,则根据更新迭代后的位翻转序列对待译码序列进行译码。
10.一种计算机装置,包括处理器,其特征在于,所述处理器在执行存储于存储器上的计算机程序时,用于实现如权利要求1至8中任一项所述的译码方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,用于实现如权利要求1至8中任一项所述的译码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310778381.5A CN116505961B (zh) | 2023-06-29 | 2023-06-29 | 一种译码方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310778381.5A CN116505961B (zh) | 2023-06-29 | 2023-06-29 | 一种译码方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116505961A CN116505961A (zh) | 2023-07-28 |
CN116505961B true CN116505961B (zh) | 2023-09-29 |
Family
ID=87328869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310778381.5A Active CN116505961B (zh) | 2023-06-29 | 2023-06-29 | 一种译码方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116505961B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008242034A (ja) * | 2007-03-27 | 2008-10-09 | Japan Aerospace Exploration Agency | データ圧縮/伸張と暗号化/復号と誤り制御とを行う統合符号化及び復号装置、並びに方法 |
CN103888148A (zh) * | 2014-03-20 | 2014-06-25 | 山东华芯半导体有限公司 | 一种动态阈值比特翻转的ldpc码硬判决译码方法 |
CN106160753A (zh) * | 2016-06-23 | 2016-11-23 | 湖南大学 | 一种适用于ssd的权值多比特翻转ldpc译码方法 |
CN111769839A (zh) * | 2019-03-30 | 2020-10-13 | 北京忆芯科技有限公司 | 快速的比特翻转译码方法 |
CN111835363A (zh) * | 2020-06-19 | 2020-10-27 | 超讯通信股份有限公司 | 基于交替方向乘子法的ldpc码译码方法 |
CN113612485A (zh) * | 2021-08-03 | 2021-11-05 | 深圳宏芯宇电子股份有限公司 | 一种译码方法、译码装置、设备及存储装置 |
-
2023
- 2023-06-29 CN CN202310778381.5A patent/CN116505961B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008242034A (ja) * | 2007-03-27 | 2008-10-09 | Japan Aerospace Exploration Agency | データ圧縮/伸張と暗号化/復号と誤り制御とを行う統合符号化及び復号装置、並びに方法 |
CN103888148A (zh) * | 2014-03-20 | 2014-06-25 | 山东华芯半导体有限公司 | 一种动态阈值比特翻转的ldpc码硬判决译码方法 |
CN106160753A (zh) * | 2016-06-23 | 2016-11-23 | 湖南大学 | 一种适用于ssd的权值多比特翻转ldpc译码方法 |
CN111769839A (zh) * | 2019-03-30 | 2020-10-13 | 北京忆芯科技有限公司 | 快速的比特翻转译码方法 |
CN111835363A (zh) * | 2020-06-19 | 2020-10-27 | 超讯通信股份有限公司 | 基于交替方向乘子法的ldpc码译码方法 |
CN113612485A (zh) * | 2021-08-03 | 2021-11-05 | 深圳宏芯宇电子股份有限公司 | 一种译码方法、译码装置、设备及存储装置 |
Non-Patent Citations (1)
Title |
---|
LDPC码的混合译码算法研究;罗萱;《中国优秀硕士论文电子期刊网》;第5-61页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116505961A (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783270B (zh) | 用于解码纠错码的系统和方法 | |
US10230396B1 (en) | Method and apparatus for layer-specific LDPC decoding | |
JP4062435B2 (ja) | 誤り訂正符号復号装置 | |
US9813080B1 (en) | Layer specific LDPC decoder | |
US7930621B2 (en) | Systems and methods for LDPC decoding with post processing | |
US7133853B2 (en) | Methods and apparatus for decoding LDPC codes | |
CN109787639B (zh) | 用于解码纠错码的系统和方法 | |
CN109560818B (zh) | 用于ldpc码的改进的最小和解码 | |
US8990661B1 (en) | Layer specific attenuation factor LDPC decoder | |
CN109818625B (zh) | 低密度奇偶检查码译码器 | |
CN109586731B (zh) | 用于解码纠错码的系统和方法 | |
CN104995844A (zh) | 具有对于ldpc码可靠性输入的比特翻转解码 | |
US9853661B2 (en) | On-the-fly evaluation of the number of errors corrected in iterative ECC decoding | |
CN108932177B (zh) | 具有可变长度分量的广义低密度奇偶校验码 | |
US10848182B2 (en) | Iterative decoding with early termination criterion that permits errors in redundancy part | |
US8751912B1 (en) | Layered low density parity check decoder | |
CN109873646B (zh) | 使用级联码的软芯片猎杀恢复 | |
US11381253B1 (en) | Decoding codeword based on higher order information | |
CN111865335B (zh) | 一种分组纠错码的译码方法、装置、存储介质和电子装置 | |
US20160049962A1 (en) | Method and apparatus of ldpc encoder in 10gbase-t system | |
CN114201335A (zh) | 基于质量的动态调度ldpc解码器 | |
CN105556851A (zh) | 用于从值的集合中识别第一极值和第二极值的方法及装置 | |
CN116505961B (zh) | 一种译码方法及相关装置 | |
CN111384976B (zh) | 稀疏校验矩阵的存储方法和读取方法 | |
US9391647B2 (en) | Decoder and decoding method thereof for min-sum algorithm low density parity-check code |
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 |