CN108055043B - 一种比特翻转译码的方法及装置 - Google Patents
一种比特翻转译码的方法及装置 Download PDFInfo
- Publication number
- CN108055043B CN108055043B CN201711317456.0A CN201711317456A CN108055043B CN 108055043 B CN108055043 B CN 108055043B CN 201711317456 A CN201711317456 A CN 201711317456A CN 108055043 B CN108055043 B CN 108055043B
- Authority
- CN
- China
- Prior art keywords
- bit
- value
- predetermined
- preset
- equal
- 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
Images
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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供的比特翻转译码的方法及装置,首先计算编码中待翻转比特的位数pk,然后根据pk值设置计数变量,再判定计数变量的值是否大于第一预设迭代次数值,根据判定结果确定单比特翻转还是多比特翻转,进一步计算每一个比特位的品质因素并按其从大到小进行排序,取排在前pk的比特位进行翻转,并计算迭代伴随向量sk,最后检测是否停止译码或进行下一步迭代。该方法可以实现多比特位同时翻转,译码收敛速度较快,并且在待翻转位数值满足一定条件后转换为单比特位翻转,从而保证该比特翻转译码方法的有效性,解决了现有技术的问题。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种比特翻转译码的方法及装置。
背景技术
由于BF(Bit Flipping)算法在低密度奇偶校验码(Low Density Parity Check,LDPC)译码速度方面固有的优势,因此得到广泛的研究。现有基于BF算法改进的常用算法有可靠性权重比特翻转算法(Reliability Ratio-based Weighted Bit-flipping,RRWBF),该算法提出一种新的品质因素函数去衡量编码中每一个比特位的可靠性,然后翻转品质因素最低比特完成译码。但是该算法品质函数计算包含较多的冗余计算,使得算法实现效率较低。
进一步,通过对RRWBF算法品质因素计算公式进行改进,消除上述算法中包含的冗余计算,提出一种实现有效的可靠性权重比特翻转算法(Implementation-efficientReliability Ratio-based Weighted Bit-flipping,IRRWBF)。在IRRWBF算法的迭代计算过程中,每次只有一个比特位的译码结果被翻转,因此每次译码只有包含这一比特位的校验节点的校验值发生变化。只更新符号发生变化的品质因素分量即可完成所有品质因素的更新,从而大幅度降低计算量。然而,尽管IRRWBF算法相较于与其它比特翻转算法具有良好的译码性能,但是其单比特位翻转的方法使其进行译码的收敛速度较慢。
发明内容
本发明提供一种比特翻转译码的方法及装置,用以解决现有技术的如下问题:现有比特翻转译码的方法采用单比特位翻转译码的方式,译码的收敛速度较慢。
为解决上述技术问题,本发明提供一种比特翻转译码的方法及装置,方法包括:S11,按第一预定公式计算得到预定编码中第k步待翻转比特的位数pk,检测pk是否大于或等于预设极值U,在pk大于或等于U的情况下,将pk的取值设置为U,在pk小于U的情况下,确定pk为待翻转比特的位数,其中,k为大于或等于0的整数;S12,检测pk是否小于pk-1,在pk小于pk-1的情况下,设置pk对应的计数变量的值等于pk,在pk大于或等于pk-1的情况下,设置pk对应的计数变量的值为pk-1对应的计数变量的值加一;S13,检测所述计数变量的值是否大于或等于第一预设迭代次数值,在所述计数变量的值大于或等于所述第一预设迭代次数值的情况下,取pk=1,并执行S14,在所述计数变量的值小于所述第一预设迭代次数值的情况下,直接执行S14;S14,按实现有效的可靠性权重比特翻转算法IRRWBF计算所述预定编码中每一个比特位的品质因素,将所述每一个比特位的品质因素由大到小排列,选取排在前pk个的比特位进行翻转,并在翻转后按照第二预定公式计算生成迭代伴随向量sk;S15,检测sk是否满足sk=0或步骤数k是否满足k=Kmax,如果满足,停止译码并生成翻转后编码zk,如果不满足,执行S11,其中,Kmax为第二预设迭代次数值。
可选的,所述第二预定公式为sk=zk×HT,其中,HT为所述预定编码的校验矩阵的转置矩阵。
可选的,按第一预定公式计算得到预定编码中第k步待翻转比特的位数pk之前,还包括:当k=0时,按第三预定公式计算所述每个比特位的初始硬判决值zn0,其中,所述第三预定公式为zn0=(1-sgn(yn))/2,yn为所述预定编码中任一比特位,n为所述预定编码中的比特位的编号;按所述第二预定公式计算k=0时的所述sk。
此外,为实现上述目的,本发明还提供一种比特翻转译码的装置,包括:翻转位数确定模块,用于按第一预定公式计算得到预定编码中第k步待翻转比特的位数pk,检测pk是否大于或等于预设极值U,在pk大于或等于U的情况下,将pk的取值设置为U,在pk小于U的情况下,确定pk为待翻转比特的位数,其中,k为大于或等于0的整数;计数变量设置模块,用于检测pk是否小于pk-1,在pk小于pk-1的情况下,设置pk对应的计数变量的值等于pk,在pk大于或等于pk-1的情况下,设置pk对应的计数变量的值为pk-1对应的计数变量的值加一;第一检测模块,用于检测所述计数变量的值是否大于或等于第一预设迭代次数值,在所述计数变量的值大于或等于所述第一预设迭代次数值的情况下,取pk=1,并触发比特位翻转模块工作,在所述计数变量的值小于所述第一预设迭代次数值的情况下,直接触发所述比特位翻转模块工作;所述比特位翻转模块,用于按实现有效的可靠性权重比特翻转算法IRRWBF计算所述预定编码中每一个比特位的品质因素,将所述每一个比特位的品质因素由大到小排列,选取排在前pk个的比特位进行翻转,并在翻转后按照第二预定公式计算生成迭代伴随向量sk;第二检测模块,用于检测sk是否满足sk=0或步骤数k是否满足k=Kmax,如果满足,停止译码并生成翻转后编码zk,如果不满足,触发所述翻转位数确定模块工作,其中,Kmax为第二预设迭代次数值。
可选的,所述第二预定公式为sk=zk×HT,其中,HT为所述预定编码的校验矩阵的转置矩阵。
可选的,初始化计算模块,用于当k=0时,按第三预定公式计算所述每个比特位的初始硬判决值zn0,其中,所述第三预定公式为zn0=(1-sgn(yn))/2,yn为所述预定编码中任一比特位,n为所述预定编码中的比特位的编号;所述比特位翻转模块,还用于按所述第二预定公式计算k=0时的所述sk。
本发明提供的比特翻转译码的方法,首先计算编码中待翻转比特的位数pk,然后根据计算出的pk值进行计数变量的设置,再判定计数变量的值是否大于第一预设迭代次数值,如果计数变量的值大于预设的第一迭代次数值,则将pk值确定为1,否则,按之前计算出的pk值进行翻转,进一步计算每一个比特位的品质因素并按品质因素从大到小进行排序,取排在前pk的比特位进行翻转,在翻转后计算生成迭代伴随向量sk,最后检测sk是否满足sk=0或步骤数k是否达到第二预设迭代次数值,如果满足,则停止译码,如果不满足,则重新计算pk,进行下一步迭代。该方法通过计算编码中每个比特位的品质因素并按从大到小排序,并根据第一预定公式计算得到的待翻转位数值,确定编码中要翻转的比特位,从而实现多比特位同时翻转,译码收敛速度较快,并且在待翻转位数值满足一定条件后转换为单比特位翻转,从而保证该比特翻转译码方法的有效性,解决了现有技术的如下问题:现有比特翻转译码的方法采用单比特位翻转译码的方式,译码的收敛速度较慢。
附图说明
图1是本发明第一实施例中比特翻转译码的方法的流程图;
图2是本发明第二实施例中比特翻转译码的装置的结构示意图;
图3是本发明第三实施例中比特翻转译码的方法的流程图;
图4是本发明第三实施例中不同译码方法信噪比和误码率关系的示意图。
具体实施方式
为了解决现有技术的如下问题:现有比特翻转译码的方法采用单比特位翻转译码的方式,译码的收敛速度较慢。本发明第一实施例提供了一种比特翻转译码的方法,该方法的流程图如图1所示,包括步骤S101至S106:
S101,按第一预定公式计算得到预定编码中第k步待翻转比特的位数pk,检测pk是否大于或等于预设极值U,在pk大于或等于U的情况下,将pk的取值设置为U,在pk小于U的情况下,确定pk为待翻转比特的位数。
在本实施例中,该步骤的目的是确定对预定编码进行译码过程中第k步要翻转比特的位数,其中,k为大于或等于0的整数。
S102,检测pk是否小于pk-1,在pk小于pk-1的情况下,设置pk对应的计数变量的值等于pk,在pk大于或等于pk-1的情况下,设置pk对应的计数变量的值为pk-1对应的计数变量的值加一。
该步骤中设置的计数变量,其作用是对译码时采用多比特位翻转切换到单比特位翻转进行指示,计数变量设置的值取决于pk和pk-1的大小关系。例如,如果pk-1=5,pk-1对应的计数变量的值为3,如果pk=6,那么pk对应的计数变量的值设置为4,而如果pk=2,那么pk对应的计数变量的值设置为2。
S103,检测计数变量的值是否大于或等于第一预设迭代次数值,在计数变量的值大于或等于第一预设迭代次数值的情况下,取pk=1,并执行下一步,在计数变量的值小于所述第一预设迭代次数值的情况下,直接执行下一步。
在确定了计数变量的值之后,本实施例中会设置一个预设迭代次数值,称为第一预设迭代次数值,将S102生成的计数变量的值与这个第一预设迭代次数值进行比较,如果计数变量的值在第k步中积累到了大于或等于第一预设迭代次数值的情况下,则说明以S101中计算的pk为翻转的比特位的数量的译码方法可能是无效的,此时,就可以取pk=1,即将多比特位翻转的方法切换为单比特位翻转的方法,再进行比特位翻转后,检验按单比特位翻转的方法是否有效。如果计数变量的值小于第一预设迭代次数值,则就按照S101中计算得到的pk为下一步要翻转的比特位的数量。
S104,按IRRWBF算法计算预定编码中每一个比特位的品质因素,将每一个比特位的品质因素由大到小排列,选取排在前pk个的比特位进行翻转,并在翻转后按照第二预定公式计算生成迭代伴随向量sk。
在确定了要翻转的比特位的数量之后,该步骤就是确定要翻转预定编码中的具体哪几个比特位。本实施例中的方法是先计算预定编码中每一个比特位的品质因素,每一个比特位品质因素的计算方法采用IRRWBF算法就可以计算得到,在此不再赘述。在计算出预定编码中每一个比特位的品质因素之后,将每一个比特位的品质因素后,取品质因素由大到小排在前pk个的比特位进行翻转,再按照第二预定公式计算生成迭代伴随向量sk,实际上sk在本实施例中代表一个行向量。
S105,检测sk是否满足sk=0或步骤数k是否满足k=Kmax,如果满足,执行S106,如果不满足,执行S101,其中,Kmax为第二预设迭代次数值。
该步骤说明了要停止译码的条件,即如果在比特位进行翻转后得到的sk是一个元素全都是0的向量,那么就认为译码正确,就要停止译码,或者步骤数k达到了第二预设迭代次数值,就要停止译码,在停止译码后,就要得到进行比特位翻转后的编码zk,将其作为最终译码的结果。实际上,zk是在每一次翻转后都要得到的翻转后的编码,以便能够计算出sk。
S106,停止译码并生成翻转后编码zk。
该步骤说明了要停止译码的条件,即如果在比特位进行翻转后得到的sk是一个元素全都是0的向量,那么就认为译码正确,就要停止译码,或者步骤数k达到了第二预设迭代次数值,就要停止译码,在停止译码后,就要得到进行比特位翻转后的编码zk,将其作为最终译码的结果。实际上,zk是在每一次翻转后都要得到的翻转后的编码,以便能够计算出sk。
本发明提供的比特翻转译码的方法,首先计算编码中待翻转比特的位数pk,然后根据计算出的pk值进行计数变量的设置,再判定计数变量的值是否大于第一预设迭代次数值,如果计数变量的值大于预设的第一迭代次数值,则将pk值确定为1,否则,按之前计算出的pk值进行翻转,进一步计算每一个比特位的品质因素并按品质因素从大到小进行排序,取排在前pk的比特位进行翻转,在翻转后计算生成迭代伴随向量sk,最后检测sk是否满足sk=0或步骤数k是否达到第二预设迭代次数值,如果满足,则停止译码,如果不满足,则重新计算pk,进行下一步迭代计算。该方法通过计算编码中每个比特位的品质因素并按从大到小排序,并根据第一预定公式计算得到的待翻转位数值,确定编码中要翻转的比特位,从而实现多比特位同时翻转,译码收敛速度较快,并且在待翻转位数值满足一定条件后转换为单比特位翻转,从而保证该比特翻转译码方法的有效性,解决了现有技术的如下问题:现有比特翻转译码的方法采用单比特位翻转译码的方式,译码的收敛速度较慢。
并且,本实施例中的计算迭代伴随向量sk的公式为sk=zk×HT,其中,HT为预定编码的校验矩阵的转置矩阵,而zk是每一步进行比特位翻转后得到的翻转后编码,由于本实施例中的编码是一串0和1组成的数字,因此可以将其看做一个行向量,以便于HT进行向量外积的计算。预定编码的校验矩阵H,是根据要进行比特翻转译码的预定编码具体确定的。
此外,按第一预定公式计算得到预定编码中第k步待翻转比特的位数pk之前,还包括一个初始化的过程,在本实施例中具体是:
当k=0时,按第三预定公式计算每个比特位的初始硬判决值zn0,其中,所述第三预定公式为zn0=(1-sgn(yn))/2,yn为预定编码中任一比特位,n为预定编码中的比特位的编号;按上述的第二预定公式计算k=0时的所述sk。
为实现上述目的,本发明第二实施例还提供一种比特翻转译码的装置,该装置的结构示意图如图2所示,包括:翻转位数确定模块10,用于按第一预定公式计算得到预定编码中第k步待翻转比特的位数pk,检测pk是否大于或等于预设极值U,在pk大于或等于U的情况下,将pk的取值设置为U,在pk小于U的情况下,确定pk为待翻转比特的位数,其中,k为大于或等于0的整数;计数变量设置模块20,与翻转位数确定模块10耦合,用于检测pk是否小于pk-1,在pk小于pk-1的情况下,设置pk对应的计数变量的值等于pk,在pk大于或等于pk-1的情况下,设置pk对应的计数变量的值为pk-1对应的计数变量的值加一;第一检测模块30,与计数变量设置模块20耦合,用于检测计数变量的值是否大于或等于第一预设迭代次数值,在计数变量的值大于或等于第一预设迭代次数值的情况下,取pk=1,并执行比特位翻转模块的功能,在计数变量的值小于所述第一预设迭代次数值的情况下,直接执行比特位翻转模块的功能;比特位翻转模块40,与第一检测模块30耦合,用于按实现有效的可靠性权重比特翻转算法IRRWBF计算预定编码中每一个比特位的品质因素,将每一个比特位的品质因素由大到小排列,选取排在前pk个的比特位进行翻转,并在翻转后按照第二预定公式计算生成迭代伴随向量sk;第二检测模块50,与比特位翻转模块40耦合,用于检测sk是否满足sk=0或步骤数k是否满足k=Kmax,如果满足,停止译码并生成翻转后编码zk,如果不满足,执行翻转位数确定模块的功能,其中,Kmax为第二预设迭代次数值。
在本实施例中,翻转位数确定模块的作用是按第一预定公式确定预定编码中要翻转比特位的位数值,本实施例中的第一预定公式与本发明第一实施例中的第一预定公式相同。
本实施例中计数变量设置模块的作用是:对预定编码进行译码时将多比特位翻转切换到单比特位翻转进行指示,具体来说,计数变量值的设置取决于翻转位数确定模块得到的pk和pk-1的大小关系。例如,如果pk-1=5,pk-1对应的计数变量的值为3,如果计算得到的pk=6,那么pk对应的计数变量的值设置为4,而如果计算得到的pk=2,那么pk对应的计数变量的值设置为2。
在确定了计数变量的值之后,本实施例中的第一检测模块会将计数变量设置模块生成的计数变量的值与第一预设迭代次数值进行比较,如果第一检测模块检测到计数变量的值在第k步中积累到了大于或等于第一预设迭代次数值,则说明以之前计算得到的pk为翻转的比特位的数量的译码方法可能是无效的,此时,就可以取pk=1,即将多比特位翻转的方法切换为单比特位翻转的方法,再进行比特位翻转后,检验按单比特位翻转的方法是否有效。如果第一检测模块检测到计数变量的值小于第一预设迭代次数值,那么就按照之前计算得到的pk作为下一步要翻转的比特位的数量。
在确定了要翻转的比特位的数量之后,就要确定翻转预定编码中的具体哪几个比特位。本实施例中的比特位翻转模块就用于计算预定编码中每一个比特位的品质因素,每一个比特位品质因素的计算方法采用现有的IRRWBF算法就可以计算得到,在此不再赘述。在计算出预定编码中每一个比特位的品质因素之后,将每一个比特位的品质因素后,本实施例中的比特位翻转模块还要取品质因素由大到小排在前pk个的比特位进行翻转,再按照第二预定公式计算生成迭代伴随向量sk,sk在本实施例中是一个行向量,本实施例中的第二预定公式与本发明第一实施例中的第二预定公式相同。
本实施例中第二检测模块用于判定何时停止译码,即如果在比特位进行翻转后得到的sk是一个元素全都是0的向量,那么就认为译码正确,就要停止译码,或者当步骤数k达到了第二预设迭代次数值,就要停止译码,在停止译码后,就要得到进行比特位翻转后的编码zk,将其作为最终译码的结果。实际上,zk是在每一次比特位进行翻转后都需要得到的翻转后的编码。
此外,本实施例中比特翻转译码的装置还包括:初始化计算模块,该模块用于当k=0时,按第三预定公式计算每个比特位的初始硬判决值zn0,其中的第三预定公式与本发明第一实施例中的第三预定公式相同,并且比特位翻转模块,还用于按第二预定公式计算k=0时的迭代伴随向量sk。
本发明提供的比特翻转译码的装置,首先由翻转位数确定模块计算编码中待翻转比特的位数pk,然后由计数变量设置模块进行计数变量的设置,再由第一检测模块检测计数变量的值是否大于第一预设迭代次数值,以确定进行比特翻转译码的方式,进一步由比特位翻转模块计算预定编码中每一个比特位的品质因素并按品质因素从大到小进行排序,取品质因素排在前pk的比特位进行翻转,在翻转后计算生成迭代伴随向量sk,最后由第二检测模块检测sk是否满足预设条件或步骤数k是否达到第二预设迭代次数值,如果满足,则停止译码,如果不满足,则重新计算pk,进行下一步迭代计算。该装置通过计算编码中每个比特位的品质因素并按从大到小排序,并根据第一预定公式计算得到的待翻转位数值,确定编码中要翻转的比特位,从而实现多比特位同时翻转,译码收敛速度较快,并且在待翻转位数值满足一定条件后可以转换为单比特位翻转,从而保证该比特翻转译码方法的有效性,解决了现有技术的如下问题:现有比特翻转译码的装置采用单比特位翻转译码的方式进行译码,译码的收敛速度较慢。
本发明第三实施例提供一种比特翻转译码的方法,本实施例中进行译码的预定编码的生成过程具体是:将二进制(N,K)预定LDPC编码的检验矩阵定义为H=[hMN],H的具体形式取决于LDPC码的具体内容,并且LDPC码的组成有其固定形式,N表示预定LDPC编码中的比特位数值,K表示编码中信息比特的位数值。将预定编码表示为c=[c1 c2 … cN],该预定编码经过二进制相移键控BPSK调制后送入加性高斯白噪声AWGN信道进行传输,其中调制规则为xn=1-2cn,经AWGN信道进行传输后的编码为y=[y1 y2 … yN],其中yn=xn+ηn(n=1,2...N),ηn表示零均值加性高斯白噪声,其噪声服从的高斯分布的方差为δ2。对上述传输后的编码进行译码的方法流程图如图3所示,包括步骤S301至S307:
S301,译码初始化。
本实施例中的初始化过程与第一实施例中k=0时的初始化过程相同。
S302,计算待翻转比特的位数值。
在本实施例中,计算待翻转比特的位数值的过程具体是:按第一预定公式计算得到预定编码中第k步待翻转比特的位数pk,检测pk是否大于或等于预设极值U,在pk大于或等于U的情况下,将pk的取值设置为U,在pk小于U的情况下,确定pk为待翻转比特的位数,其中,k为大于或等于0的整数,并且第一预定公式与第一实施例中的第一预定公式相同。
S303,设置待翻转比特的位数对应的计数变量的值。
该步骤具体是指:检测步骤S302中确定的pk值是否小于上一个迭代步骤中计算得到的pk-1,如果pk小于pk-1,设置pk对应的计数变量的值等于pk,如果pk大于或等于pk-1,设置pk对应的计数变量的值为pk-1对应的计数变量的值加一。
S304,根据计数变量的值确定比特翻转方式。
确定的方法具体是:检测计数变量的值是否大于或等于第一预设迭代次数值,在计数变量的值大于或等于第一预设迭代次数值的情况下,取pk=1,即在下一步中进行单比特位翻转,在计数变量的值小于第一预设迭代次数值的情况下,不改变pk的值,即在下一步进行多比特位翻转。
S305,确定预定编码中要进行翻转的比特位。
确定要翻转的比特位的方法具体是:按IRRWBF算法计算预定编码中每一个比特位的品质因素,将每一个比特位的品质因素由大到小排列,选取排在前pk个的比特位进行翻转,并在翻转后按照第二预定公式计算生成迭代伴随向量sk,本实施例中的第二预定公式与第一实施例中的第二预定公式相同。
S306,判断是否停止译码。
进行比特翻转译码后,要判断是否停止译码,该过程具体是:检测上述步骤计算得到的sk是否满足sk=0,或者步骤数k是否满足k=Kmax,如果满足上述两个条件的任意一个,执行S307,如果不满足,执行S302,其中,Kmax为第二预设迭代次数值。
S307,停止译码并生成翻转后编码zk。
为验证本实施例比特翻转译码方法的有效性,采用随机LDPC码中一种典型的Mackay码(504,252)进行仿真,将该Mackay码经BPSK调制之后经AWGN信道进行传输,对传输后得到的编码进行译码。该仿真中,第一预设迭代次数值为15,第二预设迭代次数值为50,第一预定公式中的修正因子α=1.6,预设极值U=8。,
按照本实施例中的比特翻转译码的方法和IRRWBF算法分别进行仿真得到的信噪比与误码率的关系示意图如图4所示,其中横坐标为信噪比,纵坐标为误码率。从图4中可以看出,当信噪比为4.4dB的时候,IRRWBF算法的平均迭代次数为42.7,而本发明的比特翻转方法的平均迭代次数为7.9,当信噪比为5dB的时候,IRRWBF算法的平均迭代次数为31.8,而本发明的比特翻转方法的平均迭代次数为5.5,本发明提供的比特翻转译码的方法,进行译码需要的迭代次数显著下降。
本发明提供的比特翻转译码的方法,进行初始化之后,首先计算编码中待翻转比特的位数pk,然后根据计算出的pk值进行计数变量的设置,再判定计数变量的值是否大于第一预设迭代次数值,如果计数变量的值大于预设的第一迭代次数值,则将pk值确定为1,否则,按之前计算出的pk值进行比特翻转,进一步,计算每一个比特位的品质因素并按品质因素从大到小进行排序,取排在前pk的比特位进行翻转,在翻转后计算生成迭代伴随向量sk,最后检测sk是否满足sk=0或步骤数k是否达到第二预设迭代次数值,如果满足,则停止译码,如果不满足,则重新计算pk,进行下一步迭代计算。该方法通过计算编码中每个比特位的品质因素并按从大到小排序,并根据第一预定公式计算得到的待翻转位数值,确定编码中要翻转的比特位,从而实现多比特位同时翻转,译码收敛速度较快,并且在待翻转位数值满足一定条件后转换为单比特位翻转,从而保证该比特翻转译码方法的有效性,解决了现有技术的如下问题:现有比特翻转译码的方法采用单比特位翻转译码的方式,译码的收敛速度较慢。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
Claims (8)
1.一种比特翻转译码的方法,其特征在于,包括:
S11,按第一预定公式计算得到预定编码中第k步待翻转比特的位数pk,检测pk是否大于或等于预设极值U,在pk大于或等于U的情况下,将pk的取值设置为U,在pk小于U的情况下,确定pk为待翻转比特的位数,其中,k为大于或等于0的整数;
S12,检测pk是否小于pk-1,在pk小于pk-1的情况下,设置pk对应的计数变量的值等于pk,在pk大于或等于pk-1的情况下,设置pk对应的计数变量的值为pk-1对应的计数变量的值加一;
S13,检测所述计数变量的值是否大于或等于第一预设迭代次数值,在所述计数变量的值大于或等于所述第一预设迭代次数值的情况下,取pk=1,并执行S14,在所述计数变量的值小于所述第一预设迭代次数值的情况下,直接执行S14;
S14,按实现有效的可靠性权重比特翻转算法IRRWBF计算所述预定编码中每一个比特位的品质因素,将所述每一个比特位的品质因素由大到小排列,选取排在前pk个的比特位进行翻转,并在翻转后按照第二预定公式计算生成迭代伴随向量sk;
S15,检测sk是否满足sk=0或步骤数k是否满足k=Kmax,如果满足,停止译码并生成翻转后编码zk,如果不满足,执行S11,其中,Kmax为第二预设迭代次数值。
3.如权利要求1所述的方法,其特征在于,
所述第二预定公式为sk=zk×HT,其中,HT为所述预定编码的校验矩阵的转置矩阵。
4.如权利要求1至3中任一项所述的方法,其特征在于,按第一预定公式计算得到预定编码中第k步待翻转比特的位数pk之前,还包括:
当k=0时,按第三预定公式计算所述每一 个比特位的初始硬判决值zn0,其中,所述第三预定公式为zn0=(1-sgn(yn))/2,yn为所述预定编码中任一比特位,n为所述预定编码中的比特位的编号;
按所述第二预定公式计算k=0时的所述sk。
5.一种比特翻转译码的装置,其特征在于,包括:
翻转位数确定模块,用于按第一预定公式计算得到预定编码中第k步待翻转比特的位数pk,检测pk是否大于或等于预设极值U,在pk大于或等于U的情况下,将pk的取值设置为U,在pk小于U的情况下,确定pk为待翻转比特的位数,其中,k为大于或等于0的整数;
计数变量设置模块,用于检测pk是否小于pk-1,在pk小于pk-1的情况下,设置pk对应的计数变量的值等于pk,在pk大于或等于pk-1的情况下,设置pk对应的计数变量的值为pk-1对应的计数变量的值加一;
第一检测模块,用于检测所述计数变量的值是否大于或等于第一预设迭代次数值,在所述计数变量的值大于或等于所述第一预设迭代次数值的情况下,取pk=1,并触发比特位翻转模块工作,在所述计数变量的值小于所述第一预设迭代次数值的情况下,直接触发所述比特位翻转模块工作;
所述比特位翻转模块,用于按实现有效的可靠性权重比特翻转算法IRRWBF计算所述预定编码中每一个比特位的品质因素,将所述每一个比特位的品质因素由大到小排列,选取排在前pk个的比特位进行翻转,并在翻转后按照第二预定公式计算生成迭代伴随向量sk;
第二检测模块,用于检测sk是否满足sk=0或步骤数k是否满足k=Kmax,如果满足,停止译码并生成翻转后编码zk,如果不满足,触发所述翻转位数确定模块工作,其中,Kmax为第二预设迭代次数值。
7.如权利要求5所述的装置,其特征在于,
所述第二预定公式为sk=zk×HT,其中,HT为所述预定编码的校验矩阵的转置矩阵。
8.如权利要求5至7中任一项所述的装置,其特征在于,还包括:
初始化计算模块,用于当k=0时,按第三预定公式计算所述每一 个比特位的初始硬判决值zn0,其中,所述第三预定公式为zn0=(1-sgn(yn))/2,yn为所述预定编码中任一比特位,n为所述预定编码中的比特位的编号;
所述比特位翻转模块,还用于按所述第二预定公式计算k=0时的所述sk。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711317456.0A CN108055043B (zh) | 2017-12-12 | 2017-12-12 | 一种比特翻转译码的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711317456.0A CN108055043B (zh) | 2017-12-12 | 2017-12-12 | 一种比特翻转译码的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108055043A CN108055043A (zh) | 2018-05-18 |
CN108055043B true CN108055043B (zh) | 2021-07-20 |
Family
ID=62124080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711317456.0A Active CN108055043B (zh) | 2017-12-12 | 2017-12-12 | 一种比特翻转译码的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108055043B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110677158A (zh) * | 2019-09-16 | 2020-01-10 | 中国电子科技集团公司电子科学研究院 | 一种fpga编码的方法、装置及存储介质 |
CN110719110B (zh) * | 2019-09-19 | 2023-04-18 | 东南大学 | 基于单比特翻转的ldpc码的噪声梯度下降译码方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707485A (zh) * | 2009-02-03 | 2010-05-12 | 天津博微科技有限公司 | 混合比特翻转和大数逻辑的ldpc译码方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100517981C (zh) * | 2007-01-05 | 2009-07-22 | 东南大学 | 低密度奇偶校验码的并行加权比特翻转解码方法 |
CN102970047B (zh) * | 2012-12-01 | 2016-02-24 | 电子科技大学 | 基于平均幅度的ldpc码加权梯度下降比特翻转译码算法 |
US9100052B2 (en) * | 2013-02-01 | 2015-08-04 | Samsung Electronics Co., Ltd. | QC-LDPC convolutional codes enabling low power trellis-based decoders |
CN104218955B (zh) * | 2014-09-28 | 2017-07-07 | 河南科技大学 | 基于比特翻转的ldpc码局部搜索译码方法 |
US10135464B2 (en) * | 2015-01-05 | 2018-11-20 | SK Hynix Inc. | Reliability-assisted bit-flipping decoding algorithm |
CN104796159B (zh) * | 2015-05-06 | 2018-05-08 | 电子科技大学 | 一种ldpc码加权比特翻转译码算法的混合提前停止迭代方法 |
CN105577195A (zh) * | 2015-12-22 | 2016-05-11 | 中国电子科技集团公司电子科学研究院 | 一种对置信传播算法进行修正的方法 |
CN105680881A (zh) * | 2016-01-08 | 2016-06-15 | 广西大学 | Ldpc译码方法及译码器 |
CN106160753B (zh) * | 2016-06-23 | 2020-01-10 | 湖南大学 | 一种适用于ssd的权值多比特翻转ldpc译码方法 |
-
2017
- 2017-12-12 CN CN201711317456.0A patent/CN108055043B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707485A (zh) * | 2009-02-03 | 2010-05-12 | 天津博微科技有限公司 | 混合比特翻转和大数逻辑的ldpc译码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108055043A (zh) | 2018-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108282264B (zh) | 基于比特翻转串行消除列表算法的极化码译码方法 | |
CN100499378C (zh) | 采用可变范围均匀量化的低密度奇偶校验码译码方法 | |
CN103888148B (zh) | 一种动态阈值比特翻转的ldpc码硬判决译码方法 | |
US7441178B2 (en) | Low complexity decoding of low density parity check codes | |
US7757150B2 (en) | Structured puncturing of irregular low-density parity-check (LDPC) codes | |
CN107026656B (zh) | 一种基于扰动的CRC辅助中短码长Polar码有效译码方法 | |
CN110995278B (zh) | 一种改进极性码串行消除列表比特翻转译码方法及系统 | |
RU2369008C2 (ru) | Устройство и способ кодирования-декодирования блочного кода проверки на четность с низкой плотностью с переменной длиной блока | |
US20070022354A1 (en) | Method for encoding low-density parity check code | |
US10797728B1 (en) | Systems and methods for diversity bit-flipping decoding of low-density parity-check codes | |
CN108039891B (zh) | 一种基于多级更新流程的极化码bp译码方法及装置 | |
CN105162552B (zh) | 一种q-LDPC-LT级联喷泉码方案的Ka频段深空通信方法及系统 | |
CN101707485A (zh) | 混合比特翻转和大数逻辑的ldpc译码方法 | |
CN107809303B (zh) | 一种基于awgn子信道优化的极化码译码方法 | |
CN110311755B (zh) | 一种利用线性分组码传输额外信息的方法 | |
US10135466B2 (en) | Data sending method and apparatus | |
CN108055043B (zh) | 一种比特翻转译码的方法及装置 | |
JP2008016959A (ja) | 復号装置、方法およびプログラム | |
CN1405981A (zh) | 改进的非规则低密度奇偶校验码纠错译码方法 | |
CN101615913A (zh) | Ldpc码的快速收敛译码算法 | |
KR102277758B1 (ko) | 이진 직렬 연결된 부호를 사용하는 시스템에서 복호 방법 및 장치 | |
JP2008544639A (ja) | 復号方法と装置 | |
CN110048803A (zh) | 一种低密度奇偶校验码译码的方法、装置和设备 | |
CN110912565B (zh) | 一种基于奇偶校验的SC-Flip译码方法 | |
CN112165338A (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 |