CN112104379B - 一种基于关键集的极化码置信度传播动态翻转译码方法 - Google Patents

一种基于关键集的极化码置信度传播动态翻转译码方法 Download PDF

Info

Publication number
CN112104379B
CN112104379B CN202010864035.5A CN202010864035A CN112104379B CN 112104379 B CN112104379 B CN 112104379B CN 202010864035 A CN202010864035 A CN 202010864035A CN 112104379 B CN112104379 B CN 112104379B
Authority
CN
China
Prior art keywords
row
column
turning
matrix
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010864035.5A
Other languages
English (en)
Other versions
CN112104379A (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.)
Shandong University of Science and Technology
Original Assignee
Shandong University of Science and Technology
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 Shandong University of Science and Technology filed Critical Shandong University of Science and Technology
Priority to CN202010864035.5A priority Critical patent/CN112104379B/zh
Publication of CN112104379A publication Critical patent/CN112104379A/zh
Application granted granted Critical
Publication of CN112104379B publication Critical patent/CN112104379B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/13Linear codes

Landscapes

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

Abstract

本发明提供一种基于关键集的极化码置信度传播动态翻转译码方法,包括对极化码进行置信度传播译码,结合循环冗余校验辅助早期停止标准,对每次迭代译码结果进行提前截止判断,达到预设最大迭代次数且CRC校验失败,则结合节点对数似然比绝对值,产生动态翻转位置,进一步,结合静态关键集构建翻转矩阵,通过比特翻转,提高译码性能。仿真结果表明,在误帧率为0.001的情况下,当时翻转位数ω为2时,基于关键集的极化码置信度传播动态翻转译码方法与基于CS‑ω的比特翻转置信度传播译码器相比,提高了约0.17dB增益,与原始BP译码算法相比,提高了约0.77dB。

Description

