译码方法及装置与流程

文档序号:11959162阅读:193来源:国知局
译码方法及装置与流程
本发明涉及通信
技术领域
,更具体地说,涉及一种译码方法及装置。
背景技术
:低密度奇偶校验(Low-DensityParity-Check,LDPC)码是一类接近香农限的好码,由于其优异的纠错性能而在通信领域得到广泛应用。准循环低密度奇偶校验(Quasi-CyclicLow-DensityParity-Check,QC-LDPC)码是一种基于几何构造的LDPC码,继承了LDPC码的优点,同时降低了编码译码复杂度,从而具有较高的可实现性。QC-LDPC码的校验矩阵H的结构如下所示:H=A00A01...A0NA10A11...A1N......AM0AM1...AMN]]>校验矩阵H由若干子矩阵构成,其中,子矩阵Aij(0≤i≤M,0≤j≤N)是循环矩阵,它的每一行由其上一行向右循环移位一位构成,第一行是最后一行的循环移位。在通过校验矩阵对接收到的QC-LDPC码进行译码时,校验矩阵中的一列对应QC-LDPC码中的一位。目前QC-LDPC码的译码算法有很多,最小和(min-sum)译码算法是较常用的一种,最小和译码算法的基本思想是:根据一行中的最小值和次最小值对校验矩阵的每一行元素进行更新,当校验矩阵的所有行都更新完成后,根据更新的校验矩阵的每一列元素得到与该列对应的一位QC-LDPC码的变量节点信息,得到译码结果,若译码结果满足译码停止条件,则停止迭代,否则根据本次译码结果继续进行下一次译码,直至译码结果满足译码停止条件。发明人在实现本发明的过程中发现,传统的最小和译码算法所需的译码时间较长,译码效率较低。技术实现要素:本发明的目的是提供一种译码方法及装置,以降低译码时长,提高译码效率。为实现上述目的,本发明提供了如下技术方案:一种译码方法,包括:在一次译码迭代过程中,以子矩阵为单位对校验矩阵进行更新,对每一个子矩阵以相同的方式进行更新得到新的子矩阵;对校验矩阵进行更新的过程包括:确定至少一个未更新的子矩阵为待更新子矩阵,读取与所确定的至少一个待更新子矩阵中的第一待更新子矩阵对应的更新信息;依据所述更新信息对所述第一待更新子矩阵进行更新,得到第一更新子矩阵,以及与第一子矩阵对应的第一子更新信息和与第二子矩阵对应的第二子更新信息;其中,所述第一待更新子矩阵为所述至少一个待更新子矩阵中的任意一个子矩阵;所述第一子矩阵为所述校验矩阵中与所述第一待更新子矩阵处于同一行的未更新的子矩阵;所述第二子矩阵为所述校验矩阵中与所述第一待更新子矩阵处于同一列的未更新的子矩阵;当所述至少一个待更新子矩阵更新完成时,判断是否还存在未更新的子矩阵;若判断结果为是,则返回执行所述确定至少一个未更新的子矩阵为待更新子矩阵的步骤;若判断结果为否则,则判断译码结果是否满足译码停止条件;若判断结果为满足译码停止条件,则结束;若判断结果为不满足译码停止条件,则执行下一次译码迭代过程。上述方法,优选的,所述与第一待更新子矩阵对应的更新信息包括:与所述第一待更新子矩阵对应的第一子更新信息,以及与所述第一待更新子矩阵对应的第二子更新信息;其中,所述与第一待更新子矩阵对应的第一子更新信息为对第三子矩阵进行更新得到的第一子更新信息;所述与第一待更新子矩阵对应的第二子更新信息为对第四子矩阵进行更新得到的第二子更新信息;所述第一子矩阵、所述第一待更新子矩阵和所述第三子矩阵处于同一行;所述第二子矩阵、所述第一待更新子矩阵和所述第四子矩阵处于同一列。上述方法,优选的,在第一次译码迭代时,若第一待更新子矩阵为校验矩阵中第一个进行更新的子矩阵,则所述与第一待更新子矩阵对应的更新信息为初始更新信息。上述方法,优选的,所述校验矩阵中最后一行子矩阵的下一行子矩阵为所述校验矩阵中第一行子矩阵;所述校验矩阵中最后一列子矩阵的下一列子矩阵为所述校验矩阵中第一列子矩阵。上述方法,优选的,所述校验矩阵中包括N列、M行子矩阵;所述方法还包括:预先将所述校验矩阵中的子矩阵分为n组,每一组包括处于不同行、不同列的m个子矩阵;其中,n=max(N,M),m=min(N,M)。上述方法,优选的,所述确定至少一个未更新的子矩阵为待更新子矩阵包括:确定未更新的一组子矩阵为待更新子矩阵。一种译码装置,包括:更新模块,用于在一次译码迭代过程中,以子矩阵为单位对校验矩阵进行更新,对每一个子矩阵以相同的方式进行更新得到新的子矩阵;具体包括:确定子模块,用于确定至少一个未更新的子矩阵为待更新子矩阵;读取子模块,用于读取与所确定的至少一个待更新子矩阵中的第一待更新子矩阵对应的更新信息;更新子模块,用于依据所述更新信息对所述第一待更新子矩阵进行更新,得到第一更新子矩阵,以及与第一子矩阵对应的第一子更新信息和与第二子矩阵对应的第二子更新信息;其中,所述第一待更新子矩阵为所述至少一个待更新子矩阵中的任意一个子矩阵;所述第一子矩阵为所述校验矩阵中与所述第一子矩阵处于同一行的未更新的子矩阵;所述第二子矩阵为所述校验矩阵中与所述第一子矩阵处于同一列的未更新的子矩阵;判断子模块,用于当所述至少一个待更新子矩阵更新完成时,判断是否还存在未更新的子矩阵;若判断结果为是,则触发所述确定子模块 确定至少一个未更新的子矩阵为待更新子矩阵;若判断结果为否,则触发判断模块判断译码结果是否满足译码停止条件;判断模块,用于判断译码结果是否满足译码停止条件;若判断结果为是,则结束;若判断结果为否,则触发更新模块执行下一次译码迭代过程。上述装置,优选的,所述与第一待更新子矩阵对应的更新信息包括:与所述第一待更新子矩阵对应的第一子更新信息,以及与所述第一待更新子矩阵对应的第二子更新信息;其中,所述与第一待更新子矩阵对应的第一子更新信息为对第三子矩阵进行更新得到的第一子更新信息;所述与第一待更新子矩阵对应的第二子更新信息为对第四子矩阵进行更新得到的第二子更新信息;所述第一子矩阵、所述第一待更新子矩阵和所述第三子矩阵处于同一行;所述第二子矩阵、所述第一待更新子矩阵和所述第四子矩阵处于同一列。上述装置,优选的,在第一次译码迭代时,若第一待更新子矩阵为校验矩阵中第一个进行更新的子矩阵,则所述与第一待更新子矩阵对应的更新信息为初始更新信息。上述装置,优选的,所述校验矩阵中最后一行子矩阵的下一行子矩阵为所述校验矩阵中第一行子矩阵;所述校验矩阵中最后一列子矩阵的下一列子矩阵为所述校验矩阵中第一列子矩阵。上述装置,优选的,还包括:分组模块,用于将所述校验矩阵中的子矩阵分为n组,每一组包括处于不同行、不同列的m个子矩阵;其中,n=max(N,M),m=min(N,M)。上述装置,优选的,所述确定子模块具体用于,确定未更新的一组子矩阵为待更新子矩阵。通过以上方案可知,本申请提供的一种译码方法及装置,以校验矩阵中的子矩阵为单位进行更新,对每一个子矩阵以相同的方式进行更新。每更新一个子矩阵(为方便叙述,记为待更新子矩阵),得到更新的子矩阵,以及与第一子矩阵对应的第一子更新信息和与第二子矩阵对应的第二子更新信息;其中,第一子矩阵为校验矩阵中与所述待更新子矩阵处于同一行的未更新的子矩阵;所述第二子矩阵为所述校验矩阵中与所述待更新子矩阵处于同一列的未更新的子矩阵;当所有子矩阵都更新完时,获得译码结果,若译码 结果不满足停止条件,则进行下一次译码迭代过程,否则结束。通过本发明实施例提供的译码方法及装置,降低了译码时长,提高了译码效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的译码方法的一种实现流程图;图2为本申请实施例提供的校验矩阵的一种示意图;图3为本申请实施例提供的对校验矩阵进行分组的一种示意图;图4为本申请实施例提供的译码装置的一种结构示意图;图5为本申请实施例提供的译码装置的一种硬件实现结构示意图;图6为本申请实施例提供的处理单元的一种结构示意图。说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例中,以子矩阵为单位对校验矩阵进行更新,对每一个子矩阵以相同的方式进行更新得到新的子矩阵。请参阅图1,图1为本申请实施例提供的译码方法的一种实现流程图,可以包括:步骤S11:确定至少一个未更新的子矩阵为待更新子矩阵;发明实施例中,每次可以确定一个未更新的子矩阵为待更新子矩阵,也可以每次确定两个或两个以上未更新的子矩阵为待更新子矩阵。步骤S12:读取与所确定的至少一个待更新子矩阵中的第一待更新子矩阵对应的更新信息;本发明实施例中,与第一待更新子矩阵对应的更新信息可以由两部分构成,一部分由与第一待更新子矩阵处于同一行的一个子矩阵更新得到,另一部分由与第一待更新子矩阵处于同一列的一个子矩阵更新得到。步骤S13:依据所述更新信息对所述第一待更新子矩阵进行更新,得到第一更新子矩阵,以及与第一子矩阵对应的第一子更新信息和与第二子矩阵对应的第二子更新信息;其中,所述第一待更新子矩阵为所述至少一个待更新子矩阵中的任意一个子矩阵;所述第一子矩阵为所述校验矩阵中与所述第一待更新子矩阵处于同一行的未更新的子矩阵;所述第二子矩阵为所述校验矩阵中与所述第一待更新子矩阵处于同一列的未更新的子矩阵;与第一待更新子矩阵对应的子矩阵包括4个,本发明实施例中,第一待更新子矩阵依据与其处于同一行的一个子矩阵和与其处于同一列的一个子矩阵更新后的更新信息进行更新,更新后得到的第一子更新信息和第二子更新信息供与其处于同一行的另一个子矩阵和与其处于同一列的另一个子矩阵更新使用。步骤S14:当所述至少一个待更新子矩阵更新完成时,判断是否还存在未更新的子矩阵;若是,则返回执行步骤S11,否则,执行步骤S15;步骤S15:判断译码结果是否满足译码停止条件;若是,则结束;否则,执行下一次译码迭代过程。当校验矩阵中的所有子矩阵都更新完成时,一次译码迭代过程结束,从而得到译码结果,若译码结果满足译码停止条件,则停止译码,否则,执行下一次译码迭代过程,即在上一次译码迭代结束后得到的新的校验矩阵的基础上再次执行步骤S11至步骤S15。本发明实施例提供的一种译码方法,以校验矩阵中的子矩阵为单位进行更新,对每一个子矩阵以相同的方式进行更新。每更新一个子矩阵(为方便叙述,记为待更新子矩阵),得到更新的子矩阵,以及与第一子矩阵对应的 第一子更新信息和与第二子矩阵对应的第二子更新信息;其中,第一子矩阵为校验矩阵中与所述待更新子矩阵处于同一行的未更新的子矩阵;所述第二子矩阵为所述校验矩阵中与所述待更新子矩阵处于同一列的未更新的子矩阵;当所有子矩阵都更新完时,获得译码结果,若译码结果不满足停止条件,则进行下一次译码迭代过程,否则结束。通过本发明实施例提供的译码方法及装置,降低了译码时长,提高了译码效率。上述实施例中,可选的,所述与第一待更新子矩阵对应的更新信息可以包括:与所述第一待更新子矩阵对应的第一子更新信息,以及与所述第一待更新子矩阵对应的第二子更新信息;其中,所述与第一待更新子矩阵对应的第一子更新信息为对第三子矩阵进行更新得到的第一子更新信息;所述与第一待更新子矩阵对应的第二子更新信息为对第四子矩阵进行更新得到的第二子更新信息;所述第一子矩阵、所述第一待更新子矩阵和所述第三子矩阵处于同一行;所述第二子矩阵、所述第一待更新子矩阵和所述第四子矩阵处于同一列。其中,第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵可以是与第一待更新子矩阵相邻的子矩阵,也可以是不相邻的子矩阵,例如:假设第一待更新子矩阵为Axy,那么,与其相邻的四个子矩阵分别为:Ax(y-1),Ax(y+1),A(x-1)y,A(x+1)y;本发明实施例中,第一子矩阵可以为Ax(y-1),第二子矩阵可以为A(x-1)y,第三子矩阵可以为Ax(y+1),第四子矩阵可以为A(x+1)y。当然,本发明实施例中,第一子矩阵也可以为Ax(y+1),第二子矩阵可以为A(x-1)y,第三子矩阵也可以为Ax(y-1),第四子矩阵可以为A(x+1)y。或者,第一子矩阵为Ax(y-1),第二子矩阵为A(x+1)y;第三子矩阵为Ax(y+1),第四子矩阵为A(x-1)y。或者,第一子矩阵为Ax(y+1),第二子矩阵为A(x+1)y,第三子矩阵为Ax(y-1),第四子矩阵为A(x-1)y。当然,第一子矩阵和/或第三子矩阵也可以是与第一待更新子矩阵处于同一行但不相邻的子矩阵,例如,第一子矩阵可以是Ax(y+2),第三子矩阵可以为Ax(y-3),第二子矩阵可以是A(x-4)y,第四子矩阵可以是A(x+3)y。只要第一子矩阵、所述第一待更新子矩阵和所述第三子矩阵处于同一行,所述第二子矩阵、所述第一待更新子矩阵和所述第四子矩阵处于同一列即可。可选的,在进行第一次译码迭代时,若第一待更新子矩阵为校验矩阵中第一个进行更新的子矩阵,则所述与第一待更新子矩阵对应的更新信息为初始校验节点信息,以及与第一待更新子矩阵对应的接收到的待译码的码字。本发明实施例中,在进行第一次译码迭代时,第一个进行更新的子矩阵所需的更新信息为初始更新信息。初始更新信息可以根据译码算法确定。例如,若译码算法为最小和译码算法,则与第一待更新子矩阵对应的更新信息为初始校验节点信息,即待更新子矩阵每一行在校验矩阵中所在行的最小值和次最小值,以及与第一待更新子矩阵对应的接收到的待译码的码字。可选的,校验矩阵中最后一行子矩阵的下一行子矩阵为所述校验矩阵中第一行子矩阵;所述校验矩阵中最后一列子矩阵的下一列子矩阵为所述校验矩阵中第一列子矩阵。例如,若QC-LDPC码的校验矩阵H如下所示,H=A00A01...A0NA10A11...A1N......AM0AM1...AMN]]>子矩阵Aij(0≤i≤M,0≤j≤N)是循环矩阵,它的每一行由其上一行向右循环移位一位构成,第一行是最后一行的循环移位。则校验矩阵H最后一行子矩阵AM0AM1…AMN的下一行子矩阵为A00A01…A0N;最后一列子矩阵A0NA1N…AMN的下一列子矩阵为A00A10…AM0;换句话说,第一行子矩阵A00A01…A0N的前一行子矩阵为AM0AM1…AMN;第一列子矩阵A00A10…AM0的前一列子矩阵为A0NA1N…AMN。可选的,假设校验矩阵中包括N列、M行子矩阵;本发明实施例提供的译码方法还可以包括:预先将所述校验矩阵中的子矩阵分为n组,每一组包括处于不同行、不同列的m个子矩阵;其中,n=max(N,M),m=min(N,M)。也就是说,本发明实施例中,将校验矩阵中的子矩阵分为n组,每一组包括m个子矩阵,所述m个子矩阵属于不同行、不同列。通常QC-LDPC码的校验矩阵的列数N会大于行数M,因此,可以将校验矩阵中的子矩阵分为N组,每一组包括M个子矩阵。本发明实施例中,可以对校验矩阵中的子矩阵进行分组,进行分组后,在确定至少一个未更新的子矩阵为待更新子矩阵时,可以按分组进行确定,即每次确定一组未更新的子矩阵为待更新子矩阵。在确定未更新的一组子矩阵为待更新子矩阵后,可以对这一组待更新子矩阵同时进行更新,即,一组待更新子矩阵并行进行更新。下面以最小和译码算法为例对本发明实施例的一种具体应用场景进行说明。为了更好的说明本发明的基于最小和译码算法的译码方法,首先对目前较常用的基于最小和译码算法的译码方法进行说明。目前,较常用的基于最小和译码算法的译码方法有两种实现方式,一种为基于行分层的实现方式,一种为基于列分层的实现方式。其中,基于行分层的实现方式中,每个子循环矩阵行为一层,更新顺序从上到下,每层的行更新完后把新的校验节点信息(即第二子更新信息)加到其对应列的硬判决信息上,下面层的子矩阵更新时使用新的硬判决信息减去前一次更新得到的校验节点信息,这种方法能够使的最小和译码的迭代次数减少一半。但是,由于校验节点(对应矩阵的行)更新的核心是找到一行中的最小值和次最小值(最小值和次最小值即为第一子更新信息),所以,基于行分层的实现方式在进行校验节点更新时,需要较多的比较器,随着校验矩阵一行中1的个数增多,寻找最小值和次最小值所耗费的周期也会变长(注:一行中最小值和次最小值是从一行中1对应的位置进行寻找)。为了解决上述问题,有人提出基于列分层的译码方法,这种译码方法中,每个子循环矩阵列为一层,更新顺序从左到右,左边的层更新完后向右边的层传递最新的最小值和次最小值,这样,每个子矩阵更新时只需要在它的变量节点信息和左边层的子矩阵传递过来的最小值和次最小值三个值之间进行最小值查找,从而减少了查找最小值所需的周期个数。但是这种基于列分层的译码方法需要较多的变量节点处理单元。本应用实例中,校验矩阵中的一个子矩阵用一个CPM表征,校验矩阵包括5列,4行子矩阵,如图2所示。本应用实例中,将该校验矩阵划分为5组,如图3所示,为本发明实施例提供的对校验矩阵进行分组的一种示意图。其中,每一组的4个子矩阵并行进行更新。其中,向下的实线箭头代表校验节点信息(即第二子更新信息)传递的方向,向右虚线箭头代表变量节点信息(即第一子更新信息)传递方向。在译码开始之前,依据接收到的码字符号的似然比,找到校验矩阵的每行的最小值m1和次最小值m2(其中,每行的最小值和次最小值,从一行中1对应的接收到的码字符号的似然比中确定),以及最小值m1的位置。用qij代表第i行第j列的变量节点信息,用rij代表第i行第j列的校验节点信息,Qj表示第j列的硬判决信息。初始时rij=0,qij=Qj,Qj为新到接收到码字符号的似然比。如果是第一次译码迭代,那么,第一个周期CPM0,CPM9,CPM13和CPM17并行更新,它们只需要进行行的更新,即rij,而不需要进行列的更新。CPM0更新完的信息与初始变量节点信息Q0相加得到新的Q0,传递到CPM5,同时CPM9将CPM9更新得到的新的最小值m1和次最小值m2以及最小值的位置传递给CPM5,新的Q0减去CPM5上一次迭代得到的rij得到新的qij,新的qij与CPM9更新得到的新的最小值m1和次最小值m2进行比较,确定新的最小值和次最小值,如果qij是最小值,m1是次最小值,则CPM5的rji更新为m1。如果qij不是最小值,那么m1是最小值,则CPM5的rji依然更新为m1,更新结束后将rji进行存储以备下次使用更新CPM5后,将rji与新的Q0相加得到新的硬判决信息,将其传递到CPM10,并将新的最小值和次最小值,以及最小值的位置传递给CPM6。CPM0将新的Q0传递到CPM的同时,将更新得到的新的最小值和次最小值,以及最小值的位置传递给CPM1,如果是第一次迭代,由于CPM1没有其它CPM传递过来的变量信息,因此,CPM1不需要进行列的更新,CPM1只需要根据初始的最小值和次最小值进行rji的更新。但如果不是第一次迭代,CPM1会接收到来自CPM16的列信息,CPM1与CPM5同样的方法得到新的qij和rij,以及m1,m2以及它们的位置,并将其传递到CPM6和CPM2。当执行完5个周期后,所有的CPM都更新完成,一次迭代接收,从而得到每一列的硬判决信息,并且译码输出,根据译码结果是否满足译码迭代停止条件判断是否进行下一次迭代。本发明实施例中,以子矩阵为单位进行更新,同时具备行分层和列分层的优点,即减少了译码迭代次数,也减少了行更新时最小值的比较次数。而且,可以多个子矩阵并行进行更新,增加了译码吞吐量,进一步降低了译码时长。与方法实施例相对应,本发明实施例还提供一种译码装置,本发明实施例提供的译码装置的一种结构示意图如图4所述,可以包括;更新模块41和判断模块42;其中,更新模块41用于在一次译码迭代过程中,以子矩阵为单位对校验矩阵进行更新,对每一个子矩阵以相同的方式进行更新得到新的子矩阵;具体包括:确定子模块411,用于确定至少一个未更新的子矩阵为待更新子矩阵;发明实施例中,每次可以确定一个未更新的子矩阵为待更新子矩阵,也可以每次确定两个或两个以上未更新的子矩阵为待更新子矩阵。读取子模块412,用于读取与所确定的至少一个待更新子矩阵中的第一待更新子矩阵对应的更新信息;本发明实施例中,与第一待更新子矩阵对应的更新信息可以由两部分构成,一部分由与第一待更新子矩阵处于同一行的一个子矩阵更新得到,另一部分由与第一待更新子矩阵处于同一列的一个子矩阵更新得到。更新子模块413,用于依据所述更新信息对所述第一待更新子矩阵进行更新,得到第一更新子矩阵,以及与第一子矩阵对应的第一子更新信息和与第二子矩阵对应的第二子更新信息;其中,所述第一待更新子矩阵为所述至少一个待更新子矩阵中的任意一个子矩阵;所述第一子矩阵为所述校验矩阵中与所述第一子矩阵处于同一行的未更新的子矩阵;所述第二子矩阵为所述校验矩阵中与所述第一子矩阵处于同一列的未更新的子矩阵;与第一待更新子矩阵对应的子矩阵包括4个,本发明实施例中,第一待更新子矩阵依据与其处于同一行的一个子矩阵和与其处于同一列的一个子矩阵更新后的更新信息进行更新,更新后得到的第一子更新信息和第二子更新信息供与其处于同一行的另一个子矩阵和与其处于同一列的另一个子矩阵更新使用。判断子模块414,用于当所述至少一个待更新子矩阵更新完成时,判断是否还存在未更新的子矩阵;若判断结果为是,则触发所述确定子模块确定至少一个未更新的子矩阵为待更新子矩阵;若判断结果为否,则触发判断模块42判断译码结果是否满足译码停止条件;判断模块42用于判断译码结果是否满足译码停止条件;若判断结果为是,则结束;若判断结果为否,则触发更新模块执行下一次译码迭代过程。当校验矩阵中的所有子矩阵都更新完成时,一次译码迭代过程结束,从而得到译码结果,若译码结果满足译码停止条件,则停止译码,否则,执行下一次译码迭代过程。本发明实施例提供的译码装置,以校验矩阵中的子矩阵为单位进行更新,对每一个子矩阵以相同的方式进行更新。每更新一个子矩阵(为方便叙述,记为待更新子矩阵),得到更新的子矩阵,以及与第一子矩阵对应的第一子更新信息和与第二子矩阵对应的第二子更新信息;其中,第一子矩阵为校验矩阵中与所述待更新子矩阵处于同一行的未更新的子矩阵;所述第二子矩阵为所述校验矩阵中与所述待更新子矩阵处于同一列的未更新的子矩阵;当所有子矩阵都更新完时,获得译码结果,若译码结果不满足停止条件,则进行下一次译码迭代过程,否则结束。通过本发明实施例提供的译码方法及装置,降低了译码时长,提高了译码效率。可选的,所述与第一待更新子矩阵对应的更新信息包括:与所述第一待更新子矩阵对应的第一子更新信息,以及与所述第一待更新子矩阵对应的第二子更新信息;其中,所述与第一待更新子矩阵对应的第一子更新信息为对第三子矩阵进行更新得到的第一子更新信息;所述与第一待更新子矩阵对应的第二子更新信息为对第四子矩阵进行更新得到的第二子更新信息;所述第一子矩阵、所述第一待更新子矩阵和所述第三子矩阵处于同一行;所述第二子矩阵、所述第一待更新子矩阵和所述第四子矩阵处于同一列。其中,第一子矩阵、第二子矩阵、第三子矩阵和第四子矩阵可以是与第一待更新子矩阵相邻的子矩阵,也可以是不相邻的子矩阵,例如:假设第一待更新子矩阵为Axy,那么,与其相邻的四个子矩阵分别为:Ax(y-1),Ax(y+1),A(x-1)y,A(x+1)y;本发明实施例中,第一子矩阵可以为Ax(y-1),第二子矩阵可以为A(x-1)y,第三子矩阵可以为Ax(y+1),第四子矩阵可以为A(x+1)y。当然,本发明实施例中,第一子矩阵也可以为Ax(y+1),第二子矩阵可以为A(x-1)y,第三子矩阵也可以为Ax(y-1),第四子矩阵可以为A(x+1)y。或者,第一子矩阵为Ax(y-1),第二子矩阵为A(x+1)y;第三子矩阵为Ax(y+1),第四子矩阵为A(x-1)y。或者,第一子矩阵为Ax(y+1),第二子矩阵为A(x+1)y,第三子矩阵为Ax(y-1),第四子矩阵为A(x-1)y。当然,第一子矩阵和/或第三子矩阵也可以是与第一待更新子矩阵处于同一行但不相邻的子矩阵,例如,第一子矩阵可以是Ax(y+2),第三子矩阵可以为Ax(y-3),第二子矩阵可以是A(x-4)y,第四子矩阵可以是A(x+3)y。只要第一子矩阵、所述第一待更新子矩阵和所述第三子矩阵处于同一行,所述第二子矩阵、所述第一待更新子矩阵和所述第四子矩阵处于同一列即可。可选的,在第一次译码迭代时,若第一待更新子矩阵为校验矩阵中第一个进行更新的子矩阵,则所述与第一待更新子矩阵对应的更新信息为初始校验节点信息,以及与第一待更新子矩阵对应的接收到的待译码的码字。本发明实施例中,在进行第一次译码迭代时,第一个进行更新的子矩阵所需的更新信息为初始更新信息。初始更新信息可以根据译码算法确定。例如,若译码算法为最小和译码算法,则与第一待更新子矩阵对应的更新信息为初始校验节点信息,即待更新子矩阵每一行在校验矩阵中所在行的最小值和次最小值,以及与第一待更新子矩阵对应的接收到的待译码的码字。可选的,校验矩阵中最后一行子矩阵的下一行子矩阵为所述校验矩阵中第一行子矩阵;所述校验矩阵中最后一列子矩阵的下一列子矩阵为所述校验矩阵中第一列子矩阵。可选的,本发明实施例提供的译码装置还可以包括:分组模块,用于将所述校验矩阵中的子矩阵分为n组,每一组包括处于不同行、不同列的m个子矩阵;其中,n=max(N,M),m=min(N,M)。也就是说,本发明实施例中,将校验矩阵中的子矩阵分为n组,每一组包括m个子矩阵,所述m个子矩阵属于不同行、不同列。通常QC-LDPC码的校验矩阵的列数N会大于行数M,因此,可以将校验矩阵中的子矩阵分为N组,每一组包括M个子矩阵。可选的,所述确定子模块具体用于,确定未更新的一组子矩阵为待更新子矩阵。本发明实施例中,可以对校验矩阵中的子矩阵进行分组,进行分组后,在确定至少一个未更新的子矩阵为待更新子矩阵时,可以按分组进行确定,即每次确定一组未更新的子矩阵为待更新子矩阵。在确定未更新的一组子矩阵为待更新子矩阵后,可以对这一组待更新子矩阵同时进行更新,即,一组待更新子矩阵并行进行更新。可选的,本发明实施例提供译码装置的一种硬件实现结构示意图,如图5所示,可以包括:由至少一个运算器,校验节点信息存储器,硬判决信息存储器,处理单元控制器和译码停止条件判决器;其中,运算器完成子矩阵的更新,运算器由若干处理单元PU组成,一个PU对应一个子矩阵的一行,PU的开关状态,以及并行度由处理单元控制器进行控制。处理单元的一种结构示意图如图6所示。包括减法器和比较器;新的硬判决信息Qj与本更新位置的rij相减,得到新的qij,新的qij与新的最小值m1和次最小值m2进行比较,确定新的rij,以及新的最小值m1和次最小值m2,新的rij与所述新的硬判决信息Qj相加,得到新的硬判决信息。通过本发明实施例提供的译码装置,通过较少的处理单元数量实现较高的译码吞吐量,在降低译码器实现成本的基础上,提高了译码效率。另外,本发明实施例提供的译码装置易于扩展,实现简单。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统(若存在)、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统(若存在)、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1