CN111130564A - 译码方法及装置 - Google Patents

译码方法及装置 Download PDF

Info

Publication number
CN111130564A
CN111130564A CN201811279838.3A CN201811279838A CN111130564A CN 111130564 A CN111130564 A CN 111130564A CN 201811279838 A CN201811279838 A CN 201811279838A CN 111130564 A CN111130564 A CN 111130564A
Authority
CN
China
Prior art keywords
decoding
symbol
variable
nodes
variable node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811279838.3A
Other languages
English (en)
Other versions
CN111130564B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201811279838.3A priority Critical patent/CN111130564B/zh
Priority to PCT/CN2019/111512 priority patent/WO2020088256A1/zh
Publication of CN111130564A publication Critical patent/CN111130564A/zh
Application granted granted Critical
Publication of CN111130564B publication Critical patent/CN111130564B/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1125Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix

Landscapes

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

Abstract

本申请提供一种译码方法及装置。该方法包括:对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息,在首次译码失败时,按照符号翻转次数从多到少的顺序选择j个变量节点,所述j为正整数,将所选择的j个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2j个LLR序列,对所述2j个LLR序列分别进行译码,得到译码输出结果。从而可提升变量节点选择的准确度,进而提高了译码性能。

Description

译码方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种译码方法及装置。
背景技术
通信系统通常采用信道编码提高数据传输的可靠性,保证通信的质量。业界具有良好性能的码有低密度奇偶校验(Low Density Parity Check,LDPC)码。LDPC码,是一类具有稀疏校验矩阵的线性分组码,不仅有逼近香农限的良好性能,而且译码复杂度较低,结构灵活,在第五代(the fifth generation,5G)移动通信系统中增强型移动宽带(EnhanceMobile Broadband,eMBB)业务的数据信道的编码中有良好的应用。
对于LDPC码的译码来说,最大似然(Maximum-Likelihood Decoding,ML)译码被认为是最佳的译码方法,因为其可以在所有传输码字概率相等的情况下达到最低的传输包错误率性能。对于较短信息长度(K<500)的LDPC码,若直接采用ML译码方法,需要计算2K种不同码字可能性的条件概率,其超高的译码复杂度难以在实际应用中被采纳。为了达到接近于ML译码的性能,同时避免在每次译码中产生的高译码复杂度和译码时延,准最大似然(Quasi-Maximum Likelihood,QML)类译码算法被提出。该类译码算法基于收到的原始信道信息,选取合适的变量节点(Variable Node,VN)来进行信息饱和并引入了重新译码的方法,如增强型置信传播(Augmented Belief Propagation,ABP)译码。ABP译码方法采用多级译码结构,译码过程为:在一次译码失败之后,将所有与不满足校验节点相连的VN确定为候选VN集合,接着进行多级译码,每一级译码根据VN的可靠性从候选VN集合中选择相对可靠性较低的VN,具体是在第j级译码中,从候选VN集合中选取度数最小的j个VN,若存在多个VN同时具有相同的度数,则选取相应信道接收的对数似然比(Log-likelihood Ratio,LLR)值最小的VN,接着,将所选的VN的相应初始信道LLR值分别饱和至正最大和负最大创建候选序列,将候选序列重新输入至译码器进行译码,当达到预设的终止译码条件后停止译码,并在所有输出的合法码字中选取最佳码字。
上述ABP译码方法中,是根据VN的可靠性选择出进行饱和的VN,VN的可靠性是根据VN的度数和VN相应信道接收的LLR值来判断,局限于VN部位的信息,对VN可靠性估计的准确度不足,译码性能不高。
发明内容
本申请提供一种译码方法及装置,可提升变量节点选择的准确度,进而提高了译码性能。
第一方面,本申请提供一种译码方法,包括:对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息;在首次译码失败时,按照符号翻转次数从多到少的顺序选择j个变量节点,所述j为正整数;将所选择的j个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2j个LLR序列;对所述2j个LLR序列分别进行译码,得到译码输出结果。
通过第一方面提供的译码方法,通过在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,在首次译码失败时,按照符号翻转次数从多到少的顺序选择j个变量节点,接着将所选择的j个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2j个LLR序列,最后对2j个LLR序列分别进行译码,得到译码输出结果。通过在选择被饱和的变量节点时,根据变量节点的符号翻转次数进行选择,提高了变量节点选择的空间范围,从而可提升变量节点选择的准确度,进而提高了译码性能。。
在一种可能的设计中,所述j个变量节点中最小符号翻转次数对应的变量节点包括所述预设集合中具有该最小符号翻转次数的变量节点中,与所连接的校验节点中错误的校验节点个数最多的一个或多个变量节点,或者为所述预设集合中具有该最小符号翻转次数的变量节点中对应的LLR绝对值最小的一个或多个变量节点。
通过本实施方式提供的译码方法,考虑标准码译码中的码字打孔情况,从而,在码字打孔的情况下也能保证良好的准确性。
在一种可能的设计中,所述符号翻转次数
Figure BDA0001847810250000021
其中,
Figure BDA0001847810250000022
为第i个变量节点的度数,
Figure BDA0001847810250000023
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
在一种可能的设计中,所述对2j个LLR序列分别进行译码,得到译码输出结果,包括:
对2j个LLR序列进行译码,得到2j个码字;
从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果;或者,
根据预设的最大译码次数M对2j个LLR序列中的M个LLR序列进行译码,得到M个码字,所述M为正整数;
从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果。
第二方面,本申请提供一种译码方法,包括:
对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息,在首次译码失败时,按照如下译码过程进行译码:
根据上一级译码所获取的每一个变量节点的符号翻转次数,选择符号翻转次数最大的1个变量节点;将所选择的1个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2个LLR序列;对2个LLR序列分别进行译码,得到2个码字,并针对所述2个码字分别更新所述预设集合内每一个变量节点的对于该码字的符号翻转次数;在不满足预设译码终止条件时,针对所述2个码字,按照所述译码过程分别进行下一级译码;在满足预设译码终止条件时终止译码,根据所有译码得到的码字得到最终的译码输出结果。
通过第二方面提供的译码方法,通过在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,在首次译码失败时,按照如下译码过程进行多级译码:根据上一级译码所获取的每一个变量节点的符号翻转次数,选择符号翻转次数最大的1个变量节点,将所选择的1个变量节点对应的LLR值分别置为预设的正值和负值,生成2个LLR序列,对2个LLR序列分别进行译码,得到2个码字,并针对2个码字分别更新预设集合内每一个变量节点的对于该码字的符号翻转次数,在不满足预设译码终止条件时,针对2个码字,按照上述译码过程进行下一级译码,在满足预设译码终止条件时终止译码,最后根据所有译码得到的码字得到最终的译码输出结果。通过在每一级译码过程中选择被饱和的变量节点时,根据变量节点的符号翻转次数进行选择,提高了变量节点选择的空间范围,从而可提升变量节点选择的准确度,进而提高了译码性能。
在一种可能的设计中,所述针对所述2个码字,按照所述译码过程分别进行下一级译码,包括:
对所述2个码字中译码失败的码字按照所述译码过程进行下一级译码;
对所述2个码字中译码成功的码字终止下一级译码,并储存所述2个码字中译码成功的码字。
通过本实施方式提供的译码方法,对于译码成功的码字终止下一级译码,只对译码失败的码字进行下一级译码,这样可以减少整体的译码次数,降低了译码复杂度,且能得到较好的译码性能。
在一种可能的设计中,所述预设译码终止条件为:达到预设的最大译码级数;
所述根据所有译码得到的码字得到最终的译码输出结果,包括:
从所有译码得到的码字中译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为最终的译码输出结果。
在一种可能的设计中,所述预设译码终止条件为:得到第一个合法码字;
所述根据所有译码得到的码字得到最终的译码输出结果,包括:
将所述第一个合法码字作为最终的译码输出结果。
在一种可能的设计中,若所述预设集合内存在符号翻转次数最大且相同的多个变量节点,则从符号翻转次数相同的变量节点中,选择与所连接的校验节点中错误的校验节点个数最多的1个变量节点,或者,选择与变量节点对应的LLR绝对值最小的1个变量节点。
通过本实施方式提供的译码方法,考虑标准码译码中的码字打孔情况,从而,在码字打孔的情况下也能保证良好的准确性。
在一种可能的设计中,所述符号翻转次数
Figure BDA0001847810250000031
其中,
Figure BDA0001847810250000032
为第i个变量节点的度数,
Figure BDA0001847810250000033
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
第三方面,本申请提供一种译码装置,包括:
第一译码模块,用于对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息;
选择模块,用于在首次译码失败时,按照符号翻转次数从多到少的顺序选择j个变量节点,所述j为正整数;
处理模块,用于将所选择的j个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2j个LLR序列;
第二译码模块,用于对所述2j个LLR序列分别进行译码,得到译码输出结果。
在一种可能的设计中,所述j个变量节点中最小符号翻转次数对应的变量节点包括所述预设集合中具有该最小符号翻转次数的变量节点中,与所连接的校验节点中错误的校验节点个数最多的一个或多个变量节点,或者为所述预设集合中具有该最小符号翻转次数的变量节点中对应的LLR绝对值最小的一个或多个变量节点。
在一种可能的设计中,所述符号翻转次数
Figure BDA0001847810250000041
其中,
Figure BDA0001847810250000042
为第i个变量节点的度数,
Figure BDA0001847810250000043
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
在一种可能的设计中,所述第二译码模块具体用于:
对2j个LLR序列进行译码,得到2j个码字;
从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果;或者,
根据预设的最大译码次数M对2j个LLR序列中的M个LLR序列进行译码,得到M个码字,所述M为正整数;
从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果。
上述第三方面以及上述第三方面的各可能的设计中所提供的译码装置,其有益效果可以参见上述第一方面和第一方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第四方面,本申请提供一种译码装置,包括:
第一译码模块,用于对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息;
第二译码模块,用于在首次译码失败时,按照如下译码过程进行译码:
根据上一级译码所获取的每一个变量节点的符号翻转次数,选择符号翻转次数最大的1个变量节点;
将所选择的1个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2个LLR序列;
对2个LLR序列分别进行译码,得到2个码字,并针对所述2个码字分别更新所述预设集合内每一个变量节点的对于该码字的符号翻转次数;
在不满足预设译码终止条件时,针对所述2个码字,按照所述译码过程分别进行下一级译码;
在满足预设译码终止条件时终止译码,根据所有译码得到的码字得到最终的译码输出结果。
在一种可能的设计中,所述第二译码模块用于:
对所述2个码字中译码失败的码字按照所述译码过程进行下一级译码;
对所述2个码字中译码成功的码字终止下一级译码,并储存所述2个码字中译码成功的码字。
在一种可能的设计中,所述预设译码终止条件为:达到预设的最大译码级数;
所述第二译码模块用于:
从所有译码得到的码字中译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为最终的译码输出结果。
在一种可能的设计中,所述预设译码终止条件为:得到第一个合法码字;
所述第二译码模块用于:
将所述第一个合法码字作为最终的译码输出结果。
在一种可能的设计中,若所述预设集合内存在符号翻转次数最大且相同的多个变量节点,则从符号翻转次数相同的变量节点中,选择与所连接的校验节点中错误的校验节点个数最多的1个变量节点,或者,选择与变量节点对应的LLR绝对值最小的1个变量节点。
在一种可能的设计中,所述符号翻转次数
Figure BDA0001847810250000051
其中,
Figure BDA0001847810250000052
为第i个变量节点的度数,
Figure BDA0001847810250000053
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
上述第四方面以及上述第四方面的各可能的设计中所提供的译码装置,其有益效果可以参见上述第二方面和第二方面的各可能的实施方式所带来的有益效果,在此不再赘述。
第五方面,本申请提供一种网络设备,包括:存储器和处理器;
存储器用于存储程序指令;
处理器用于调用存储器中的程序指令执行第一方面及第一方面任一种可能的设计中或者第二方面及第二方面任一种可能的设计中的译码方法。
第六方面,本申请提供一种终端设备,包括:存储器和处理器;
存储器用于存储程序指令;
处理器用于调用存储器中的程序指令执行第一方面及第一方面任一种可能的设计中或者第二方面及第二方面任一种可能的设计中的译码方法。
第七方面,本申请提供一种可读存储介质,可读存储介质中存储有计算机程序,当译码装置的至少一个处理器执行该计算机程序时,译码装置执行第一方面及第一方面任一种可能的设计中或者第二方面及第二方面任一种可能的设计中的译码方法。
第八方面,本申请提供一种程序产品,该程序产品包括计算机程序,该计算机程序存储在可读存储介质中。译码装置的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得译码装置实施第一方面及第一方面任一种可能的设计中或者第二方面及第二方面任一种可能的设计中的译码方法。
附图说明
图1为本申请提供的一种包括发送端和接收端的系统架构示意图;
图2为本实施例示出的校验矩阵H对应的Tanner图;
图3为变量节点和校验节点的更新过程示意图;
图4为本申请提供的一种译码方法实施例的流程图;
图5为本申请提供的一种译码方法实施例的流程图;
图6为该实施方式对应的译码结构框图;
图7为本申请提供的一种译码方法实施例的流程图;
图8为信息长度K=56,码率为1/5的LDPC码的传输包错误率曲线示意图;
图9为信息长度K=56,码率为1/3的LDPC码的传输包错误率曲线示意图;
图10为信息长度K=56,码率为2/5的LDPC码的传输包错误率曲线示意图;
图11为信息长度K=56,码率为1/2的LDPC码的传输包错误率曲线示意图;
图12为信息长度K=56,码率为1/5的LDPC码在不同译码终止条件下的传输包错误率曲线示意图;
图13为信息长度K=56,码率为1/3的LDPC码在不同译码终止条件下的传输包错误率曲线示意图;
图14为信息长度K=56,码率为2/5的LDPC码在不同译码终止条件下的传输包错误率曲线示意图;
图15为信息长度K=56,码率为1/2的LDPC码在不同译码终止条件下的传输包错误率曲线示意图;
图16为本申请提供的一种译码装置实施例的结构示意图;
图17为本申请提供的一种译码装置实施例的结构示意图;
图18为本申请提供的一种网络设备结构示意图;
图19为本申请提供的一种终端设备结构示意图。
具体实施方式
本申请实施例可以应用于无线通信系统,需要说明的是,本申请实施例提及的无线通信系统包括但不限于:窄带物联网系统(Narrow Band-Internet of Things,NB-IoT)、全球移动通信系统(Global System for Mobile Communications,GSM)、增强型数据速率GSM演进系统(Enhanced Data rate for GSM Evolution,EDGE)、宽带码分多址系统(Wideband Code Division Multiple Access,WCDMA)、码分多址2000系统(Code DivisionMultiple Access,CDMA2000)、时分同步码分多址系统(Time Division-SynchronizationCode Division Multiple Access,TD-SCDMA),长期演进系统(Long Term Evolution,LTE)以及下一代5G移动通信系统的三大应用场景增强型移动宽带(Enhanced Mobile BroadBand,eMBB)、超低时延超高可靠通信(Ultra-reliable and low-latencycommunications,uRLLC)以及大规模机器通信(Massive Machine-Type Communications,mMTC)。
本申请实施例可以应用于多种LDPC码译码,例如,NR系统中eMMB应用场景下BG1或BG2类的LDPC码译码,在短码(信息长度K<500)时译码性能更好。
本申请涉及的通信装置可以包括网络设备或者终端设备,也可以是应用于网络设备的芯片或终端设备的芯片等。
在本申请实施例中,终端设备(terminal device)包括但不限于移动台(MS,Mobile Station)、移动终端(Mobile Terminal)、移动电话(Mobile Telephone)、手机(handset)及便携设备(portable equipment)等,该终端设备可以经无线接入网(RAN,Radio Access Network)与一个或多个核心网进行通信,例如,终端设备可以是移动电话(或称为“蜂窝”电话)、具有无线通信功能的计算机等,终端设备还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置或设备。
本申请结合网络设备描述了各个实施例。网络设备可以是用于与终端设备进行通信的设备,例如,可以是GSM系统或CDMA中的基站(Base Transceiver Station,BTS),也可以是WCDMA系统中的基站(NodeB,NB),还可以是LTE系统中的演进型基站(EvolutionalNode B,eNB或eNodeB),或者该网络设备可以为中继站、接入点、车载设备、可穿戴设备以及未来5G网络中的网络侧设备或未来演进的公共陆地移动网络(Public Land MobileNetwork,PLMN)中的网络设备等。
本申请的通信系统可以包括发送端和接收端,图1为本申请提供的一种包括发送端和接收端的系统架构示意图,如图1所示,其中,发送端为编码侧,可以用于对待发送的信息进行编码,并输出编码信息,编码信息经过调制在信道上传输至译码侧;接收端为译码侧,可以用于接收信号,并对信号进行解调得到对应与编码信息的LLR序列,并对LLR序列译码得到发送端发送的信息。网络设备作为发送端或编码侧时,终端设备可以作为接收端或译码侧,反之终端设备作为发送端或编码侧时,网络设备可以作为接收端或译码侧。
本申请提供一种译码方法及装置,本申请中采用基于边信息符号翻转次数的特征对变量节点是否进行饱和操作做出判断,提高了变量节点选择的空间范围,从而可提升变量节点选择的准确度,进而提高了译码性能。进一步地,本申请中选择被饱和的变量节点不依赖于变量节点的原始信道信息,在码字打孔的情况下也能保证良好的准确性。更进一步地,本申请提供的译码方法,采用基于剪枝算法的译码终止条件,相比于ABP译码方法中采用完整列表解码的译码终止条件,有效减少了整体的译码次数,降低了译码复杂度。下面结合附图详细说明本申请提供的译码方法及装置。
首先,下面对本申请中LDPC码涉及的LDPC码的变量节点和校验节点做一简单的介绍,LDPC码的校验矩阵是一种稀疏矩阵,码长为n,信息序列长度为k,LDPC码可以由其校验矩阵H唯一确定,也可以由校验矩阵H对应的Tanner图唯一定义。下式所示为一LDPC码的校验矩阵和其对应校验矩阵H的实例:
v0 v1 v2 v3 v4 v5 v6 v7 v8 v9
Figure BDA0001847810250000071
图2为本实施例示出的校验矩阵H对应的Tanner图,如图2所示,图2中每个圆形节点为变量节点,代表H矩阵中的一列,每个方形节点为校验节点,代表H矩阵中的一行,图2中每条连接校验节点和变量节点的边代表这两个节点所对应的行与列交汇的位置存在一个非零元素。
本申请实施例中,下文中所述的首次译码,以及在选择了变量节点之后,根据所选择的变量节点生成LLR序列,对LLR序列进行译码的方法均可采用最小和(Minimum sum,MS)译码或BP译码,下面将对MS译码方法做简单介绍。
首先,定义以下符号:
λj表示输入序列第j个元素的LLR信息;
Rij[k]表示第k次迭代时,从第i个校验节点传给第j个变量节点的信息;
Qji[k]表示第k次迭代时,从第j个变量节点传给第i个校验节点的信息;
Qj[k]表示第k次迭代时,用于硬判决的第j个变量节点后验概率信息;
C(j)表示与第j个变量节点相邻的校验节点的集合;
V(i)表示与第i个校验节点相邻的变量节点的集合。
首先进行初始化,将输入译码器的λj=LLR_inj定义为
Figure BDA0001847810250000072
为负逻辑映射(0→-1,1→+1)
对i=0,…,m-1,第i个校验节点传给第j个变量节点的信息Rij[0]初始化为0,其中j∈V(i)。
对j=0,…,n-1,第j个变量节点传给第i个校验节点的信息Qji[0]初始化为λj,其中i∈C(j)。
之后进入迭代步骤,交替更新校验节点和变量节点:
在第k次迭代过程中,第i个校验节点传给第j个变量节点的信息Rij[k]计算如下:
Figure BDA0001847810250000081
式中,sgn()为取符号操作,min(.)为求最小值操作,V(i)\{j}表示与第i个校验节点相连的除第j个变量节点以外的其余变量节点的集合。
在第k次迭代中,第j个变量节点传给第i个校验节点的信息Qji[k]计算如下:
Figure BDA0001847810250000082
式中,C(j)\{i}表示与第j个变量节点相连的除了第i个校验节点以外的其余校验节点的集合。
图3为变量节点和校验节点的更新过程示意图,图3中左边子图所示为变量节点的更新过程,图3中右边子图所示为校验节点的更新过程。
在每次迭代完成后,为了进行硬判决检测,需要结算变量节点的后验概率信息,计算公式如下:
Figure BDA0001847810250000083
根据后验概率,可完成硬判决译码,规则为:
Figure BDA0001847810250000084
之后对硬判决结果进行校验:
Figure BDA0001847810250000085
即译码结果符合所有校验方程,则译码成功,终止当前迭代并输出硬判决结果
Figure BDA0001847810250000086
Figure BDA0001847810250000087
校验失败,若当前迭代次数小于最大迭代次数,则返回迭代步骤继续迭代,否则译码失败。
图4为本申请提供的一种译码方法实施例的流程图,如图4所示,本实施例以接收端(译码侧)为执行主体进行说明,本实施例的方法可以包括:
S101、对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息。
具体地,待译码信息为获取到的LLR序列,该序列可以是接收端对接收到的信号进行解调得到,作为输入。待译码信息进行首次译码,首次译码可采用现有的译码方法,例如MS译码或BP译码,在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,其中,根据5G LDPC码的结构,本实施例中的预设集合的选取可以采用如下四种方法:
一、所有变量节点。
二、仅核心矩阵对应的变量节点。
三、不包含打孔比特的其余部分对应的变量节点。
四、核心矩阵中不包含打孔比特部分对应的变量节点。
本实施例中,符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,其中,符号翻转次数为相邻两次迭代之间外部信息的符号发生变化的次数。
其中,考虑到信息传递的方向,外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息。
本实施例中,符号翻转次数
Figure BDA0001847810250000091
其中,
Figure BDA0001847810250000092
为第i个变量节点的度数,
Figure BDA0001847810250000093
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
S102、在首次译码失败时,按照符号翻转次数从多到少的顺序选择j个变量节点,所述j为正整数。
具体地,在首次译码失败时,按照符号翻转次数从多到少的顺序选择j个变量节点,j可根据要译码的次数选取,例如选3,则要进行23即8次译码,又例如,要译码的次数为16,则j可以为4,也就是,若译码的次数为n,则j为log2n取整。具体来说,如果某一个变量节点在与其相连的所有边上发出的外部信息(extrinsic information)存在高次数的符号抖动的话,则该变量节点将被认为是糊涂的,即无法快速收敛到一个符号。原因之一为该变量节点相邻的校验节点的其他相邻变量节点的信息可靠性低,导致该变量节点在迭代过程中始终无法对相邻校验节点给出的信息做出准确判断。因此,该变量节点应优先选择进行饱和,增加其信道信息强度以帮助该变量节点子图里其他相邻校验节点和变量节点。
进一步地,考虑标准码译码中的码字打孔情况,若预设集合内存在多个变量节点的符号翻转次数相同,则可能出现同一符号翻转次数可能有多个变量节点。按照符号翻转次数从高到低排序选择j个变量节点时,若这j个变量节点中最小符号翻转次数对应的变量节点在预设集合中有多个,则可能使得满足大于或等于该最小符号翻转次数的变量节点个数超过j个。此时,需要从该最小符号翻转次数对应的变量节点中选择与所连接的校验节点中错误的校验节点个数最多的一个或多个变量节点,或者从该最小符号翻转次数对应的变量节点中选择对应的LLR绝对值最小的一个或多个变量节点。也可以说,所述j个变量节点中最小符号翻转次数对应的变量节点包括所述预设集合中具有该最小符号翻转次数的变量节点中,与所连接的校验节点中错误的校验节点个数最多的一个或多个变量节点,或者为所述预设集合中具有该最小符号翻转次数的变量节点中对应的LLR绝对值最小的一个或多个变量节点。
例如,按照符号翻转次数从多到少的顺序,选择8个变量节点时,预设集合内存在9个变量节点的符号翻转次数大于或等于5,其中有两个变量节点的符号翻转次数为5,那么,选择7个符号翻转次数大于5的变量节点之后,从这2个符号翻转次数相同的变量节点中,选择与所连接的校验节点中错误的校验节点个数最多的1个变量节点,或者,选择与变量节点对应的LLR绝对值最小的1个变量节点。
又例如,按照符号翻转次数从多到少的顺序,选择8个变量节点时,预设集合内存在5个变量节点的符号翻转次数大于6,12个变量节点的符号翻转次数大于或等于6,也就是5是预选择的8个变量节点的最小符号翻转次数。其中有7个变量节点的符号翻转次数为6,那么,选择5个符号翻转次数大于6的变量节点之后,从这7个符号翻转次数为6的变量节点中,选择与所连接的校验节点中错误的校验节点个数最多的3个变量节点,或者,选择与变量节点对应的LLR绝对值最小的3个变量节点。
以此类推,此处不一一赘述。需要说明的是,此处仅为举例,并不以此为限制。
S103、将所选择的j个变量节点对应的LLR值分别置为预设的正值和负值,生成2j个LLR序列。
具体地,对于所选的j个变量节点的每一个变量节点,将输入的LLR序列中该变量节点对应的LLR值分别置为预设的正值和负值,分别生成2个LLR序列,j个变量节点一共有2j种组合,可以生成2j个LLR序列。
其中,将所选择的j个变量节点对应的LLR值分别置为预设的正值和负值,即为对所选择的j个变量节点进行饱和,预设的正值可以为127,预设的负值可以为-127。
S104、对所述2j个LLR序列分别进行译码,得到译码输出结果。
具体地,S104可以为:对2j个LLR序列进行译码,得到2j个码字;
对译码得到的码字校验成功后,可以将该码字视为译码成功的码字。从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果,即对所有的2j个LLR序列进行译码,从译码成功的码字中选择初最终的译码输出码字。
可选的,还可以预设最大译码次数M,S104还可以为:根据预设的最大译码次数M对2j个LLR序列中的M个LLR序列进行译码,得到M个码字,所述M为正整数,从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果。例如,j=3,一共生成8个LLR序列,预设最大译码次数M=6,则从8个LLR序列中随机选择6个LLR序列进行译码,得到6个码字,从6个码字中译码成功的码字中选择与待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果。
需要说明的是,本步骤中对2j个LLR序列进行译码的译码方法可采用MS译码或BP译码。
本实施例提供的译码方法,通过在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,在首次译码失败时,按照符号翻转次数从多到少的顺序选择j个变量节点,接着将所选择的j个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2j个LLR序列,最后对2j个LLR序列分别进行译码,得到译码输出结果。通过在选择被饱和的变量节点时,根据变量节点的符号翻转次数进行选择,提高了变量节点选择的空间范围,从而可提升变量节点选择的准确度,进而提高了译码性能。
图4所示的译码方法实施例中,在首次译码失败时,选择符号翻转次数最大的j个变量节点,一次选择被饱和的j个变量节点,然后进行译码,下面图5所示为本申请提供的另一种译码方法,相比较图4所示的方法,选择被饱和的变量节点进行了多次,即进行多级译码,下面详细介绍译码过程。
图5为本申请提供的一种译码方法实施例的流程图,如图5所示,本实施例以接收端(译码侧)为执行主体进行说明,本实施例的方法可以包括:
S201、对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息。
具体地,待译码信息为输入的LLR序列,对待译码信息进行首次译码,首次译码可采用现有的译码方法,例如MS译码或BP译码,在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,其中,根据5G LDPC码的结构,本实施例中的预设集合的选取可以采用如下四种方法:
一、所有变量节点。
二、仅核心矩阵对应的变量节点。
三、不包含打孔比特的其余部分对应的变量节点。
四、核心矩阵中不包含打孔比特部分对应的变量节点。
本实施例中,符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,其中,符号翻转次数即为符号抖动次数。
其中,考虑到边的方向,外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息。
本实施例中,符号翻转次数
Figure BDA0001847810250000111
其中,
Figure BDA0001847810250000112
为第i个变量节点的度数,
Figure BDA0001847810250000113
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
步骤S201也可以参考前述方法实施例中步骤S101。
S202、在首次译码失败时,按照如下S2021-S2025的译码过程进行译码:
S2021、根据上一级译码所获取的每一个变量节点的符号翻转次数,选择符号翻转次数最大的1个变量节点。
具体地,选择符号翻转次数最大的1个变量节点,选择出1个变量节点进行饱和。具体来说,如果某一个变量节点在与其相连的所有边上发出的外部信息存在高次数的符号抖动的话,则该变量节点将被认为是糊涂的,即无法快速收敛到一个符号。原因之一为该变量节点相邻的校验节点的其他相邻变量节点的信息可靠性低,导致该变量节点在迭代过程中始终无法对相邻校验节点给出的信息做出准确判断。因此,该变量节点应优先选择进行饱和,增加其信道信息强度以帮助该变量节点子图里其他相邻校验节点和变量节点。
进一步地,考虑标准码译码中的码字打孔情况,若所述预设集合内存在符号翻转次数最大且相同的多个变量节点,则从符号翻转次数相同的变量节点中,选择与所连接的校验节点中错误的校验节点个数最多的1个变量节点,或者,选择与变量节点对应的LLR绝对值最小的1个变量节点。即就是若符号翻转次数最大的变量节点是1个,则直接选择该变量节点,若符号翻转次数最大的变量节点是多个,则从多个中案上述规则选择一个。例如,预设集合内存在两个最大的变量节点的符号翻转次数相同,那么,从这2个符号翻转次数相同的变量节点中,选择与所连接的校验节点中错误的校验节点个数最多的1个变量节点,或者,选择与变量节点对应的LLR绝对值最小的1个变量节点。从而,在码字打孔的情况下也能保证良好的准确性。
S2022、将所选择的1个变量节点对应的LLR值分别置为预设的正值和负值,生成2个LLR序列。
具体地,将输入的LLR序列中该所选择的1个变量节点对应的LLR值分别置为预设的正值和负值,即为对所选择的1个变量节点进行饱和,预设的正值可以为127,预设的负值可以为-127,分别生成2个LLR序列。
S2023、对2个LLR序列分别进行译码,得到2个码字,并针对所述2个码字分别更新所述预设集合内每一个变量节点的对于该码字的符号翻转次数。
具体地,对2个LLR序列分别进行译码,得到2个码字,可采用MS译码或BP译码。针对所述2个码字分别更新所述预设集合内每一个变量节点的对于该码字的符号翻转次数,即在对每个LLR序列分别进行译码的过程中,分别获取预设集合内每一个变量节点的符号翻转次数。
S2024、在不满足预设译码终止条件时,针对所述2个码字,按照上述译码过程进行下一级译码。
由于每个码字对应步骤S2022中得到的一个LLR序列,也就是将该码字对应的LLR序列作为输入进行下一级译码。
S2025、在满足预设译码终止条件时终止译码,根据所有译码得到的码字得到最终的译码输出结果。
具体地,在不满足预设译码终止条件时,针对所述2个码字中的第一个码字,按照S2021-S2025的译码过程进行下一级译码,针对所述2个码字中的第二个码字,也按照S2021-S2025的译码过程进行下一级译码。
作为一种可实施的方式,针对所述2个码字,按照所述译码过程进行下一级译码,具体可以为:对所述2个码字中译码失败的码字和译码成功的码字均按照S2021-S2025的译码过程进行下一级译码。
作为另一种可实施的方式,针对所述2个码字,按照所述译码过程进行下一级译码,具体可以为:对所述2个码字中译码失败的码字按照所述译码过程进行下一级译码;对所述2个码字中译码成功的码字终止下一级译码,并储存所述2个码字中译码成功的码字。本实施例中将该方法称为基于剪枝算法的译码终止条件,对于译码成功的码字终止下一级译码,只对译码失败的码字进行下一级译码,这样可以减少整体的译码次数,降低了译码复杂度,且能得到较好的译码性能。图6为该实施方式对应的译码结构框图,如图6所示,图6中S表示设置的饱和阈值,j表示当前译码的级数,T表示译码的分支编号。从首次译码失败时开始,进行j=1(第一级)译码,如图6所示的3级译码中,对每一级译码对应的2个码字中译码失败的码字进行下一级译码;对每一级译码对应的2个码字中译码成功的码字终止下一级译码,并储存译码成功的码字。
本实施例中,在上述两种可实施的方式下,可选的,预设译码终止条件可以为:达到预设的最大译码级数。相应地,根据所有译码得到的码字得到最终的译码输出结果,可以为:从所有译码得到的码字中译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为最终的译码输出结果。可以理解的是,若所有译码得到的码字中译码成功的码字只有一个,则将这个译码成功的码字作为最终的译码输出结果。
可选的,预设译码终止条件还可以为:得到第一个合法码字。相应地,根据所有译码得到的码字得到最终的译码输出结果,可以为:将所述第一个合法码字作为最终的译码输出结果。
本实施例提供的译码方法,通过在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,在首次译码失败时,按照如下译码过程进行多级译码:根据上一级译码所获取的每一个变量节点的符号翻转次数,选择符号翻转次数最大的1个变量节点,将所选择的1个变量节点对应的LLR值分别置为预设的正值和负值,生成2个LLR序列,对2个LLR序列分别进行译码,得到2个码字,并针对2个码字分别更新预设集合内每一个变量节点的对于该码字的符号翻转次数,在不满足预设译码终止条件时,针对2个码字,按照上述译码过程进行下一级译码,在满足预设译码终止条件时终止译码,最后根据所有译码得到的码字得到最终的译码输出结果。通过在每一级译码过程中选择被饱和的变量节点时,根据变量节点的符号翻转次数进行选择,提高了变量节点选择的空间范围,从而可提升变量节点选择的准确度,进而提高了译码性能。
图7为本申请提供的一种译码方法实施例的流程图,如图5所示,本实施例以接收端(译码侧)为执行主体进行说明,本实施例以采用基于剪枝算法的译码终止条件具体说明译码方法,本实施例的方法可以包括:
S301、对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息。
步骤S301可以参考前述方法实施例中步骤S101。
S302、在首次译码失败时,按照如下S3021-S3025的译码过程进行译码:
S3021、根据上一级译码所获取的每一个变量节点的符号翻转次数,选择符号翻转次数最大的1个变量节点。
进一步地,考虑标准码译码中的码字打孔情况,若所述预设集合内存在符号翻转次数最大且相同的多个变量节点,则从符号翻转次数相同的变量节点中,选择与所连接的校验节点中错误的校验节点个数最多的1个变量节点,或者,选择与变量节点对应的LLR绝对值最小的1个变量节点。从而,在码字打孔的情况下也能保证良好的准确性。
S3022、将所选择的1个变量节点对应的LLR值分别置为预设的正值和负值,生成2个LLR序列。
具体地,将输入的LLR序列中该所选择的1个变量节点对应的LLR值分别置为预设的正值和负值,即为对所选择的1个变量节点进行饱和,预设的正值可以为127,预设的负值可以为-127,分别生成2个LLR序列。
S3023、对2个LLR序列分别进行译码,得到2个码字,并针对所述2个码字分别更新所述预设集合内每一个变量节点的对于该码字的符号翻转次数。
S3024、在未达到预设的最大译码级数时,对2个码字中译码失败的码字按照上述译码过程进行下一级译码;对2个码字中译码成功的码字终止下一级译码,并储存2个码字中译码成功的码字。
由于每个码字对应步骤S3022中得到的一个LLR序列,也就是将该码字对应的LLR序列作为输入进行下一级译码。
S3025、在达到预设的最大译码级数时终止译码,从所有译码得到的码字中译码成功的码字中选择与待译码信息对应的LLR序列具有最小欧式距离的码字,作为最终的译码输出结果。
本实施例提供的译码方法,通过在每一级译码过程中选择被饱和的变量节点时,根据变量节点的符号翻转次数进行选择,提高了变量节点选择的空间范围,从而可提升变量节点选择的准确度,进而提高了译码性能。另外,本实施例的方法在码字打孔的情况下也能保证良好的准确性。更进一步地,对于译码成功的码字终止下一级译码,只对译码失败的码字进行下一级译码,这样可以减少整体的译码次数,降低了译码复杂度,且能得到较好的译码性能。
下面以图7所示的实施例为例进行仿真测试,在仿真实验中,最大迭代次数Imax=50,最大译码级数jmax设为4和6,并且所使用的归一化修正的MS算法的乘性因子α=0.75,所有仿真在AWGN信道下完成。图8为信息长度K=56,码率为1/5的LDPC码的传输包错误率曲线示意图,图9为信息长度K=56,码率为1/3的LDPC码的传输包错误率曲线示意图,图10为信息长度K=56,码率为2/5的LDPC码的传输包错误率曲线示意图,图11为信息长度K=56,码率为1/2的LDPC码的传输包错误率曲线示意图,图8-图11中QML为本申请实施例图7所示的译码方法,图8-图11中SPA为和积算法(Sum-Product Algorithm,SPA),SPA是一种BP类译码算法,从图8-图11可以看出,对于信息长度K=56,码率R=1/5,1/3,2/5,1/2时,采用jmax=4的本申请的QML译码性能在传输包错误率10-2处比SPA译码的增益至少为0.6dB,在传输包错误率10-4也有约为0.5dB的增益。当jmax=6时,在低信噪比区间(即传输包错误率大于10-2),QML的译码性能与jmax=4时相比较,还有额外的0.1dB增益。
图12为信息长度K=56,码率为1/5的LDPC码在不同译码终止条件下的传输包错误率曲线示意图,图13为信息长度K=56,码率为1/3的LDPC码在不同译码终止条件下的传输包错误率曲线示意图,图14为信息长度K=56,码率为2/5的LDPC码在不同译码终止条件下的传输包错误率曲线示意图,图15为信息长度K=56,码率为1/2的LDPC码在不同译码终止条件下的传输包错误率曲线示意图,图12-图15中,方式一为本申请实施例中的译码终止条件,即达到预设的最大译码级数,且对于译码成功的码字终止下一级译码,只对译码失败的码字进行下一级译码,方式二中译码终止条件为:得到第一个合法码字,方式三中译码终止条件为:达到预设的最大译码级数,且对译码失败的码字和译码成功的码字均进行下一级译码。从图15-图18可以看出,对于信息长度K=56,码率R=1/5,1/3,2/5,1/2,jmax=6时,采用本申请所提出的终止译码条件的QML译码(方式一)在低至中信噪比区间的时候,译码性能可以接近方式三的译码性能,与方式二的译码性能相比增益约为0.1dB。
图16为本申请提供的一种译码装置实施例的结构示意图,如图16所示,本实施例的装置可以包括:第一译码模块11、选择模块12、处理模块13和第二译码模块14,其中,第一译码模块11用于对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息;
选择模块12用于在首次译码失败时,按照符号翻转次数从多到少的顺序选择j个变量节点,所述j为正整数;
处理模块13用于将所选择的j个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2j个LLR序列;
第二译码模块14用于对所述2j个LLR序列分别进行译码,得到译码输出结果。
可选的,所述j个变量节点中最小符号翻转次数对应的变量节点包括所述预设集合中具有该最小符号翻转次数的变量节点中,与所连接的校验节点中错误的校验节点个数最多的一个或多个变量节点,或者为所述预设集合中具有该最小符号翻转次数的变量节点中对应的LLR绝对值最小的一个或多个变量节点。
可选的,所述符号翻转次数
Figure BDA0001847810250000141
其中,
Figure BDA0001847810250000142
为第i个变量节点的度数,
Figure BDA0001847810250000143
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
可选的,所述第二译码模块具体用于:
对2j个LLR序列进行译码,得到2j个码字;
从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果;或者,
根据预设的最大译码次数M对2j个LLR序列中的M个LLR序列进行译码,得到M个码字,所述M为正整数;
从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果。
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本实施例提供的译码装置,通过在选择被饱和的变量节点时,根据变量节点的符号翻转次数进行选择,提高了变量节点选择的空间范围,从而可提升变量节点选择的准确度,进而提高了译码性能。
图17为本申请提供的一种译码装置实施例的结构示意图,如图17所示,本实施例的装置可以包括:第一译码模块21和第二译码模块22,其中,第一译码模块21用于对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息。
第二译码模块22用于在首次译码失败时,按照如下译码过程进行译码:
根据上一级译码所获取的每一个变量节点的符号翻转次数,选择符号翻转次数最大的1个变量节点;
将所选择的1个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2个LLR序列;
对2个LLR序列分别进行译码,得到2个码字,并针对所述2个码字分别更新所述预设集合内每一个变量节点的对于该码字的符号翻转次数;
在不满足预设译码终止条件时,针对所述2个码字,按照所述译码过程分别进行下一级译码;
在满足预设译码终止条件时终止译码,根据所有译码得到的码字得到最终的译码输出结果。
可选的,第二译码模块22用于:对所述2个码字中译码失败的码字按照所述译码过程进行下一级译码;对所述2个码字中译码成功的码字终止下一级译码,并储存所述2个码字中译码成功的码字。
可选的,预设译码终止条件为:达到预设的最大译码级数;所述第二译码模块22用于:
从所有译码得到的码字中译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为最终的译码输出结果。
可选的,预设译码终止条件为:得到第一个合法码字;第二译码模块22用于:将所述第一个合法码字作为最终的译码输出结果。
可选的,若所述预设集合内存在符号翻转次数最大且相同的多个变量节点,则第二译码模块用于从符号翻转次数相同的变量节点中,选择与所连接的校验节点中错误的校验节点个数最多的1个变量节点,或者,选择与变量节点对应的LLR绝对值最小的1个变量节点。
其中,符号翻转次数
Figure BDA0001847810250000151
其中,
Figure BDA0001847810250000152
为第i个变量节点的度数,
Figure BDA0001847810250000153
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
本实施例的装置,可以用于执行图5所示方法实施例的技术方案,其实现原理类似,此处不再赘述。
本实施例提供的译码装置,通过在每一级译码过程中选择被饱和的变量节点时,根据变量节点的符号翻转次数进行选择,提高了变量节点选择的空间范围,从而可提升变量节点选择的准确度,进而提高了译码性能。
本申请可以根据上述方法示例对发送设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请各实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图18为本申请提供的一种网络设备结构示意图,该网络设备200包括:
存储器201,用于存储程序指令,该存储器201可以是flash(闪存)。
处理器202,用于调用并执行存储器中的程序指令,以实现图4或图5的译码方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
还可以包括输入/输出接口203。输入/输出接口203可以包括独立的输出接口和输入接口,也可以为集成输入和输出的集成接口。其中,输出接口用于输出数据,输入接口用于获取输入的数据,上述输出的数据为上述方法实施例中输出的统称,输入的数据为上述方法实施例中输入的统称。
该网络设备200可以用于执行上述方法实施例中接收端对应的各个步骤和/或流程。
图19为本申请提供的一种终端设备结构示意图,该终端设备300包括:
存储器301,用于存储程序指令,该存储器301可以是flash(闪存)。
处理器302,用于调用并执行存储器中的程序指令,以实现图4或图5的译码方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
还可以包括输入/输出接口303。输入/输出接口303可以包括独立的输出接口和输入接口,也可以为集成输入和输出的集成接口。其中,输出接口用于输出数据,输入接口用于获取输入的数据,上述输出的数据为上述方法实施例中输出的统称,输入的数据为上述方法实施例中输入的统称。
该终端设备300可以用于执行上述方法实施例中接收端对应的各个步骤和/或流程。
本申请还提供一种可读存储介质,包括:可读存储介质和计算机程序,所述计算机程序用于实现上述方法实施例中的译码方法。
本申请还提供一种程序产品,该程序产品包括计算机程序,该计算机程序存储在可读存储介质中。译码装置的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得译码装置实施上述方法实施例中的译码方法。
本申请还提供一种芯片,所述芯片与存储器相连,或者所述芯片上集成有存储器,当所述存储器中存储的软件程序被执行时,实现上述方法实施例中的译码方法。
本领域普通技术人员可以理解:在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

