CN101882972A - 一种Raptor码的解码方法 - Google Patents

一种Raptor码的解码方法 Download PDF

Info

Publication number
CN101882972A
CN101882972A CN 201010191845 CN201010191845A CN101882972A CN 101882972 A CN101882972 A CN 101882972A CN 201010191845 CN201010191845 CN 201010191845 CN 201010191845 A CN201010191845 A CN 201010191845A CN 101882972 A CN101882972 A CN 101882972A
Authority
CN
China
Prior art keywords
matrix
decoding
row
rol
exchange
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
Application number
CN 201010191845
Other languages
English (en)
Other versions
CN101882972B (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.)
Communication University of China
Original Assignee
Communication University of China
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 Communication University of China filed Critical Communication University of China
Priority to CN2010101918455A priority Critical patent/CN101882972B/zh
Publication of CN101882972A publication Critical patent/CN101882972A/zh
Application granted granted Critical
Publication of CN101882972B publication Critical patent/CN101882972B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明公开了一种Raptor码的解码方法。由于现有的Raptor解码技术为了保证一次性解码成功的高概率,接收的符号数较多,而且一旦解码不成功就必须重启整个解码过程。本发明提出的方法,能够从可能解码成功的最少符号开始解码,如解码不成功,只需继续接收1个新符号,利用解码失败的结果继续解码,直至解码成功。本发明解决了现有技术解码算法中高斯消元对矩阵线性关系的破坏这一问题。改进方法简单,开销小,增强了解码实时性,使其实用性大大加强。

Description

