买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】非系统Raptor码的渐进式译码方法及装置_国广融合(北京)传媒科技发展有限公司_201711395482.5 

申请/专利权人:国广融合(北京)传媒科技发展有限公司

申请日:2017-12-21

公开(公告)日:2023-04-18

公开(公告)号:CN109951191B

主分类号:H03M13/37

分类号:H03M13/37

优先权:

专利状态码:有效-授权

法律状态:2023.04.18#授权;2019.07.23#实质审查的生效;2019.06.28#公开

摘要:本发明公开了一种非系统Raptor码的渐进式译码方法及装置。该方法包括:在接收编码符号前,使用结合置信度传播法的渐进式译码算法,将译码矩阵化简为上三角矩阵;在接收所述编码符号的过程中,使用结合置信度传播法的渐进式译码算法,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,得到所述非系统Raptor码的中间向量;根据所述中间向量,得到所述编码符号中的有效载荷。根据本发明,可以减少非系统Raptor码在译码过程中的运算量和计算复杂度,提高译码速度。

主权项:1.一种非系统Raptor码的渐进式译码方法,其特征在于,包括:在接收编码符号前,使用结合置信度传播法的渐进式译码算法,将译码矩阵化简为上三角矩阵,其中,初始化循环变量i=1;判断i>J是否成立;若i>J不成立,将A0的第i行赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素全为0,交换a与A中第s行;令i=i+1,返回执行判断i>J是否成立的步骤;若A中第s行的元素不全为0,且a的度小于A中第s行的度,则将a与A中的第s行交换;判断A中第s行的度是否为1;若A中第s行的度为1,则调用递归函数back_substitutionA,s,以执行所述递归函数back_substitutionA,s中的算法,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,并判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度小于等于0,令i=i+1,返回执行判断i>J是否成立的步骤;若i>J成立,执行所述在接收所述编码符号的过程中,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵的步骤;其中,J表示所述非系统Raptor码的外码中校验码的个数,A0表示所述非系统Raptor码的编码矩阵,其大小是L+J×K+J,a表示一个1×K+J的行向量,A表示所述译码矩阵,L表示编码符号的个数,K表示源符号的个数;在接收所述编码符号的过程中,使用结合置信度传播法的渐进式译码算法,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,得到所述非系统Raptor码的中间向量,其中,每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素不全为0,且a的度小于A中第s行的度,交换a与A中第s行,交换r与R中第s行的元素;判断A中第s行的度是否为1;若A中第s行的度为1,则调用递归函数back_substitutionA,s,以执行所述递归函数back_substitutionA,s中的算法,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,将R中第s行逐位异或到r上;判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度不大于0,判断A是否是单位矩阵;若A不是单位矩阵,返回执行所述每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a的步骤;若A是单位矩阵,得到所述中间向量,根据所述中间向量,得到所述编码符号中的有效载荷的步骤;若A中第s行的元素全为0,交换a与A中第s行,交换r与R中第s行的元素,并执行所述判断a的度是否大于0的步骤;其中,R表示有效载荷向量,其大小是K×1;根据所述中间向量,得到所述编码符号中的有效载荷。