Claims (23)

1.一种译码方法,其特征在于,包括:
对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息;
在首次译码失败时,按照符号翻转次数从多到少的顺序选择j个变量节点,所述j为正整数;
将所选择的j个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2j个LLR序列;
对所述2j个LLR序列分别进行译码,得到译码输出结果。
2.根据权利要求1所述的方法,其特征在于,所述j个变量节点中最小符号翻转次数对应的变量节点包括所述预设集合中具有该最小符号翻转次数的变量节点中,与所连接的校验节点中错误的校验节点个数最多的一个或多个变量节点,或者为所述预设集合中具有该最小符号翻转次数的变量节点中对应的LLR绝对值最小的一个或多个变量节点。
3.根据权利要求1所述的方法,其特征在于,
所述符号翻转次数
Figure FDA0001847810240000011
其中,
Figure FDA0001847810240000012
为第i个变量节点的度数,
Figure FDA0001847810240000013
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
4.根据权利要求1或2所述的方法,其特征在于,所述对2j个LLR序列分别进行译码,得到译码输出结果,包括:
对2j个LLR序列进行译码,得到2j个码字;
从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果;或者,
根据预设的最大译码次数M对2j个LLR序列中的M个LLR序列进行译码,得到M个码字,所述M为正整数;
从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果。
5.一种译码方法,其特征在于,包括:
对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息;
在首次译码失败时,按照如下译码过程进行译码:
根据上一级译码所获取的每一个变量节点的符号翻转次数,选择符号翻转次数最大的1个变量节点;
将所选择的1个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2个LLR序列;
对2个LLR序列分别进行译码,得到2个码字,并针对所述2个码字分别更新所述预设集合内每一个变量节点的对于该码字的符号翻转次数;
在不满足预设译码终止条件时,针对所述2个码字,按照所述译码过程分别进行下一级译码;
在满足预设译码终止条件时终止译码,根据所有译码得到的码字得到最终的译码输出结果。
6.根据权利要求5所述的方法,其特征在于,所述针对所述2个码字,按照所述译码过程分别进行下一级译码,包括:
对所述2个码字中译码失败的码字按照所述译码过程进行下一级译码;
对所述2个码字中译码成功的码字终止下一级译码,并储存所述2个码字中译码成功的码字。
7.根据权利要求5或6所述的方法,其特征在于,
所述预设译码终止条件为:达到预设的最大译码级数;
所述根据所有译码得到的码字得到最终的译码输出结果,包括:
从所有译码得到的码字中译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为最终的译码输出结果。
8.根据权利要求5或6所述的方法,其特征在于,
所述预设译码终止条件为:得到第一个合法码字;
所述根据所有译码得到的码字得到最终的译码输出结果,包括:
将所述第一个合法码字作为最终的译码输出结果。
9.根据权利要求5所述的方法,其特征在于,
若所述预设集合内存在符号翻转次数最大且相同的多个变量节点,则从符号翻转次数相同的变量节点中,选择与所连接的校验节点中错误的校验节点个数最多的1个变量节点,或者,选择与变量节点对应的LLR绝对值最小的1个变量节点。
10.根据权利要求5所述的方法,其特征在于,
所述符号翻转次数
Figure FDA0001847810240000021
其中,
Figure FDA0001847810240000022
为第i个变量节点的度数,
Figure FDA0001847810240000023
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
11.一种译码装置,其特征在于,包括:
第一译码模块,用于对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息;
选择模块,用于在首次译码失败时,按照符号翻转次数从多到少的顺序选择j个变量节点,所述j为正整数;
处理模块,用于将所选择的j个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2j个LLR序列;
第二译码模块,用于对所述2j个LLR序列分别进行译码,得到译码输出结果。
12.根据权利要求11所述的装置,其特征在于,所述j个变量节点中最小符号翻转次数对应的变量节点包括所述预设集合中具有该最小符号翻转次数的变量节点中,与所连接的校验节点中错误的校验节点个数最多的一个或多个变量节点,或者为所述预设集合中具有该最小符号翻转次数的变量节点中对应的LLR绝对值最小的一个或多个变量节点。
13.根据权利要求11所述的装置,其特征在于,
所述符号翻转次数
Figure FDA0001847810240000031
其中,
Figure FDA0001847810240000032
为第i个变量节点的度数,
Figure FDA0001847810240000033
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
14.根据权利要求11或12所述的装置,其特征在于,所述第二译码模块具体用于:
对2j个LLR序列进行译码,得到2j个码字;
从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果;或者,
根据预设的最大译码次数M对2j个LLR序列中的M个LLR序列进行译码,得到M个码字,所述M为正整数;
从译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为译码输出结果。
15.一种译码装置,其特征在于,包括:
第一译码模块,用于对待译码信息进行首次译码,并在首次译码过程中获取预设集合内每一个变量节点的符号翻转次数,所述符号翻转次数为与变量节点相连的所有边上的外部信息在译码过程中符号翻转的次数,所述外部信息为变量节点传给校验节点的信息,或者,所述外部信息为校验节点传给变量节点的信息;
第二译码模块,用于在首次译码失败时,按照如下译码过程进行译码:
根据上一级译码所获取的每一个变量节点的符号翻转次数,选择符号翻转次数最大的1个变量节点;
将所选择的1个变量节点对应的对数似然比LLR值分别置为预设的正值和负值,生成2个LLR序列;
对2个LLR序列分别进行译码,得到2个码字,并针对所述2个码字分别更新所述预设集合内每一个变量节点的对于该码字的符号翻转次数;
在不满足预设译码终止条件时,针对所述2个码字,按照所述译码过程分别进行下一级译码;
在满足预设译码终止条件时终止译码,根据所有译码得到的码字得到最终的译码输出结果。
16.根据权利要求15所述的装置,其特征在于,所述第二译码模块用于:
对所述2个码字中译码失败的码字按照所述译码过程进行下一级译码;
对所述2个码字中译码成功的码字终止下一级译码,并储存所述2个码字中译码成功的码字。
17.根据权利要求15或16所述的装置,其特征在于,
所述预设译码终止条件为:达到预设的最大译码级数;
所述第二译码模块用于:
从所有译码得到的码字中译码成功的码字中选择与所述待译码信息对应的LLR序列具有最小欧式距离的码字,作为最终的译码输出结果。
18.根据权利要求15或16所述的装置,其特征在于,
所述预设译码终止条件为:得到第一个合法码字;
所述第二译码模块用于:
将所述第一个合法码字作为最终的译码输出结果。
19.根据权利要求15所述的装置,其特征在于,
若所述预设集合内存在符号翻转次数最大且相同的多个变量节点,则从符号翻转次数相同的变量节点中,选择与所连接的校验节点中错误的校验节点个数最多的1个变量节点,或者,选择与变量节点对应的LLR绝对值最小的1个变量节点。
20.根据权利要求15所述的装置,其特征在于,
所述符号翻转次数
Figure FDA0001847810240000041
其中,
Figure FDA0001847810240000042
为第i个变量节点的度数,
Figure FDA0001847810240000043
为与第i个变量节点相连的第k条边上的外部信息在译码过程中符号翻转的次数,k为正整数。
21.一种网络设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行权利要求1-4或5-10任一项所述的译码方法。
22.一种终端设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行权利要求1-4或5-10任一项所述的译码方法。
23.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,当译码装置的至少一个处理器执行该计算机程序时,译码装置执行权利要求1-4或5-10任一项所述的译码方法。
CN201811279838.3A 2018-10-30 2018-10-30 译码方法及装置 Active CN111130564B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811279838.3A CN111130564B (zh) 2018-10-30 2018-10-30 译码方法及装置
PCT/CN2019/111512 WO2020088256A1 (zh) 2018-10-30 2019-10-16 译码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811279838.3A CN111130564B (zh) 2018-10-30 2018-10-30 译码方法及装置