一种Raptor码的解码方法
技术领域
本申请涉及一种Raptor解码方法,该方法可广泛用于数字通信、数据存储、数据压缩等技术领域。
背景技术
为有效利用移动网络资源,3GPP提出了多媒体广播多播业务(MBMS),在移动网络中提供一个数据源向多个用户发送数据的点到多点业务。3GPP MBMS采用Raptor系统码(一种实用的喷泉码)作为前向纠错的编码方案。喷泉码可以由K个原始分组生成任意数量的编码分组,只要收到其中任意K(1+ε)(ε>0)个编码分组,就能解码恢复K个原始分组。LT码是Luby提出喷泉码的概念后给出的首个可以实用的编码方案。随后Shokrollahi提出了Raptor码,其主要思路是在LT编码前加入传统的纠错编码,构成串联码,纠错码作为外码,LT作为内码,并可进行多层外码编码。由于Raptor码采用了纠错编码,因此可比LT码接收更少的码字,就能通过自身的纠错机制实现解码,从而克服LT码所需ε偏大的问题,并具有线性编解码时间的性质。
3GPP MBMS给出的Raptor系统码是一种高效的编解码方案。但是该方案给出的解码算法一般需要接收大于K个符号,这是因为任意接收的K个符号不一定刚好满足解码矩阵AL×L满秩,这样解码就不能一次性成功。即使N大于K,也不能100%保证一次性解码成功,仅仅是解码成功的概率增大,即N越大,解码成功的概率越大。但是一旦解码失败,此时的解码结果无法再用,必须在接收新的符号基础上,重启解码过程,造成解码时间比较长。
发明内容
本发明可以解决现有技术方案存在的以上问题。解码失败后,在接收新符号后,利用当前解码失败的结果继续完成解码,大大缩短解码时间并保证解码的成功率是100%。
一种Raptor码的解码方法,其特征在于,包括以下步骤:
步骤1:首先,至少接收K个符号,构造矩阵
其中,IS×S和IH×H分别是S阶和H阶的单位阵,OS×H为S×H阶的零矩阵,(GLDPC)S×K和(HHalf)H×(S+K)分别是LDPC校验矩阵和Half校验矩阵,(GLT)K×L是LT编码矩阵,L=S+H+K;
步骤2:对矩阵AL×L进行高斯变换,变换为
Figure GSA00000130420500021
的模式,其中I为i×i的单位阵,O为零矩阵,U矩阵有L行u列元素;
步骤3:在对矩阵AL×L进行高斯消元法变换时,记录所有发生的列交换位置信息,如矩阵A的j列与j′列交换,则记录j和j′的值;
步骤4:将矩阵U划分为i行子矩阵U_upper和L-i行子矩阵U_lower;对U_lower用无列交换的高斯消元法进行变换,如果U_lower的秩是u,则可以将其变换成u×u的单位阵I_u,转向步骤6;否则如果U_lower的秩u′<u,只能将U_lower转化为I_u′,A矩阵末行会有零行出现,转向步骤5;
步骤5:接收一个新的符号E[xk+i],其序号是xk+i,每接收一个新符号,i按1,2...n递增,新符号存入D[d[L-1+i]],其中d[L-1+i]=L-1+i;将序号xk+i按LT编码算法得到一串长度为L的数据串,可看做一个1×L的矩阵;按照步骤3记录的对矩阵AL×L进行的所有列交换位置信息,对该1×L的矩阵按列进行列变换;然后将变换后的1×L矩阵加入到步骤4得到的矩阵AL×L的L+i行,将该行与矩阵AL×L第一行的0行交换,得到新的矩阵AL×L′,回到步骤4对矩阵AL×L′重新操作;
步骤6:如果由步骤4直接转到该步骤,则U_lower将被变换成u×u的单位阵I_u;如果经历过步骤5,则删除矩阵AL×L′的全部0行;此时再用单位阵I_u将子矩阵U_upper中的1全部消去,原矩阵AL×L转化为单位阵,实现矩阵求逆,则中间符号C[c[0]],C[c[1]],...,C[c[L-1]]=D[d[0]],D[d[1]],...,D[d[L-1]];
步骤7:用序号0,...,K-1,按LT编码算法得到该序号对应的矩阵GLT′,用该矩阵和中间符号C[0],C[1],...,C[K-1]相乘,即可解得K个源符号,实现了解码。
本发明提出的Raptor解码方法,解决了以下两个问题:一是为了保证解码成功的高概率,接收到N(大于K)个符号才进行解码,延误了解码起始时间。但即使这样,也不能保证100%的解码成功。二是一旦解码失败,此时的解码结果无法再用,必须在接收新的符号基础上,重启解码过程,继续造成解码时间的延长。
本发明可以利用解码失败的结果继续解码,忽略了解码中最复杂最耗时处理过程,使得解码效率大大提高。
附图说明
图1是本发明对Raptor码的解码方法的示意图;
图2(a)是本发明运算中A的子阵的示意图;
图2(b)是本发明成功时A的子阵的示意图;
图3(a)是本发明运算中A的子阵的示意图;
图3(b)是本发明成功时A的子阵的示意图;
图3(c)是本发明失败时A的子阵的示意图;
具体实施方式
下面结合附图对本发明的Raptor码的解码方法进行说明。如图1所示,其具体步骤如下:
步骤101:首先,接收K个符号,构造矩阵AL×L;根据下列公式
Figure GSA00000130420500031
构造解码的方程矩阵,即分别构造该矩阵方程的矩阵E[x1],...,E[xK],矩阵C[0],...,C[L-1],以及矩阵AL×L的子阵(GLDPC)S×K、子阵(HHalf)H×(S+K)和子阵(GLT)K×L。其中,IS×S和IH×H分别是S阶和H阶的单位阵,OS×H为S×H阶的零矩阵,(GLDPC)S×K和(HHalf)H×(S+K)分别是LDPC校验矩阵和Half校验矩阵,(GLT)K×L和(GLT)N×L是LT编码矩阵。S和H的大小参见表一。E[x1],...,E[xK]是接收到的任意K个符号(一个符号为一定长度的数据串),其序号分别为x1,...,xK。C[0],...,C[L-1]为解码用的中间符号。假设,编码前的原始符号数为K。
表一 编解码参数定义
Figure GSA00000130420500041
具体过程如下:
①接收K个已编码符号赋值到公式1等号左面的矩阵E[x1],...,E[xK],其中,x1,...,xK是这K个符号的编码序号。
②按下列算法得到公式1中的子阵(GLDPC)S×K,相应位置置1,其余的置0:
for i=0,...,K-1 do
a=1+floor(i/S)%(S-1)
b=i%S
GLDPC(b,i)=1
b=(b+a)%S
GLDPC(b,i)=1
b=(b+a)%S
GLDPC(b,i)=1
③构造公式1的子阵HHalf=BT H×(S+K)
遍历正整数变量i,可以从等式g(i)=i xor floor(i/2))中,获得格雷码。从得到的格雷码中,依次抽取H个汉明码重为HH的码字,每个码字都选取S+K位,将这些码字组成BH×(S+K)的二元矩阵,将BH×(S+K)转置得到GHalf矩阵。
④构造公式1的子阵GLT
该构造过程采用LT编码,其中的随机数和度采用如下方式和定义:
伪随机数发生器的函数为:
Rand[X,i,m]=(V0[(X+i)%256]xorV1[(floor(X/256)+i)%256])%m
度生成函数Deg[v]Deg[v]=d[j],f[j-1]≤v<f[j](0≤v≤220)。由表2给出参数取值范围:
表2度分布
  Indexj   f[j]   d[j]
  0   0   --
  1   10241   1
  2   491582   2
  3   712794   3
  4   831695   4
  5   948446   10
  6   1032189   11
  7   1048576   40
