CN110098838A - Ldpc-rs乘积码的纠错纠删迭代译码方法 - Google Patents
Ldpc-rs乘积码的纠错纠删迭代译码方法 Download PDFInfo
- Publication number
- CN110098838A CN110098838A CN201910359299.2A CN201910359299A CN110098838A CN 110098838 A CN110098838 A CN 110098838A CN 201910359299 A CN201910359299 A CN 201910359299A CN 110098838 A CN110098838 A CN 110098838A
- Authority
- CN
- China
- Prior art keywords
- code
- ldpc
- mark
- decoding
- 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.)
- Granted
Links
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
-
- 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/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明属于数字通信编码领域,为提出LDPC‑RS乘积码的纠错纠删迭代译码方法,以提高乘积码的整体性能,本发明,LDPC‑RS乘积码的纠错纠删迭代译码方法,步骤如下:将待传输的信息比特转化为矩阵形式;首先按列在里德‑所罗门RS码的符号级别进行外码即RS码编码;译码初始化;计算LDPC码译码初始化软信息;对接收到的每一个LDPC码字对应的LLR信息进行判决;计算所有LDPC码码字的标记值;LDPC码译码;RS码译码;更新与每一比特对应的先验信息,退出迭代,或返回步骤(6)进行下一次迭代。本发明主要应用于通信编码场合。
Description
技术领域
本发明属于数字通信编码领域,尤其涉及一种针对低密度奇偶校验(LDPC)码与里德-所罗门(RS)码乘积码的纠错纠删迭代译码方法。
背景技术
前向纠错是实现下一代高吞吐量,高可靠性信息系统的关键技术之一。低密度奇偶校验(LDPC)码因其编码增益大,实现复杂性低,可实现并行译码等优点被广泛应用在诸多领域,例如高速光纤通信,高密度磁存储等。但是,由于迭代译码算法的次最优性,当LDPC码工作在高信噪比区域时,存在错误平层现象。这一现象使得LDPC码的误比特率(BER)性能无法满足高可靠系统的需求,限制了LDPC码在其中的应用。
改善LDPC码的错误平层的方法可总结为三种。第一种方法是通过优化LDPC码结构或改进LDPC码译码算法来降低错误平层,但这些方法带来的额外复杂度较高。第二种方法是构造级联码,利用两个短码串接构成一个长码,但该方法码率损失较大,导致编码效率降低。第三种方法是构造乘积码,它是一种利用两组或多组较短线性分组码构造长码的有效信道编码机制。将代数码,或者其他纠错码与LDPC码构成乘积码均可有效改善LDPC码的错误平层。进一步可通过后处理技术,来降低停止集对错误平层的影响,或者通过集合权重枚举分析,构造广义准循环LDPC码,在保证乘积码译码器不受影响的条件下,实现了更低的错误平层。针对LDPC-RS二维乘积码,国内刘勃等人融合了“错误估计”和“软值修改”技术,提出了一种类“turbo”的混合迭代译码框架来改善纠错性能。然而,在上述所有方案中,外码的纠删能力没能得到有效的利用。
为进一步优化乘积码的性能,本发明采用高码率的RS码构造乘积码,并针对LDPC-RS乘积码提出了一种纠错纠删迭代译码方法。在进行外码译码时,提出了混合纠错纠删的译码方法,将外码的纠错/纠删能力最大化,从而对LDPC码的残留错误进行了更有效的纠正。最后通过迭代,使得乘积码的整体性能得到了进一步的改善。
发明内容
为克服现有技术的不足,本发明旨在提出LDPC-RS乘积码的纠错纠删迭代译码方法,以提高乘积码的整体性能。为此,本发明采取的技术方案是,LDPC-RS乘积码的纠错纠删迭代译码方法,步骤如下:
(1)将待传输的信息比特转化为矩阵形式,首先按列在里德-所罗门RS码的符号级别进行外码即RS码编码,然后按行进行内码也即低密度奇偶校验LDPC码编码,从而构成乘积码,每个LDPC码的信息位部分包含所有RS码对应符号转化来的比特,发送时按照逐个LDPC码字逐比特发送;
(2)译码初始化,将迭代次数Iter置零,ldpc_mark和rs_mark标记为false,其中,ldpc_mark用来标记LDPC码译码成功或失败,rs_mark用来标记RS码译码成功或失败;
(3)计算LDPC码译码初始化软信息,从信道接收与每个比特对应的信道观测值,然后根据信道观测值计算对应的对数似然比LLR,用L(0)表示;
(4)对接收到的每一个LDPC码字对应的LLR信息进行判决,判决规则为从而得到LDPC码码字的判决结果c;
(5)计算所有LDPC码码字的标记值ldpc_mark,第i个LDPC码码字的标记值计算为
(6)LDPC码译码,选择ldpc_mark标记值为false的码字进行译码,译码采用迭代软判决译码方法,得到译码结果yldpc,将被纠正的码字的ldpc_mark标记为true,若所有码字均校验正确,则退出迭代,得到的yldpc为最终译码结果;
(7)RS码译码,首先将内码译码后的比特结果转化为RS码的对应符号,按列读取对应的RS码字进行校验,并根据校正子s的值更新对应RS码码字的rs_mark标记值,然后选择rs_mark标记为false的码字进行纠错纠删译码或完全的纠错译码,将译码结果校验正确的码字的rs_mark标记为true,最后判断Iter是否达到最大迭代次数,若达到,则结束译码;否则,执行步骤(8);
(8)更新与每一比特对应的先验信息,并对更新后的先验信息重新判决,得到LDPC码码字新的判决结果c,然后对c进行校验,若所有LDPC码码字均校验正确,则退出迭代;否则,返回步骤(6)进行下一次迭代。
所述LDPC码译码,选择ldpc_mark标记值为false的码字进行译码,译码采用迭代软判决译码方法,得到译码结果yldpc,将被纠正的码字的ldpc_mark标记为true,若所有码字均校验正确,则退出迭代,得到的yldpc为最终译码结果的具体步骤为:
(6.1)选择ldpc_mark为false的LDPC码字进行译码,得到译码结果yldpc;
(6.2)对得到的译码结果yldpc进行校验,将校验正确的LDPC码字的ldpc_mark标记为true;
(6.3)存储校验失败的LDPC码字所在乘积码矩阵中的位置序号,生成删除位置序列loc;
(6.4)统计校验失败的LDPC码码字数目,即Ne=dim(loc);
(6.5)如果所有LDPC码码字均校验正确,也即ldpc_mark均被标记为true,则退出迭代,得到的yldpc为最终译码结果;否则,执行步骤(7)。
所述RS码译码,首先将内码译码后的比特结果转化为RS码的对应符号,按列读取对应的RS码字进行校验,并根据校正子s的值更新对应RS码码字的rs_mark标记值,然后选择rs_mark标记为false的码字进行纠错纠删译码或完全的纠错译码,将译码结果校验正确的码字的rs_mark标记为true,最后判断Iter是否达到最大迭代次数,若达到,则结束译码;否则,执行步骤(8)的具体步骤为:
(7.1)将内码译码后的比特译码结果转化为RS码的对应符号,之后按列读取RS码字进行校验,校验方法为计算同步校正子s,若s=0,则将该码字的rs_mark标记为true;否则,标记为false;
(7.2)如果所有RS码码字的rs_mark均为true,则当前比特结果为外码译码结果yrs,执行步骤(7.5);
(7.3)选择标记为false的RS码码字进行外码译码,得到译码结果yrs;
(7.4)计算译码结果yrs的校正子s,选择s=0的RS码码字,将其rs_mark标记为true;
(7.5)判断迭代次数Iter是否达到最大迭代次数,如果达到了最大迭代次数,则结束译码,得到的yrs为最终译码结果;否则,执行步骤(8)。
所述步骤(7.3)外码译码具体为:
(7.3.1)判断标记的删除个数Ne是否在RS码的纠删能力t之内,若Ne≤t,执行步骤(7.3.2);否则执行步骤(7.3.3);
(7.3.2)依据标记的删除位置序列loc,采用纠错纠删译码算法进行外码译码,得到符号译码结果,并将其转化为比特译码结果yrs;
(7.3.3)将删除标记个数Ne置零,采用纠错译码算法进行外码译码,得到符号译码结果,并将其转化为比特译码结果yrs。
所述更新与每一比特对应的先验信息,并对更新后的先验信息重新判决,得到LDPC码码字新的判决结果c,然后对c进行校验,若所有LDPC码码字均校验正确,则退出迭代;否则,返回步骤(6)进行下一次迭代的具体步骤如下:
(8.1)依据LDPC码译码和RS码译码后的比特译码结果ydec,与初始判决结果c进行比较,若ydec≠c或比特所在的RS码码字标记值rs_mark为true,则对LDPC码译码中与之对应的比特的先验信息进行更新,执行步骤(8.2);
(8.2)更新LDPC码译码的先验信息
其中,表示第k次内码译码后得到的对应比特的后验概率,表示对应比特更新后的先验信息,k的取值为k=Iter+1,表示先验信息的更新次数;
(8.3)对更新后的比特的先验信息进行判决,得到LDPC码码字新的初始判决结果c,判决规则为
(8.4)计算并判断对于所有的i,ldpc_mark(i)≡1是否成立,若成立,则退出迭代;否则,执行步骤(8.5);
(8.5)判断当前迭代次数Iter是否小于最大迭代次数max_Iter,若满足,则更新迭代次数Iter=Iter+1,并传递新的初始判决结果与新的先验信息返回步骤(6)继续执行下一次迭代。
本发明的特点及有益效果是:
本发明通过将内码校验结果传递给外码提供删除位置信息,同时,依据删除错误是否在外码纠删能力范围之内,提出了混合地进行纠错纠删译码,充分利用了外码对删除和错误的纠正能力;进一步依据内外码译码的结果更新先验信息的符号,通过更新迭代,提高了LDPC码和RS码构成的乘积码的性能。由于本发明采用高码率的RS码作为外码,所提出的乘积码引入的码率损失可忽略不计。
附图说明:
图1为LDPC-RS乘积码的纠错纠删迭代译码的系统框图;
图2为乘积码的结构图;
图3为LDPC-RS乘积码的纠错纠删迭代译码的流程图;
图4为混合纠错纠删译码的流程图;
图5为基于LDPC-RS乘积码的不同译码算法的误比特率与信噪比曲线;
图6为基于本发明构造的LDPC-RS乘积码与LDPC-BCH乘积码性能比较;
图7为更新先验信息的迭代译码方法的误比特率与信噪比曲线。
具体实施方式
本发明提供了一种LDPC-RS乘积码的纠错纠删迭代译码方法,通过标记校验失败的内码码字为外码提供删除位置信息,高效利用了外码的纠删能力,针对外码,提出了混合纠错纠删译码方法,进而采用更新译码前得到的先验信息的方法,进行迭代,提高乘积码的整体性能。
一种LDPC-RS乘积码的纠错纠删迭代译码方法,所述方法包括以下几个步骤:
(1)将待传输的信息比特转化为矩阵形式,首先按列在RS码的符号级别进行外码即里德-所罗门(RS)码编码,然后按行进行内码也即LDPC码编码,从而构成乘积码,每个LDPC码的信息位部分包含所有RS码对应符号转化来的比特,发送时按照逐个LDPC码字逐比特发送;
(2)译码初始化,将迭代次数Iter置零,ldpc_mark和rs_mark标记为false,其中,ldpc_mark用来标记LDPC码译码成功或失败,rs_mark用来标记RS码译码成功或失败;
(3)计算LDPC码译码初始化软信息,从信道接收与每个比特对应的信道观测值,然后根据信道观测值计算对应的对数似然比(LLR),用L(0)表示;
(4)对接收到的每一个LDPC码字对应的LLR信息进行判决,判决规则为从而得到LDPC码码字的判决结果c;
(5)计算所有LDPC码码字的标记值ldpc_mark,第i个LDPC码码字的标记值计算为
(6)LDPC码译码,选择ldpc_mark标记值为false的码字进行译码,译码可采用置信传播译码算法或其它迭代软判决译码方法,得到译码结果yldpc,将被纠正的码字的ldpc_mark标记为true,若所有码字均校验正确,则退出迭代,得到的yldpc为最终译码结果;
(7)RS码译码,首先将内码译码后的比特结果转化为RS码的对应符号,按列读取对应的RS码字进行校验,并根据校正子s的值更新对应RS码码字的rs_mark标记值,然后选择rs_mark标记为false的码字进行纠错纠删译码或完全的纠错译码,将译码结果校验正确的码字的rs_mark标记为true,最后判断Iter是否达到最大迭代次数,若达到,则结束译码;否则,执行步骤(8);
(8)更新与每一比特对应的先验信息,并对更新后的先验信息重新判决,得到LDPC码码字新的判决结果c,然后对c进行校验,若所有LDPC码码字均校验正确,则退出迭代;否则,返回步骤(6)进行下一次迭代。
所述LDPC码译码,选择ldpc_mark标记值为false的码字进行译码,译码可采用置信传播译码算法或其它迭代软判决译码方法,得到译码结果yldpc,将被纠正的码字的ldpc_mark标记为true,若所有码字均校验正确,则退出迭代,得到的yldpc为最终译码结果的具体步骤为:
(6.6)选择ldpc_mark为false的LDPC码字进行译码,得到译码结果yldpc;
(6.7)对得到的译码结果yldpc进行校验,将校验正确的LDPC码字的ldpc_mark标记为true;
(6.8)存储校验失败(ldpc_mark标记值为false)的LDPC码字所在乘积码矩阵中的位置序号,生成删除位置序列loc;
(6.9)统计校验失败的LDPC码码字数目,即Ne=dim(loc);
(6.10)如果所有LDPC码码字均校验正确,也即ldpc_mark均被标记为true,则退出迭代,得到的yldpc为最终译码结果;否则,执行步骤(7)。
所述RS码译码,首先将内码译码后的比特结果转化为RS码的对应符号,按列读取对应的RS码字进行校验,并根据校正子s的值更新对应RS码码字的rs_mark标记值,然后选择rs_mark标记为false的码字进行纠错纠删译码或完全的纠错译码,将译码结果校验正确的码字的rs_mark标记为true,最后判断Iter是否达到最大迭代次数,若达到,则结束译码;否则,执行步骤(8)的具体步骤为:
(7.6)将内码译码后的比特译码结果转化为RS码的对应符号,之后按列读取RS码字进行校验,校验方法为计算同步校正子s,若s=0,则将该码字的rs_mark标记为true;否则,标记为false;
(7.7)如果所有RS码码字的rs_mark均为true,则当前比特结果为外码译码结果yrs,执行步骤(7.5);
(7.8)选择标记为false的RS码码字进行外码译码,得到译码结果yrs;
(7.9)计算译码结果yrs的校正子s,选择s=0的RS码码字,将其rs_mark标记为true;
(7.10)判断迭代次数Iter是否达到最大迭代次数,如果达到了最大迭代次数,则结束译码,得到的yrs为最终译码结果;否则,执行步骤(8)。
所述步骤(7.3)外码译码具体为:
(7.3.4)判断标记的删除个数Ne是否在RS码的纠删能力t之内,若Ne≤t,执行步骤(7.3.2);否则执行步骤(7.3.3);
(7.3.5)依据标记的删除位置序列loc,采用纠错纠删译码算法进行外码译码,得到符号译码结果,并将其转化为比特译码结果yrs;
(7.3.6)将删除标记个数Ne置零,采用纠错译码算法进行外码译码,得到符号译码结果,并将其转化为比特译码结果yrs。
所述更新与每一比特对应的先验信息,并对更新后的先验信息重新判决,得到LDPC码码字新的判决结果c,然后对c进行校验,若所有LDPC码码字均校验正确,则退出迭代;否则,返回步骤(6)进行下一次迭代的具体步骤如下:
(8.6)依据LDPC码译码和RS码译码后的比特译码结果ydec,与初始判决结果c进行比较,若ydec≠c或比特所在的RS码码字标记值rs_mark为true,则对LDPC码译码中与之对应的比特的先验信息进行更新,执行步骤(8.2);
(8.7)更新LDPC码译码的先验信息
其中,表示第k次内码译码后得到的对应比特的后验概率,表示对应比特更新后的先验信息,k的取值为k=Iter+1,表示先验信息的更新次数;
(8.8)对更新后的比特的先验信息进行判决,得到LDPC码码字新的初始判决结果c,判决规则为
(8.9)计算并判断对于所有的i,ldpc_mark(i)≡1是否成立,若成立,则退出迭代;否则,执行步骤(8.5);
(8.10)判断当前迭代次数Iter是否小于最大迭代次数max_Iter,若满足,则更新迭代次数Iter=Iter+1,并传递新的初始判决结果与新的先验信息返回步骤(6)继续执行下一次迭代。
为降低LDPC码错误平层,并在不引入码率损失的条件下,实现更高可靠性的传输,本发明提供了一种LDPC-RS乘积码的纠错纠删迭代译码方法,下面结合附图对本发明的实施方式作进一步详细描述。
参见图1,一种LDPC-RS乘积码的纠错纠删迭代译码的具体步骤为,
(1)将待传输的信息比特转化为矩阵形式,参见图2,本发明针对的乘积码的结构如图所示,将信息矩阵首先按列在RS码的符号级别进行外码也即里德-所罗门(RS)码编码,形成外码的校验位,然后按行进行内码也即LDPC码编码,形成内码的校验位,最后构成乘积码,乘积码中的每一行代表一个内码LDPC码字,多个信息位所在列纵向构成一个外码RS码字,发送时按照逐个LDPC码字逐比特发送;
(2)译码初始化,将迭代次数Iter置零,ldpc_mark和rs_mark标记为false,其中,ldpc_mark表示LDPC码译码成功或失败,rs_mark表示RS码译码成功或失败;本发明采用码长为n1,码率为k1/n1的RS(所在伽罗华域为GF(2m),且m≠1)码作为外码,码长为n2,码率为k2/n2的LDPC码作为内码,因此对应两种标记值的维度为:
(3)计算LDPC码译码初始化软信息,从信道接收与每个比特对应的信道观测值,然后根据信道观测值计算对应的对数似然比(LLR),用L(0)表示;
(4)对接收到的每一个LDPC码字对应的LLR信息进行判决,判决规则为从而得到LDPC码码字的判决结果c;
(5)计算所有LDPC码码字的标记值ldpc_mark,第i个LDPC码码字的标记值计算为
(6)LDPC码译码,选择ldpc_mark标记值为false的码字进行译码,译码可采用置信传播译码算法或其它迭代软判决译码方法,得到译码结果yldpc,将被纠正的码字的ldpc_mark标记为true,若所有码字均校验正确,则退出迭代,得到的yldpc为最终译码结果;
(7)RS码译码,首先将内码译码后的比特结果转化为RS码的对应符号,按列读取对应的RS码字进行校验,并根据校正子s的值更新对应RS码码字的rs_mark标记值,然后选择rs_mark标记为false的码字进行纠错纠删译码或完全的纠错译码,将译码结果校验正确的码字的rs_mark标记为true,最后判断Iter是否达到最大迭代次数,若达到,则结束译码;否则,执行步骤(8);
(8)更新与每一比特对应的先验信息,并对更新后的先验信息重新判决,得到LDPC码码字新的判决结果c,然后对c进行校验,若所有LDPC码码字均校验正确,则退出迭代;否则,返回步骤(6)进行下一次迭代。
参见图3,所述LDPC码译码,选择ldpc_mark标记值为false的码字进行译码,译码可采用置信传播译码算法或其它迭代软判决译码方法,得到译码结果yldpc,将被纠正的码字的ldpc_mark标记为true,若所有码字均校验正确,则退出迭代,得到的yldpc为最终译码结果的具体步骤为:
(6.1)初始化i=1,Ne=0;
(6.2)对ldpc_mark(i)为false的LDPC码码字进行译码,得到译码结果yldpc(i),对ldpc_mark(i)为true的LDPC码码字执行步骤(6.6);
(6.3)对译码结果yldpc(i)进行校验,即计算对结果为0的LDPC码码字的ldpc_mark(i)标记为true;
(6.4)参见图4,若校验失败,即ldpc_mark(i)为false,则存储码字所在乘积码矩阵中的位置序号i到序列loc中,执行步骤(6.5);否则,执行步骤(6.6);
(6.5)Ne=Ne+1;
(6.6)判断i<n1?,若满足,则i=i+1,返回(6.2)继续执行;若不满足,则执行步骤(6.7);
(6.7)如果所有LDPC码码字均校验正确,也即ldpc_mark均被标记为true,则退出迭代,得到的yldpc为最终译码结果;否则,执行步骤(7)。
参见图3,所述RS码译码,首先将内码译码后的比特结果转化为RS码的对应符号,按列读取对应的RS码字进行校验,并根据校正子s的值更新对应RS码码字的rs_mark标记值,然后选择rs_mark标记为false的码字进行纠错纠删译码或完全的纠错译码,将译码结果校验正确的码字的rs_mark标记为true,最后判断Iter是否达到最大迭代次数,若达到,则结束译码;否则,执行步骤(8)的具体步骤为:
(7.1)初始化j=1,并将内码译码后的比特译码结果转化为RS码的对应符号,之后按列读取RS码字进行校验,校验方法为计算同步校正子s,若s=0,则将该码字的rs_mark标记为true;否则,标记为false;
(7.2)如果第j个RS码码字的标记值rs_mark(j)为true,则当前比特结果为外码译码结果yrs,执行步骤(7.5);
(7.3)对rs_mark(j)标记值为false的RS码码字进行外码译码,得到译码结果yrs(j);
(7.4)计算译码结果yrs(j)的校正子s(j),选择s(j)=0的RS码码字,将其rs_mark(j)标记为true;
(7.5)判断j<k2/m?,若满足,则j=j+1,返回(7.2)继续执行;若不满足,则执行步骤(7.6);
(7.6)判断迭代次数Iter是否达到最大迭代次数max_Iter,如果达到了最大迭代次数,则结束译码,得到的yrs为最终译码结果;否则,执行步骤(8)。
参见图4,所述步骤(7.3)外码译码具体步骤为:
(7.3.1)判断标记的删除个数Ne是否在RS码的纠删能力t之内,若Ne≤t,执行步骤(7.3.2);否则执行步骤(7.3.3);
(7.3.2)依据标记的删除位置序列loc,采用纠错纠删译码算法进行外码译码,得到符号译码结果,并将其转化为比特译码结果yrs;
(7.3.3)将删除标记个数Ne置零,采用纠错译码算法进行外码译码,得到符号译码结果,并将其转化为比特译码结果yrs。
所述更新与每一比特对应的先验信息,并对更新后的先验信息重新判决,得到LDPC码码字新的判决结果c,然后对c进行校验,若所有LDPC码码字均校验正确,则退出迭代;否则,返回步骤(6)进行下一次迭代的具体步骤如下:
(8.1)依据LDPC码译码和RS码译码后的比特译码结果ydec,与初始判决结果c进行比较,若ydec≠c或比特所在的RS码码字标记值rs_mark为true,则对LDPC码译码中与之对应的比特的先验信息进行更新,执行步骤(8.2)
(8.2)更新LDPC码译码的先验信息
其中,表示第k次内码译码后得到的对应比特的后验概率,表示对应比特更新后的先验信息,k的取值为k=Iter+1,表示先验信息的更新次数;
(8.3)对更新后的比特的先验信息进行判决,得到LDPC码码字新的初始判决结果c,判决规则为
(8.4)计算并判断对于所有的i,ldpc_mark(i)≡1是否成立,若成立,则退出迭代;否则,执行步骤(8.5);
(8.5)判断当前迭代次数Iter是否小于最大迭代次数max_Iter,若满足,则更新迭代次数Iter=Iter+1,并传递新的初始判决结果与新的先验信息返回步骤(6)继续执行下一次迭代。
下面给出一个具体实施例,说明本发明给出的LDPC-RS乘积码的纠错纠删迭代译码方法的可行性。
本发明实施例以IEEE 802.16e标准中码长为576比特,码率为1/2的LDPC码作为为内码,以码长为255符号,信息位长度分别为251,247,239符号,且在伽罗华域GF(28)上的RS码作为外码为例,并结合图5-图7进行说明。
译码过程如下:
(1)译码初始化,将迭代次数Iter置零,同时将255个ldpc_mark标记值以及36个rs_mark标记值初始化为false;
(2)计算LDPC码译码初始化软信息L(0),并进行判决,得到初始判决结果c;
(3)计算255个LDPC码的标记值ldpc_mark,第i个LDPC码的标记值计算为
(4)LDPC码译码,首先选择ldpc_mark标记为false的码字进行译码,译码采用置信传播译码算法得到译码结果yldpc,并存储译码后得到的每个比特对应的后验概率;然后对的LDPC码码字的i序号进行标记,生成删除位置序列loc,同时统计校验失败的LDPC码码字数目Ne;最后将的码字对应的ldpc_mark(i)标记为true,若所有LDPC码码字的ldpc_mark均为true,则退出迭代,得到的yldpc为最终译码结果;否则,执行步骤(5);
(5)RS码译码,首先将内码译码后的比特结果转化为RS码的对应符号,按列读取RS码字进行校验,并根据校正子s的值更新对应RS码码字的rs_mark标记值;然后选择rs_mark标记为false的码字进行译码,判断Ne是否在外码的纠删能力之内,若Ne≤d-1(d为所采用码字的最小距离),则利用标记的loc序列作为标记的删除位置执行纠错纠删译码;若Ne>d-1,则将Ne置零,只进行外码的纠错译码;最后计算得到的译码结果yrs(j)的校正子s(j),对s(j)=0的码字的rs_mark(j)标记为true;
(6)更新LDPC码译码的先验信息,将本次迭代译码后的比特译码结果ydec与c进行比较,若ydec≠c或比特所在的RS码字的标记值rs_mark为true,则更新对应的比特位置的先验信息,方法为
其中,表示第k次内码译码后得到的对应比特的后验概率,k的取值为k=Iter+1,表示先验信息的更新次数;
(7)对更新后的比特的先验信息进行判决,得到新的初始判决结果c,计算并判断对于所有的i,ldpc_mark(i)≡1是否成立,若成立,则退出迭代;否则,执行步骤(8);
(8)判断当前迭代次数Iter是否小于最大迭代次数max_Iter,若满足,则更新迭代次数Iter=Iter+1,并传递新的初始判决结果与新的先验信息返回步骤(4)继续执行下一次迭代。
首先,基于LDPC-RS乘积码,比较了本发明提供的混合纠错纠删译码方法与只执行外码的纠错译码,不进行删除位置标记的方法的性能,如图5所示。在误比特率为10-7时,与只进行外码的纠错译码相比,基于混合纠错纠删译码方法的LDPC-RS(255,239)乘积码有0.1dB左右的增益。
其次,比较了基于混合纠错纠删译码方法的LDPC-RS乘积码与同码率的LDPC-BCH乘积码的性能,如图6所示。在误比特率为10-7时,由RS(255,239)构造的LDPC-RS乘积码与同码率的LDPC-BCH乘积码相比有0.45dB左右的增益。因此,本发明所提供的方案,与LDPC-BCH乘积码相比有更小的码率损失或更优越的性能。
最后,比较了本发明的迭代译码方法,LDPC-RS乘积码在不同的迭代次数下的性能,如图7所示。从图中可看出迭代2次的误比特率-信噪比曲线较未迭代的性能有明显改善,在信噪比为2.1dB时,性能优化了两个数量级左右,且随着迭代次数的增加,性能得到进一步的改善。
综上所述,基于利用内码译码校验结果来提供外码的删除位置信息,以及通过更新LDPC码的先验信息进行迭代的方法,本发明实施例设计了一种LDPC-RS乘积码的纠错纠删迭代译码方法。本发明提出的方法以较小的码率损失提高了乘积码的性能,有效利用了RS码的纠错纠删能力。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种LDPC-RS乘积码的纠错纠删迭代译码方法,其特征是,步骤如下:
(1)将待传输的信息比特转化为矩阵形式,首先按列在里德-所罗门RS码的符号级别进行外码即RS码编码,然后按行进行内码也即低密度奇偶校验LDPC码编码,从而构成乘积码,每个LDPC码的信息位部分包含所有RS码对应符号转化来的比特,发送时按照逐个LDPC码字逐比特发送;
(2)译码初始化,将迭代次数Iter置零,ldpc_mark和rs_mark标记为false,其中,ldpc_mark用来标记LDPC码译码成功或失败,rs_mark用来标记RS码译码成功或失败;
(3)计算LDPC码译码初始化软信息,从信道接收与每个比特对应的信道观测值,然后根据信道观测值计算对应的对数似然比LLR,用L(0)表示;
(4)对接收到的每一个LDPC码字对应的LLR信息进行判决,判决规则为从而得到LDPC码码字的判决结果c;
(5)计算所有LDPC码码字的标记值ldpc_mark,第i个LDPC码码字的标记值计算为
(6)LDPC码译码,选择ldpc_mark标记值为false的码字进行译码,译码采用迭代软判决译码方法,得到译码结果yldpc,将被纠正的码字的ldpc_mark标记为true,若所有码字均校验正确,则退出迭代,得到的yldpc为最终译码结果;
(7)RS码译码,首先将内码译码后的比特结果转化为RS码的对应符号,按列读取对应的RS码字进行校验,并根据校正子s的值更新对应RS码码字的rs_mark标记值,然后选择rs_mark标记为false的码字进行纠错纠删译码或完全的纠错译码,将译码结果校验正确的码字的rs_mark标记为true,最后判断Iter是否达到最大迭代次数,若达到,则结束译码;否则,执行步骤(8);
(8)更新与每一比特对应的先验信息,并对更新后的先验信息重新判决,得到LDPC码码字新的判决结果c,然后对c进行校验,若所有LDPC码码字均校验正确,则退出迭代;否则,返回步骤(6)进行下一次迭代。
2.如权利要求1所述的LDPC-RS乘积码的纠错纠删迭代译码方法,其特征是,所述LDPC码译码,选择ldpc_mark标记值为false的码字进行译码,译码采用迭代软判决译码方法,得到译码结果yldpc,将被纠正的码字的ldpc_mark标记为true,若所有码字均校验正确,则退出迭代,得到的yldpc为最终译码结果的具体步骤为:
(6.1)选择ldpc_mark为false的LDPC码字进行译码,得到译码结果yldpc;
(6.2)对得到的译码结果yldpc进行校验,将校验正确的LDPC码字的ldpc_mark标记为true;
(6.3)存储校验失败的LDPC码字所在乘积码矩阵中的位置序号,生成删除位置序列loc;
(6.4)统计校验失败的LDPC码码字数目,即Ne=dim(loc);
(6.5)如果所有LDPC码码字均校验正确,也即ldpc_mark均被标记为true,则退出迭代,得到的yldpc为最终译码结果;否则,执行步骤(7)。
3.如权利要求1所述的LDPC-RS乘积码的纠错纠删迭代译码方法,其特征是,所述RS码译码,首先将内码译码后的比特结果转化为RS码的对应符号,按列读取对应的RS码字进行校验,并根据校正子s的值更新对应RS码码字的rs_mark标记值,然后选择rs_mark标记为false的码字进行纠错纠删译码或完全的纠错译码,将译码结果校验正确的码字的rs_mark标记为true,最后判断Iter是否达到最大迭代次数,若达到,则结束译码;否则,执行步骤(8)的具体步骤为:
(7.1)将内码译码后的比特译码结果转化为RS码的对应符号,之后按列读取RS码字进行校验,校验方法为计算同步校正子s,若s=0,则将该码字的rs_mark标记为true;否则,标记为false;
(7.2)如果所有RS码码字的rs_mark均为true,则当前比特结果为外码译码结果yrs,执行步骤(7.5);
(7.3)选择标记为false的RS码码字进行外码译码,得到译码结果yrs;
(7.4)计算译码结果yrs的校正子s,选择s=0的RS码码字,将其rs_mark标记为true;
(7.5)判断迭代次数Iter是否达到最大迭代次数,如果达到了最大迭代次数,则结束译码,得到的yrs为最终译码结果;否则,执行步骤(8)。
所述步骤(7.3)外码译码具体为:
(7.3.1)判断标记的删除个数Ne是否在RS码的纠删能力t之内,若Ne≤t,执行步骤(7.3.2);否则执行步骤(7.3.3);
(7.3.2)依据标记的删除位置序列loc,采用纠错纠删译码算法进行外码译码,得到符号译码结果,并将其转化为比特译码结果yrs;
(7.3.3)将删除标记个数Ne置零,采用纠错译码算法进行外码译码,得到符号译码结果,并将其转化为比特译码结果yrs。
4.如权利要求1所述的LDPC-RS乘积码的纠错纠删迭代译码方法,其特征是,所述更新与每一比特对应的先验信息,并对更新后的先验信息重新判决,得到LDPC码码字新的判决结果c,然后对c进行校验,若所有LDPC码码字均校验正确,则退出迭代;否则,返回步骤(6)进行下一次迭代的具体步骤如下:
(8.1)依据LDPC码译码和RS码译码后的比特译码结果ydec,与初始判决结果c进行比较,若ydec≠c或比特所在的RS码码字标记值rs_mark为true,则对LDPC码译码中与之对应的比特的先验信息进行更新,执行步骤(8.2);
(8.2)更新LDPC码译码的先验信息
其中,表示第k次内码译码后得到的对应比特的后验概率,表示对应比特更新后的先验信息,k的取值为k=Iter+1,表示先验信息的更新次数;
(8.3)对更新后的比特的先验信息进行判决,得到LDPC码码字新的初始判决结果c,判决规则为
(8.4)计算并判断对于所有的i,ldpc_mark(i)≡1是否成立,若成立,则退出迭代;否则,执行步骤(8.5);
(8.5)判断当前迭代次数Iter是否小于最大迭代次数max_Iter,若满足,则更新迭代次数Iter=Iter+1,并传递新的初始判决结果与新的先验信息返回步骤(6)继续执行下一次迭代。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910359299.2A CN110098838B (zh) | 2019-04-30 | 2019-04-30 | Ldpc-rs乘积码的纠错纠删迭代译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910359299.2A CN110098838B (zh) | 2019-04-30 | 2019-04-30 | Ldpc-rs乘积码的纠错纠删迭代译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110098838A true CN110098838A (zh) | 2019-08-06 |
CN110098838B CN110098838B (zh) | 2022-03-22 |
Family
ID=67446435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910359299.2A Active CN110098838B (zh) | 2019-04-30 | 2019-04-30 | Ldpc-rs乘积码的纠错纠删迭代译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110098838B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111555760A (zh) * | 2020-05-21 | 2020-08-18 | 天津大学 | 纠正随机错误和长突发删除的多进制符号级乘积码方法 |
CN111726125A (zh) * | 2020-07-10 | 2020-09-29 | 成都云溯新起点科技有限公司 | 一种基于模板匹配的含错级联码识别方法 |
CN112260972A (zh) * | 2020-10-21 | 2021-01-22 | 天津大学 | 一种符号干扰信道下基于比特域叠加训练序列的均衡方法 |
CN112671415A (zh) * | 2020-12-14 | 2021-04-16 | 天津大学 | 一种面向乘积码的高吞吐量编码方法 |
CN113037296A (zh) * | 2019-12-24 | 2021-06-25 | 北京新岸线移动通信技术有限公司 | 一种基于ldpc级联的编译码方法及装置 |
CN113783602A (zh) * | 2021-08-31 | 2021-12-10 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 卫星通信数据质量提升装置 |
CN113810062A (zh) * | 2021-11-17 | 2021-12-17 | 南京风兴科技有限公司 | 一种面向下一代以太网的gel编码方法及装置 |
WO2022083400A1 (zh) * | 2020-10-20 | 2022-04-28 | 华为技术有限公司 | 一种译码方法和装置 |
CN117976021A (zh) * | 2024-04-01 | 2024-05-03 | 陕西中安数联信息技术有限公司 | 多数据块联合ldpc编码的数据存储方法与系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783729A (zh) * | 2004-11-23 | 2006-06-07 | 三星电子株式会社 | 用联合节点处理来解码低密度奇偶校验码的方法和设备 |
CN101309086A (zh) * | 2008-06-27 | 2008-11-19 | 东南大学 | 里德-所罗门码级联反馈系统卷积码的系统的译码方法 |
US20100241923A1 (en) * | 2009-03-17 | 2010-09-23 | Broadcom Corporation | Communication device employing LDPC (Low Density Parity Check) coding with Reed-Solomon (RS) and/or binary product coding |
CN102130695A (zh) * | 2010-01-15 | 2011-07-20 | 中兴通讯股份有限公司 | 一种级联码的译码方法及装置 |
CN103269229A (zh) * | 2013-05-24 | 2013-08-28 | 上海交通大学 | 一种ldpc-rs二维乘积码的混合迭代译码方法 |
CN103338046A (zh) * | 2013-06-21 | 2013-10-02 | 上海交通大学 | 码率兼容的ldpc-rs二维乘积码的编码与译码方法 |
CN107196665A (zh) * | 2017-06-14 | 2017-09-22 | 中国电子科技集团公司第三十六研究所 | 一种纠错纠删rs码的识别方法 |
CN108281160A (zh) * | 2018-01-12 | 2018-07-13 | 南阳师范学院 | Dvd纠错码的设计方法 |
-
2019
- 2019-04-30 CN CN201910359299.2A patent/CN110098838B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783729A (zh) * | 2004-11-23 | 2006-06-07 | 三星电子株式会社 | 用联合节点处理来解码低密度奇偶校验码的方法和设备 |
CN101309086A (zh) * | 2008-06-27 | 2008-11-19 | 东南大学 | 里德-所罗门码级联反馈系统卷积码的系统的译码方法 |
US20100241923A1 (en) * | 2009-03-17 | 2010-09-23 | Broadcom Corporation | Communication device employing LDPC (Low Density Parity Check) coding with Reed-Solomon (RS) and/or binary product coding |
CN102130695A (zh) * | 2010-01-15 | 2011-07-20 | 中兴通讯股份有限公司 | 一种级联码的译码方法及装置 |
CN103269229A (zh) * | 2013-05-24 | 2013-08-28 | 上海交通大学 | 一种ldpc-rs二维乘积码的混合迭代译码方法 |
CN103338046A (zh) * | 2013-06-21 | 2013-10-02 | 上海交通大学 | 码率兼容的ldpc-rs二维乘积码的编码与译码方法 |
CN107196665A (zh) * | 2017-06-14 | 2017-09-22 | 中国电子科技集团公司第三十六研究所 | 一种纠错纠删rs码的识别方法 |
CN108281160A (zh) * | 2018-01-12 | 2018-07-13 | 南阳师范学院 | Dvd纠错码的设计方法 |
Non-Patent Citations (1)
Title |
---|
董同昕: "LDPC码低复杂度译码算法研究", 《CNKI中国知网》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037296A (zh) * | 2019-12-24 | 2021-06-25 | 北京新岸线移动通信技术有限公司 | 一种基于ldpc级联的编译码方法及装置 |
CN111555760A (zh) * | 2020-05-21 | 2020-08-18 | 天津大学 | 纠正随机错误和长突发删除的多进制符号级乘积码方法 |
CN111555760B (zh) * | 2020-05-21 | 2021-08-24 | 天津大学 | 纠正随机错误和长突发删除的多进制符号级乘积码方法 |
CN111726125A (zh) * | 2020-07-10 | 2020-09-29 | 成都云溯新起点科技有限公司 | 一种基于模板匹配的含错级联码识别方法 |
WO2022083400A1 (zh) * | 2020-10-20 | 2022-04-28 | 华为技术有限公司 | 一种译码方法和装置 |
CN112260972A (zh) * | 2020-10-21 | 2021-01-22 | 天津大学 | 一种符号干扰信道下基于比特域叠加训练序列的均衡方法 |
CN112260972B (zh) * | 2020-10-21 | 2021-08-13 | 天津大学 | 一种符号干扰信道下基于比特域叠加训练序列的均衡方法 |
CN112671415A (zh) * | 2020-12-14 | 2021-04-16 | 天津大学 | 一种面向乘积码的高吞吐量编码方法 |
CN113783602A (zh) * | 2021-08-31 | 2021-12-10 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 卫星通信数据质量提升装置 |
CN113810062A (zh) * | 2021-11-17 | 2021-12-17 | 南京风兴科技有限公司 | 一种面向下一代以太网的gel编码方法及装置 |
CN113810062B (zh) * | 2021-11-17 | 2022-04-12 | 南京风兴科技有限公司 | 一种面向下一代以太网的gel编码方法及装置 |
CN117976021A (zh) * | 2024-04-01 | 2024-05-03 | 陕西中安数联信息技术有限公司 | 多数据块联合ldpc编码的数据存储方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110098838B (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110098838A (zh) | Ldpc-rs乘积码的纠错纠删迭代译码方法 | |
US11362682B2 (en) | Encoding method and apparatus using CRC code and polar code | |
CN105680883B (zh) | 一种极化码和多比特奇偶校验码级联的纠错编码方法 | |
Mahdavifar et al. | On the construction and decoding of concatenated polar codes | |
CN106452460B (zh) | 一种极化码与重复码级联的纠错编码方法 | |
US8677222B2 (en) | Method and device for decoding Reed-Solomon (RS) code | |
CN107248866A (zh) | 一种降低极化码译码时延的方法 | |
WO2008075004A1 (en) | Decoding of serial concatenated codes using erasure patterns | |
CN101273531B (zh) | 低密度奇偶校验码的改进turbo-译码消息传递方法、设备和系统 | |
Chen | Iterative soft decoding of Reed-Solomon convolutional concatenated codes | |
Yu et al. | Hybrid Parity-Check and CRC Aided SCL decoding for polar codes | |
Ortega et al. | Optimizing the co‐design of message structure and channel coding to reduce the TTD for a Galileo 2nd generation signal | |
CN111654291B (zh) | 一种基于比特翻转的极化码快速串行抵消列表译码算法 | |
CN111555760B (zh) | 纠正随机错误和长突发删除的多进制符号级乘积码方法 | |
CN103457612B (zh) | 针对里德所罗门-卷积级联码的迭代软判决译码方法 | |
Liang et al. | Raptor-like rateless spinal codes using outer systematic polar codes for reliable deep space communications | |
Fazeli et al. | Convolutional decoding of polar codes | |
Espluga et al. | New solutions to reduce the time-to-CED and to improve the CED robustness of the Galileo I/NAV message | |
JP2009225325A (ja) | 復号方法および復号装置、並びにプログラム | |
CN104753542B (zh) | 用于ldpc码的比特翻转和线性规划组合译码方法 | |
CN108833057B (zh) | 一种基于3gpp 5g-nr极化码的分布式crc处理方法 | |
Xu et al. | Shortened turbo product codes: encoding design and decoding algorithm | |
Tang et al. | A new Chase-type soft-decision decoding algorithm for Reed-Solomon codes | |
US8156412B2 (en) | Tree decoding method for decoding linear block codes | |
Chen et al. | Iterative soft-decision decoding of Reed-Solomon convolutional concatenated codes |
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 |