全文数据:非系统Raptor码的渐进式译码方法及装置技术领域本发明涉及通信编译码技术领域,更具体地,涉及一种非系统Raptor码的渐进式译码方法及装置。背景技术Raptor码是一种能在线性时间进行编码和译码的喷泉码,能在较低的译码开销下实现很高的译码成功率。非系统Raptor码作为Raptor码的一个子类,具有编码复杂度低的优势,在广播通信领域有着良好的应用前景。目前,国际互联网工程任务组TheInternetEngineeringTaskForce,IETFRFC5053标准里规定,Raptor码的译码算法在接收一定数量的编码符号后开始译码。译码器使用这种先接收编码符号再译码的方法会带来时间上的浪费,无法实现快速译码,不适用于低时延通信。现有的边接收编码符号边译码的译码器,也称为渐进式译码器,主要分为两种。第一种是基于RFC5053标准的渐进式译码器。该译码器的译码分为两个阶段:第一阶段,使用贪心算法对所有度大于等于1的编码符号进行钝化处理,再执行置信度传播法实现边接收边译码;第二阶段,在接收完编码符号后,执行高斯消元法以实现后续的译码操作。这种渐进式译码器的缺陷在于:使用贪心算法进行钝化处理,降低了第二阶段的运算速度。而第二种渐进式译码器,基于高斯消元法,仅采用贪心算法执行译码中的高斯消元运算。第二种译码器未采用置信度传播法,避免了置信度传播法的高效的优点,因而译码速度慢。因此,亟需提供一种能够结合置信度传播法且不影响高斯消元法的译码效率的非系统Raptor码的渐进式译码方法。发明内容本发明的一个目的是提供一种用于非系统Raptor码的渐进式译码方法的新技术方案。根据本发明的第一方面,提供了一种非系统Raptor码的渐进式译码方法,包括:在接收编码符号前,使用结合置信度传播法的渐进式译码算法,将译码矩阵化简为上三角矩阵;在接收所述编码符号的过程中,使用结合置信度传播法的渐进式译码算法,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,得到所述非系统Raptor码的中间向量;根据所述中间向量,得到所述编码符号中的有效载荷。可选的,所述使用结合置信度传播法的渐进式译码算法,将译码矩阵化简为上三角矩阵,包括:初始化循环变量i=1;判断i>J是否成立;若i>J不成立,将A0的第i行赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素全为0,交换a与A中第s行;令i=i+1,返回执行判断i>J是否成立的步骤;若A中第s行的元素不全为0,且a的度小于A中第s行的度,则将a与A中的第s行交换;判断A中第s行的度是否为1;若A中第s行的度为1,则调用递归函数back_substitutionA,s,以执行所述递归函数back_substitutionA,s中的算法,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,并判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度小于等于0,令i=i+1,返回执行判断i>J是否成立的步骤;若i>J成立,执行所述在接收所述编码符号的过程中,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵的步骤;其中,J表示所述非系统Raptor码的外码中校验码的个数,A0表示所述非系统Raptor码的编码矩阵,其大小是L+J×K+J,a表示一个1×K+J的行向量,A表示所述译码矩阵,L表示编码符号的个数,K表示源符号的个数。可选的,所述使用结合置信度传播法的渐进式译码算法,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,包括:每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素不全为0,且a的度小于A中第s行的度,交换a与A中第s行,交换r与R中第s行的元素;判断A中第s行的度是否为1;若A中第s行的度为1,则调用递归函数back_substitutionA,s,以执行所述递归函数back_substitutionA,s中的算法,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,将R中第s行逐位异或到r上;判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度不大于0,判断A是否是单位矩阵;若A不是单位矩阵,返回执行所述每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a的步骤;若A是单位矩阵,得到所述中间向量,执行所述根据所述中间向量,得到所述编码符号中的有效载荷的步骤;若A中第s行的元素全为0,交换a与A中第s行,交换r与R中第s行的元素,并执行所述判断a的度是否大于0的步骤;其中,R表示有效载荷向量,其大小是K×1。可选的,所述递归函数back_substitutionA,s中使用置信度传播法进行运算,包括如下步骤:令循环变量k=1;判断k≥s是否成立;若k≥s成立,跳出所述递归函数back_substitutionA,s;若k≥s不成立,判断A中第k行第s列的元素是否等于0;若A中第k行第s列的元素等于0,令k=k+1,返回执行所述判断k≥s是否成立的步骤;若A中第k行第s列的元素不等于0,令A中第k行第s列的元素等于0,判断A中第k行的度是否等于1;若A中第k行的度等于1,则先调用所述递归函数,再令k=k+1,返回执行所述判断k≥s是否成立的步骤;若A中第k行的度不等于1,则令k=k+1,返回执行所述判断k≥s是否成立的步骤。可选的,所述根据所述中间向量,得到所述编码符号中的有效载荷,包括:将所述中间向量X的前K个元素确定为所述编码符号中的有效载荷XK。根据本发明的第二方面,提供了一种非系统Raptor码的渐进式译码装置,包括:预处理模块,用于在接收编码符号前,使用结合置信度传播法的渐进式译码算法将译码矩阵化简为上三角矩阵;递归计算模块:用于递归执行所述置信度传播法;译码模块,用于在接收所述编码符号的过程中,使用结合置信度传播法的渐进式译码算法,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,得到所述非系统Raptor码的中间向量;输出模块,用于根据所述中间向量,得到所述编码符号中的有效载荷。可选的,所述预处理模块具体用于:初始化循环变量i=1;判断i>J是否成立;若i>J不成立,将A0的第i行赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素全为0,交换a与A中第s行;令i=i+1,返回执行判断i>J是否成立的步骤;若A中第s行的元素不全为0,且a的度小于A中第s行的度,则将a与A中的第s行交换;判断A中第s行的度是否为1;若A中第s行的度为1,则调用递归函数back_substitutionA,s,以执行所述递归函数back_substitutionA,s中的算法,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,并判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度小于等于0,令i=i+1,返回执行判断i>J是否成立的步骤;若i>J成立,执行所述译码模块中的操作;其中,J表示所述非系统Raptor码的外码中校验码的个数,A0表示所述非系统Raptor码的编码矩阵,其大小是L+J×K+J,a表示一个1×K+J的行向量,A表示所述译码矩阵,L表示编码符号的个数,K表示源符号的个数。可选的,所述译码模块具体用于:每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素不全为0,且a的度小于A中第s行的度,交换a与A中第s行,交换r与R中第s行的元素;判断A中第s行的度是否为1;若A中第s行的度为1,则执行递归计算模块中的操作,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,将R中第s行逐位异或到r上;判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度不大于0,判断A是否是单位矩阵;若A不是单位矩阵,返回执行所述每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a的步骤;若A是单位矩阵,得到所述中间向量,执行所述输出模块中的操作;若A中第s行的元素全为0,交换a与A中第s行,交换r与R中第s行的元素,并执行所述判断a的度是否大于0的步骤;其中,R表示有效载荷向量,其大小是K×1。可选的,所述递归计算模块具体用于:令循环变量k=1;判断k≥s是否成立;若k≥s成立,跳出所述递归函数back_substitutionA,s;若k≥s不成立,判断A中第k行第s列的元素是否等于0;若A中第k行第s列的元素等于0,令k=k+1,返回执行所述判断k≥s是否成立的步骤;若A中第k行第s列的元素不等于0,令A中第k行第s列的元素等于0,判断A中第k行的度是否等于1;若A中第k行的度等于1,则先调用所述递归函数,再令k=k+1,返回执行所述判断k≥s是否成立的步骤;若A中第k行的度不等于1,则令k=k+1,返回执行所述判断k≥s是否成立的步骤。可选的,所述输出模块具体用于:将所述中间向量X的前K个元素确定为所述编码符号中的有效载荷XK。根据本发明的一个实施例,可以减少非系统Raptor码在译码过程中的运算量和计算复杂度,提高译码速度。通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。附图说明被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。图1为本发明实施例提供的非系统Raptor码的渐进式译码方法的示意性流程图。图2为本发明实施例提供的方法中步骤1100的示意图。图3为本发明实施例提供的方法中步骤1200的示意图。图4为本发明实施例提供的方法中递归函数的算法的执行步骤的示意图。图5为本发明实施例提供的非系统Raptor码的渐进式译码装置的示意性框图。具体实施方式现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。通常,发送端广播文件给用户,需要先使用raptor码对待广播的文件进行编码,得到对应的编码符号发送给接收端。接收端的译码器接收编码符号并进行译码,以还原出发送端所广播的文件。本实施例主要应用于接收端的译码器中,通过在接收编码符号前和接收编码符号过程中应用结合置信度传播法的渐进式译码算法,减少非系统Raptor码在译码过程中的运算量和计算复杂度,提高译码速度。下面结合附图对本发明提供的非系统Raptor码的渐进式译码方法进行详细说明。图1为本发明实施例提供的非系统Raptor码的渐进式译码方法的示意性流程图。如图1所示,本实施例的非系统Raptor码的渐进式译码方法,包括:步骤1100、在接收编码符号前,使用结合置信度传播法的渐进式译码算法,将译码矩阵化简为上三角矩阵。具体的,在接收编码符号之前,译码器可以恢复出译码矩阵中外码的编码信息,因此,译码器可以在接受编码符号之前,对译码矩阵中外码的编码信息进行运算,以降低译码器在接收编码符号时的运算量。在接收编码符号前的预处理阶段,将a初始化为零向量,r初始化为0,A初始化为零矩阵。其中,a表示一个1×K+J的行向量,r表示一个变量,A表示译码矩阵,J表示非系统Raptor码的外码中校验码的个数,K表示源符号的个数。本实施例中,接收编码符号前的预处理阶段的目标在于,使用结合置信度传播算法的渐进式译码算法,将仅包含外码的编码信息的译码矩阵化简为与该译码矩阵等价的上三角矩阵。具体的,参照图2,本步骤中,使用结合置信度传播法的渐进式译码算法,将译码矩阵化简为上三角矩阵,包括:初始化循环变量i=1。判断i>J是否成立。若i>J不成立,令a=A0[i],即,将A0的第i行赋给a。其中,A0表示非系统Raptor码的编码矩阵,其大小是L+J×K+J,L表示编码符号的个数,J表示非系统Raptor码的外码中校验码的个数,K表示源符号的个数。令s=leftmost_1a,即,令s为a最左边的非零元素所在的位置。判断Degree[s]=0是否成立,即,判断A中第s行的元素是否全为0。若A中第s行的元素全为0,exchangeA[s],a,即,交换a与A中第s行。令i=i+1,返回执行判断i>J是否成立的步骤。若A中第s行的元素不全为0,且Degree[s]>D成立,即,a的度小于A中第s行的度,则exchangeA[s],a,即,将a与A中的第s行交换。判断Degree[s]=1是否成立,即,判断A中第s行的度是否为1。若A中第s行的度为1,则调用递归函数back_substitutionA,s,以执行递归函数back_substitutionA,s中的算法,直至A中第s行的度不为1。若A中第s行的度不为1,令即,将A中第s行逐位异或到a上,并判断a的度是否大于0。若a的度大于0,返回执行令s=leftmost_1a的步骤。若a的度小于等于0,令i=i+1,返回执行判断i>J是否成立的步骤。若i>J成立,执行步骤1200。这段算法将译码矩阵中J行的元素在接收编码符号之前进行了运算,从而降低了接收编码符号时的运算量。其中,“若A中第s行的度为1,则调用递归函数back_substitutionA,s,”这一操作是在调用置信度传播法。与现有的结合置信度传播算法的渐进式译码算法不同之处在于:现有的结合置信度传播算法的渐进式译码算法先使用贪心算法对所有度大于等于1的编码符号进行钝化处理inactivation再执行置信度传播法,而后再执行高斯消元算法。而对度大于1的编码符号进行钝化处理再执行置信度传播法会影响高斯消元法的执行效率。而在这里,我们使用条件语句分别将置信度传播算法和高斯消元算法进行分类处理,即,若A中第s行的度为1,执行置信度传播算法;若A中第s行的度大于1,执行高斯消元算法。这样的分类处理既发挥了置信度传播算法的优势,又避免了钝化处理,保证了后续高斯消元算法的效率。另外,这里的置信度传播算法采用了贪心递归的方式执行。也就是在执行置信度传播算法的算法的过程中,若A中出现了新的行,其度为1,则继续执行,执行停止的条件是:A中所有的行度都大于1。这种贪心递归的方式可以提高置信度传播运算的使用频率,提高译码效率。步骤1200、在接收所述编码符号的过程中,使用结合置信度传播法的渐进式译码算法,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,得到所述非系统Raptor码的中间向量。在编码符号接收过程的渐进式译码阶段,目标在于使用高斯消元法和置信度传播法进行运算,使得译码矩阵A化简为单位矩阵。具体的,参照图3,本步骤中,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,包括:每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a。每完成一次a的赋值,令s=leftmost_1a,即,令s为a最左边的非零元素所在的位置。判断Degree[s]=0是否成立,即,判断A中第s行的元素是否全为0。若A中第s行的元素不全为0,且Degree[s]>D成立,即,a的度小于A中第s行的度,则exchangeA[s],a,exchangeR[s],r,即,交换a与A中第s行,交换r与R中第s行的元素。其中,R表示有效载荷向量,其大小是K×1。接着判断Degree[s]=1是否成立,即,判断A中第s行的度是否为1。若A中第s行的度为1,则调用递归函数back_substitutionA,s,以执行递归函数back_substitutionA,s中的算法,直至A中第s行的度不为1。若A中第s行的度不为1,则令即,将A中第s行逐位异或到a上,将R中第s行逐位异或到r上。然后判断a的度是否大于0。若a的度大于0,返回执行令s=leftmost_1a的步骤。若a的度不大于0,判断A是否是单位矩阵。若A不是单位矩阵,返回执行所述每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a的步骤。若A中第s行的元素全为0,则exchangeA[s],a,exchangeR[s],r,即,交换a与A中第s行,交换r与R中第s行的元素,并执行判断a的度是否大于0的步骤。若A是单位矩阵,得到所述非系统Raptor码的中间向量,然后执行步骤1300。在此对得到中间向量的过程进行说明。具体的,可以根据译码方程和化简为单位矩阵的所述译码矩阵,求解出所述非系统Raptor码的中间向量。其中,译码方程为:式中,A是译码矩阵,a表示一个1×K+J的行向量,r表示一个变量,R表示有效载荷向量,X表示中间向量,其大小是K+J×1。经过上述步骤1100和步骤1200,译码矩阵A已化简为单位矩阵,这样,译码器可以根据译码方程,更快的求解出中间向量X。求解出中间向量X之后,进入步骤1300、根据所述中间向量,得到所述编码符号中的有效载荷。本步骤中,将中间向量X的前K个元素确定为所述编码符号中的有效载荷XK。在此,参照图4,对于递归函数back_substitutionA,s中使用置信度传播法进行运算所包括的步骤说明如下:令循环变量k=1。判断k≥s是否成立。若k≥s成立,跳出所述递归函数back_substitutionA,s。若k≥s不成立,判断A[k][s]=0是否成立,即,判断A中第k行第s列的元素是否等于0。若A中第k行第s列的元素等于0,令k=k+1,返回执行所述判断k≥s是否成立的步骤。若A中第k行第s列的元素不等于0,令A[k][s]=0,即令A中第k行第s列的元素等于0,判断Degree[k]=1是否成立,即判断A中第k行的度是否等于1。若A中第k行的度等于1,则先调用所述递归函数,再令k=k+1,返回执行所述判断k≥s是否成立的步骤。若A中第k行的度不等于1,则令k=k+1,返回执行所述判断k≥s是否成立的步骤。下面对实现上述步骤1100、步骤1200以及递归函数的伪代码说明如下。上述步骤1100的伪代码为:上述步骤1200的伪代码为:上述递归函数的伪代码为:本实施例的技术方案,在接收编码符号前,使用结合置信度传播法的渐进式译码算法,将译码矩阵化简为上三角矩阵;在接收所述编码符号的过程中,使用结合置信度传播法的渐进式译码算法,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,得到所述非系统Raptor码的中间向量;根据所述中间向量,得到所述编码符号中的有效载荷。由于在接收编码符号前和在接收译码符号的过程中,均使用结合置信度传播法的渐进式译码算法,最终将译码矩阵化简为单位矩阵。这样,译码器可以根据译码方程,更快的求解出中间向量,从而快速获得编码符号中的有效载荷,还原出发送端所发送的文件。根据本实施例的方案,可以减少非系统Raptor码在译码过程中的运算量和计算复杂度,提高了译码器的译码速度。图5为本发明实施例提供的非系统Raptor码的渐进式译码装置的示意性框图。如图5所示,本实施例的非系统Raptor码的渐进式译码装置5000可以包括:预处理模块5100,用于在接收编码符号前,使用结合置信度传播法的渐进式译码算法将译码矩阵化简为上三角矩阵。其中,预处理模块5100内部嵌有基于高斯消元法的渐进式译码程序,并提供调用递归计算模块5400的接口,输入为仅包含外码的编码信息的译码矩阵,输出为与该译码矩阵等价的上三角矩阵。用于在接收编码符号前,使用结合置信度传播法的渐进式译码算法,将仅包含外码的编码信息的译码矩阵化简为与该译码矩阵等价的上三角矩阵。递归计算模块5400:用于递归执行所述置信度传播法。其内部嵌有执行置信度传播法的贪心递归运算程序,输入为在预处理模块5100和译码模块5200中处理过的、具有度为1行的译码矩阵和相应的中间向量,输出为等价的没有度为1行的译码矩阵和相应的中间向量。译码模块5200,用于在接收所述编码符号的过程中,使用结合置信度传播法的渐进式译码算法,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,得到所述非系统Raptor码的中间向量。其中,译码模块5200内部嵌有基于高斯消元法的渐进式译码程序,并提供调用递归计算模块5400的接口,输入为预处理模块5100的输出和接收到的编码符号,输出为非系统Raptor码的中间向量。用于在接收所述编码符号的过程中,使用结合置信度传播法的渐进式译码算法,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,得到所述非系统Raptor码的中间向量。输出模块5300,用于根据所述中间向量,得到所述编码符号中的有效载荷。可选的,所述预处理模块5100具体用于:初始化循环变量i=1;判断i>J是否成立;若i>J不成立,将A0的第i行赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素全为0,交换a与A中第s行;令i=i+1,返回执行判断i>J是否成立的步骤;若A中第s行的元素不全为0,且a的度小于A中第s行的度,则将a与A中的第s行交换;判断A中第s行的度是否为1;若A中第s行的度为1,则执行递归计算模块5400中的操作,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,并判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度小于等于0,令i=i+1,返回执行判断i>J是否成立的步骤;若i>J成立,执行所述译码模块5200中的操作;其中,J表示所述非系统Raptor码的外码中校验码的个数,A0表示所述非系统Raptor码的编码矩阵,其大小是L+J×K+J,a表示一个1×K+J的行向量,A表示所述译码矩阵,L表示编码符号的个数,K表示源符号的个数。可选的,所述译码模块5200具体用于:每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素不全为0,且a的度小于A中第s行的度,交换a与A中第s行,交换r与R中第s行的元素;判断A中第s行的度是否为1;若A中第s行的度为1,则执行递归计算模块5400中的操作,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,将R中第s行逐位异或到r上;判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度不大于0,判断A是否是单位矩阵;若A不是单位矩阵,返回执行所述每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a的步骤;若A是单位矩阵,得到所述中间向量,执行所述输出模块5300中的操作;若A中第s行的元素全为0,交换a与A中第s行,交换r与R中第s行的元素,并执行所述判断a的度是否大于0的步骤;其中,R表示有效载荷向量,其大小是K×1。所述递归计算模块5400具体用于:令循环变量k=1;判断k≥s是否成立;若k≥s成立,跳出所述递归函数back_substitutionA,s;若k≥s不成立,判断A中第k行第s列的元素是否等于0;若A中第k行第s列的元素等于0,令k=k+1,返回执行所述判断k≥s是否成立的步骤;若A中第k行第s列的元素不等于0,令A中第k行第s列的元素等于0,判断A中第k行的度是否等于1;若A中第k行的度等于1,则先调用所述递归函数,再令k=k+1,返回执行所述判断k≥s是否成立的步骤;若A中第k行的度不等于1,则令k=k+1,返回执行所述判断k≥s是否成立的步骤。可选的,所述输出模块5300具体用于:将所述中间向量X的前K个元素确定为所述编码符号中的有效载荷XK。本实施例的非系统Raptor码的渐进式译码装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。本发明可以是系统、方法和或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子非穷举的列表包括:便携式计算机盘、硬盘、随机存取存储器RAM、只读存储器ROM、可擦式可编程只读存储器EPROM或闪存、静态随机存取存储器SRAM、便携式压缩盘只读存储器CD-ROM、数字多功能盘DVD、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波例如,通过光纤电缆的光脉冲、或者通过电线传输的电信号。这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算处理设备,或者通过网络、例如因特网、局域网、广域网和或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和或边缘服务器。每个计算处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算处理设备中的计算机可读存储介质中。用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构ISA指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网LAN或广域网WAN—连接到用户计算机,或者,可以连接到外部计算机例如利用因特网服务提供商来通过因特网连接。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列FPGA或可编程逻辑阵列PLA,该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。这里参照根据本发明实施例的方法、装置系统和计算机程序产品的流程图和或框图描述了本发明的各个方面。应当理解,流程图和或框图的每个方框以及流程图和或框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和或框图中的一个或多个方框中规定的功能动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和或框图中的一个或多个方框中规定的功能动作的各个方面的指令。也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和或框图中的一个或多个方框中规定的功能动作。附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和或流程图中的每个方框、以及框图和或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