另在,构造子阵GLT还用到Triple三参数生成函数:
A=(53591+J[K]*997)%Q;
B=(10267*(J[K]+1))%Q;
Y=(B+X*A)%Q;
v=Rand(Y,0,220);
d=Deg(v);
a=1+Rand(Y,1,LL-1);
b=RandLT(Y,2,LL);
其中,Q=65521,是小于65536的最小素数。LL是不小于L的最小素数。X是当前要编码的源符号数的序号。J[K]是8189个元素的数组,4≤K≤8192。J[K]函数在编码中起到至关重要的作用,保证AL×L矩阵从开始到最后的高斯变换都满秩。
最后,用接收符号的序号x1,...,xK,按如下LT码编码算法得到对应的K行L列GLT子阵:
(GLT)初始时为0矩阵,按下列算法为矩阵GLT元素置1:
forX=x1,...,xK do
while b>=L do b=(b+a)%LL
GLT(X,b)=1
forj=1,...,min(d-1,L-1)do
b=(b+a)%LL
whileb>=L do  b=(b+a)%LL
GLT(X,b)=1
⑤将步骤101给出的公式简写为D=A·C。
首先设c[0]=0,c[1]=1,...,c[L-1]=L-1;
d[0]=0,d[1]=1,...,d[L-1]=L-1。
即,初始时,步骤101给出的公式左端为,D[0],D[1],...,D[L-1]=D[d[0]],D[d[1]],...,D[d[L-1]]=0,...,0,0,...,0,E[x1],...,E[xK](前面共S+H个0)
显然A-1D=C,即中间符号C的求解是A的求逆的过程。对矩阵A进行高斯消元,采用如下原则:
1)如果矩阵A的i行对i′行异或,则D[d[i]]对D[d[i′]]进行异或;
2)如果矩阵A的i行与i′行交换,则d[i]与d[i′]进行交换;
3)如果矩阵A的j列与j′列交换,则c[j]与c[j′]进行交换;
则在求解成功后,C[c[0]],C[c[1]],...,C[c[L-1]]=D[d[0]],D[d[1]],...,D[d[L-1]]。
步骤102:将矩阵A变换为
Figure GSA00000130420500061
模式,如图2(b)所示。具体过程如下:
将矩阵A通过前述的高斯消元法按如下子矩阵的划分方式逐步变换,图2中示出矩阵A的变换情况,其中I为i×i的单位阵,O为零矩阵,U矩阵有L行u列元素。初始时,图2(a)中的子阵V就是矩阵A,没有子阵I。
矩阵A的每一次变换,都在矩阵V中行码重最小(码重为r)的那些行中随机选择一行,与V首行交换。然后再将变换后的V首行的任一个1所在列交换至V首列,剩余的r-1个1按列交换到A的最后。步骤2完成时,矩阵A变换为
Figure GSA00000130420500062
模式如图2(b),i+u=L,V消失,U的左面由一个单位阵I(上)和零矩阵(下)构成。
步骤103:在对矩阵A进行高斯消元法变换时,记录所有发生的列交换位置信息,如矩阵A的j列与j′列交换,则记录j和j′的值;将列交换位置信息保存到1个二维数组rol_changed[rol_M][2]中,并记录发生了多少次交换的数值rol_N(rol_M为最大交换次数,rol_M≥rol_N)。
步骤104:将矩阵U划分为i行子矩阵U_upper和L-i行子矩阵U_lower如图3(a)。对U_lower用无列交换的高斯消元法进行变换。如果U_lower的秩是u,则可以将其变换成u×u的单位阵I_u如图3(b),步骤104成功,转向步骤106。否则秩u′<u,只能将U_lower转化为I_u′,A矩阵末行会有零行出现如图3(c),则步骤104失败,转向步骤105。
步骤105:接收一个新的符号E[xK+i],其序号是xK+i(运行到此步,每接收一个新符号,i按1,2...递增),新符号存入D[d[L-1+i]],其中d[L-1+i]=L-1+i。用序号xK+i按步骤101中④所述的LT编码算法得到一串长度为L的数据串,可看做一个1×L的矩阵;按照步骤103记录的对矩阵AL×L进行的所有列变换,对该1×L的矩阵按列都进行列变换;然后将变换后的1×L矩阵加入到步骤104得到的矩阵A的L+i行,将该行与矩阵第一行的0行交换,得到新的矩阵A′,回到步骤104对矩阵A′重新操作;
步骤106:如果步骤104成功,则U_lower可以将其变换成u×u的单位阵I_u;如果经历过步骤105,则删除矩阵A′尾部的0行。此时再用单位阵I_u将子矩阵U_upper中的1全部消去,原矩阵A转化为单位阵,实现矩阵求逆,则中间符号C[c[0]],C[c[1]],...,C[c[L-1]]=D[d[0]],D[d[1]],...,D[d[L-1]];
步骤107:用序号0,...,K-1,按步骤101中④所述的LT编码算法得到该序号对应的矩阵GLT′,用该矩阵和中间符号C[0],C[1],...,C[K-1]相乘,即可解得K个源符号。解码成功。
本发明解决了现有技术中不能增量解码的问题,给出了线性解码时间的方法。由于现有技术一旦解码不成功就必须重启整个解码过程,而本发明可以利用解码失败的结果继续解码,忽略了解码中最复杂最耗时处理过程,使得解码效率大大提高。
与现有技术相比,本发明提出的Raptor码的解码方法,可以实现:1、解码从接收K个符号开始,此时已经有较高的解码成功概率;2、即使解码不成功,只需继续接收1个(2个以上更没有问题)新的符号,利用解码失败的结果,就可以继续解码,直至解码成功。
以上仅为本发明的优选实施案例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种Raptor码的解码方法,其特征在于,包括以下步骤:
步骤1:首先,至少接收K个符号,构造矩阵其中,IS×S和IH×H分别是S阶和H阶的单位阵,OS×H为S×H阶的零矩阵,(GLDPC)S×K和(HHalf)H×(S+K)分别是LDPC校验矩阵和Half校验矩阵,(GLT)K×L是LT编码矩阵,L=S+H+K;
步骤2:对矩阵AL×L进行高斯变换,变换为的模式,其中I为i×i的单位阵,O为零矩阵,U矩阵有L行u列元素;
步骤3:在对矩阵AL×L进行高斯消元法变换时,记录所有发生的列交换位置信息,如矩阵A的j列与j′列交换,则记录j和j′的值;
步骤4:将矩阵U划分为i行子矩阵U_upper和L-i行子矩阵U_lower;对U_lower用无列交换的高斯消元法进行变换,如果U_lower的秩是u,则可以将其变换成u×u的单位阵I_u,转向步骤6;否则如果U_lower的秩u′<u,只能将U_lower转化为I_u′,A矩阵末行会有零行出现,转向步骤5;
步骤5:接收一个新的符号E[xk+i],其序号是xk+i,每接收一个新符号,i按1,2...n递增,新符号存入D[d[L-1+i]],其中d[L-1+i]=L-1+i;将序号xk+i按LT编码算法得到一串长度为L的数据串,可看做一个1×L的矩阵;按照步骤3记录的对矩阵AL×L进行的所有列交换位置信息,对该1×L的矩阵按列进行列变换;然后将变换后的1×L矩阵加入到步骤4得到的矩阵AL×L的L+i行,将该行与矩阵AL×L第一行的0行交换,得到新的矩阵AL×L′,回到步骤4对矩阵AL×L′重新操作;
步骤6:如果由步骤4直接转到该步骤,则U_lower将被变换成u×u的单位阵I_u;如果经历过步骤5,则删除矩阵AL×L′的全部0行;此时再用单位阵I_u将子矩阵U_upper中的1全部消去,原矩阵AL×L转化为单位阵,实现矩阵求逆,则中间符号C[c[0]],C[c[1]],...,C[c[L-1]]=D[d[0]],D[d[1]],...,D[d[L-1]];
步骤7:用序号0,...,K-1,按LT编码算法得到该序号对应的矩阵GLT′,用该矩阵和中间符号C[0],C[1],...,C[K-1]相乘,即可解得K个源符号,实现了解码。
2.根据权利要求1所述的方法,其特征在于,在所述步骤3中将列交换位置信息保存到1个二维数组rol_changed[rol_M][2]中,并记录发生了多少次交换的数值rol_N,rol_M为最大交换次数,rol_M≥rol_N。
CN2010101918455A 2010-06-04 2010-06-04 一种Raptor码的解码方法 Expired - Fee Related CN101882972B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101918455A CN101882972B (zh) 2010-06-04 2010-06-04 一种Raptor码的解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101918455A CN101882972B (zh) 2010-06-04 2010-06-04 一种Raptor码的解码方法