Publications (2)

Publication Number Publication Date
CN111130564A true CN111130564A (zh) 2020-05-08
CN111130564B CN111130564B (zh) 2021-10-26

Family

ID=70463728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811279838.3A Active CN111130564B (zh) 2018-10-30 2018-10-30 译码方法及装置

Country Status (2)

Country Link
CN (1) CN111130564B (zh)
WO (1) WO2020088256A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115987298A (zh) * 2023-03-20 2023-04-18 北京理工大学 基于BPL稀疏因子图选择的Polar码剪枝译码方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114785353A (zh) * 2022-03-24 2022-07-22 山东岱微电子有限公司 低密度奇偶校验码译码方法、系统、设备、装置及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101132252A (zh) * 2007-09-26 2008-02-27 东南大学 低密度奇偶校验码的量化最小和译码方法
CN101150550A (zh) * 2006-09-18 2008-03-26 国家广播电影电视总局广播科学研究院 低密度奇偶校验编码的16apsk系统的交织方案
CN101355366A (zh) * 2008-06-13 2009-01-28 华为技术有限公司 低密度奇偶校验码的译码方法及装置
CN101436864A (zh) * 2007-11-12 2009-05-20 华为技术有限公司 一种低密度奇偶校验码的译码方法及装置
US20130346825A1 (en) * 2012-06-22 2013-12-26 Kabushiki Kaisha Toshiba Error correction device, error correction method and computer program product
CN103595424A (zh) * 2012-08-15 2014-02-19 重庆重邮信科通信技术有限公司 分量译码方法、译码器及Turbo译码方法、装置
CN104218955A (zh) * 2014-09-28 2014-12-17 河南科技大学 基于比特翻转的ldpc码局部搜索译码方法
US20150349801A1 (en) * 2014-05-29 2015-12-03 Samsung Electronics Co., Ltd. Method and apparatus for decoding non-binary low density parity check code in communication system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104796159B (zh) * 2015-05-06 2018-05-08 电子科技大学 一种ldpc码加权比特翻转译码算法的混合提前停止迭代方法
US9973212B2 (en) * 2015-09-08 2018-05-15 Storart Technology Co. Ltd. Decoding algorithm with enhanced parity check matrix and re-encoding scheme for LDPC code
CN105634506B (zh) * 2015-12-25 2019-04-09 重庆邮电大学 基于移位搜索算法的平方剩余码的软判决译码方法
CN106849954B (zh) * 2016-12-09 2019-06-28 西安电子科技大学 一种针对片上网络的低功耗、抗串扰的编解码方法及编解码装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150550A (zh) * 2006-09-18 2008-03-26 国家广播电影电视总局广播科学研究院 低密度奇偶校验编码的16apsk系统的交织方案
CN101132252A (zh) * 2007-09-26 2008-02-27 东南大学 低密度奇偶校验码的量化最小和译码方法
CN101436864A (zh) * 2007-11-12 2009-05-20 华为技术有限公司 一种低密度奇偶校验码的译码方法及装置
CN101355366A (zh) * 2008-06-13 2009-01-28 华为技术有限公司 低密度奇偶校验码的译码方法及装置
US20130346825A1 (en) * 2012-06-22 2013-12-26 Kabushiki Kaisha Toshiba Error correction device, error correction method and computer program product
CN103595424A (zh) * 2012-08-15 2014-02-19 重庆重邮信科通信技术有限公司 分量译码方法、译码器及Turbo译码方法、装置
US20150349801A1 (en) * 2014-05-29 2015-12-03 Samsung Electronics Co., Ltd. Method and apparatus for decoding non-binary low density parity check code in communication system
CN104218955A (zh) * 2014-09-28 2014-12-17 河南科技大学 基于比特翻转的ldpc码局部搜索译码方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
XINGCHENG LIU 等: "Variable-Node-Based Dynamic Scheduling Strategy for Belief-Propagation Decoding of LDPC Codes", 《IEEE COMMUNICATIONS LETTERS》 *
刘帅威等: "基于归并算法的高速LDPC流水线译码器设计与实现", 《科学技术与工程》 *
刘晓健 等: "改进型并行比特翻转算法", 《OURNALOFSOUTHEASTUNIVERSITY(ENGLISHEDITION)》 *
雷洪利等: "改进的低复杂度BP译码算法", 《空军工程大学学报(自然科学版)》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115987298A (zh) * 2023-03-20 2023-04-18 北京理工大学 基于BPL稀疏因子图选择的Polar码剪枝译码方法

