CN112702066B - 基于最小和算法的ldpc译码方法、装置、设备及介质 - Google Patents
基于最小和算法的ldpc译码方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112702066B CN112702066B CN202011455279.4A CN202011455279A CN112702066B CN 112702066 B CN112702066 B CN 112702066B CN 202011455279 A CN202011455279 A CN 202011455279A CN 112702066 B CN112702066 B CN 112702066B
- Authority
- CN
- China
- Prior art keywords
- value
- amplitude
- current
- updating
- 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.)
- Active
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 160
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000012360 testing method Methods 0.000 claims abstract description 51
- 230000006870 function Effects 0.000 claims description 100
- 239000011159 matrix material Substances 0.000 claims description 57
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 description 39
- 238000010586 diagram Methods 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 229940050561 matrix product Drugs 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明实施例公开了一种基于最小和算法的LDPC译码方法、装置、设备及介质。该方法包括:在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新时,计算与其连接的每个变量节点的待更新幅度当前值,在各个待更新幅度当前值的绝对值中确定最小的两个值;针对与其连接的每个变量节点,计算符号函数值更新值,以及按照设定赋值规则,利用最小的两个值对采用的最小和算法中的最小值进行赋值得到变量节点的幅度更新值,更新信息接收当前值和对数似然比当前值;在完成当前次的译码迭代过程时测试对数似然比当前值以得到LDPC译码结果。上述技术方案够降低采用最小和算法进行LDPC译码的计算复杂度。
Description
技术领域
本发明实施例涉及信道编码译码技术领域,尤其涉及一种基于最小和算法的LDPC译码方法、装置、设备及介质。
背景技术
LDPC(Low Density Parity Check Code,低密度奇偶校验码)是5G标准中用于数据信道的纠错码,它的最优译码方法是采用和积算法(Sum-Product Algorithm)进行译码,而实际应用中更常采用使的是其简化算法,也即最小和算法(Min-Sum Algorithm)进行译码。
现有技术中,在采用最小和算法(Min-Sum Algorithm)进行LDPC译码时,与同一个校验节点相连的变量节点的数量越多,相应的数据计算量就会越大。因此,在5G应用场景中与同一个校验节点相连的变量节点会越来越多的情况下,如何降低采用最小和算法进行LDPC译码的计算复杂度,是亟待解决的问题。
发明内容
本发明实施例提供一种基于最小和算法的LDPC译码方法、装置、设备及介质,以降低采用最小和算法进行LDPC译码的计算复杂度。
第一方面,本发明实施例提供了一种基于最小和算法的LDPC译码方法,包括:
在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值,并在各个所述待更新幅度当前值的绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,所述第一幅度值小于等于所述第二幅度值;
针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,以及按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值;
根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的信息接收当前值和对数似然比当前值;
在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果。
第二方面,本发明实施例还提供了一种基于最小和算法的LDPC译码装置,包括:
待更新幅度当前最小值确定模块,设置为在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值,并在各个所述待更新幅度当前值的绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,所述第一幅度值小于等于所述第二幅度值;
符号函数值更新值及幅度更新值计算模块,设置为针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,以及按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值;
信息接收值及对数似然比更新模块,设置为根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的信息接收当前值和对数似然比当前值;
译码测试模块,设置为在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明任意实施例所述的基于最小和算法的LDPC译码方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的基于最小和算法的LDPC译码方法。
本发明实施例的技术方案,在对多个变量节点进行LDPC译码时的每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时:首先,计算与当前校验节点连接的每个变量节点的待更新幅度当前值(待更新幅度当前值为对数似然比当前值与信息接收当前值的差值),并在各个待更新幅度当前值的绝对值中确定最小的两个值分别作为第一幅度值和第二幅度值(第一幅度值小于等于第二幅度值);其次,针对与当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,以及按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值;最后,根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的所述信息接收当前值和所述对数似然比当前值。在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果。在上述技术方案中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,处理复杂度不会随着与当前校验节点向量相连的变量节点的数量增加而增加。进而,相对于现有技术而言,上述技术方案在5G应用场景中与同一个校验节点相连的变量节点会越来越多的情况下,能够降低采用最小和算法进行LDPC译码的计算复杂度。
附图说明
图1是本发明实施例中的一种校验节点与变量节点的连接示例图;
图2是现有技术中基于标准最小和算法的译码迭代的流程图;
图3是现有技术中以第i个校验节点为维度对变量节点的对数似然比进行更新的流程图;
图4是本发明实施例中的一种校验节点与变量节点的连接示例图的子图;
图5是本发明实施例一中的一种基于最小和算法的LDPC译码方法的流程图;
图6是本发明实施例一中以第i个校验节点为维度对变量节点的对数似然比进行更新的流程图;
图7是本发明实施例二中的一种基于最小和算法的LDPC译码方法的流程图;
图8是本发明实施例三中的一种基于最小和算法的LDPC译码方法的流程图;
图9是本发明实施例四中的一种基于最小和算法的LDPC译码装置的结构示意图;
图10是本发明实施例五中的一种基于最小和算法的LDPC译码装置的结构示意图;
图11是本发明实施例六中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
为了便于理解,将本发明实施例的主要发明构思进行简述。
最小和算法(也称标准最小和算法),存在两个变种算法,分别是归一化最小和(Normalized Min-Sum)算法、偏移最小和(Offset Min-Sum)算法。
以标准最小和算法为例进行解释说明:
参照图1,Ci表示第i个校验节点,Vj表示第j个变量节点。
基于最小和算法进行LDPC译码时,涉及如下几个参数:
变量节点的LLR(Likelihood Rate,对数似然比)值,例如可以使用Lj表示第j个变量节点的LLR值;
从第i个校验节点发送给第j个变量节点的信息(或者说第j个变量节点从第i个校验节点接收到的信息)值,例如可以使用Rij表示从第i个校验节点发送给第j个变量节点的信息值;
与第i个校验节点连接的变量节点的集合,例如可以使用N(i)表示跟第i个校验节点连接的变量节点的集合,参照图1,N(1)={1,3,4,5,6},N(2)={2,5};
与第i个校验节点连接的变量节点的集合中排除第j个变量节点的子集合,例如可以使用N(i)\{j}表示N(i)排除掉第j个节点,参照图1,N(1)\{1}={3,4,5,6}。
标准最小和算法的译码迭代过程如图2所示:
S10、判断译码迭代的当前次数是否达到最大迭代次数,若否,则执行S20,若是,则译码结束。
其中,最大迭代次数max_iters可配,典型的为几十次。
S20、译码迭代的当前次数加1。
S30、按顺序依次选择一个校验节点作为当前校验节点,计算与当前校验节点相连的每个变量节点的待更新幅度当前值。
可选的,按照校验节点的编号依次选择一个校验节点作为当前校验节点。
其中,每个变量节点的待更新幅度当前值Dij=Lj–Rij。
S40、按顺序依次选择与当前校验节点相连的一个变量节点作为当前变量节点,计算当前变量节点的符号函数值更新值以及幅度更新值。
可选的,按照变量节点的编号依次选择与当前校验节点相连的一个变量节点作为当前变量节点。
其中,符号函数值更新值sgn=Πj'∈N(i)\{j}sign(Dij'),
幅度更新值mag=minj'∈N(i)\{j}|Dij'|。
S50、根据当前变量节点的符号函数值更新值以及幅度更新值,更新当前变量节点针对当前校验节点的信息接收当前值以及对数似然比当前值。
其中,当前变量节点针对当前校验节点的信息接收当前值Rij=sgn*mag,对数似然比当前值Lj=Dij+Rij。
S60、判断是否完成对与当前校验节点相连的所有变量节点的更新处理,若否,则执行S40,若是,则执行S70。
S70、判断在当前次的译码迭代过程是否针对所有校验节点完成更新处理,若否,则执行S30,若是,则执行S80。
S80、使用目标矩阵对多个变量节点的对数似然比当前值进行测试,并判断测试结果是否成功,若否,则执行S10,若是,则译码结束。
其中,根据多个变量节点的对数似然比当前值,生成译码结果矩阵,并使用目标矩阵对译码结果矩阵进行测试。
如果测试结果满足译码成功条件,则译码结束且译码成功,此时译码结果矩阵即为针对多个变量节点的LDPC译码结果。
如果译码迭代的当前次数达到最大迭代次数,则译码结束且译码失败,此时未实现成功译码,无译码结果。
其中,针对所有校验节点和变量节点,在译码迭代前信息接收值(Rij)的初始值可以为零,第j个变量节点的LLR值的初始值可以为其接收到的LLR值。
在上述译码迭代过程中,存在三层循环,第一层是迭代次数,第二层是遍历每个校验节点,第三层是遍历与当前校验节点相连的每个变量节点。
其中,以第i个校验节点为维度对变量节点的对数似然比进行更新的流程可以参见图3。首先,计算与第i个校验节点相连的每个变量节点的待更新幅度当前值Dij。然后,依次针对与第i个校验节点相连的每个变量节点进行信息接收当前值Rij以及对数似然比当前值Lj的更新处理。在针对与第i个校验节点相连的第j个变量节点进行信息接收当前值Rij以及对数似然比当前值Lj的更新处理时,首先计算第j个变量节点的符号函数值更新值sgn以及幅度更新值mag,然后根据第j个变量节点的符号函数值更新值sgn以及幅度更新值mag更新第j个变量节点针对第i个校验节点的信息接收当前值Rij以及对数似然比当前值Lj。
在此处理流程中,最大的计算量在计算幅度更新值mag=minj'∈N(i)\{j}|Dij'|这个操作。以处理校验节点C1为例,参照如图4所示的子图,针对与校验节点C1相连的第j个变量节点计算幅度更新值mag时,需要在与校验节点C1相连各个变量节点的待更新幅度当前值Dij中剔除与当前j对应的值,并在剩余的待更新幅度当前值Dij中确定最小的一个值,在计算第1个变量节点的幅度更新值mag时,需要计算出待更新幅度当前值D13、D14、D15、D16中的最小值,在计算第3个变量节点的幅度更新值mag时,需要计算出待更新幅度当前值D11、D14、D15、D16中的最小值,以此类推,针对校验节点C1,需要进行5次求最小值计算。
随着与同一校验节点相连的变量节点的数量增多,求最小值计算的次数也会增多,无疑会增加采用最小和算法进行LDPC译码的计算复杂度。
基于上述思考,发明人创造性地提出一种基于最小和算法的LDPC译码方法,包括:
在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时:计算与当前校验节点连接的每个变量节点的待更新幅度当前值,并在各个所述待更新幅度当前值的绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,所述第一幅度值小于等于所述第二幅度值;其中,所述待更新幅度当前值为所述变量节点的对数似然比当前值与信息接收当前值的差值;
针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,以及按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值;
根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的所述信息接收当前值和所述对数似然比当前值;
在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果。
实施例一
图5为本发明实施例一提供的一种基于最小和算法的LDPC译码方法的流程图,本实施例可适用于基于最小和算法针对多个变量节点进行LDPC译码以降低数据计算量的情况,该方法可以由本发明实施例提供的基于最小和算法的LDPC译码装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。
如图5所示,本实施例提供的基于最小和算法的LDPC译码方法,具体包括:
S110、在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值,并在各个待更新幅度当前值的绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,第一幅度值小于等于第二幅度值。
每次译码迭代,指的是对多个变量节点进行LDPC译码时的每次迭代过程。其中,译码迭代次数可配置,一般可以将迭代次数配置为几十。
变量节点的待更新幅度当前值,指的是该变量节点的对数似然比当前值与信息接收当前值的差值。以当前校验节点为第i个校验节点为例,第j个变量节点的待更新幅度当前值Dij为第j个变量节点的对数似然比当前值Lj与第j个变量节点针对第i个校验节点的信息接收当前值Rij的差值。
其中,若在首次译码迭代中且当前校验节点为首个(第一个)校验节点时,则对数似然比当前值和信息接收当前值均为相应的初始值,对数似然比的初始值可以是校验节点接收到的LLR,信息接收值的初始值可以为零,否则,对数似然比当前值和信息接收当前值均为前一次以校验节点为维度对变量节点的对数似然比进行更新处理后相应的更新值。
在每次译码迭代过程中,依次以每个校验节点为维度对变量节点的对数似然比进行更新处理,直至完成以所有校验节点为维度对变量节点的对数似然比的更新处理。
在针对当前校验节点Ci进行变量节点的对数似然比的更新处理时,分别计算与当前校验节点Ci连接的每个变量节点Vj的待更新幅度当前值Dij。
参照如2所示的子图,针对校验节点C1进行变量节点的对数似然比的更新处理时,分别计算与当前校验节点C1连接的每个变量节点Vj的待更新幅度当前值D1j,也即分别计算D11、D13、D14、D15、D16,其中,D11=L1-R11;D13=L3-R13;D14=L4-R14;D15=L5-R15;D16=L6-R16。
计算与当前校验节点Ci连接的每个变量节点Vj的待更新幅度当前值Dij的绝对值|Dij|,并在这些绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,其中,第一幅度值小于等于第二幅度值。
可选的,将|Dij|按照从小到大的顺序进行排序,将排序在首位的绝对值作为第一幅度值,将排序在第二位的绝对值作为第二幅度值。
当|Dij|中的最小值存在至少两个时,排序在首位和第二位的绝对值是相等的,此时第一幅度值等于第二幅度值,二者均为最小值;当|Dij|中的最小值只存在一个时,排序在首位的绝对值小于排序在第二位的绝对值,此时第一幅度值小于第二幅度值,也即第一幅度值是最小值,第二幅度值是次小值。
S120、针对与当前校验节点连接的每个变量节点,计算变量节点的符号函数值更新值,以及按照设定赋值规则,利用第一幅度值或第二幅度值,对采用的最小和算法中的最小值进行赋值,得到变量节点的幅度更新值。
符号函数值更新值sgn,指的是在以当前校验节点为维度对与其连接的一个变量节点的对数似然比更新处理时,变量节点针对当前校验节点的信息接收更新值的符号函数值。符号函数值更新值sgn为“+1”或“-1”。
其中,与当前校验节点相连的一个变量节点的符号函数值更新值,为除该变量节点之外,与当前校验节点相连的所有其他变量节点的待更新幅度当前值的符号函数值的乘积。也即,sgn=Πj'∈N(i)\{j}sign(Dij')。
参照图4,在计算符号函数值更新值sgn时,以变量节点V1、V3为例:变量节点V1的符号函数值更新值为:sgn=sign(D13)*sign(D14)*sign(D15)*sign(D16);变量节点V3的符号函数值更新值为:sgn=sign(D11)*sign(D14)*sign(D15)*sign(D16)。
幅度更新值mag,指的是在以当前校验节点为维度对与其连接的一个变量节点的对数似然比更新处理时,变量节点针对当前校验节点的信息接收更新值的幅度值。
其中,采用的最小和算法指的是的标准最小和算法、归一化最小和算法或偏移最小和算法。
需要指出的是,本实施例提供的基于最小和算法的LDPC译码方法,均适用于标准最小和算法、归一化最小和算法与偏移最小和算法。其中,标准最小和算法、归一化最小和算法与偏移最小和算法的区别只在于幅度更新值计算公式的区别。
其中,标准最小和算法中幅度更新值计算公式为:
mag=minj'∈N(i)\{j}|Dij'|。
归一化最小和算法中幅度更新值计算公式为:
mag=minj'∈N(i)\{j}|Dij'|*α;其中,α为归一化最小和算法的参数。
偏移最小和算法中幅度更新值计算公式为:
mag=max(minj'∈N(i)\{j}|Dij'|-β,0);其中,β为偏移最小和算法的参数。
在本实施例中,最小和算法中的最小值,指的是幅度更新值计算公式涉及的目标最小值计算部分,也即指的是上述三种幅度更新值计算公式中的共有部分minj'∈N(i)\{j}|Dij'|。
其中,在计算与当前校验节点相连的一个变量节点的幅度更新值时,最小和算法中的最小值的含义在于,除该变量节点之外,与当前校验节点相连的所有其他变量节点的待更新幅度当前值的绝对值中的最小值。
在针对一个变量节点计算幅度更新值mag时,首先需要求解最小值,可选的,将该变量节点的待更新幅度当前值的绝对值与第一幅度值、第二幅度值进行比较,以实现对最小值进行赋值,然后根据最小值的赋值结果计算出该变量节点的幅度更新值mag。
例如,如果变量节点的待更新幅度当前值的绝对值大于等于第二幅度值,则将采用的最小和算法中的最小值赋值为第一幅度值;如果变量节点的待更新幅度当前值的绝对值等于第一幅度值,则将采用的最小和算法中的最小值赋值为第二幅度值。
作为一种具体的实施方式,可以将按照设定赋值规则,利用第一幅度值或第二幅度值,对采用的最小和算法中的最小值进行赋值,具体为:
如果变量节点的待更新幅度当前值的绝对值等于第一幅度值,则将采用的最小和算法中的最小值赋值为第二幅度值;如果变量节点的待更新幅度当前值的绝对值不等于第一幅度值,则将采用的最小和算法中的最小值赋值为第一幅度值。
在针对一个变量节点计算幅度更新值mag时,首先判断该变量节点的待更新幅度当前值的绝对值是否等于第一幅度值,若是,则将将采用的最小和算法中的最小值赋值为第二幅度值,若否,则将将采用的最小和算法中的最小值赋值为第一幅度值,然后将赋值结果代入幅度更新值计算公式中得到幅度更新值mag。
其中,在最小和算法为标准最小和算法时,mag=minj'∈N(i)\{j}|Dij'|,此时,最小值的赋值结果即为幅度更新值mag。
在最小和算法为归一化最小和算法时,mag=minj'∈N(i)\{j}|Dij'|*α,此时,最小值的赋值结果与α的乘积结果即为幅度更新值mag。
在最小和算法为偏移最小和算法时,mag=max(minj'∈N(i)\{j}|Dij'|-β,0),此时,计算最小值的赋值结果与β的差值,该差值与零中的最大值即为幅度更新值mag。
在上述实施方式中,针对与当前校验节点连接的每个变量节点计算变量节点的幅度更新值时,无需针对每个变量节点分别进行求最小值的计算,也即针对与当前校验节点连接的多个变量节点无需进行多次求最小值的计算,只需进行一次求最小的两个值的计算,以此减小了在针对与当前校验节点连接的每个变量节点计算变量节点的幅度更新值时的计算量,在与当前校验节点连接的变量节点的数量越大时,减小的计算量就会更多,进而降低了基于最小和算法进行LDPC译码的复杂度。
S130、根据符号函数值更新值和幅度更新值,更新变量节点的信息接收当前值和对数似然比当前值。
信息接收当前值,指的以当前校验节点为维度对变量节点的对数似然比进行更新处理后该变量节点针对当前校验节点的信息接收值。
对数似然比当前值,指的以当前校验节点为维度对变量节点的对数似然比进行更新处理后该变量节点的对数似然比的值。
其中,根据符号函数值更新值和幅度更新值,更新变量节点的信息接收当前值和对数似然比当前值,可以具体为:
将变量节点的信息接收当前值更新为符号函数值更新值与幅度更新值的乘积;将变量节点的对数似然比当前值更新为变量节点的待更新幅度当前值与信息接收当前值的累加和。
也即,变量节点针对当前校验节点的信息接收当前值Rij为符号函数值更新值sgn与幅度更新值mag的乘积,Rij=sgn*mag。
变量节点的对数似然比当前值Lj为变量节点的待更新幅度当前值Dij与变量节点针对当前校验节点的信息接收当前值Rij的累加和,Lj=Dij+Rij。
其中,本实施例中以第i个校验节点为维度对变量节点的对数似然比进行更新的流程可以参见图6。首先,计算与第i个校验节点相连的每个变量节点的待更新幅度当前值Dij。其次,计算各Dij的绝对值,并在这些绝对值中确定出最小的两个值,分别作为第一幅度值和第二幅度值。再次,依次针对与第i个校验节点相连的每个变量节点进行信息接收当前值Rij以及对数似然比当前值Lj的更新处理。在针对与第i个校验节点相连的第j个变量节点进行信息接收当前值Rij以及对数似然比当前值Lj的更新处理时,首先计算第j个变量节点的符号函数值更新值sgn,以及按照设定赋值规则,利用第一幅度值或第二幅度值,对采用的最小和算法中的最小值进行赋值,得到第j个变量节点的幅度更新值mag,然后根据第j个变量节点的符号函数值更新值sgn以及幅度更新值mag更新第j个变量节点针对第i个校验节点的信息接收当前值Rij以及对数似然比当前值Lj。
S140、在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的对数似然比当前值进行测试,以得到针对多个变量节点的LDPC译码结果。
在完成当前次的译码迭代过程时,得到多个变量节点的对数似然比当前值,使用预设的目标矩阵对这多个变量节点的对数似然比当前值进行测试,若测试结果满足预设条件,则对这多个变量节点的对数似然比当前值进行处理的结果,即可作为针对多个变量节点的LDPC译码结果。
可选的,使用目标矩阵对多个变量节点的对数似然比当前值进行测试,以得到针对多个变量节点的LDPC译码结果,包括:
根据多个变量节点的对数似然比当前值,生成译码结果矩阵,并使用目标矩阵对译码结果矩阵进行测试;如果测试结果满足译码成功条件,则将译码结果矩阵作为针对多个变量节点的LDPC译码结果。
对多个变量节点的对数似然比当前值进行处理,生成译码结果矩阵,例如,如果变量节点的对数似然比当前值大于等于零,则将该对数似然比当前值译码成1,如果变量节点的对数似然比当前值小于零,则将该对数似然比当前值译码成0,进而按照变量节点的序号生成译码结果矩阵[c;w]。
使用目标矩阵H对译码结果矩阵[c;w]进行测试,例如计算目标矩阵H与译码结果矩阵[c;w]的乘积,并判断测试结果是否满足译码成功条件,也即乘积结果是否满足译码成功条件。其中,译码成功条件例如可以是矩阵乘积的结果为零。
在测试结果满足译码成功条件时,即可将译码结果矩阵作为针对多个变量节点的LDPC译码结果;在测试结果满足译码成功条件时,继续进入下一次译码迭代过程,直至得到对译码结果矩阵的测试结果满足译码成功条件,或者译码迭代次数达到预设次数。
本发明实施例的技术方案,在对多个变量节点进行LDPC译码时的每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时:首先,计算与当前校验节点连接的每个变量节点的待更新幅度当前值(待更新幅度当前值为对数似然比当前值与信息接收当前值的差值),并在各个待更新幅度当前值的绝对值中确定最小的两个值分别作为第一幅度值和第二幅度值(第一幅度值小于等于第二幅度值);其次,针对与当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,以及按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值;最后,根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的所述信息接收当前值和所述对数似然比当前值。在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果。在上述技术方案中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,处理复杂度不会随着与当前校验节点向量相连的变量节点的数量增加而增加。进而,相对于现有技术而言,上述技术方案在5G应用场景中与同一个校验节点相连的变量节点会越来越多的情况下,能够降低基于最小和算法进行LDPC译码的计算复杂度。
进一步的,在上述技术方案的基础上,作为一种可选的实施方式,在计算与当前校验节点连接的每个变量节点的待更新幅度当前值之后,还包括:计算各个变量节点的待更新幅度当前值的符号函数值的总乘积。相应的,计算变量节点的符号函数值更新值,包括:根据变量节点的待更新幅度当前值的符号函数值与所述总乘积,计算变量节点的符号函数值更新值。
计算与当前校验节点连接的每个变量节点的待更新幅度当前值Dij之后,计算各个变量节点的待更新幅度当前值Dij的符号函数值的总乘积sgn_all,也即sgn_all=Пsign(Dij)。
进而,在计算变量节点的符号函数值更新值sgn时,将变量节点的待更新幅度当前值的符号函数值sign(Dij)与sgn_all的乘积作为该变量节点的符号函数值更新值sgn,也即,sgn=sgn_all*sign(Dij)。
现有技术中,若与当前校验节点连接的变量节点的数量为n,则计算任意一个变量节点计算符号函数值更新值时均需要进行n-1个符号函数值的乘积计算。而在上述实施方式中,针对与当前校验节点连接的每个变量节点计算变量节点的符号函数值更新值时,无需针对每个变量节点进行n-1个符号函数值的乘积计算,只需先进行一次n个符号函数值的乘积计算,再分别针对每个变量节点进行2个符号函数值的乘积计算,以此减小了在针对与当前校验节点连接的每个变量节点计算变量节点的符号函数值更新值时的计算量,在与当前校验节点连接的变量节点的数量(也即n)越大时,减小的计算量就会更多,进而降低了基于最小和算法进行LDPC译码的复杂度。
实施例二
图7为本发明实施例二提供的一种基于最小和算法的LDPC译码方法的流程图,本实施例可适用于基于最小和算法针对多个变量节点进行LDPC译码以降低数据计算量的情况,该方法可以由本发明实施例提供的基于最小和算法的LDPC译码装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。
如图7所示,本实施例提供的基于最小和算法的LDPC译码方法,具体包括:
S210、在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值。
S220、针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,并基于标准最小和算法计算变量节点的幅度更新值。
其中,基于标准最小和算法计算所述变量节点的幅度更新值,指的是依据标准最小和算法的幅度更新值mag计算公式mag=minj'∈N(i)\{j}|Dij'|计算变量节点的幅度更新值。
进一步的,在一种可选的实施方式中,在计算与当前校验节点连接的每个变量节点的待更新幅度当前值之后,可以在各个待更新幅度当前值的绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,第一幅度值小于等于第二幅度值。进而,可以按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值。在依据标准最小和算法的幅度更新值mag计算公式mag=minj'∈N(i)\{j}|Dij'|计算变量节点的幅度更新值时,最小值的赋值结果即为变量节点的幅度更新值。
可选的,按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,包括:如果变量节点的待更新幅度当前值的绝对值等于第一幅度值,则将采用的最小和算法中的最小值赋值为第二幅度值;如果变量节点的待更新幅度当前值的绝对值不等于第一幅度值,则将采用的最小和算法中的最小值赋值为第一幅度值。
S230、对幅度更新值进行修正,得到幅度更新修正值。
在基于标准最小和算法计算得到变量节点的幅度更新值之后,可以对该幅度更新值进行修正,得到幅度更新修正值,以提高幅度更新值的准确度。
可选的,对幅度更新值进行修正,得到幅度更新修正值,可以包括:
根据幅度更新值与幅度门限值的关系,对幅度更新值进行修正,得到幅度更新修正值。
预先设置一个幅度门限值,计算得到的幅度更新值与该幅度门限值进行比较,进而根据比较结果选取匹配的修正方式对的幅度更新值进行修正,得到幅度更新修正值。
进一步的,作为一种可选的实施方式,根据幅度更新值与幅度门限值的关系,对幅度更新值进行修正,可以具体为:
如果幅度更新值大于幅度门限值,则基于偏移最小和算法对幅度更新值进行修正;如果幅度更新值不大于幅度门限值,则基于归一化最小和算法对幅度更新值进行修正。
在基于标准最小和算法计算得到变量节点的幅度更新值之后,判断该幅度更新值是否大于幅度门限值,若是,则基于偏移最小和算法对幅度更新值进行修正,也即依据偏移最小和算法的幅度更新值mag计算公式mag=max(minj'∈N(i)\{j}|Dij'|-β,0)对该幅度更新值进行更新,得到幅度更新修正值;若否,则基于归一化最小和算法对幅度更新值进行修正,也即依据归一化最小和算法的幅度更新值mag计算公式mag=minj'∈N(i)\{j}|Dij'|*α对该幅度更新值进行更新,得到幅度更新修正值。
S240、根据符号函数值更新值和幅度更新修正值,更新变量节点的信息接收当前值和对数似然比当前值。
S250、在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的对数似然比当前值进行测试,以得到针对多个变量节点的LDPC译码结果。
可选的,使用目标矩阵对多个变量节点的对数似然比当前值进行测试,以得到针对多个变量节点的LDPC译码结果,包括:
根据多个变量节点的对数似然比当前值,生成译码结果矩阵,并使用目标矩阵对译码结果矩阵进行测试;如果测试结果满足译码成功条件,则将译码结果矩阵作为针对多个变量节点的LDPC译码结果。
本实施例未尽详细解释之处请参见前述实施例,在此不再赘述。
在上述技术方案中,根据标准最小和算法计算得到变量节点的幅度更新值,依据幅度更新值与幅度门限值的大小关系,选择偏移最小和算法或归一化最小和算法对幅度更新值进行修正,以提高修正后的幅度更新值的准确率,进而可以减少译码迭代次数,降低译码时长,提高译码成功的几率,尤其是在信噪比较低的应用场景下,能够明显减少译码迭代次数,提升解调性能,进而使用户能够明显体验到下载速度加快。
实施例三
图8是本发明实施例三中的一种基于最小和算法的LDPC译码方法的流程图。本实施例在实施例一的基础上,提供了一种具体的实施方式。其中,所述最小和算法为标准最小和算法;在得到所述变量节点的幅度更新值之后,还包括:对幅度更新值进行修正,得到幅度更新修正值;
相应的,根据符号函数值更新值和幅度更新值,更新变量节点的信息接收当前值和所述对数似然比当前值,可以具体为:根据符号函数值更新值和幅度更新修正值,更新变量节点的信息接收当前值和对数似然比当前值。
如图8所示,本实施例提供的基于最小和算法的LDPC译码方法,具体包括:
S310、判断当前译码迭代次数是否达到最大迭代次数,若否,则执行S320,若是,则执行S3210。
其中,当前译码迭代次数的初始值为0。
S320、当前译码迭代次数加1。
S330、判断是否遍历完所有校验节点,若否,则执行S340,若是,则执行S3180。
S340、顺序选取一个校验节点作为当前校验节点。
S350、计算与当前校验节点连接的每个变量节点的待更新幅度当前值。
其中,待更新幅度当前值为变量节点的对数似然比当前值与信息接收当前值的差值。
在一个具体的示例中,参照图4,假设当前校验节点为C1,与当前校验节点连接的每个变量节点针对当前校验节点的信息接收当前值分别为:R11=4、R13=-9、R14=16、R15=-20、R16=7;当前校验节点连接的每个变量节点的对数似然比当前值分别为:L1=5、L3=-19、L4=20、L5=10、L6=9。
计算与当前校验节点连接的每个变量节点的待更新幅度当前值分别为:
D11=L1-R11=5-4=1;D13=L3-R13=-19-(-9)=-10;D14=L4-R14=20-16=4;
D15=L5-R15=10-(-20)=30;D16=L6-R16=9-7=2。
S360、在各个待更新幅度当前值的绝对值中确定最小的两个值分别作为第一幅度值和第二幅度值,并计算各个待更新幅度当前值的符号函数值的总乘积。
其中,第一幅度值小于等于第二幅度值。
接续前示例,计算各个待更新幅度当前值的绝对值,分别为:1、10、4、30、2,并在绝对值中确定最小的两个值,分别为1和2,将1(最小值)作为第一幅度值,将2(次小值)作为第二幅度值。
计算各个待更新幅度当前值的符号函数值的总乘积sgn_all=1*(-1)*1*1*1=-1。
S370、判断是否遍历完与当前校验节点相连的所有变量节点,若否,则执行S380,若是,则执行S330。
S380、顺序选取与当前校验节点相连的一个变量节点作为当前变量节点。
S390、判断当前变量节点的待更新幅度当前值的绝对值是否等于第一幅度值,若是,执行S3100,若否,则执行S3110。
S3100、将当前变量节点的幅度更新值确定为第二幅度值,执行S3120。
S3110、将当前变量节点的幅度更新值确定为第一幅度值,执行S3120。
当前变量节点是V1时,D11的绝对值为1,等于第一幅度值,所以其幅度更新值mag取第二幅度值2;当前变量节点是V3时,D13的绝对值为10,不等于第一幅度值,所以其幅度更新值mag取第一幅度值1;以此类推。
S3120、判断当前变量节点的幅度更新值是否大于幅度门限值,若是,则执行S3130,若否,则执行S3140。
S3130、基于偏移最小和算法对当前变量节点的幅度更新值进行修正,得到幅度更新修正值,执行S3150。
S3140、基于归一化最小和算法对当前变量节点的幅度更新值进行修正,得到幅度更新修正值,执行S3150。
假设幅度门限值为8,当前变量节点是V1时,其幅度更新值mag=2,小于幅度门限值,则基于归一化最小和算法对V1的幅度更新值mag进行修正。
假设α=0.75,则V1的幅度更新修正值mag’=0.75*2=1.5。
基于归一化最小和算法对当前变量节点的幅度更新值进行修正,也是类似,在不再赘述。
S3150、将当前变量节点的待更新幅度当前值的符号函数值与所述总乘积的乘积作为当前变量节点的符号函数值更新值。
当前变量节点是V1时,符号函数值更新值sgn=sgn_all*sign(D11)=-1。
S3160、根据符号函数值更新值和幅度更新修正值的乘积作为当前变量节点针对当前校验节点的信息接收当前值。
当前变量节点是V1时,信息接收当前值Rij=mag’*sgn=1.5*(-1)=-1.5。
S3170、将当前校验节点的信息接收当前值与待更新幅度当前值的和作为当前变量节点的对数似然比当前值,执行S370。
S3180、根据多个变量节点的对数似然比当前值,生成译码结果矩阵,并使用目标矩阵对译码结果矩阵进行测试。
S3190、判断测试结果是否满足译码成功条件,若是,则执行S3200,若否,则执行S310。
S3200、将译码结果矩阵作为LDPC译码结果。
S3210、译码失败。
本实施例未尽详细解释之处请参见前述实施例,在此不再赘述。
上述技术方案中,通过对变量节点的幅度更新值计算方式的改进以及符号函数值更新值计算方式的改进,减少了数据计算量,进而降低了基于最小和算法进行LDPC译码的计算复杂度。同时,将使用归一化最小和算法或偏移最小和算法对基于标准最小和算法计算得到的变量节点的幅度更新值进行修正,提高了幅度更新值的准确率,在信噪比较低的应用场景下能够明显减少译码迭代次数,提升译码性能。
实施例四
图9为本发明实施例四提供的一种基于最小和算法的LDPC译码装置的结构示意图,本实施例可适用于基于最小和算法针对多个变量节点进行LDPC译码以降低数据计算量的情况,该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。如图9所示,该装置具体包括:待更新幅度当前最小值确定模块410、符号函数值更新值及幅度更新值计算模块420、信息接收值及对数似然比更新模块430和译码测试模块440。其中,
待更新幅度当前最小值确定模块410,设置为在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值,并在各个所述待更新幅度当前值的绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,所述第一幅度值小于等于所述第二幅度值;
符号函数值更新值及幅度更新值计算模块420,设置为针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,以及按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值;
信息接收值及对数似然比更新模块430,设置为根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的信息接收当前值和对数似然比当前值;
译码测试模块440,设置为在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果。
本发明实施例的技术方案,在对多个变量节点进行LDPC译码时的每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时:首先,计算与当前校验节点连接的每个变量节点的待更新幅度当前值(待更新幅度当前值为对数似然比当前值与信息接收当前值的差值),并在各个待更新幅度当前值的绝对值中确定最小的两个值分别作为第一幅度值和第二幅度值(第一幅度值小于等于第二幅度值);其次,针对与当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,以及按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值;最后,根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的所述信息接收当前值和所述对数似然比当前值。在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果。在上述技术方案中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,处理复杂度不会随着与当前校验节点向量相连的变量节点的数量增加而增加。进而,相对于现有技术而言,上述技术方案在5G应用场景中与同一个校验节点相连的变量节点会越来越多的情况下,能够降低采用最小和算法进行LDPC译码的计算复杂度。
可选的,符号函数值更新值及幅度更新值计算模块420,具体设置为:
如果所述变量节点的待更新幅度当前值的绝对值等于所述第一幅度值,则将采用的最小和算法中的最小值赋值为所述第二幅度值;
如果所述变量节点的待更新幅度当前值的绝对值不等于所述第一幅度值,则将采用的最小和算法中的最小值赋值为所述第一幅度值。
在一种可选的实施方式中,待更新幅度当前最小值确定模块410,还具体设置为在计算与当前校验节点连接的每个变量节点的待更新幅度当前值之后,计算各个所述变量节点的待更新幅度当前值的符号函数值的总乘积;相应的,符号函数值更新值及幅度更新值计算模块420,具体设置为根据所述变量节点的待更新幅度当前值的符号函数值与所述总乘积,计算所述变量节点的符号函数值更新值。
在一种可选的实施方式中,信息接收值及对数似然比更新模块430,具体设置为将所述变量节点的所述信息接收当前值更新为所述符号函数值更新值与所述幅度更新值的乘积;将所述变量节点的所述对数似然比当前值更新为所述变量节点的所述待更新幅度当前值与所述信息接收当前值的累加和。
在一种可选的实施方式中,所述最小和算法为标准最小和算法;相应的,上述装置还包括:幅度更新值修正模块,设置为在得到所述变量节点的幅度更新值之后,对所述幅度更新值进行修正,得到幅度更新修正值;信息接收值及对数似然比更新模块430,具体设置为根据所述符号函数值更新值和所述幅度更新修正值,更新所述变量节点的所述信息接收当前值和所述对数似然比当前值。
可选的,幅度更新值修正模块,具体设置为:
如果所述幅度更新值大于幅度门限值,则基于偏移最小和算法对所述幅度更新值进行修正;
如果所述幅度更新值不大于所述幅度门限值,则基于归一化最小和算法对所述幅度更新值进行修正。
可选的,译码测试模块440,具体设置为根据多个变量节点的所述对数似然比当前值,生成译码结果矩阵,并使用所述目标矩阵对所述译码结果矩阵进行测试;如果测试结果满足译码成功条件,则将所述译码结果矩阵作为针对所述多个变量节点的LDPC译码结果。
上述基于最小和算法的LDPC译码装置可执行本发明任意实施例所提供的基于最小和算法的LDPC译码方法,具备执行的基于最小和算法的LDPC译码方法相应的功能模块和有益效果。
实施例五
图10为本发明实施例五提供的一种基于最小和算法的LDPC译码装置的结构示意图,本实施例可适用于基于最小和算法针对多个变量节点进行LDPC译码以降低数据计算量的情况,该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。如图10所示,该装置具体包括:待更新幅度当前值计算模块510、幅度更新值计算模块520、幅度更新值更新模块530、信息接收值及对数似然比更新模块540、译码测试模块550。其中,
待更新幅度当前值计算模块510,设置为在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值。
幅度更新值计算模块520,设置为针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,并基于标准最小和算法计算变量节点的幅度更新值。
幅度更新值更新模块530,设置为对幅度更新值进行修正,得到幅度更新修正值。
信息接收值及对数似然比更新模块540,设置为根据符号函数值更新值和幅度更新修正值,更新变量节点的信息接收当前值和对数似然比当前值。
译码测试模块550,设置为在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的对数似然比当前值进行测试,以得到针对多个变量节点的LDPC译码结果。
本实施例提供的技术方案,根据标准最小和算法计算得到变量节点的幅度更新值之后对幅度更新值进行修正,以提高修正后的幅度更新值的准确率,进而可以减少译码迭代次数,降低译码时长,提高译码成功的几率,尤其是在信噪比较低的应用场景下,能够明显减少译码迭代次数,提升解调性能,进而使用户能够明显体验到下载速度加快。
进一步的,幅度更新值更新模块530,具体设置为如果幅度更新值大于幅度门限值,则基于偏移最小和算法对幅度更新值进行修正;如果幅度更新值不大于幅度门限值,则基于归一化最小和算法对幅度更新值进行修正。
作为一种可选的实施方式,待更新幅度当前值计算模块510,还设置为计算与当前校验节点连接的每个变量节点的待更新幅度当前值之后,在各个待更新幅度当前值的绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,第一幅度值小于等于第二幅度值。对应的,幅度更新值计算模块520,具体设置为按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值。
进一步的,幅度更新值计算模块520,具体设置为如果变量节点的待更新幅度当前值的绝对值等于第一幅度值,则将变量节点的幅度更新值确定为第二幅度值;如果变量节点的待更新幅度当前值的绝对值不等于第一幅度值,则将量节点的幅度更新值确定为第一幅度值。
可选的,译码测试模块550,具体设置为根据多个变量节点的所述对数似然比当前值,生成译码结果矩阵,并使用所述目标矩阵对所述译码结果矩阵进行测试;如果测试结果满足译码成功条件,则将所述译码结果矩阵作为针对所述多个变量节点的LDPC译码结果。
上述基于最小和算法的LDPC译码装置可执行本发明任意实施例所提供的基于最小和算法的LDPC译码方法,具备执行的基于最小和算法的LDPC译码方法相应的功能模块和有益效果。
实施例六
图11为本发明实施例六提供的一种计算机设备的硬件结构示意图,如图11所示,该计算机设备包括:
一个或多个处理器610,图11中以一个处理器610为例;
存储器620;
所述计算机设备中的处理器610和存储器620可以通过总线或者其他方式连接,图11中以通过总线连接为例。
存储器620作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本发明实施例一中的一种基于最小和算法的LDPC译码方法对应的程序指令,包括:
在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值,并在各个所述待更新幅度当前值的绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,所述第一幅度值小于等于所述第二幅度值;
针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,以及按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值;
根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的所述信息接收当前值和所述对数似然比当前值;
在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果。
或者,如本发明实施例二中的一种基于最小和算法的LDPC译码方法对应的程序指令,包括:
在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值;
针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,并基于标准最小和算法计算变量节点的幅度更新值;
对幅度更新值进行修正,得到幅度更新修正值;
根据符号函数值更新值和幅度更新修正值,更新变量节点的信息接收当前值和对数似然比当前值;
在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的对数似然比当前值进行测试,以得到针对多个变量节点的LDPC译码结果。
处理器610通过运行存储在存储器620中的软件程序指令,从而执行计算机设备的各种功能应用以及数据处理,即实现上述实施例中的任意一种基于最小和算法的LDPC译码方法。
存储器620可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。
实施例七
本发明实施例七还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如实施例一中的一种基于最小和算法的LDPC译码方法,该方法包括:
在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值,并在各个所述待更新幅度当前值的绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,所述第一幅度值小于等于所述第二幅度值;
针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,以及按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值;
根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的信息接收当前值和对数似然比当前值;
在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果。
或者,如实施例二中的一种基于最小和算法的LDPC译码方法,该方法包括:
在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值;
针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,并基于标准最小和算法计算变量节点的幅度更新值;
对幅度更新值进行修正,得到幅度更新修正值;
根据符号函数值更新值和幅度更新修正值,更新变量节点的信息接收当前值和对数似然比当前值;
在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的对数似然比当前值进行测试,以得到针对多个变量节点的LDPC译码结果。
可选的,该计算机可执行指令在由计算机处理器执行时还可以用于执行本发明任意实施例所提供的一种基于最小和算法的LDPC译码方法的技术方案。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述基于最小和算法的LDPC译码装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种基于最小和算法的低密度奇偶校验码LDPC译码方法,其特征在于,包括:
在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值,并在各个所述待更新幅度当前值的绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,所述第一幅度值小于等于所述第二幅度值;
针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,以及按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值;
根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的信息接收当前值和对数似然比当前值;
在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果;
在计算与当前校验节点连接的每个变量节点的待更新幅度当前值之后,还包括:
计算各个所述变量节点的待更新幅度当前值的符号函数值的总乘积;
计算所述变量节点的符号函数值更新值,包括:
根据所述变量节点的待更新幅度当前值的符号函数值与所述总乘积,计算所述变量节点的符号函数值更新值;
根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的所述信息接收当前值和所述对数似然比当前值,包括:
将所述变量节点的所述信息接收当前值更新为所述符号函数值更新值与所述幅度更新值的乘积;
将所述变量节点的所述对数似然比当前值更新为所述变量节点的所述待更新幅度当前值与所述信息接收当前值的累加和。
2.根据权利要求1所述的方法,其特征在于,按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,包括:
如果所述变量节点的待更新幅度当前值的绝对值等于所述第一幅度值,则将采用的最小和算法中的最小值赋值为所述第二幅度值;
如果所述变量节点的待更新幅度当前值的绝对值不等于所述第一幅度值,则将采用的最小和算法中的最小值赋值为所述第一幅度值。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述最小和算法为标准最小和算法;
在得到所述变量节点的幅度更新值之后,还包括:对所述幅度更新值进行修正,得到幅度更新修正值;
根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的所述信息接收当前值和所述对数似然比当前值,包括:
根据所述符号函数值更新值和所述幅度更新修正值,更新所述变量节点的所述信息接收当前值和所述对数似然比当前值。
4.根据权利要求3所述的方法,其特征在于,对所述幅度更新值进行修正,得到幅度更新修正值,包括:
如果所述幅度更新值大于幅度门限值,则基于偏移最小和算法对所述幅度更新值进行修正;
如果所述幅度更新值不大于所述幅度门限值,则基于归一化最小和算法对所述幅度更新值进行修正。
5.根据权利要求1所述的方法,其特征在于,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果,包括:
根据多个变量节点的所述对数似然比当前值,生成译码结果矩阵,并使用所述目标矩阵对所述译码结果矩阵进行测试;
如果测试结果满足译码成功条件,则将所述译码结果矩阵作为针对所述多个变量节点的LDPC译码结果。
6.一种基于最小和算法的LDPC译码装置,其特征在于,包括:
待更新幅度当前最小值确定模块,设置为在每次译码迭代过程中,当以每个校验节点为维度对变量节点的对数似然比进行更新处理时,计算与当前校验节点连接的每个变量节点的待更新幅度当前值,并在各个所述待更新幅度当前值的绝对值中确定最小的两个值,分别作为第一幅度值和第二幅度值,所述第一幅度值小于等于所述第二幅度值;
符号函数值更新值及幅度更新值计算模块,设置为针对与所述当前校验节点连接的每个变量节点,计算所述变量节点的符号函数值更新值,以及按照设定赋值规则,利用所述第一幅度值或所述第二幅度值,对采用的最小和算法中的最小值进行赋值,得到所述变量节点的幅度更新值;
信息接收值及对数似然比更新模块,设置为根据所述符号函数值更新值和所述幅度更新值,更新所述变量节点的信息接收当前值和对数似然比当前值;
译码测试模块,设置为在完成当前次的译码迭代过程时,使用目标矩阵对多个变量节点的所述对数似然比当前值进行测试,以得到针对所述多个变量节点的LDPC译码结果;
待更新幅度当前最小值确定模块,具体设置为在计算与当前校验节点连接的每个变量节点的待更新幅度当前值之后,计算各个所述变量节点的待更新幅度当前值的符号函数值的总乘积;
符号函数值更新值及幅度更新值计算模块,具体设置为根据所述变量节点的待更新幅度当前值的符号函数值与所述总乘积,计算所述变量节点的符号函数值更新值;
信息接收值及对数似然比更新模块,具体设置为将所述变量节点的所述信息接收当前值更新为所述符号函数值更新值与所述幅度更新值的乘积;
将所述变量节点的所述对数似然比当前值更新为所述变量节点的所述待更新幅度当前值与所述信息接收当前值的累加和。
7.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011455279.4A CN112702066B (zh) | 2020-12-10 | 2020-12-10 | 基于最小和算法的ldpc译码方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011455279.4A CN112702066B (zh) | 2020-12-10 | 2020-12-10 | 基于最小和算法的ldpc译码方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112702066A CN112702066A (zh) | 2021-04-23 |
CN112702066B true CN112702066B (zh) | 2024-02-23 |
Family
ID=75508745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011455279.4A Active CN112702066B (zh) | 2020-12-10 | 2020-12-10 | 基于最小和算法的ldpc译码方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112702066B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008016901A (ja) * | 2006-07-01 | 2008-01-24 | Kddi Corp | 低密度パリティ検査符号データを復号する復号方法、装置及びプログラム |
CN102394661A (zh) * | 2011-11-08 | 2012-03-28 | 北京邮电大学 | 基于层译码处理的ldpc译码器及译码方法 |
CN108183713A (zh) * | 2017-12-15 | 2018-06-19 | 南京大学 | 基于改进型最小和算法的ldpc译码器及其译码方法 |
CN108988872A (zh) * | 2018-08-23 | 2018-12-11 | 中国科学院计算技术研究所 | 基于分层最小和算法的ldpc译码方法 |
CN109889208A (zh) * | 2019-01-04 | 2019-06-14 | 浙江大学 | Navdat中基于归一化最小和算法的ldpc信道译码方法 |
CN110830049A (zh) * | 2019-11-21 | 2020-02-21 | 重庆邮电大学 | 一种基于密度进化改进偏移最小和的ldpc译码方法 |
-
2020
- 2020-12-10 CN CN202011455279.4A patent/CN112702066B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008016901A (ja) * | 2006-07-01 | 2008-01-24 | Kddi Corp | 低密度パリティ検査符号データを復号する復号方法、装置及びプログラム |
CN102394661A (zh) * | 2011-11-08 | 2012-03-28 | 北京邮电大学 | 基于层译码处理的ldpc译码器及译码方法 |
CN108183713A (zh) * | 2017-12-15 | 2018-06-19 | 南京大学 | 基于改进型最小和算法的ldpc译码器及其译码方法 |
CN108988872A (zh) * | 2018-08-23 | 2018-12-11 | 中国科学院计算技术研究所 | 基于分层最小和算法的ldpc译码方法 |
CN109889208A (zh) * | 2019-01-04 | 2019-06-14 | 浙江大学 | Navdat中基于归一化最小和算法的ldpc信道译码方法 |
CN110830049A (zh) * | 2019-11-21 | 2020-02-21 | 重庆邮电大学 | 一种基于密度进化改进偏移最小和的ldpc译码方法 |
Non-Patent Citations (1)
Title |
---|
基于多核处理器的LDPC码编解码技术研究;皮秀伟;信息科技辑;I136-88 * |
Also Published As
Publication number | Publication date |
---|---|
CN112702066A (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6610278B2 (ja) | 機械学習装置、機械学習方法及び機械学習プログラム | |
CN108988872B (zh) | 基于分层最小和算法的ldpc译码方法 | |
CN102412847A (zh) | 用联合节点处理来解码低密度奇偶校验码的方法和设备 | |
WO2020006762A1 (zh) | 训练图像修复模型的方法、图像修复方法、装置、介质及设备 | |
CN107852176A (zh) | Ldpc码编码器和译码器 | |
WO2015079193A1 (en) | Belief propagation decoding for short algebraic codes with permutations within the code space | |
CN111858142A (zh) | 一种数据处理方法、装置及电子设备和存储介质 | |
CN101582697A (zh) | 低密度奇偶校验(ldpc)解码器 | |
KR101631128B1 (ko) | 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더 | |
CN110837436A (zh) | 有限域上高效纠删码轻量化自动解码方法、智能终端模块 | |
CN112702066B (zh) | 基于最小和算法的ldpc译码方法、装置、设备及介质 | |
CN117097350B (zh) | 一种ldpc码译码实现方法、装置、设备及介质 | |
CN111525931A (zh) | Ldpc译码器、ldpc译码方法、存储介质和电子设备 | |
CN106849959B (zh) | 数据处理方法及译码器 | |
WO2024065978A1 (zh) | 基于校验置信度的ldpc译码方法和装置 | |
EP2989720A1 (en) | Method and apparatus of ldpc encoder in 10gbase-t system | |
JP2011119857A (ja) | 復号装置および復号方法 | |
US9590658B1 (en) | High-speed low-power LDPC decoder design | |
TW201729545A (zh) | 用於對低密度奇偶校驗資料進行解碼以對碼字進行解碼的方法以及解碼器 | |
CN112187285B (zh) | 基于dvb-s2译码器的桶形移位器处理方法及桶形移位器 | |
CN115796289A (zh) | 一种用于联邦贝叶斯学习的客户端选择方法及系统 | |
JP3536921B2 (ja) | 相関行列学習方法、装置及びプログラム | |
CN109450453B (zh) | 一种构造ptg-ldpc码的方法 | |
CN117560020B (zh) | 一种信道编码稀疏校验矩阵重建方法、装置和电子设备 | |
CN108512554B (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 |