Publications (2)

Publication Number Publication Date
CN101882972A true CN101882972A (zh) 2010-11-10
CN101882972B CN101882972B (zh) 2012-08-22

Family

ID=43054879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101918455A Expired - Fee Related CN101882972B (zh) 2010-06-04 2010-06-04 一种Raptor码的解码方法

Country Status (1)

Country Link
CN (1) CN101882972B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102324998A (zh) * 2011-05-11 2012-01-18 浙江大学 适合于加性白高斯噪声信道的中短码长的Raptor Codes编译码方法
CN104320147A (zh) * 2014-10-27 2015-01-28 中国传媒大学 一种系统不等差错保护的Raptor码方法
US9264181B2 (en) 2013-12-30 2016-02-16 Industrial Technology Research Institute Communication system, method and receiver applicable thereto
CN112953568A (zh) * 2021-02-02 2021-06-11 国家广播电视总局广播电视科学研究院 一种用于删除信道的前向纠错码及其构造方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510783A (zh) * 2009-03-26 2009-08-19 北京理工大学 一种基于有限域的多进制喷泉编码和译码方法
CN101567755A (zh) * 2009-05-25 2009-10-28 北京理工大学 一种基于喷泉码的网络编码方法
CN101582744A (zh) * 2009-06-19 2009-11-18 重庆邮电大学 一种基于迭代方法的rs喷泉码的编译码方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510783A (zh) * 2009-03-26 2009-08-19 北京理工大学 一种基于有限域的多进制喷泉编码和译码方法
CN101567755A (zh) * 2009-05-25 2009-10-28 北京理工大学 一种基于喷泉码的网络编码方法
CN101582744A (zh) * 2009-06-19 2009-11-18 重庆邮电大学 一种基于迭代方法的rs喷泉码的编译码方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102324998A (zh) * 2011-05-11 2012-01-18 浙江大学 适合于加性白高斯噪声信道的中短码长的Raptor Codes编译码方法
CN102324998B (zh) * 2011-05-11 2013-09-04 浙江大学 适合于加性白高斯噪声信道的中短码长的Raptor Codes编译码方法
US9264181B2 (en) 2013-12-30 2016-02-16 Industrial Technology Research Institute Communication system, method and receiver applicable thereto
CN104320147A (zh) * 2014-10-27 2015-01-28 中国传媒大学 一种系统不等差错保护的Raptor码方法
CN104320147B (zh) * 2014-10-27 2017-08-08 中国传媒大学 一种系统不等差错保护的Raptor码方法
CN112953568A (zh) * 2021-02-02 2021-06-11 国家广播电视总局广播电视科学研究院 一种用于删除信道的前向纠错码及其构造方法
CN112953568B (zh) * 2021-02-02 2023-11-17 国家广播电视总局广播电视科学研究院 一种用于删除信道的前向纠错码及其构造方法