一种基于关键集的极化码置信度传播动态翻转译码方法
技术领域
本发明涉及极化码(Polar Code)译码,具体地,涉及一种基于关键集(CrucialSet,CS)的极化码置信度传播(Belief Propagation,BP)动态翻转译码方法。
背景技术
2008年在国际信息论ISIT会议上,土耳其教授Erdal Arikan首次提出信道极化(Channel Polarization)的概念,将给出的信道编码方法命名为极化码(Polar Code),它是一种被严格证明到达信道容量的信道编码方法,其编译码复杂度低,性能优越。当极化码码长持续增加,选择在信道容量接近于1的可靠信道上面直接传输信息可逼近信道容量。2016年在3GPP RAN1 87次会议的5G短码方案讨论中,确定了极化码成为了eMBB控制信道编码标准。
Arikan教授首次提出置信传播(Belief Propagation,BP)译码算法,虽然BP算法采用了并行的处理方式,有较高的吞吐量,但是现有的BP译码算法中仍有不足之处,因此寻找一种更好的译码方案来提高译码性能尤为重要。
比特翻转方法是一种能够显著降低误码率的译码方法,通过信道传输的错误率及译码过程中的易出错位置统计,确定翻转比特位置,将译码初始时最易出错的比特位置的初始信息进行正负无穷的替代,实现比特翻转,进而在译码过程中,降低译码错误概率。
一种基于关键集的极化码置信度传播动态翻转译码方法最开始是在连续消除算法(Successive cancellation,SC)译码算法中被采用,进行SC的比特翻转译码程序后,误码率有了显著降低。但是在连续译码过程中,SC的比特翻转算法有着明显的译码延迟情况,在计算复杂度及译码时长的情况下表现较差。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于关键集的极化码置信度传播动态翻转译码方法。
根据本发明提供的一种基于关键集(Crucial Set,CS)的极化码置信度传播(Belief Propagation,BP)动态翻转译码方法,包括如下步骤:
步骤S1:对极化码进行置信传播译码生成原始译码结果序列;
步骤S2:对原始译码结果序列进行CRC校验,当通过CRC校验时,则输出原始译码结果,否则根据原始译码结果,经节点对数似然比(Log Likelihood Ratio,LLR)绝对值排序后,产生原始动态翻转位置;
步骤S3:根据信道传输的错误率大小构建静态翻转关键集合作为一列翻转矩阵,所述传信道传输的错误率为信道极化后通过计算巴氏参数(Bhattacharyya参数)、密度进化或高斯近似等方式得到的信道传输错误率;
步骤S4:进入一位比特翻转程序,根据所述一列翻转矩阵,对所述极化码进行翻转后产生一位翻转结果序列;
步骤S5:对一位翻转结果序列进行CRC校验,当通过CRC校验时,则输出翻转译码结果。
优选地,在步骤S5中,当没有通过CRC校验时,还包括如下步骤:
步骤S6:根据所述一位比特翻转译码结果,经节点LLR绝对值升序排序后,选取节点LLR绝对值最小位置,产生第二列动态翻转位置,结合原始动态翻转位置与静态翻转关键集合,构建两组两列翻转矩阵,进入两位比特翻转程序;
步骤S7:根据所述两组两列翻转矩阵,对所述极化码进行翻转,生成两组比特翻转译码结果序列;
步骤S8:对所述两组比特翻转译码结果序列进行CRC校验,当通过CRC校验时,则输出原始译码结果,否则判断所述翻转关键集合行数是否大于预先设置的最大行数,当没达到时根据两位翻转矩阵执行下一行翻转。
优选地,在步骤S8中,当没有通过CRC校验时且达到了预先设置的最大行数时,还包括如下步骤:
步骤S9:根据所述两位比特翻转译码结果,经节点LLR绝对值升序排序后,选取节点LLR绝对值最小位置,产生第三列动态翻转位置,结合原始动态翻转位置、第二列动态翻转位置与静态翻转关键集合,构建两组三列翻转矩阵,进入三位比特翻转程序;
步骤S10:根据所述两组三列翻转矩阵,对所述极化码进行翻转,生成三位比特翻转译码结果序列;
步骤S11:对所述三位比特翻转译码结果序列进行CRC校验,当通过CRC校验时,则输出原始译码结果,否则判断所述翻转关键集合行数是否大于预先设置的最大行数,当没达到时根据三位翻转矩阵执行下一行翻转,否则输出译码失败,结束译码过程。
优选地,当构建所述翻转矩阵时具体为:
步骤M1:构建翻转矩阵的第一列,按照信道传输的错误率大小从大到小进行排序,所述传信道传输的错误率为信道极化后通过计算巴氏参数(Bhattacharyya参数)、密度进化或高斯近似等方式得到的信道传输错误率。选出错误率最大的Q个比特位置,Q为静态翻转关键集合的最大元素个数,将所述静态翻转关键集合作为翻转矩阵的第一列;
步骤M2:构建翻转矩阵的第二列,对所述原始译码结果序列和一位翻转译码结果序列的节点LLR绝对值进行从小到大排序,对应得到Q+1个最小节点LLR绝对值的比特位置作为翻转矩阵的第二列;
优选地,当进行一位比特翻转时,即翻转位数ω=1时,具体为:
步骤N1:从翻转矩阵的第一行开始,对第一行的ω个位置的初始信息进行正、负无穷(+∞、-∞)的替换,其中+∞和-∞分别代表正无穷和负无穷;
步骤N2:计算翻转次数k,k=2ω-1,当k=0时,执行步骤N3,当k=1时,执行步骤N4;
步骤N3:将k转换为ω位二进制数b,此时ω=1,则b为0,将所述翻转矩阵的第一行第一列的位置的初始信息替换为-∞;
步骤N4:将k转换为ω位二进制数b,此时ω=1,则b为1,将所述翻转矩阵的第一行第一列的位置的初始信息替换为+∞;
步骤N5:进入所述翻转矩阵的第二行,执行步骤N2;
步骤N6:执行完所述翻转矩阵的第Q行后,进入步骤S5。
优选地,当进行两位比特翻转时,即翻转次数ω=2时,具体为:
步骤N1:从翻转矩阵的第一行开始,对第一行的ω个位置的初始信息进行正、负无穷(+∞、-∞)的替换,其中+∞和-∞分别代表正无穷和负无穷;
步骤N2:计算翻转次数k,k=2ω-1,k=0时,执行步骤N3,k=1时,执行步骤N4,k=2时,执行步骤N5,k=3时,执行步骤N6;
步骤N3:将k转换为ω位二进制数b,此时ω=2,则b为00,将所述翻转矩阵的第一行第一列和第一行第二列的位置的初始信息替换为-∞;
步骤N4:将k转换为ω位二进制数b,此时ω=2,则b为01,将所述翻转矩阵的第一行第一列的位置替换为-∞和第一行第二列的位置的初始信息替换为+∞;
步骤N5:将k转换为ω位二进制数b,此时ω=2,则b为10,将所述翻转矩阵的第一行第一列的位置替换为+∞和第一行第二列的位置的初始信息替换为-∞;
步骤N6:将k转换为ω位二进制数b,此时ω=2,则b为11,将所述翻转矩阵的第一行第一列和第一行第二列的位置的初始信息替换为+∞;
步骤N7:进入所述翻转矩阵的第二行,执行步骤N2;
步骤N8:执行完翻转矩阵的第Q行后,进入步骤S8。
优选地,当进行三位比特翻转时,即翻转位数ω=3时,具体为:
步骤N1:从翻转矩阵的第一行开始,对第一行的ω个位置的初始信息进行正、负无穷(+∞、-∞)的替换,其中+∞和-∞分别代表正无穷和负无穷;
步骤N2:计算翻转次数k,k=2ω-1,k=0时,执行步骤N3,k=1时,执行步骤N4,k=2时,执行步骤N5,k=3时,执行步骤N6,k=4时,执行步骤N7,k=5时,执行步骤N8,k=6时,执行步骤N9,k=7时,执行步骤N10;
步骤N3:将k转换为ω位二进制数b,此时ω=3,则b为000,将翻转矩阵的第一行第一列、第一行第二列和第一行第三列的位置的初始信息替换为-∞;
步骤N4:将k转换为ω位二进制数b,此时ω=3,则b为001,将翻转矩阵的第一行第一列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为+∞;
步骤N5:将k转换为ω位二进制数b,此时ω=3,则b为010,将翻转矩阵的第一行第一列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为-∞;
步骤N6:将k转换为ω位二进制数b,此时ω=3,则b为011,将翻转矩阵的第一行第一列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为+∞;
步骤N7:将k转换为ω位二进制数b,此时ω=3,则b为100,将翻转矩阵的第一行第一列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为-∞;
步骤N8:将k转换为ω位二进制数b,此时ω=3,则b为101,将翻转矩阵的第一行第一列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为+∞;
步骤N9:将k转换为ω位二进制数b,此时ω=3,则b为110,将翻转矩阵的第一行第一列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为-∞;
步骤N10:将k转换为ω位二进制数b,此时ω=3,则b为111,将翻转矩阵的第一行第一列、第一行第二列和第一行第三列的位置的初始信息替换为+∞;
步骤N11:进入翻转矩阵的第二行,执行步骤N2;
步骤N12:执行完翻转矩阵的第Q行后,进入步骤S11。
优选地,步骤S2中对原始译码结果进行节点LLR绝对值排序为根据节点LLR绝对值大小进行升序排序,当绝对值大小相等时,则根据信道传输的信道错误率大小,进行降序排序,最终得到根据位置排序序列。
与现有技术相比,本发明具有如下的有益效果:
本发明中根据信道传输的错误率,确定关键集CS,结合节点LLR绝对值构建翻转矩阵,在可灵活调节翻转位数的情况下,同时又能控制和缩小多比特翻转尝试次数,提高极化码译码性能,降低译码复杂度。仿真结果表明,在误帧率为0.001的情况下,当时翻转位数ω为2时,基于关键集的极化码置信度传播动态翻转译码方法与基于CS-ω的比特翻转置信度传播译码器相比,提高了约0.17dB增益,与原始BP译码算法相比,提高了约0.77dB。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例中一种基于关键集的极化码置信度传播动态翻转译码方法的步骤流程图;
图2为本发明实施例中(8,4)极化码编码示例图;
图3为本发明实施例误帧率曲线图;
图4为本发明实施例中一种基于关键集的极化码置信度传播动态翻转译码方法的具体实施流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
在本发明实施例中,首先进行极化码编码处理,极化码编码包括:经信道极化后,通过计算巴氏参数等方式得到极化信道的传输错误率P(Ai),其中,Ai表示序号为i的极化信道/>所承载的比特经过传输后接收发生错误,P(Ai)越小则该信道越稳定,即越可靠。根据可靠程度在信道极化后的N个信道中选取K个最可靠的信道传输信息比特序列,一般为1,其余N-K个信道传输接收端已知的固定比特位,一般为0。由上述比特序列混合后得到的向量/>与核心生成矩阵/>的n次克罗内克积/>相乘得到编码序列/>其中/>作为生成矩阵,乘式如下:
其中n=log2N,/>表示n次克罗内克(Kronecker)幂。
通过比特反序序列将编码得到的序列经过重新排列得到反序后的编码序列用π(i)表示反序函数,则有xi=vπ(i)。反序函数π(i)可表示为:序号i用二进制表示为(b1,b2,...,bn),即/>则此时π(i)可用二进制表示为(bn,bn-1,...,b1)。将反序重排表示为一维矩阵B,则/>故反序后的编码序列可表示为
用构造N阶生成矩阵GN进行编码,表达式为经过信道传输后,在接收端得到接收码字序列为/>在译码器中完成码字估计/>如果ui是固定比特,则/>否则,当i∈A,每个比特信道的对数似然比如下式:
其中,表示第i行信道的对数似然比,/>和/>为第i行信道传输0和1的概率。
图2给出(8,4)极化编码示意图,图中左边一列数字对应极化信道的巴氏参数值,为构造计划编码,本示例选取较低的巴士参数信道序号4、6、7、8传输信息比特,其它四个信道传输固定比特。信息比特与固定比特序列混合后与生成矩阵相乘(模二加运算)得到编码序列经过反序重排后得到最终编码序列/>然后分别通过信道W1 8进行传输。
在本发明实施例中,本发明提供的一种基于关键集的极化码置信度传播动态翻转译码方法,如图1所示,包括如下步骤:
步骤S1:对极化码进行置信传播译码生成原始译码结果序列;
步骤S2:对原始译码结果序列根据循环冗余校验辅助(CRC Aided,CA)早期停止标准进行校验,当通过CRC校验时,输出原始译码结果,否则根据原始译码结果,经节点对数似然比(log likelihood ratio,LLR)绝对值排序后,选取节点LLR绝对值最小位置作为原始动态翻转位置;
对BP译码结果进行节点LLR绝对值排序为根据节点LLR绝对值大小进行升序排序,当绝对值大小相等时,则根据信道传输的信道错误率大小,进行降序排序,最终得到根据位置排序序列。
步骤S3:根据信道传输的错误率大小构建静态翻转关键集合作为一列翻转矩阵,所述传信道传输的错误率为信道极化后通过计算巴氏参数(Bhattacharyya参数)、密度进化或高斯近似等方式得到的信道传输错误率;
步骤S4:进入一位比特翻转程序,根据所述一列翻转矩阵,对所述极化码进行翻转后产生一位翻转结果序列;
步骤S5:对一位翻转结果序列进行CRC校验,当通过CRC校验时,则输出翻转译码结果,否则判断所述翻转关键集合行数是否大于预先设置的最大行数,当没达到时根据一位翻转矩阵执行下一行翻转。
在步骤S5中,当没有通过CRC校验时且达到了预先设置的最大行数时,还包括如下步骤:
步骤S6:根据所述一位比特翻转译码结果,经节点LLR绝对值升序排序后,选取节点LLR绝对值最小位置,产生第二列动态翻转位置,结合原始动态翻转位置与静态翻转关键集合,构建两组两列翻转矩阵,进入两位比特翻转程序;
步骤S7:根据所述两组两列翻转矩阵,对所述极化码进行翻转,生成两组比特翻转译码结果序列;
步骤S8:对所述两组比特翻转译码结果序列进行CRC校验,当通过CRC校验时,则输出原始译码结果,否则判断所述翻转关键集合行数是否大于预先设置的最大行数,当没达到时根据两位翻转矩阵执行下一行翻转。
在步骤S8中,当没有通过CRC校验时且达到了预先设置的最大行数时,还包括如下步骤:
步骤S9:根据所述两位比特翻转译码结果,经节点LLR绝对值升序排序后,选取节点LLR绝对值最小位置,产生第三列动态翻转位置,结合原始动态翻转位置、第二列动态翻转位置与静态翻转关键集合,构建两组三列翻转矩阵,进入三位比特翻转程序;
步骤S10:根据所述两组三列翻转矩阵,对所述极化码进行翻转,生成三位比特翻转译码结果序列;
步骤S11:对所述三位比特翻转译码结果序列进行CRC校验,当通过CRC校验时,则输出原始译码结果,否则判断所述翻转关键集合行数是否大于预先设置的最大行数,当没达到时根据三位翻转矩阵执行下一行翻转,否则输出译码失败,结束译码过程。
在本发明实施例中,当构建所述翻转矩阵时具体为:
步骤M1:构建翻转矩阵的第一列,按照信道传输的错误率大小从大到小进行排序,所述传信道传输的错误率为信道极化后通过计算巴氏参数(Bhattacharyya参数)、密度进化或高斯近似等方式得到的信道传输错误率。选出错误率最大的Q个比特位置,Q为静态翻转关键集合的最大元素个数,将所述静态翻转关键集合作为翻转矩阵的第一列;
步骤M2:构建翻转矩阵的第二列,对所述原始译码结果序列和一位翻转译码结果序列的节点LLR绝对值进行从小到大排序,对应得到Q+1个最小节点LLR绝对值的比特位置作为翻转矩阵的第二列;
在本发明实施例中,当进行一位比特翻转时,即翻转位数ω=1时,具体为:
步骤N1:从翻转矩阵的第一行开始,对第一行的ω个位置的初始信息进行正、负无穷(+∞、-∞)的替换,其中+∞和-∞分别代表正无穷和负无穷;
步骤N2:计算翻转次数k,k=2ω-1,当k=0时,执行步骤N3,当k=1时,执行步骤N4;
步骤N3:将k转换为ω位二进制数b,此时ω=1,则b为0,将所述翻转矩阵的第一行第一列的位置的初始信息替换为-∞;
步骤N4:将k转换为ω位二进制数b,此时ω=1,则b为1,将所述翻转矩阵的第一行第一列的位置的初始信息替换为+∞;
步骤N5:进入所述翻转矩阵的第二行,执行步骤N2;
步骤N6:执行完所述翻转矩阵的第Q行后,进入步骤S5。
在本发明实施例中,当进行两位比特翻转时,即翻转次数ω=2时,具体为:
步骤N1:从翻转矩阵的第一行开始,对第一行的ω个位置的初始信息进行正、负无穷(+∞、-∞)的替换,其中+∞和-∞分别代表正无穷和负无穷;
步骤N2:计算翻转次数k,k=2ω-1,k=0时,执行步骤N3,k=1时,执行步骤N4,k=2时,执行步骤N5,k=3时,执行步骤N6;
步骤N3:将k转换为ω位二进制数b,此时ω=2,则b为00,将所述翻转矩阵的第一行第一列和第一行第二列的位置的初始信息替换为-∞;
步骤N4:将k转换为ω位二进制数b,此时ω=2,则b为01,将所述翻转矩阵的第一行第一列的位置替换为-∞和第一行第二列的位置的初始信息替换为+∞;
步骤N5:将k转换为ω位二进制数b,此时ω=2,则b为10,将所述翻转矩阵的第一行第一列的位置替换为+∞和第一行第二列的位置的初始信息替换为-∞;
步骤N6:将k转换为ω位二进制数b,此时ω=2,则b为11,将所述翻转矩阵的第一行第一列和第一行第二列的位置的初始信息替换为+∞;
步骤N7:进入所述翻转矩阵的第二行,执行步骤N2;
步骤N8:执行完翻转矩阵的第Q行后,进入步骤S8。
在本发明实施例中,当进行三位比特翻转时,即翻转位数ω=3时,具体为:
步骤N1:从翻转矩阵的第一行开始,对第一行的ω个位置的初始信息进行正、负无穷(+∞、-∞)的替换,其中+∞和-∞分别代表正无穷和负无穷;
步骤N2:计算翻转次数k,k=2ω-1,k=0时,执行步骤N3,k=1时,执行步骤N4,k=2时,执行步骤N5,k=3时,执行步骤N6,k=4时,执行步骤N7,k=5时,执行步骤N8,k=6时,执行步骤N9,k=7时,执行步骤N10;
步骤N3:将k转换为ω位二进制数b,此时ω=3,则b为000,将翻转矩阵的第一行第一列、第一行第二列和第一行第三列的位置的初始信息替换为-∞;
步骤N4:将k转换为ω位二进制数b,此时ω=3,则b为001,将翻转矩阵的第一行第一列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为+∞;
步骤N5:将k转换为ω位二进制数b,此时ω=3,则b为010,将翻转矩阵的第一行第一列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为-∞;
步骤N6:将k转换为ω位二进制数b,此时ω=3,则b为011,将翻转矩阵的第一行第一列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为+∞;
步骤N7:将k转换为ω位二进制数b,此时ω=3,则b为100,将翻转矩阵的第一行第一列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为-∞;
步骤N8:将k转换为ω位二进制数b,此时ω=3,则b为101,将翻转矩阵的第一行第一列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为-∞,第一行第二列的位置的初始信息替换为+∞;
步骤N9:将k转换为ω位二进制数b,此时ω=3,则b为110,将翻转矩阵的第一行第一列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为+∞,第一行第二列的位置的初始信息替换为-∞;
步骤N10:将k转换为ω位二进制数b,此时ω=3,则b为111,将翻转矩阵的第一行第一列、第一行第二列和第一行第三列的位置的初始信息替换为+∞;
步骤N11:进入翻转矩阵的第二行,执行步骤N2;
步骤N12:执行完翻转矩阵的第Q行后,进入步骤S11。
在更为具体的实施例中,一种基于关键集的极化码置信度传播动态翻转译码方法如下:
首先进行BP译码迭代,在每一次迭代后进行CRC校验,在达到预设最大迭代次数之前,如果通过了CRC校验,则跳出迭代,输出译码结果;
如果达到预设最大迭代次数后,仍然没有通过CRC校验,则根据原始译码结果,经节点LLR绝对值升序排序后,产生原始动态翻转位置,根据一列CS集合构建一列翻转矩阵,接下来进入ω=1的一位翻转程序,在每一次迭代后进行CRC校验,在达到预设最大迭代次数之前,如果通过了CRC校验,则跳出迭代,输出译码结果;
如果达到预设最大迭代次数后,仍然没有通过CRC校验,则根据每次翻转的最后一次的迭代结果,对节点信息进行节点LLR绝对值的升序排序,筛选出这一帧节点LLR绝对值最小的比特位置:
i_2_1{i=min(|node_data[i]|)}
i_2_2{i=min(|node_data[i]|)}
其中,node_data[i]代表第i行的节点LLR值,判断最小的比特位置i_2_1是否等于最小的比特位置i_2_2,如果二者相等,则将最小的比特位置i_2_1置于翻转矩阵的第二个位置;如果二者不相等,则结合一列CS集合,分别将最小的比特位置i_2_1与最小的比特位置i_2_2置于翻转矩阵的第二个位置,结合原始动态翻转位置,产生两组长度为Q的两列比特翻转关键集合,进入两位比特翻转程序。
在两位比特翻转程序的每一次迭代过程中进行CRC校验,在达到预设最大迭代次数之前,如果通过了CRC校验,则跳出迭代,输出译码结果;
如果达到预设最大迭代次数后,仍然没有通过CRC校验,根据对每一位翻转比特位置进行翻转后的译码结果,进行最小节点LLR序列排序,筛选出这一帧节点LLR绝对值最小的比特位置:
i_3_1{i=min(|node_data[i]|)}
i_3_2{i=min(|node_data[i]|)}
i_3_3{i=min(|node_data[i]|)}
i_3_4{i=min(|node_data[i]|)}
判断最小的比特位置i_3_i是否相互相等,选出互不相等的i_3_i位置,结合一列CS集合,分别将不相等的i_3_i置于翻转矩阵的第三个位置,产生两组长度为Q的三列比特翻转关键集合,进入三位比特翻转译码程序。
在三位比特翻转程序的迭代过程中进行CRC校验,在达到预设最大迭代次数之前,如果通过了CRC校验,则跳出迭代,输出译码结果,译码结束;如果达到预设最大迭代次数后,仍然没有通过CRC校验,则翻转译码失败,输出原始BP迭代的译码结果,译码结束。
以ω=2为例的具体案例如图4所示,具体为:
步骤1:首先进行1024位置信度传播译码,将译码器最右端的左信息Nodes[i][10].inf_L与最左端的右信息Nodes[i][0].inf_R分别更新为信道LLR绝对值与+∞,其中,Nodes[i][j]表示第i行第j列的节点LLR信息,Nodes[i][j].inf_L表示译码器第i行第j列节点的左信息,Nodes[i][j].inf_R表示第i行第j列的右信息:
Nodes[i][10].inf_L=LLR[i]
Nodes[i][0].inf_R=+∞
,后执行步骤(2);
步骤2:进行传统的BP译码迭代,更新i行、j列的左信息序列Li,j和i行、j列的右信息序列Ri,j,其中i=1,2...,1024表示码长,即译码行数,j=1,2,…,10,表示译码因子图的阶数:
Li,j=g(Li+1,2j-1,Li+1,2j+Ri,j+N/2)
Li,j+N/2=g(Ri,j,Li+1,2j-1)+Li+1,2j
Ri+1,2j-1=g(Ri,j,Li+1,2j+Ri,j+N/2)
Ri+1,2j=g(Ri,j,Li+1,2j-1)+Ri,j+N/2
达到预设最大迭代次数后,通过对达到最大迭代次数的最左侧列节点左信息序列和达到最大迭代次数的最左侧节点右信息序列/>进行符号位的判断,对迭代结果估值序列/>进行硬判决:
对得到的译码迭代结果序列Nodes_data[1024],根据节点LLR绝对值进行升序排序,得到本次译码的节点LLR绝对值最小位置mllr_de,执行步骤(3);
步骤3:对译码结果序列进行CRC校验;
步骤4:若通过CRC校验,译码成功,输出译码结果,若不通过CRC校验,则进入步骤5;
步骤5:设翻转次数t为0,根据一列静态翻转关键集合,即CS集合,构建一列翻转矩阵M(Q,1):
进行步骤6;
步骤6:根据一列翻转矩阵M(Q,1),进行ω=1的一位比特翻转程序,将M(Q,1)中的第t行的比特位置的初始信息进行正、负无穷(+∞、-∞)的替换,其中+∞和-∞分别代表正无穷和负无穷:
Nodes[CSi][0].inf_R=-∞
Nodes[CSi][0].inf_R=+∞
进入步骤7;
步骤7:执行步骤3,若通过CRC校验,则译码成功,输出译码结果;若不通过CRC校验,若t<=Q,t=t+1,进入步骤6;若t>Q则进入步骤8;
步骤8:对原始译码程序迭代的译码结果筛选出的最小节点LLR绝对值位置mllr_de,同时对一位比特翻转程序迭代的译码结果通过信道节点LLR绝对值大小进行排序,筛选出2组最小节点LLR绝对值位置mllr_ω1,1[Q],mllr_ω1,2[Q],进入步骤9;
步骤9:据步骤8产生的最小节点LLR绝对值位置,结合信道错误率构建的单列静态翻转位置,构建两组两列比特翻转关键集合M(Q,2):
进行步骤10;
步骤10:设翻转次数t为0;根据M(Q,2),进行ω=2的两位比特翻转程序,将M(Q,2)中第t行的比特位置的初始信息进行正、负无穷(+∞、-∞)的替换,其中+∞和-∞分别代表正无穷和负无穷:
Nodes[CSj][0].inf_R=-10000;Nodes[mllr_ω1,i[t]][0].inf_R=-∞
Nodes[CSj][0].inf_R=10000;Nodes[mllr_ω1,i[t]][0].inf_R=+∞
Nodes[CSj][0].inf_R=10000;Nodes[mllr_ω1,i[t]][0].inf_R=-∞
Nodes[CSj][0].inf_R=-10000;Nodes[mllr_ω1,i[t]][0].inf_R=+∞
Nodes[CSj][0].inf_R=10000;Nodes[mllr_de][0].inf_R=+∞
Nodes[CSj][0].inf_R=10000;Nodes[mllr_de][0].inf_R=-∞
Nodes[CSj][0].inf_R=-10000;Nodes[mllr_de][0].inf_R=+∞
Nodes[CSj][0].inf_R=-10000;Nodes[mllr_de][0].inf_R=-∞
其中,mllr_ω1,j[t]中的j根据mllr_ω1,1[t],mllr_ω1,2[t]的比较结果确定,若mllr_ω1,1[t]=mllr_ω1,2[t],则j=1,mllr_ω1,j[t]=mllr_ω1,1[t];若mllr_ω1,j[t]!=mllr_ω1,1[t],则j分别为1和2,mllr_ω1,j[t]=mllr_ω1,1[t],mllr_ω1,j[t]=mllr_ω1,2[t];
执行步骤11;
步骤11:执行步骤3,若通过CRC校验,则译码成功,输出译码结果;若不通过CRC校验,若t<=Q,t=t+1,进入步骤6=10;若t>Q则进入步骤12;
步骤12:译码失败,结束整个译码过程。
本发明实施例中的基于关键集的极化码置信度传播动态翻转译码方法是一种结合了信道传输错误率构建关键集CS与BP译码迭代过程中产生的节点LLR绝对值的一种比特译码方法。通过构建译码翻转矩阵,使用CRC校验判断是否需要进行比特翻转程序,在翻转程序中对翻转矩阵中的比特位置进行比特翻转,从而提高BP迭代译码的可靠性,根据所述方法,可在两位翻转之后自行增加同时翻转位数。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (7)