权利要求:1.一种非系统Raptor码的渐进式译码方法,其特征在于,包括:在接收编码符号前,使用结合置信度传播法的渐进式译码算法,将译码矩阵化简为上三角矩阵;在接收所述编码符号的过程中,使用结合置信度传播法的渐进式译码算法,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,得到所述非系统Raptor码的中间向量;根据所述中间向量,得到所述编码符号中的有效载荷。2.根据权利要求1所述的方法,其特征在于,所述使用结合置信度传播法的渐进式译码算法,将译码矩阵化简为上三角矩阵,包括:初始化循环变量i=1;判断i>J是否成立;若i>J不成立,将A0的第i行赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素全为0,交换a与A中第s行;令i=i+1,返回执行判断i>J是否成立的步骤;若A中第s行的元素不全为0,且a的度小于A中第s行的度,则将a与A中的第s行交换;判断A中第s行的度是否为1;若A中第s行的度为1,则调用递归函数back_substitutionA,s,以执行所述递归函数back_substitutionA,s中的算法,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,并判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度小于等于0,令i=i+1,返回执行判断i>J是否成立的步骤;若i>J成立,执行所述在接收所述编码符号的过程中,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵的步骤;其中,J表示所述非系统Raptor码的外码中校验码的个数,A0表示所述非系统Raptor码的编码矩阵,其大小是L+J×K+J,a表示一个1×K+J的行向量,A表示所述译码矩阵,L表示编码符号的个数,K表示源符号的个数。3.根据权利要求1所述的方法,其特征在于,所述使用结合置信度传播法的渐进式译码算法将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,包括:每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素不全为0,且a的度小于A中第s行的度,交换a与A中第s行,交换r与R中第s行的元素;判断A中第s行的度是否为1;若A中第s行的度为1,则调用递归函数back_substitutionA,s,以执行所述递归函数back_substitutionA,s中的算法,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,将R中第s行逐位异或到r上;判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度不大于0,判断A是否是单位矩阵;若A不是单位矩阵,返回执行所述每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a的步骤;若A是单位矩阵,得到所述中间向量,根据所述中间向量,得到所述编码符号中的有效载荷的步骤;若A中第s行的元素全为0,交换a与A中第s行,交换r与R中第s行的元素,并执行所述判断a的度是否大于0的步骤;其中,R表示有效载荷向量,其大小是K×1。4.根据权利要求2或3所述的方法,其特征在于,所述递归函数back_substitutionA,s中使用置信度传播法进行运算,包括如下步骤:令循环变量k=1;判断k≥s是否成立;若k≥s成立,跳出所述递归函数back_substitutionA,s;若k≥s不成立,判断A中第k行第s列的元素是否等于0;若A中第k行第s列的元素等于0,令k=k+1,返回执行所述判断k≥s是否成立的步骤;若A中第k行第s列的元素不等于0,令A中第k行第s列的元素等于0,判断A中第k行的度是否等于1;若A中第k行的度等于1,则先调用所述递归函数,再令k=k+1,返回执行所述判断k≥s是否成立的步骤;若A中第k行的度不等于1,则令k=k+1,返回执行所述判断k≥s是否成立的步骤。5.根据权利要求1所述的方法,其特征在于,所述根据所述中间向量,得到所述编码符号中的有效载荷,包括:将所述中间向量X的前K个元素确定为所述编码符号中的有效载荷XK。6.一种非系统Raptor码的渐进式译码装置,其特征在于,包括:预处理模块,用于在接收编码符号前,使用结合置信度传播法的渐进式译码算法将译码矩阵化简为上三角矩阵;递归计算模块:用于递归执行所述置信度传播法;译码模块,用于在接收所述编码符号的过程中,使用结合置信度传播法的渐进式译码算法,将化简为上三角矩阵的所述译码矩阵化简为单位矩阵,得到所述非系统Raptor码的中间向量;输出模块,用于根据所述中间向量,得到所述编码符号中的有效载荷。7.根据权利要求6所述的装置,其特征在于,所述预处理模块具体用于:初始化循环变量i=1;判断i>J是否成立;若i>J不成立,将A0的第i行赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素全为0,交换a与A中第s行;令i=i+1,返回执行判断i>J是否成立的步骤;若A中第s行的元素不全为0,且a的度小于A中第s行的度,则将a与A中的第s行交换;判断A中第s行的度是否为1;若A中第s行的度为1,则执行递归计算模块中的操作,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,并判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度小于等于0,令i=i+1,返回执行判断i>J是否成立的步骤;若i>J成立,执行所述译码模块中的操作;其中,J表示所述非系统Raptor码的外码中校验码的个数,A0表示所述非系统Raptor码的编码矩阵,其大小是L+J×K+J,a表示一个1×K+J的行向量,A表示所述译码矩阵,L表示编码符号的个数,K表示源符号的个数。8.根据权利要求6所述的装置,其特征在于,所述译码模块具体用于:每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a;令s为a最左边的非零元素所在的位置;判断A中第s行的元素是否全为0;若A中第s行的元素不全为0,且a的度小于A中第s行的度,交换a与A中第s行,交换r与R中第s行的元素;判断A中第s行的度是否为1;若A中第s行的度为1,则执行递归计算模块中的操作,直至A中第s行的度不为1;若A中第s行的度不为1,将A中第s行逐位异或到a上,将R中第s行逐位异或到r上;判断a的度是否大于0;若a的度大于0,返回执行所述令s为a最左边的非零元素所在的位置的步骤;若a的度不大于0,判断A是否是单位矩阵;若A不是单位矩阵,返回执行所述每接收到一个编码符号,将该编码符号的有效载荷赋给r,将该编码符号的编码信息向量赋给a的步骤;若A是单位矩阵,得到所述中间向量,执行所述输出模块中的操作;若A中第s行的元素全为0,交换a与A中第s行,交换r与R中第s行的元素,并执行所述判断a的度是否大于0的步骤;其中,R表示有效载荷向量,其大小是K×1。9.根据权利要求7或8所述的装置,其特征在于,所述递归计算模块具体用于:令循环变量k=1;判断k≥s是否成立;若k≥s成立,跳出所述递归函数back_substitutionA,s;若k≥s不成立,判断A中第k行第s列的元素是否等于0;若A中第k行第s列的元素等于0,令k=k+1,返回执行所述判断k≥s是否成立的步骤;若A中第k行第s列的元素不等于0,令A中第k行第s列的元素等于0,判断A中第k行的度是否等于1;若A中第k行的度等于1,则先调用所述递归函数,再令k=k+1,返回执行所述判断k≥s是否成立的步骤;若A中第k行的度不等于1,则令k=k+1,返回执行所述判断k≥s是否成立的步骤。10.根据权利要求6所述的装置,其特征在于,所述输出模块具体用于:将所述中间向量X的前K个元素确定为所述编码符号中的有效载荷XK。

百度查询: 国广融合(北京)传媒科技发展有限公司 非系统Raptor码的渐进式译码方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。