Also Published As

Publication number Publication date
CN101882972B (zh) 2012-08-22

Similar Documents

Publication Publication Date Title
CN102164026B (zh) 基于深空通信环境下的喷泉码编译方法
CN100596029C (zh) Ldpc码校验矩阵构造方法及利用该方法的编码解码装置
CN101621299B (zh) 一种突发纠错的方法、设备和装置
Gad et al. Repair-optimal MDS array codes over GF (2)
CN103731160B (zh) 分组空间耦合低密度奇偶校验编码方法
CN107786306B (zh) 用于多点协同通信系统的低码率ldpc码字结构和编码方法
Hou et al. A new design of binary MDS array codes with asymptotically weak-optimal repair
CN101882972B (zh) 一种Raptor码的解码方法
CN105162552A (zh) 一种q-LDPC-LT级联喷泉码方案的Ka频段深空通信方法及系统
CN103346858A (zh) 基于叠加度的系统lt码编译方法
CN103312458A (zh) 混合编码方法
Grinchenko et al. Improving performance of multithreshold decoder over binary erasure channel
CN108429553A (zh) 极化码的编码方法、编码装置及设备
Xiao et al. The comparative analysis of LDPC and RS code
Park et al. Block orthogonal sparse superposition codes
CN101997552A (zh) 低编码复杂度多元非规则ldpc码的设计
CN100424999C (zh) 逐条添加边算法的多进制低密度奇偶校验码编译码方法
Zhang et al. An improved algorithm of 3GPP MBMS raptor codes
Xing et al. A new class of rank-metric codes and their list decoding beyond the unique decoding radius
CN110730006B (zh) 一种用于mcu的ldpc码纠错方法及纠错模块
CN101789795B (zh) 基于多码率原模图ldpc码的编码方法及编码器
Tamo et al. Error correction based on partial information
CN104426553A (zh) 低密度奇偶校验矩阵的编码方法
Hou et al. New regenerating codes over binary cyclic codes
CN107257244A (zh) 一种基于广播环境下的喷泉码编码方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120822

Termination date: 20130604

DD01 Delivery of document by public notice

Addressee: Communication University of China

Document name: Notification of Termination of Patent Right