1.一种基于关键集的极化码置信度传播动态翻转译码方法,其特征在于,包括如下步骤:
步骤S1:对极化码进行置信传播译码生成原始译码结果序列;
步骤S2:对原始译码结果序列进行CRC校验,当通过CRC校验时,输出原始译码结果,否则根据原始译码结果,经节点对数似然比绝对值排序后,选取节点LLR绝对值最小位置作为原始动态翻转位置;
步骤S3:根据信道传输的错误率大小构建静态翻转关键集合作为一列翻转矩阵,所述信道传输的错误率为信道极化后通过计算巴氏参数、密度进化或高斯近似得到的信道传输错误率;
步骤S4:进入一位比特翻转程序,根据所述一列翻转矩阵,对所述极化码进行翻转后产生一位翻转结果序列;
步骤S5:对一位翻转结果序列进行CRC校验,当通过CRC校验时,则输出翻转译码结果;
在步骤S5中,当没有通过CRC校验时,判断所述翻转关键集合行数是否大于预先设置的最大行数,当没达到时根据一位翻转矩阵执行下一行翻转,大于预先设置的最大行数时,还包括如下步骤:
步骤S6:根据所述一位翻转结果序列,经节点LLR绝对值升序排序后,选取节点LLR绝对值最小位置,产生第二列动态翻转位置,结合原始动态翻转位置与静态翻转关键集合,构建两组两列翻转矩阵,进入两位比特翻转程序;
步骤S7:根据所述两组两列翻转矩阵,对所述极化码进行翻转,生成两组比特翻转译码结果序列;
步骤S8:对所述两组比特翻转译码结果序列进行CRC校验,当通过CRC校验时,则输出比特翻转译码结果。
2.根据权利要求1所述的一种基于关键集的极化码置信度传播动态翻转译码方法,其特征在于,在步骤S8中,当没有通过CRC校验时,判断所述翻转关键集合行数是否大于预先设置的最大行数,当没达到时根据两位翻转矩阵执行下一行翻转,大于预先设置的最大行数时,还包括如下步骤:
步骤S9:根据所述两组比特翻转译码结果,经节点LLR绝对值升序排序后,选取节点LLR绝对值最小位置,产生第三列动态翻转位置,结合原始动态翻转位置、第二列动态翻转位置与静态翻转关键集合,构建两组三列翻转矩阵,进入三位比特翻转程序;
步骤S10:根据所述两组三列翻转矩阵,对所述极化码进行翻转,生成三位比特翻转译码结果序列;
步骤S11:对所述三位比特翻转译码结果序列进行CRC校验,当通过CRC校验时,则输出原始译码结果,否则判断所述翻转关键集合行数是否大于预先设置的最大行数,当没达到时根据三位翻转矩阵执行下一行翻转,否则输出译码失败,结束译码过程。
3.根据权利要求2所述的一种基于关键集的极化码置信度传播动态翻转译码方法,其特征在于,当构建所述翻转矩阵时具体为:
步骤M1:构建翻转矩阵的第一列,按照信道传输的错误率大小从大到小进行排序,所述信道传输的错误率为信道极化后通过计算巴氏参数、密度进化或高斯近似得到的信道传输错误率;选出错误率最大的Q个比特位置,Q为静态翻转关键集合的最大元素个数,将所述静态翻转关键集合作为翻转矩阵的第一列;
步骤M2:构建翻转矩阵的第二列,对所述原始译码结果序列和一位翻转译码结果序列的节点LLR绝对值进行从小到大排序,对应得到Q+1个最小节点LLR绝对值的比特位置作为翻转矩阵的第二列。
4.根据权利要求1所述的一种基于关键集的极化码置信度传播动态翻转译码方法,其特征在于,当进行一位比特翻转时,即翻转位数=1时,具体为:
步骤N1:从翻转矩阵的第一行开始,对第一行的个位置的初始信息进行正、负无穷(、/>)的替换,其中/>和/>分别代表正无穷和负无穷;
步骤N2:计算翻转次数k,,当k=0时,执行步骤N3,当k=1时,执行步骤N4;
步骤N3:将k转换为位二进制数b,此时/>=1,则b为0,将所述翻转矩阵的第一行第一列的位置的初始信息替换为/>
步骤N4:将k转换为位二进制数b,此时/>=1,则b为1,将所述翻转矩阵的第一行第一列的位置的初始信息替换为/>
步骤N5:进入所述翻转矩阵的第二行,执行步骤N2;
步骤N6:执行完所述翻转矩阵的第Q行后,进入步骤S5。
5.根据权利要求1所述的一种基于关键集的极化码置信度传播动态翻转译码方法,其特征在于,当进行两位比特翻转时,即翻转次数=2时,具体为:
步骤N1:从翻转矩阵的第一行开始,对第一行的个位置的初始信息进行正、负无穷(、/>)的替换,其中/>和/>分别代表正无穷和负无穷;
步骤N2:计算翻转次数k,,k=0时,执行步骤N3,k=1时,执行步骤N4,k=2时,执行步骤N5,k=3时,执行步骤N6;
步骤N3:将k转换为位二进制数b,此时/>=2,则b为00,将所述翻转矩阵的第一行第一列和第一行第二列的位置的初始信息替换为/>
步骤N4:将k转换为位二进制数b,此时/>=2,则b为01,将所述翻转矩阵的第一行第一列的位置替换为/>和第一行第二列的位置的初始信息替换为/>
步骤N5:将k转换为位二进制数b,此时/>=2,则b为10,将所述翻转矩阵的第一行第一列的位置替换为/>和第一行第二列的位置的初始信息替换为/>
步骤N6:将k转换为位二进制数b,此时/>=2,则b为11,将所述翻转矩阵的第一行第一列和第一行第二列的位置的初始信息替换为/>
步骤N7:进入所述翻转矩阵的第二行,执行步骤N2;
步骤N8:执行完翻转矩阵的第Q行后,进入步骤S11。
6.根据权利要求2所述的一种基于关键集的极化码置信度传播动态翻转译码方法,其特征在于,当进行三位比特翻转时,即翻转位数=3时,具体为:
步骤N1:从翻转矩阵的第一行开始,对第一行的个位置的初始信息进行正、负无穷(、/>)的替换,其中/>和/>分别代表正无穷和负无穷;
步骤N2:计算翻转次数k,,k=0时,执行步骤N3,k=1时,执行步骤N4,k=2时,执行步骤N5,k=3时,执行步骤N6,k=4时,执行步骤N7,k=5时,执行步骤N8,k=6时,执行步骤N9,k=7时,执行步骤N10;
步骤N3:将k转换为位二进制数b,此时/>=3,则b为000,将翻转矩阵的第一行第一列、第一行第二列和第一行第三列的位置的初始信息替换为/>
步骤N4:将k转换为位二进制数b,此时/>=3,则b为001,将翻转矩阵的第一行第一列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>
步骤N5:将k转换为位二进制数b,此时/>=3,则b为010,将翻转矩阵的第一行第一列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>
步骤N6:将k转换为位二进制数b,此时/>=3,则b为011,将翻转矩阵的第一行第一列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>
步骤N7:将k转换为位二进制数b,此时/>=3,则b为100,将翻转矩阵的第一行第一列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>
步骤N8:将k转换为位二进制数b,此时/>=3,则b为101,将翻转矩阵的第一行第一列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>
步骤N9:将k转换为位二进制数b,此时/>=3,则b为110,将翻转矩阵的第一行第一列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>,第一行第二列的位置的初始信息替换为/>
步骤N10:将k转换为位二进制数b,此时/>=3,则b为111,将翻转矩阵的第一行第一列、第一行第二列和第一行第三列的位置的初始信息替换为/>
步骤N11:进入翻转矩阵的第二行,执行步骤N2;
步骤N12:执行完翻转矩阵的第Q行后,进入步骤S11。
7.根据权利要求1所述的一种基于关键集的极化码置信度传播动态翻转译码方法,其特征在于,步骤S2中对原始译码结果进行节点LLR绝对值排序为根据节点LLR绝对值大小进行升序排序,当绝对值大小相等时,则根据信道传输的信道错误率大小,进行降序排序,最终得到根据位置排序序列。
CN202010864035.5A 2020-08-25 2020-08-25 一种基于关键集的极化码置信度传播动态翻转译码方法 Active CN112104379B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010864035.5A CN112104379B (zh) 2020-08-25 2020-08-25 一种基于关键集的极化码置信度传播动态翻转译码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010864035.5A CN112104379B (zh) 2020-08-25 2020-08-25 一种基于关键集的极化码置信度传播动态翻转译码方法

