CN101286745A - 一种交织编码方法及装置 - Google Patents
一种交织编码方法及装置 Download PDFInfo
- Publication number
- CN101286745A CN101286745A CNA2008100946821A CN200810094682A CN101286745A CN 101286745 A CN101286745 A CN 101286745A CN A2008100946821 A CNA2008100946821 A CN A2008100946821A CN 200810094682 A CN200810094682 A CN 200810094682A CN 101286745 A CN101286745 A CN 101286745A
- Authority
- CN
- China
- Prior art keywords
- bit
- ldgc
- unit
- output
- carry out
- 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
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
一种交织编码方法及装置,该方法包括如下步骤:S1:对长度为K的待编码信息比特序列s添加d个已知填充比特,生成长度为L的信息比特序列m;S2:根据关系式I×Gldgc(1:L,1:L)=m生成中间变量I,并根据关系式C=I×Gldgc生成编码比特序列C;S3:从C中删除d个所述已知填充比特;在上述交织编码过程中,还在步骤S1和S2之间对m中除所述已知填充比特外的信息比特部分进行交织;和/或,在步骤S2之后对C中的校验比特部分进行交织;其中,Gldgc为L行、N+L-K列的矩阵,K<L<N。采用本发明的交织编码方法及装置,可以在降低编码复杂度的同时,获得较好的性能。
Description
技术领域
本发明涉及数据编译码领域,尤其涉及一种低密度生成矩阵码的交织编码方法及装置。
背景技术
擦除信道是一种重要的信道模型,在数据传输过程中,如果接收端接收到的数据包校验错误,则将错误的数据段丢弃,相当于擦除。文件在因特网上传输时,是基于数据包通信的,通常每个数据包要么无差错的被接收端接收,要么根本就没有被接收端接收到。传输控制协议(Transmission ControlProtocol,简称TCP)中,针对网络丢包的做法是检错重发机制,即利用输入端到输出端的反馈信道控制需要重新传送的数据包。当接收端检测到丢包时,产生一个重新发送控制信号,直到正确接收到完整数据包;而当接收端接收到数据包时,同样要产生一个接收确认信号。发送端也会跟踪每一个数据包直到接收到反馈回来的确认信号,否则就会重新发送。
基于流模式和文件下载模式的数据广播业务是点到多点的业务,不允许反馈,因此传统的检错重发机制无法使用,需要使用前向纠错(Forward ErrorCorrection,简称FEC)来保证数据的可靠传输。经典的应用层FEC包括RS(Reed-Solomon,里德.所罗门)码和数字喷泉码(Fountain codes)等。RS码的编译码复杂度较高,一般只适用于码长比较小的情况。LT(LubyTransform,陆柏变换)码和Raptor(瑞普特)码是两种可实际应用的数字喷泉码。LT码具有线性的编码和译码时间,相对于RS码有着本质的提高;而Raptor码由于采用了预编码技术,因此具有更高的译码效率。在3GPP(3rdGeneration Partnership Project,第三代合作伙伴计划)的组播广播多媒体业务(Multimedia Broadcast/Multicast Service,简称MBMS)以及数字视频广播(Digital Video Broadcasting,简称DVB)中都采用了Digital Fountain(数字喷泉)公司的Raptor码作为其FEC编码方案。
线性分组码是一组固定长度的码组,可以表示为(n,k),通常用于前向纠错。在编码时,k个信息位被编成n位码组长度。由于(n,k)分组码的2k个码字组成了一个k维子空间,所以该2k个码字一定可以由k个线性无关的基底生成,若把该k个基底写成矩阵的形式,则有:
其中,(n,k)分组码中的任何码字都可以由这组基底的线性组合生成,即:
此处称G为码的生成矩阵。显然,对于生成矩阵的各行来说,只要满足线性无关即可(没有考虑最小距离),而一个k维空间的基底可以任意选择k个线性无关的矢量,所以作为码的生成矩阵G也不是唯一的,但不论采用哪一种形式,它们都生成相同的子空间,即同一个(n,k)分组码。
若编码后码字的前k位与信息位相同,则称该码为系统码。编码的过程就是由k个信息位生成n位码长的过程,通过增加n-k个校验位来达到检错和纠错的目的。
LT码也是利用生成矩阵的稀疏性进行编码,但是同低密度生成矩阵码(Low Density Generator Matrix Codes,简称LDGC)相比,LT码不支持系统码的编码方式,因此LT码难以满足某些实际的FEC编码需求;Raptor码支持系统码,但是Raptor码需要单独的预编码过程,即需要一个预编码矩阵,因此编码的复杂度较高,而LDGC码是直接利用生成矩阵编码,不需要另外的预编码矩阵,且LDGC编码时可以利用回代法求解上三角(或下三角)方程,因此编码复杂度远低于Raptor码。总而言之,同LT码相比LDGC的优势是支持系统码;同Raptor码相比LDGC的优势是编码复杂度更低。因此,需要提出一种针对LDGC特点的编码方法和装置。
发明内容
本发明所要解决的技术问题是,克服现有技术的不足,提供一种低密度生成矩阵码的交织编码方法及装置,以降低编码复杂度,获得较好的编码性能。
为了解决上述问题,本发明提供一种交织编码方法,该方法包括如下步骤:
S1:对长度为K的待编码信息比特序列s添加d个已知填充比特,生成长度为L的信息比特序列m;
S2:根据关系式I×Gldgc(1:L,1:L)=m生成中间变量I,并根据关系式C=I×Gldgc生成编码比特序列C;
S3:从C中删除d个所述已知填充比特;
在上述交织编码过程中,还在步骤S1和S2之间对m中除所述已知填充比特外的信息比特部分进行交织;和/或,在步骤S2之后对C中的校验比特部分进行交织;
其中,Gldgc为L行、N+L-K列的矩阵,K<L<N。
此外,所述Gldgc为低密度生成矩阵,Gldgc(1:L,1:L)是上三角或下三角矩阵。
此外,若Gldgc(1:L,1:L)是左上三角或左下三角矩阵,则步骤S1中,将所述d个已知填充比特添加到所述待编码信息比特序列s之前;
若Gldgc(1:L,1:L)是右上三角或右下三角矩阵,则步骤S1中,将所述d个已知填充比特添加到所述待编码信息比特序列s之后。
此外,将进行所述交织前m的各元素记为B0,B1,…,BL-1,将进行所述交织后m的各元素记为C0,C1,…,CL-1;采用如下方法对m进行所述交织:
Ci=B(i mod kb)×z+floor(i/kb),或Ci=B(i mod z)×kb+floor(i/z);
i=0,1,...,L-1;z=L/kb,其中,kb为交织深度,z和kb为正整数。
此外,将进行所述交织前C的各元素记为E0,E1,…,EN+d-1,将进行所述交织后C的各元素记为F0,F1,…,FN+d-1;采用如下方法对C的校验比特部分进行所述交织:
501:令i=L,j=L;
502:如果i<N+d,则执行下一步,否则结束;
503:如果N+d≤X≤z×ceil((N+d)/z),则跳转至步骤505,否则执行下一步;
504:令Fi=EX,i=i+1;
505:令j=j+1;跳转至步骤502;
上述X=kb×z+((j-kb×z)mod mb)×z+floor((j-kb×z)/mb);或
X=kb×z+((j-kb×z)mod z)×mb+floor((j-kb×z)/z);
其中,mb=ceil((N+d)/z)-kb;
z=L/kb,其中,kb为交织深度,z和kb为正整数。
本发明还提供一种交织编码装置,该装置包含:比特填充单元,预编码单元,分组码编码单元,比特删除单元;第一交织单元和/或第二交织单元;
其中:
所述比特填充单元用于对长度为K的待编码信息比特序列s添加d个已知填充比特,输出长度为L的信息比特序列m;
所述第一交织单元用于对所述比特填充单元输出的m进行交织,并将交织处理后的m输出至所述预编码单元;
所述预编码单元用于接收所述比特填充单元或所述第一交织单元输出的m,并根据关系式I×Gldgc(1:L,1:L)=m,生成并输出中间变量I;
所述分组码编码单元用于根据关系式C=I×Gldgc,对所述预编码单元输出的I进行编码,生成并输出编码比特序列C;
所述第二交织单元用于接收所述分组码编码单元输出的C;对C中的校验比特部分进行交织,将交织处理后的C输出至所述比特删除单元;
所述比特删除单元用于接收所述分组码编码单元或所述第二交织单元输出的C,并从C中删除d个所述已知填充比特后将其输出;
其中,Gldgc为L行、N+L-K列的矩阵,K<L<N。
此外,所述预编码单元和所述分组码编码单元使用的Gldgc为低密度生成矩阵,所述Gldgc(1:L,1:L)是上三角或下三角矩阵;
若Gldgc(1:L,1:L)是左上三角或左下三角矩阵,则所述比特填充单元将所述d个已知填充比特添加到所述待编码信息比特序列s之前;
若Gldgc(1:L,1:L)是右上三角或右下三角矩阵,则所述比特填充单元将所述d个已知填充比特添加到所述待编码信息比特序列s之后。
此外,将进行所述交织前m的各元素记为B0,B1,…,BL-1,将进行所述交织后m的各元素记为C0,C1,…,CL-1;
所述第一交织单元采用如下方法对m进行所述交织:
Cg=B(g mod kb)×z+floor(g/kb),或Cg=B(g mod z)×kb+floor(g/z);g=0,1,...,L-1;
将进行所述交织前C的各元素记为E0,E1,…,EN+d-1,将进行所述交织后C的各元素记为F0,F1,…,FN+d-1;所述第二交织单元采用如下方法对C的校验比特部分进行所述交织:
501:令i=L,j=L;
502:如果i<N+d,则执行下一步,否则结束;
503:如果N+d≤X≤z×ceil((N+d)/z),则跳转至步骤505,否则执行下一步;
504:令Fi=EX,i=i+1;
505:令j=j+1;跳转至步骤502;
上述X=kb×z+((j-kb×z)mod mb)×z+floor((j-kb×z)/mb);或
X=kb×z+((j-kb×z)mod z)×mb+floor((j-kb×z)/z);
其中,mb=ceil((N+d)/z)-kb;
z=L/kb,其中,kb为交织深度,z和kb为正整数。
本发明还提供一种交织编码装置,该装置包含:比特填充单元,预编码单元,分组码编码单元,比特删除单元;第一交织单元和/或第二交织单元;其中:
所述比特填充单元用于对长度为K的待编码信息比特序列s添加d个已知填充比特,输出长度为L的信息比特序列m;
所述第一交织单元用于对所述比特填充单元输出的m进行交织,并将交织处理后的m输出至所述预编码单元;
所述预编码单元用于接收所述比特填充单元或所述第一交织单元输出的m,并根据关系式I×Gldgc(1:L,1:L)=m,生成并输出中间变量I;
所述分组码编码单元用于根据关系式C=I×Gldgc,对所述预编码单元输出的I进行编码,生成并输出编码比特序列C;
所述比特删除单元用于接收所述分组码编码单元输出的C,并从C中删除d个所述已知填充比特后将其输出;
所述第二交织单元用于接收所述比特删除单元输出的C,并对C中的校验比特部分进行交织,将交织处理后的C输出;
其中,Gldgc为L行、N+L-K列的矩阵,K<L<N。
此外,所述预编码单元和所述分组码编码单元使用的Gldgc为低密度生成矩阵,所述Gldgc(1:L,1:L)是上三角或下三角矩阵;
若Gldgc(1:L,1:L)是左上三角或左下三角矩阵,则所述比特填充单元将所述d个已知填充比特添加到所述待编码信息比特序列s之前;
若Gldgc(1:L,1:L)是右上三角或右下三角矩阵,则所述比特填充单元将所述d个已知填充比特添加到所述待编码信息比特序列s之后。
此外,将进行所述交织前m的各元素记为B0,B1,…,BL-1,将进行所述交织后m的各元素记为C0,C1,…,CL-1;
所述第一交织单元采用如下方法对m进行所述交织:
Cg=B(g mod kb)×z+floor(g/kb),或Cg=B(g mod z)×kb+floor(g/z);g=0,1,...,L-1;
将进行所述交织前C的各元素记为E0,E1,…,EN+d-1,将进行所述交织后C的各元素记为F0,F1,…,FN+d-1;所述第二交织单元采用如下方法对C的校验比特部分进行所述交织:
501:令i=L,J=L;
502:如果i<N+d,则执行下一步,否则结束;
503:如果N+d≤X≤z×ceil((N+d)/z),则跳转至步骤505,否则执行下一步;
504:令Fi=EX,i=i+1;
505:令j=j+1;跳转至步骤502;
上述X=kb×z+((j-kb×z)mod mb)×z+floor((j-kb×z)/mb);或
X=kb×z+((j-kb×z)mod z)×mb+floor((j-kb×z)/z);
其中,mb=ceil((N+d)/z)-kb;
z=L/kb,其中,kb为交织深度,z和kb为正整数。
采用本发明的交织编码方法及装置,可以在降低编码复杂度的同时,获得较好的性能。
附图说明
图1是本发明实施例LDGC的交织编码方法流程图;
图2为本发明实施例的LDGC交织编码装置示意图;
图3是LDGC生成矩阵的示意图;
图4是LDGC生成矩阵的非零元素分布示意图;
图5是本发明实施例LDGC交织编码装置预编码单元示意图;
图6是本发明实施例LDGC交织编码装置分组码编码单元示意图。
具体实施方式
LDGC是一种线性分组码,其生成矩阵中的非零元素通常是稀疏的。同时,LDGC码还是一种系统码,其生成矩阵中的前k列组成的方阵通常是一个上三角或下三角矩阵,该矩阵求逆可以通过迭代的方法完成。LDGC的编码是先利用系统码中信息位与中间变量的对应关系求出中间变量,然后再用中间变量乘以生成矩阵得到编码后的码字。LDGC码的译码过程是先利用生成矩阵求得中间变量,然后根据信息位和中间变量的变换关系求出信息位。
下面将参考附图,详细说明本发明的具体实施方式。
方法实施例:
图1是本发明实施例LDGC的交织编码方法流程图。本实施例描述的是对长度为K的信息比特序列进行编码,然后输出长度为N的编码后的码字比特序列给后续处理单元进行处理的过程。其中,校验位长度为M=N-K,码率为r=K/N。如图1所示,本发明实施例的LDGC交织编码方法包括以下步骤:
S102,构造L行、N+L-K列的生成矩阵Gldgc。其中,该生成矩阵的前L列的所有行构成的方阵Gldgc(1:L,1:L)是上三角(或下三角矩阵),K、L和N是给定的正整数,并且K<L<N。
S104,对1×K信息比特序列s添加d=L-K个已知填充比特,构成1×L信息比特序列m。
S106,对所述填充后的信息比特序列m进行交织,得到交织后的信息比特序列mint(也可以称作:经过交织处理的m);
注意到,通常一个信息比特序列对应的编码序列的各比特是在多个数据包中传输,因此对m进行交织的目的是将连续擦除差错打散,避免突发差错。
S108,由于LDGC是系统码,所以有I×Gldgc(1:L,1:L)=mint;利用Gldgc(1:L,1:L)是一个上三角矩阵(或下三角矩阵)的特点,使用交织后信息比特序列mint,得到1×L中间变量I,并根据C=I×Gldgc,对中间变量I进行编码,得到1×(N+d)的码字Cword(即编码序列)。
S110,对所述编码序列Cword的校验比特部分进行交织,得到交织后的编码序列Cperm(也可以称作:经过交织处理的Cword),目的是将连续擦除差错打散,避免突发差错。
S112,从上述步骤生成的1×(N+d)编码序列Cperm中删除步骤S104中添加的已知填充比特,最终得到N比特的编码码字Cldgc,发送出去。
其中,步骤S110和S112的顺序可以互换,即可以先执行步骤S112,删除L-K个已知填充比特,然后对去掉填充比特的编码序列的校验比特部分进行交织,可以实现同样的效果。
此外,在生成矩阵的每一列中,元素1的个数(即,列重量)必须满足一定的度分布原则。生成矩阵的前L列的所有行组成的方阵可以是一个左上三角矩阵、左下三角矩阵、右上三角矩阵、或右下三角矩阵(如图3所示)。
此外,若Gldgc(1:L,1:L)是左上三角或左下三角矩阵,则对于初始长度为K的信息比特序列,将d=L-K个已知填充比特添加到K个信息比特序列的前面;若Gldgc(1:L,1:L)是右上三角或右下三角矩阵,则对于初始长度为K的信息比特序列,将d=L-K个已知填充比特添加到K个信息比特序列的后面;这样添加可以提高编码、译码的性能;需要指出的是,添加填充比特的位置不局限于上述情况。
装置实施例:
图2为本发明实施例的LDGC交织编码装置示意图。该装置用于对输入的K比特的二进制信息比特流进行编码,然后输出N比特的二进制码字比特序列给后续的处理单元。
如图2所示,该LDGC的编码装置包括:矩阵生成单元,比特填充单元,第一交织单元,预编码单元,分组码编码单元,第二交织单元,比特删除单元。其中:
矩阵生成单元,用于生成一个L行、N+L-K列的生成矩阵Gldgc。其中,该生成矩阵的前L列的所有行构成的方阵Gldgc(1:L,1:L)是上三角或下三角矩阵;矩阵生成单元将Gldgc(1:L,1:L)输出至预编码单元,并将Gldgc(1:L,1:N+L-K)输出至分组码编码单元。其中,K、L和N是给定的正整数,并且K<L<N。
比特填充单元,用于对1×K的输入信息比特序列s添加d=L-K个已知填充比特,生成1×L的信息比特序列m,并且将其输出到第一交织单元。
第一交织单元,用于对所述填充已知比特后的信息比特序列m进行交织,输出交织后的信息比特序列mint,目的是将连续擦除差错打散,避免突发差错。
第一交织单元为可选单元,即比特填充单元可以将m直接输出至预编码单元(如图2虚线所示的连接关系)。
预编码单元,用于根据关系式:I×Gldgc(1:L,1:L)=mint,对1×L的信息比特流m进行解方程计算,生成1×L的中间变量I,并将其输出到分组码编码单元。如图5所示,预编码单元可以为一个解上三角和/或下三角方程器,该单元有两个输入,一个是Gldgc(1:L,1:L),另一个是长度为L的信息比特序列m,输出中间变量I。
分组码编码单元,用于对中间变量I进行编码,生成1×(N+d)的二进制码字序列C,并且将其输出至比特删除单元;如图6所示,分组码编码单元可以为一个矩阵乘法器,有两个输入,一个是Gldgc,另一个是长度为L的中间变量I,输出编码后的码字比特序列C。
第二交织单元,用于对所述分组码编码单元输出的编码后的码字比特序列C的校验比特部分进行交织,输出交织后的编码序列,目的是将连续擦除差错打散,避免突发差错。
比特删除单元,对于交织后的编码序列,删除比特填充单元中填充的d个填充比特,最终得到N比特的编码码字。
其中,第二交织单元和比特删除单元的位置可以互换,即码字比特序列C可以先送到比特删除单元,删除已知填充比特,然后送到第二交织单元,对去掉填充比特的码字序列的校验比特部分进行交织(见图中虚线所示的连接关系),结果是等同的。
此外,矩阵生成单元根据以下原则确定生成矩阵:在生成矩阵的每一列中,元素1的个数(即,列重量)必须满足一定的度分布原则。生成矩阵的前L列和所有行组成的方阵是一个左上三角矩阵、左下三角矩阵、右上三角矩阵、或右下三角矩阵(如图3所示)。
此外,若Gldgc(1:L,1:L)是左上三角或左下三角矩阵,则对于初始长度为K的信息比特序列,将d=L-K个已知填充比特添加到K个信息比特序列的前面;若Gldgc(1:L,1:L)是右上三角或右下三角矩阵,则对于初始长度为K的信息比特序列,将d=L-K个已知填充比特添加到K个信息比特序列的后面;这样添加可以提高编码、译码的性能;需要指出的是,添加填充比特的位置不局限于上述情况。
此外,由于LDGC是系统码,有I×Gldgc(1:L,1:L)=mint;所以预编码单元利用Gldgc(1:L,1:L)是一个上三角矩阵(或下三角矩阵)的特点解方程求出1×L中间变量I。
此外,分组码编码单元根据C=I×Gldgc,对中间变量I进行编码,得到1×(N+d)的二进制码字序列。
方法应用实例1:
下面将举一应用实例对本发明的交织编码方法进行详细描述。该应用实例中对K个输入的信息比特序列m进行编码,最终产生M个校验比特序列,并且信息比特和校验比特构成了N=K+M的码字序列Cldgc。编码步骤中的加法是指模2加。
为了描述方便,采用如下定义:
A0,A1,…,AK-1为K比特信息序列s;
B0,B1,…,BL-1为填充L比特已知比特后信息序列m;
C0,C1,…,CL-1为进行比特交织后的L信息比特序列mint;
D0,D1,…,DL-1为L比特中间变量序列I;
E0,E1,…,EN+d-1指N+d比特去掉填充比特前的码字Cword;
F0,F1,…,FN+d-1指N+d比特交织后的码字Cperm;
G0,G1,…,GN-1指N比特去掉填充比特后的码字Cldgc;
gji是指Gldgc的第j行第i列元素。
交织编码包括下面几个步骤:
(1)在输入信息比特序列s后面添加d=L-K个已知序列(1,1,1,1,1,1,...,1),构成1×L序列m,即:
Bi=Ai,i=0,1,….K-1;
Bi=1,i=K,K+1,…,L-1。
(2)对所述填充后信息比特序列m进行交织,得到交织后的1×L信息比特序列mint;mint的各元素:
Ci=B(i mod kb)×z+floor(i/kb),i=0,1,...,L-1。
在这个例子中,交织运算采用行列交织器,并且假设L=kb×z,其中kb是交织深度,z和kb为正整数。需要指出,本发明不局限于上述交织方法。
(3)已知生成矩阵Gldgc的L行、前L列组成的方阵Gldgc(1:L,1:L)和长度为L的序列s,根据关系式:I×Gldgc(1:L,1:L)=s,解方程得到中间变量I;其中,Gldgc(1:L,1:L)是右上三角方阵。I的各元素为:
D0=C0;
(4)根据Cword=I*Gldgc(1:L,1:N+d),计算得到长度为1×(N+d)的Cword。Cword的各元素为:
Ei=Ci,i=0,…,L-1;
(5)对编码序列Cword的校验比特部分进行交织,得到交织后的编码序列Cperm,Cperm的各元素采用如下方法获得:
Fi=Ei,i=0,…,L-1;
令mb=ceil((N+d)/z)-kb。
为了完成校验比特部分的分组交织,执行如下操作:
501a:令i=L,j=L;
502a:如果i<N+d,则执行下一步,否则结束;
503a:如果N+d≤kb×z+((j-kb×z)mod mb)×z+floor((j-kb×z)/mb)≤z×ceil((N+d)/z),则跳转至步骤505a,否则执行下一步;
504a:令Fi=Ekb×z+((j-kb×z)mod mb)×z+floor((j-kb×z)/mb),i=i+1;
505a:令j=j+1;跳转至步骤502a。
至此,完成了对编码序列Cword的校验比特部分进行交织。
本应用实例中,交织运算采用行列交织器,并且设L=kb×z,其中kb是交织深度,z和kb为正整数。需要指出的是,本发明不局限于所述的交织方法。
(6)删掉步骤1的d个填充比特,产生1×N码字为Cldgc,Cldgc的各元素为:
Gi=Fi,i=0,…,K-1;
Gi=Fi+d,i=k,…,N-1。
方法应用实例2:
下面将举一应用实例与前面的实例1类同,不同之处在于交织方法,所描述的交织编码方法同样包括6个步骤,只有步骤2和4的交织方法不同。
其中,步骤(2)对所述填充后信息比特序列m进行行列交织,得到交织后的1×L信息比特序列mint;mint的各元素:
Ci=B(i mod z)×kb+floor(i/z),i=0,1,...,L-1。
其中,步骤(5)对编码序列Cword的校验比特部分进行行列交织,得到交织后的编码序列Cperm,Cperm的各元素采用如下方法获得:
Fi=Ei,i=0,…,L-1;
令mb=ceil((N+d)/z)-kb。
为了完成校验比特部分的分组交织,执行如下操作:
501b:令i=L,j=L;
502b:如果i<N+d,则执行下一步,否则结束;
503b:如果N+d≤kb×z+((j-kb×z)mod z)×mb+floor((j-kb×z)/z)≤z×ceil((N+d)/z),则跳转至步骤505b,否则执行下一步;
504b:令Fi=Ekb×z+((j-kb×z)mod z)×mb+floor((j-kb×z)/z),i=i+1;
505b:令j=j+1;跳转至步骤502b。
至此,完成了对编码序列Cword的校验比特部分进行交织。
装置应用实例:
下面将举一应用实例对本发明的交织编码装置进行详细描述。
本应用实例中,一个1×K=1×24的二进制信息比特数据流s(s用16进制数可表示为A0,A1,…A23)要通过根据本发明实施例的交织编码装置编码生成72比特的LDGC编码码字,所以有K=24,N=72。
矩阵生成单元产生一个L=48行、N+L-K=96列的生成矩阵Gldgc;其中,Gldgc采用与LT码近似的度分布准则,Gldgc的前L列的所有行组成的方阵Gldgc(1:L,1:L)=Gldgc(1:48,1:48)是一个右上三角矩阵,如图4所示(其中,黑点表示元素1,空白位置表示元素0)。矩阵生成单元将Gldgc(1:L,1:L)=Gldgc(1:48,1:48)输出到预编码单元,并且将Gldgc(1:L,1:N+L-K)=Gldgc(1:48,1:96)输出到分组码编码单元。
Bi=Ai,i=0,1,….K-1;
Bi=1,i=K,K+1,…,L-1。
比特填充单元在1×K=1×24的输入信息比特流A0,A1,…A23后面添加d=L-K=24个已知填充比特p(p是全1序列),生成1×L=1×48的填充后信息比特流m(B0,B1,…B47),并且将m输出到预编码单元。
第一交织单元,用于对所述填充已知比特后的信息比特序列m进行交织,
得到交织后的1×L信息比特序列mint(C0,C1,…,C47);mint的各元素:
Ci=B(i mod kb)*z+floor(i/kb),i=0,1,...,L-1。
预编码单元根据LDGC码是系统码的特点(由于LDGC码是系统码,所以有I×Gldgc(1:48,1:48)=mint),利用Gldgc(1:L,1:L)=Gldgc(1:48,1:48)是一个右上三角矩阵,对输入的1×L=1×48的信息比特流mint进行解方程计算,求出1×L=1×48的中间变量I(D0,D1,…,D47),并且将I输出到分组码编码单元。
I的各元素为:
D0=C0;
分组码编码单元根据Cword=I*Gldgc(1:L,1:N+d),计算得到长度为1×(N+d)的Cword,将Cword输出到比特删除单元。
Cword的各元素为:
Ei=Ci,i=0,…,L-1;
第二交织单元,对编码序列Cword的校验比特部分进行交织,得到交织后的编码序列Cperm,Cperm的各元素采用如下方法获得:
Fi=Ei,i=0,…,L-1;
令mb=ceil((N+d)/z)-kb。
为了完成校验比特部分的分组交织,执行如下操作:
501a:令i=L,j=L;
502a:如果i<N+d,则执行下一步,否则结束;
503a:如果N+d≤kb×z+((j-kb×z)mod mb)×z+floor((j-kb×z)/mb)≤z×ceil((N+d)/z),则跳转至步骤505a,否则执行下一步;
504a:令Fi=Ekb×z+((j-kb×z)mod mb)×z+floor((j-kb×z)/mb),i=i+1;
505a:令j=j+1;跳转至步骤502a。
比特删除单元,将添加的d=24个填充比特从1×(N+d)=1×96的二进制码字Cperm中删除,将最终得到N=72比特的编码码字Cldgc并且发送出去。
Cldgc的各元素为:
Gi=Fi,i=0,…,K-1;
Gi=Fi+d,i=k,…,N-1。
综上所述,本发明可以支持任意信息分组长度和任意码率编码,在性能上与Raptor码类似,都能接近理论最优性能。
其中,第一交织单元和第二交织单元还可以使用下面的公式。
对于第一交织单元,对所述填充后信息比特序列m进行交织,得到交织后的1×L信息比特序列mint;mint的各元素:Ci=B(i mod z)*kb+floor(i/z),i=0,1,...,L-1。
对于第二交织单元,对编码序列Cword的校验比特部分进行交织,得到交织后的编码序列Cperm,Cperm的各元素采用如下方法获得:
Fi=Ei,i=0,…,L-1;
令mb=ceil((N+d)/z)-kb。
为了完成校验比特部分的分组交织,执行如下操作:
501b:令i=L,j=L;
502b:如果i<N+d,则执行下一步,否则结束;
503b:如果N+d≤kb×z+((j-kb×z)mod z)×mb+floor((j-kb×z)/z)≤z×ceil((N+d)/z),则跳转至步骤505b,否则执行下一步;
504b:令Fi=Ekb×z+((j-kb×z)mod z)×mb+floor((j-kb×z)/z),i=i+1;
505b:令j=j+1;跳转至步骤502b。
Claims (11)
1、一种交织编码方法,其特征在于,该方法包括如下步骤:
S1:对长度为K的待编码信息比特序列s添加d个已知填充比特,生成长度为L的信息比特序列m;
S2:根据关系式I×Gldgc(1:L,1:L)=m生成中间变量I,并根据关系式C=I×Gldgc生成编码比特序列C;
S3:从C中删除d个所述已知填充比特;
在上述交织编码过程中,还在步骤S1和S2之间对m中除所述已知填充比特外的信息比特部分进行交织;和/或,在步骤S2之后对C中的校验比特部分进行交织;
其中,Gldgc为L行、N+L-K列的矩阵,K<L<N。
2、如权利要求1所述的方法,其特征在于,
所述Gldgc为低密度生成矩阵,Gldgc(1:L,1:L)是上三角或下三角矩阵。
3、如权利要求2所述的方法,其特征在于,
若Gldgc(1:L,1:L)是左上三角或左下三角矩阵,则步骤S1中,将所述d个已知填充比特添加到所述待编码信息比特序列s之前;
若Gldgc(1:L,1:L)是右上三角或右下三角矩阵,则步骤S1中,将所述d个已知填充比特添加到所述待编码信息比特序列s之后。
4、如权利要求1所述的方法,其特征在于,
将进行所述交织前m的各元素记为B0,B1,...,BL-1,将进行所述交织后m的各元素记为C0,C1,...,CL-1;采用如下方法对m进行所述交织:
Ci=B(imod kb)×z+floor(i/kb),或Ci=B(i mod z)×kb+floor(i/z);
i=0,1,...,L-1;z=L/kb,其中,kb为交织深度,z和kb为正整数。
5、如权利要求1所述的方法,其特征在于,
将进行所述交织前C的各元素记为E0,E1,…,EN+d-1,将进行所述交织后C的各元素记为F0,F1,…,FN+d-1;采用如下方法对C的校验比特部分进行所述交织:
501:令i=L,j=L;
502:如果i<N+d,则执行下一步,否则结束;
503:如果N+d≤X≤z×ceil((N+d)/z),则跳转至步骤505,否则执行下一步;
504:令Fi=EX,i=i+1;
505:令j=j+1;跳转至步骤502;
上述X=kb×z+((j-kb×z)mod mb)×z+floor((j-kb×z)/mb);或
X=kb×z+((j-kb×z)mod z)×mb+floor((j-kb×z)/z);
其中,mb=ceil((N+d)/z)-kb;
z=L/kb,其中,kb为交织深度,z和kb为正整数。
6、一种交织编码装置,其特征在于,该装置包含:比特填充单元,预编码单元,分组码编码单元,比特删除单元;该装置还包含:第一交织单元和/或第二交织单元;其中:
所述比特填充单元用于对长度为K的待编码信息比特序列s添加d个已知填充比特,输出长度为L的信息比特序列m;
所述第一交织单元用于对所述比特填充单元输出的m进行交织,并将交织处理后的m输出至所述预编码单元;
所述预编码单元用于接收所述比特填充单元或所述第一交织单元输出的m,并根据关系式I×Gldgc(1:L,1:L)=m,生成并输出中间变量I;
所述分组码编码单元用于根据关系式C=I×Gldgc,对所述预编码单元输出的I进行编码,生成并输出编码比特序列C;
所述第二交织单元用于接收所述分组码编码单元输出的C;对C中的校验比特部分进行交织,将交织处理后的C输出至所述比特删除单元;
所述比特删除单元用于接收所述分组码编码单元或所述第二交织单元输出的C,并从C中删除d个所述已知填充比特后将其输出;
其中,Gldgc为L行、N+L-K列的矩阵,K<L<N。
7、如权利要求6所述的装置,其特征在于,
所述预编码单元和所述分组码编码单元使用的Gldgc为低密度生成矩阵,所述Gldgc(1:L,1:L)是上三角或下三角矩阵;
若Gldgc(1:L,1:L)是左上三角或左下三角矩阵,则所述比特填充单元将所述d个已知填充比特添加到所述待编码信息比特序列s之前;
若Gldgc(1:L,1:L)是右上三角或右下三角矩阵,则所述比特填充单元将所述d个已知填充比特添加到所述待编码信息比特序列s之后。
8、如权利要求6所述的装置,其特征在于,
将进行所述交织前m的各元素记为B0,B1,…,BL-1,将进行所述交织后m的各元素记为C0,C1,…,CL-1;
所述第一交织单元采用如下方法对m进行所述交织:
Cg=B(gmodkb)×z+floor(g/kb),或Cg=B(g mod z)×kb+floor(g/z);g=0,1,...,L-1;
将进行所述交织前C的各元素记为E0,E1,…,EN+d-1,将进行所述交织后C的各元素记为F0,F1,…,FN+d-1;所述第二交织单元采用如下方法对C的校验比特部分进行所述交织:
501:令i=L,j=L;
502:如果i<N+d,则执行下一步,否则结束;
503:如果N+d≤X≤z×ceil((N+d)/z),则跳转至步骤505,否则执行下一步;
504:令Fi=EX,i=i+1;
505:令j=j+1;跳转至步骤502;
上述X=kb×z+((j-kb×z)mod mb)×z+floor((j-kb×z)/mb);或
X=kb×z+((j-kb×z)mod z)×mb+floor((j-kb×z)/z);
其中,mb=ceil((N+d)/z)-kb;
z=L/kb,其中,kb为交织深度,z和kb为正整数。
9、一种交织编码装置,其特征在于,该装置包含:比特填充单元,预编码单元,分组码编码单元,比特删除单元;该装置还包含:第一交织单元和/或第二交织单元;其中:
所述比特填充单元用于对长度为K的待编码信息比特序列s添加d个已知填充比特,输出长度为L的信息比特序列m;
所述第一交织单元用于对所述比特填充单元输出的m进行交织,并将交织处理后的m输出至所述预编码单元;
所述预编码单元用于接收所述比特填充单元或所述第一交织单元输出的m,并根据关系式I×Gldgc(1:L,1:L)=m,生成并输出中间变量I;
所述分组码编码单元用于根据关系式C=I×Gldgc,对所述预编码单元输出的I进行编码,生成并输出编码比特序列C;
所述比特删除单元用于接收所述分组码编码单元输出的C,并从C中删除d个所述已知填充比特后将其输出;
所述第二交织单元用于接收所述比特删除单元输出的C,并对C中的校验比特部分进行交织,将交织处理后的C输出;
其中,Gldgc为L行、N+L-K列的矩阵,K<L<N。
10、如权利要求9所述的装置,其特征在于,
所述预编码单元和所述分组码编码单元使用的Gldgc为低密度生成矩阵,所述Gldgc(1:L,1:L)是上三角或下三角矩阵;
若Gldgc(1:L,1:L)是左上三角或左下三角矩阵,则所述比特填充单元将所述d个已知填充比特添加到所述待编码信息比特序列s之前;
若Gldgc(1:L,1:L)是右上三角或右下三角矩阵,则所述比特填充单元将所述d个已知填充比特添加到所述待编码信息比特序列s之后。
11、如权利要求9所述的装置,其特征在于,
将进行所述交织前m的各元素记为B0,B1,…,BL-1,将进行所述交织后m的各元素记为C0,C1,…,CL-1;
所述第一交织单元采用如下方法对m进行所述交织:
Cg=B(gmodkb)×z+floor(g/kb),或Cg=B(g mod z)×kb+floor(g/z);g=0,1,...,L-1;
将进行所述交织前C的各元素记为E0,E1,…,EN+d-1,将进行所述交织后C的各元素记为F0,F1,…,FN+d-1;所述第二交织单元采用如下方法对C的校验比特部分进行所述交织:
501:令i=L,j=L;
502:如果i<N+d,则执行下一步,否则结束;
503:如果N+d≤X≤z×ceil((N+d)/z),则跳转至步骤505,否则执行下一步;
504:令Fi=EX,i=i+1;
505:令j=j+1;跳转至步骤502;
上述X=kb×z+((j-kb×z)mod mb)×z+floor((j-kb×z)/mb);或
X=kb×z+((j-kb×z)mod z)×mb+floor((j-kb×z)/z);
其中,mb=ceil((N+d)/z)-kb;
z=L/kb,其中,kb为交织深度,z和kb为正整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100946821A CN101286745B (zh) | 2008-05-07 | 2008-05-07 | 一种交织编码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100946821A CN101286745B (zh) | 2008-05-07 | 2008-05-07 | 一种交织编码方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101286745A true CN101286745A (zh) | 2008-10-15 |
CN101286745B CN101286745B (zh) | 2011-11-30 |
Family
ID=40058745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100946821A Expired - Fee Related CN101286745B (zh) | 2008-05-07 | 2008-05-07 | 一种交织编码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101286745B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009132496A1 (zh) * | 2008-04-30 | 2009-11-05 | 中兴通讯股份有限公司 | 一种低密度生成矩阵码的译码方法及装置 |
CN102546496A (zh) * | 2012-02-17 | 2012-07-04 | 钜泉光电科技(上海)股份有限公司 | 基于电力线载波通信的基带数字信号处理装置 |
US8711695B2 (en) | 2008-12-19 | 2014-04-29 | Panasonic Corporation | Transmitter and receiver for streaming media including packet padding |
CN108923889A (zh) * | 2017-08-07 | 2018-11-30 | 华为技术有限公司 | 编码方法及装置 |
CN109274462A (zh) * | 2018-09-30 | 2019-01-25 | 东北大学 | 一种基于改进在线喷泉码的图像传输方法 |
US10536240B2 (en) | 2017-08-07 | 2020-01-14 | Huawei Technologies Co., Ltd. | Channel encoding method and apparatus in wireless communications |
-
2008
- 2008-05-07 CN CN2008100946821A patent/CN101286745B/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009132496A1 (zh) * | 2008-04-30 | 2009-11-05 | 中兴通讯股份有限公司 | 一种低密度生成矩阵码的译码方法及装置 |
US8711695B2 (en) | 2008-12-19 | 2014-04-29 | Panasonic Corporation | Transmitter and receiver for streaming media including packet padding |
CN102546496A (zh) * | 2012-02-17 | 2012-07-04 | 钜泉光电科技(上海)股份有限公司 | 基于电力线载波通信的基带数字信号处理装置 |
CN108923889A (zh) * | 2017-08-07 | 2018-11-30 | 华为技术有限公司 | 编码方法及装置 |
CN108923889B (zh) * | 2017-08-07 | 2019-08-02 | 华为技术有限公司 | 编码方法及装置 |
US10536240B2 (en) | 2017-08-07 | 2020-01-14 | Huawei Technologies Co., Ltd. | Channel encoding method and apparatus in wireless communications |
US11121809B2 (en) | 2017-08-07 | 2021-09-14 | Huawei Technologies Co., Ltd. | Channel coding method and apparatus in wireless communications |
CN109274462A (zh) * | 2018-09-30 | 2019-01-25 | 东北大学 | 一种基于改进在线喷泉码的图像传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101286745B (zh) | 2011-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101453297B (zh) | 低密度生成矩阵码的编码方法和装置、及译码方法和装置 | |
US7418651B2 (en) | File download and streaming system | |
CN101459430B (zh) | 低密度生成矩阵码的编码方法及装置 | |
CN101488819B (zh) | 一种低密度奇偶校验码编码调制方法及装置 | |
US7831884B2 (en) | Method of correcting message errors using cyclic redundancy checks | |
CN101785189B (zh) | 编码装置和解码装置 | |
CN101414833B (zh) | 低密度生成矩阵码的编码方法及装置 | |
WO2007098397A2 (en) | Multiple-field based code generator and decoder for communications systems | |
CN101286745B (zh) | 一种交织编码方法及装置 | |
CN101765977A (zh) | 编码装置和解码装置 | |
CN100589327C (zh) | 编码、解码方法及编码器、解码器 | |
CN104883194B (zh) | 一种rs-ldpc二维乘积码的h矩阵构造方法及其滑动截断译码方法 | |
CN101459429B (zh) | 一种低密度生成矩阵码的译码方法 | |
CN101494517B (zh) | 一种数据传输方法及装置 | |
CN106571891A (zh) | 一种喷泉多址接入方法 | |
CN101272223B (zh) | 一种低密度生成矩阵码的译码方法及装置 | |
CN101471743A (zh) | 低密度生成矩阵码的编码方法 | |
CN113437981B (zh) | 一种基于多维编码的空间耦合串行级联码编码方法 | |
CN116054889A (zh) | 一种面向mimo系统的编码传输方法 | |
CN105659931B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111130 Termination date: 20200507 |