Also Published As

Publication number Publication date
CN111130564B (zh) 2021-10-26
WO2020088256A1 (zh) 2020-05-07

Similar Documents

Publication Publication Date Title
JP6817452B2 (ja) レートマッチング方法、符号化装置、および通信装置
CN109660264B (zh) 高性能极化码译码算法
CN108631930B (zh) Polar编码方法和编码装置、译码方法和译码装置
US10312947B2 (en) Concatenated and sliding-window polar coding
US11025278B2 (en) Polar coding encoding/decoding method and apparatus
US11432186B2 (en) Method and device for transmitting data with rate matching
US7716561B2 (en) Multi-threshold reliability decoding of low-density parity check codes
KR101431162B1 (ko) 주변 신뢰도에 따른 서열화를 이용한 메시지 전달 디코딩 방법
US11728829B2 (en) Error detection in communication systems using polar coded data transmission
CN108282259B (zh) 一种编码方法及装置
CN105763203B (zh) 一种基于硬可靠度信息的多元ldpc码译码方法
US10892848B2 (en) Devices and methods implementing polar codes
US11239945B2 (en) Encoding method, decoding method, apparatus, and device
US10892783B2 (en) Apparatus and method for decoding polar codes
WO2018027669A1 (en) Rate matching for block encoder
CN111130564B (zh) 译码方法及装置
CN111669187A (zh) 译码方法及装置、设备、存储介质
CN112953569B (zh) 译码方法及装置、存储介质、电子设备、译码器
Lu et al. Deep learning aided SCL decoding of polar codes with shifted-pruning
US20110099448A1 (en) Split-row decoding of ldpc codes
CN112491422A (zh) 基于高斯优化的比特翻转串行消除列表译码方法和系统
US11233532B2 (en) Information decoder for polar codes
US20210194509A1 (en) Information decoder for polar codes
CN112737600B (zh) 译码方法和译码器
WO2020052754A1 (en) Simplified check node processing for ldpc decoding

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