Publications (2)

Publication Number Publication Date
CN112104379A CN112104379A (zh) 2020-12-18
CN112104379B true CN112104379B (zh) 2024-01-30

Family

ID=73752700

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010864035.5A Active CN112104379B (zh) 2020-08-25 2020-08-25 一种基于关键集的极化码置信度传播动态翻转译码方法

Country Status (1)

Country Link
CN (1) CN112104379B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112929036A (zh) * 2021-02-01 2021-06-08 山东科技大学 一种基于对数似然比的置信度传播动态翻转译码方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109842418A (zh) * 2018-11-27 2019-06-04 东南大学 一种基于比特翻转的极化码置信传播译码方法
CN111490796A (zh) * 2020-04-24 2020-08-04 北京交通大学 基于动态翻转比特的置信传播译码方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180285900A1 (en) * 2017-03-28 2018-10-04 Wipro Limited Method and system for determining a predictive model for estimating target output for an enterprise

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109842418A (zh) * 2018-11-27 2019-06-04 东南大学 一种基于比特翻转的极化码置信传播译码方法
CN111490796A (zh) * 2020-04-24 2020-08-04 北京交通大学 基于动态翻转比特的置信传播译码方法

Also Published As

Publication number Publication date
CN112104379A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
TWI663839B (zh) 使用硬選取硬解碼模式下的解碼器產生軟資訊的方法
US7373581B2 (en) Device, program, and method for decoding LDPC codes
Zhang et al. Shuffled belief propagation decoding
USRE44421E1 (en) Decoding apparatus for low-density parity-check codes using sequential decoding, and method thereof
JP4389373B2 (ja) 2元巡回符号を反復型復号するための復号器
JP4320418B2 (ja) 復号装置および受信装置
CN105763203B (zh) 一种基于硬可靠度信息的多元ldpc码译码方法
US11316540B2 (en) Method of decoding polar codes based on belief propagation
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
CN109921803B (zh) 基于神经网络的高密度线性分组码译码方法
Deng et al. Reduced-complexity deep neural network-aided channel code decoder: A case study for BCH decoder
CN112104379B (zh) 一种基于关键集的极化码置信度传播动态翻转译码方法
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
Dupraz et al. Finite alphabet iterative decoders robust to faulty hardware: Analysis and selection
US20170222659A1 (en) Power improvement for ldpc
CN112929036A (zh) 一种基于对数似然比的置信度传播动态翻转译码方法
US11323139B2 (en) Apparatuses and methods for mapping frozen sets between polar codes and product codes
Rovella et al. Improved Syndrome-based Neural Decoder for Linear Block Codes
CN113556135A (zh) 基于冻结翻转列表的极化码置信传播比特翻转译码方法
CN112534724B (zh) 用于解码极化码和乘积码的解码器和方法
CN113098532B (zh) 低时延低复杂度的极化码译码方法和***
CN117914446A (zh) 针对代数码的解码方法及***
CN116781089A (zh) 置信传播译码方法及相关设备
Aharoni et al. Data-Driven List Polar Decoder for Symmetric and Asymmetric Input Distributions
WO2004004132A1 (fr) Procede et appareil de decodage iteratif pour code de produit fonde sur une formule adjointe

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