CN101582744A - 一种基于迭代方法的rs喷泉码的编译码方法 - Google Patents

一种基于迭代方法的rs喷泉码的编译码方法 Download PDF

Info

Publication number
CN101582744A
CN101582744A CNA2009101041402A CN200910104140A CN101582744A CN 101582744 A CN101582744 A CN 101582744A CN A2009101041402 A CNA2009101041402 A CN A2009101041402A CN 200910104140 A CN200910104140 A CN 200910104140A CN 101582744 A CN101582744 A CN 101582744A
Authority
CN
China
Prior art keywords
alpha
coding
decoding
fountain
matrix
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.)
Pending
Application number
CNA2009101041402A
Other languages
English (en)
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.)
Chongqing University of Post and Telecommunications
Original Assignee
Chongqing University of Post and Telecommunications
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 Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CNA2009101041402A priority Critical patent/CN101582744A/zh
Publication of CN101582744A publication Critical patent/CN101582744A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本发明涉及一种基于迭代方法的RS喷泉码的编译码方法,包括译码和编码两部分:编码过程分为两步:第一步为RS喷泉编码:将发送的信息按Kc×Kf的矩阵进行组织,先对矩阵的每行进行RS编码,得到Kc×Nf的矩阵,即喷泉编码码字。译码过程中,接收端每接收到一个上述数据包后进行纠错或检错编码的译码,接收端只要正确译出数据包中的任意Kf个,即能将全部原始信息译出。本发明译码方法的运算量较传统译码算法低,译码速度有较大提高,这对于RS码作为实用的数字喷泉码的应用具有重要价值。该喷泉码的运用可使发送端平均发送的数据包数明显下降,系统的通信效率和延时性能显著提高。

Description

一种基于迭代方法的RS喷泉码的编译码方法
技术领域
本发明涉及信息通信领域中对信号进行编码和解码的新方法,具体是一种基于迭代方法的RS喷泉码的编译码方法。
技术背景
在信息的发送过程中,一旦出现了数据包的丢失及不能纠正的错误,接收端就会要求发送端重发,特别是在广播的情况下。任意一个接收端没能正确接收数据包都会要求发送端重发,会带来较大的延迟,降低系统的效率。而如果采用喷泉码,则只需要接收到足够多正确的数据包就能完成译码,并不要求对所有丢失的及不能纠错的数据包进行重发,从而消除了这种传输时延,提高了系统的通信效率。
数字喷泉码的思想是从喷泉上得到启发而来的:喷泉不停地喷出水来,每个需要接水的人用自己的桶接满水即可,而与其他接水的人无关;在使用喷泉码的通信系统中,发送端就如同喷泉,对原始信息进行编码,得到源源不断的编码信息并发送。发送端不必针对每个接收端进行数据的重发,任何一个接收端只要正确接收到足够多的编码信息即可将原始信息译出。当所有的接收端均收够用于译码的编码信息,发送端就可停止发送。
理想的数字喷泉码应具有两个特性:一是给定有限长度的信息,通过编码后能产生无限多的编码信息;二是如果发送的原始信息长度为k,那么接收端只要正确收到长度为k的编码信息就可将原始信息完整地译出,而且译码速度应足够快。实际的喷泉编码一般很难同时满足以上两个要求,要么不能产生无限多的编码信息,要么译码时需要更多的信息量等。实用的喷泉编码只要能根据信道条件产生足够多的信息、译码所需要的信息量增加不太大即可。
RS纠错编码是目前最有效、应用最广泛的差错控制编码方式之一。RS码可以用于纠正随机错误,也适用于纠正突发错误,已经在卫星通信、数字电视传输等领域取得了广泛的应用。一个信息长度为k的RS码,通过编码后得到n个编码信息,我们只要获得这n个编码信息中的任意k个正确信息就能原始信息完整译出。因此RS码可以作为数字喷泉码来使用。
当RS码作为喷泉码使用时,可以采用高斯消元法求解方程组的方法对其进行译码(在发明内容中有相关说明),也可以采用传统的纠删译码的方法来完成。译码过程如下:
假设在GF(2m)域上的(n,k)RS码,每个码元符号为一个m比特的数据,本原RS的码长为n=2m-1,信息长度为k。
对于纠删译码方法,设在删除信道中,以α,α2,…,αd-2为根的(n,k)RS码,它的最小距离d=2t+β+1,那么能够纠正任何t个错误,同时纠β个删除错误的图样。设v(x),r(x)分别为发送码和接收码的多项式,得到r(x)=v(x)+e(x)+f(x),其中e(x)与f(x)分别表示误码和删除误码多项式。
定义错误图样多项式为
e ‾ ( x ) = e ( x ) + f ( x ) = y 1 x l 1 + y 2 x l 2 + . . . y t + ρ x l t + ρ - - - ( 1 )
则伴随式为
ST=H·rT=H·eT                                    (2)
设错误值yi发生的错误位置为 x i = α l i , i=1,…,t+ρ,则
si=y1(x1)i+y2(x2)i+…+yi+ρ(xi+ρ)i,1≤l≤2t+ρ                    (3)
则伴随式多项式为
s ( x ) = Σ i = 1 2 t + ρ s i x i - - - ( 4 )
设错位多项式
σ ( x ) = Π i = t t + ρ ( 1 - x i x ) = 1 + σ 1 x + σ 2 x 2 + . . . + σ t + ρ x t + ρ - - - ( 5 )
则错误值多项式w(x)为
w ( x ) = Σ i = 1 t + ρ y i x i Π j = 1 , j ≠ i t + ρ ( 1 - x j x ) - - - ( 6 )
通过伴随式多项式解得σ(x)的系数σi,再用钱氏搜索来探测σ(x)的t个未知根,也就是得到了ρ+t个未知错误xi,再由福尼算法确定所有的ρ+t个错误值yi
y i = - w ( x i - 1 ) σ i ( x i - 1 ) , (i=1,2,…,t+ρ)                        (7)
得到了错误图样多项式e(x),那么正确的接收码多项式为
v(x)=r(x)-e(x)                            (8)
综上所述,当RS编码作为数字喷泉码使用时,可采用求解方程组和纠删译码算法进行译码,但它们都需要在接收到足够多的数据包以后才能开始喷泉码的译码,并且计算过程相对复杂,译码延迟较大,使得RS码不适合作为数字喷泉码来使用。我们发明了一种基于迭代的译码方法,只要收到正确的数据包就开始译码,每收到一个正确的包就迭代一次,当获得足够多的数据包后就译码也即完成。该方法在接收数据的同时进行译码,减少了时延。同时该译码方法计算采用迭代方法,译码速度较快,复杂度较传统译码方法低,使RS码可以作为实用的数字喷泉码来使用。
发明内容
本发明的目的在于提供一种基于迭代方法的RS喷泉码的编译码方法。
为实现上述目的而采用的技术方案如下:即一种基于迭代方法的RS喷泉码的编译码方法,包括编码和译码两部分:包括译码和编码两部分:
1)、编码
整个喷泉编码的编码过程分为两步:第一步为RS喷泉编码:将发送的信息按Kc×Kf的矩阵进行组织,先对矩阵的每行进行RS编码,编码参数为(Nf,Kf),得到Kc×Nf的矩阵,即喷泉编码码字;具体步骤如下:
假设要产生(n,k)非系统RS码,n=q-1,α是伽罗华域GF(q)的生成元。若k个信息符号为(m0,m1,m2,...,mk-1},相应的信息多项式为:
m(x)=m0+m1x+m2x2+…+mk-1xk-1                                (9)
则非系统RS码的一个码多项式为:
v(x)=v0+v1x+v2x2+…+vn-1xn-1=m(1)+m(α)x+m(α2)x2+…+m(αn-1)xn-1    (10)
即RS码的n个编码符号{v0,v1,v2,...,vn-1}分别为GF(q)上的q-1=n个非零元素α0,α1,α2,...,αn-1代入信息多项式后的值:
v 0 = m ( α 0 ) = m ( 1 ) = m 0 + m 1 + m 2 + . . . + m k - 1 v 1 = m ( α 1 ) = m 0 + m 1 α + m 2 α 2 + . . . + m k - 1 α k - 1 . . . v n - 1 = m ( α n - 1 ) = m 0 + m 1 α n - 1 + m 2 ( α n - 1 ) 2 + . . . + m k - 1 ( α n - 1 ) k - 1 - - - ( 11 )
编码符号的数量是根据接收端译码情况逐个生成,当接收端完成译码时发送端就停止产生编码符号,不要求Nf个编码符号一次全部生成;
第二步为纠错或检错编码:为让接收端能正确识别传输中出错的符号,将多个经过RS喷泉编码后的码字对应位置上的符号再进行一次纠错或检错编码;为使接收端能正确识别接收编码符号,将经过RS喷泉编码后的Kc×Nf的矩阵按列进行纠错或检错编码,最终得到Nc×Nf的发送符号矩阵,矩阵的一列为一个数据包;
2)、译码
接收端每接收到一个上述数据包后进行纠错或检错编码的译码,接收端只要正确译出数据包中的任意Kf个,即能将全部原始信息译出,此时可将译码成功的消息通知发送端,用于控制编码的进行和编码符号的发送;译码的过程如下:假设正确进行纠错或检错编码的译码后得到的正确包序号为
Figure A20091010414000091
(0≤pk≤Nf-1,k=0,1,…,Kf-1),以对第i个信息多项式(即矩阵的第i行)为例对译码的方法进行说明:
当第1个正确的包p0译出后,得到该包的第i个符号
Figure A20091010414000092
先假设信息多项式为 m ^ i ( x ) = m ^ i 1 x , 其中i为初始化信息多项式序号,由 v i , p 0 = m ^ i ( α p 0 ) = m ^ i 1 α p 0 可得 m ^ i 1 = v i , p 0 / α p 0 (把这个过程称为第1次迭代),以此为初始条件,以后每收到一个正确的包进行一次迭代,在第j次迭代开始时已经有
Figure A20091010414000096
共j-1个接收符号满足方程 v i , p k = m ^ i ( α p k ) , k=0,1,…,j-2,其中j为初始化迭代次数值;第j次迭代的过程如下:
(1).计算
Figure A20091010414000098
如果 v i , p j - 1 = m ^ i ( α p j - 1 ) , 则不需对信息多项式进行修正,转第(3)步;
(2).对信息多项式进行修正,使已收到的j个符号满足 v i , p k = m ^ i ( α p k ) , k=0,1,…,j-1,修正方法为:
y ( x ) = m ^ i ( x ) + ( x - α p 0 ) ( x - α p 1 ) · · · ( x - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) · · · ( α p j - 1 - α p j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) - - - ( 12 )
其中修正值 b i , j ( x ) = ( x - α p 0 ) ( x - α p 1 ) · · · ( x - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) · · · ( α p j - 1 - α p j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) - - - ( 13 )
对于 x = α p k , k=0,1,…,j-2,有
y ( α p k ) = m ^ i ( α p k ) + ( α p k - α p 0 ) ( α p k - α p 1 ) · · · ( α p k - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) · · · ( α p j - 1 - α p j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) )
= m ^ i ( α p k ) = v i , p k , k=0,1,…j-2                    (14)
对于 x = α p j - 1 ,
y ( α p j - 1 ) = m ^ i ( α p j - 1 ) + ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) · · · ( α p j - 1 - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) · · · ( α p j - 1 - α p j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) )
= m ^ i ( α p j - 1 ) + ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) = v i , p j - 1 - - - ( 15 )
因此,y(x)满足 v i , p k = y ( α p k ) , k=0,1,…,j-1,将信息多项式修正为 m ^ i ( x ) = y ( x ) ;
(3).如果j=Kf,迭代完成;否则j=j+1,转第(1)步继续迭代。
经过Kf次迭代后,
Figure A20091010414000108
满足 v i , p k = m ^ i ( x ) ( α p k ) , k=0,1,...,Kf-1,
Figure A200910104140001010
必与发送信息多项式mi(x)相同,完成一个包的RS喷泉译码;
以上完成的是对一个信息多项式译码的迭代过程,接收端每接收到一个正确的包,都对每一行信息多项式进行一次迭代;在Kf个包正确接收后,整个信息矩阵的Kc×Kf个符号的译出,即完成全部RS喷泉译码。
本发明首先提出了一种RS喷泉码的编码方法,在此基础上给出了一种RS码作为数字喷泉码时的迭代译码方法。该译码方法的运算量较传统译码算法低,译码速度有较大提高,这对于RS码作为实用的数字喷泉码的应用具有重要价值。该喷泉码的运用可使发送端平均发送的数据包数明显下降,系统的通信效率和延时性能显著提高。
该喷泉码的编译码方法可以应用在许多方面,包括数据的存储、发送、广播等等。
在为文件作备份时,由于磁带或硬盘的突发性故障,数据可能会产生丢失。而采用喷泉码来存放数据时,数据包是分散存放的,并且在读取时只需要从各个存放点找到k′≈k个数据包,就能将文件完全译码,即使出现了错误也没关系,我们可以跳过它寻找其它正确的。
在硬盘里,文件通常是连续存放以便快速读取,但是如果在读取过程中磁头突然偏离轨道,导致读取错误,并且纠错码又不能修正这个错误,那么就需要重新读取。这样的一个反复带来了我们不期望的时延。如果采用喷泉的方式存储数据,一旦出现错误,我们跳过该错误继续读取数据包,直到获得足够数量的数据包将文件完全译码为止,因此数据包的丢失就变得不太重要。即使在更高噪音的环境中,用于纠错编码的资源也会减少,这样大大提高了速度。
又假如一个地区内的多个用户同时通过广播的方式接收一部数字电影。它通过广播网络将电影分成数据包通过宽带的电话线或者是卫星发送。在标准模式下,数据包是按照顺序发送的,并且没有编码,那么每个接受者就必须向发送端通报他们丢失了的数据包,并要求重发。当每个用户都提出这样的重发要求时,那就几乎相当于要把所有的数据包都进行重发。这样一来,发送端需要把整个广播多次地重复发送才能确保每个用户都能完整接收到电影,每个用户也都同样需要等待几倍长的时间直到完全接收。然而,如果广播端使用喷泉码对电影进行编码,假设一部电影被分成k个数据包,那么每个用户只要接收到k’≈k个数据包就可以覆盖这部电影,这样广播端可能只需要发送1.1k的数据包就可以确保每个用户都完整接收整部电影。
另外的一种喷泉码在广播中的应用是为汽车提供数据。假如我们想通过卫星为车载导航数据库提供更新服务时应该怎么办呢?地球上有成千上万的机动车,它们只有在开阔的路上行驶的时候才能接收到数据,并且它们还不存在反馈信道。通常人们把数据放在关键路段的广播设备中,如果采用常规方式,一旦用户没有接收到全部的更新信息就断线了,那么他就需要在下个路段重新接收;而采用喷泉码,每辆车只需要多接收一些数据包就可以实现译码,对于是在哪个路段以及是否断线不太关心。
喷泉码还可以应用在并行下载中。在一般情况下,没有喷泉码也能实现多点的并行下载,但在下载过程中一旦出现错误就会要求发送端重发,造成不必要的延迟;如果采用使用数字喷泉码,每个资源点可以独立的产生无穷无尽的编码数据包,并且从多个资源点收到的编码包不会冲突,如果出现错误的数据包就跳过继续寻找下一个数据包,直到接收端获得了足够数量的数据包后就断开连接,完成下载任务。与此同时,如果其中的两个用户共享了除了最后一个节点以外的所有链接,并且他们下载的速率各不相同,链路并不需要降低速度来配合低下载速率的用户,而是到了该用户的节点就将数据包丢掉,这样并不影响速度慢的用户,因为发送端会连续发送数据包直到该用户完全译码为止,而数据包的顺序对喷泉码来说是不重要的,因此并不需要考虑这些数据包的来源或者发送速率及误码率。
TCP在处理大量的文件时,需要为每个数据包维持一个独立的链接,如果其中哪个数据包发生了错误,接收端就会在相应的链路中发送重发请求,这样就限制了TCP可以处理的文件数量。如果采用喷泉码,则只需要为一个文件建立一条链路,一旦出现错误,并不要求重发,而是继续发送其它数据包,直到可以完全译码。这样可以处理更多的文件,并且TCP的流量和拥塞控制机制也能发挥良好的作用。
除了上述例子以外,喷泉码在VOD以及覆盖网络等许多方面都能提高系统性能。
附图说明
附图1为本发明RS喷泉码的编码过程示意图;
附图2为本发明RS喷泉码的译码过程示意图;
附图3为本发明RS喷泉码的译码流程图;
附图4为本发明RS喷泉码的性能仿真结果图。
具体实施方式
1)、编码
整个喷泉编码的编码过程分为两步:第一步为RS喷泉编码,第二步为纠错或检错编码:先采用RS码对信息进行编码,得到喷泉编码码字。为让接收端能正确识别传输中出错的符号,将多个经过喷泉编码后的码字对应位置上的符号再进行一次纠错或检错编码。编码过程如图1所示。首先将发送的信息按Kc×Kf的矩阵进行组织,先对矩阵的每行进行RS编码(即喷泉编码),编码参数为(Nf,Kf),得到Kc×Nf的矩阵。码长和码率的选择主要取决于信道条件,信道较差时,应选择较长的码长和较小的码率,以提供足够多的编码符号供接收端进行喷泉译码。为配合喷泉迭代译码方法,这里的RS编码为非系统码形式,采用频域编码方式产生。下面简单说明编码的原理。
假设要产生(n,k)非系统RS码,n=q-1,α是伽罗华域GF(q)的生成元。若k个信息符号为{m0,m1,m2,…,mk-1},相应的信息多项式为:
m(x)=m0+m1x+m2x2+…+mk-1xk-1                                (9)
则非系统RS码的一个码多项式为:
v(x)=v0+v1x+v2x2+…+vn-1xn-1=m(1)+m(α)x+m(α2)x2+…+m(αn-1)xn-1    (10)
即RS码的n个编码符号{v0,v1,v2,…,vn-1}分别为GF(q)上的q-1=n个非零元素α0,α1,α2,...,αn-1代入信息多项式后的值:
v 0 = m ( α 0 ) = m ( 1 ) = m 0 + m 1 + m 2 + . . . + m k - 1 v 1 = m ( α 1 ) = m 0 + m 1 α + m 2 α 2 + . . . + m k - 1 α k - 1 . . . v n - 1 = m ( α n - 1 ) = m 0 + m 1 α n - 1 + m 2 ( α n - 1 ) 2 + . . . + m k - 1 ( α n - 1 ) k - 1 - - - ( 11 )
需要说明的是,图1中画出了全部Nf个RS码的编码符号,实际上编码符号的数量是根据接收端的接收情况确定的,编码符号可以根据接收情况逐个生成,并不要求Nf个符号一次全部生成。
为使接收端能正确识别接收符号是否正确,经过RS喷泉编码后的Kc×Nf的矩阵再按列进行检错或纠错编码,最终得到Nc×Nf的发送符号矩阵,我们把该矩阵的一列称为一个包。符号的发送按照先列后行的顺序发送,即以包为单位顺序发送。当信道条件较好时,可以考虑采用检错码(如CRC码),而信道条件较差时,可采用性能好的纠错编码(如LDPC编码)。虽然纠错编码使每个包的传输效率下降,但使包的正确接收概率提高,使总的发送效率提高。
2译码
接收端每接收到一个经过信道传输的包后,先进行纠错(或检错)编码的译码,接收端只要正确译出发送包中的任意Kf个,即能将全部原始信息译出,此时可将译码成功的消息通知发送端,用于控制编码的进行和编码符号的发送。图2是译码的原理框图。
假设正确译出的包序号为
Figure A20091010414000142
(0≤pk≤Nf-1,k=0,1,…,Kf-1),对矩阵的第i行而言正确接收到的符号为根据RS喷泉编码的编码过程,有:
v i , p 0 = m i ( α p 0 ) = m i 0 + m i 1 α p 0 + m i 2 ( α p 0 ) 2 + . . . + m i , K f - 1 ( α p 0 ) K f - 1 v i , p 1 = m i ( α p 1 ) = m i 0 + m i 1 α p 1 + m i 2 ( α p 1 ) 2 + . . . + m i , K f - 1 ( α p 1 ) K f - 1 . . . v i , p K f - 1 = m i ( α p K f - 1 ) = m i 0 + m i 1 α p K f - 1 + m i 2 ( α p K f - 1 ) 2 + . . . + m i , K f - 1 ( α p K f - 1 ) K f - 1 - - - ( 16 )
对于接收端而言,接收符号
Figure A20091010414000152
是已知数,信息符号
Figure A20091010414000153
是未知数,(12)式是一个有Kf个方程、Kf个未知数的线性方程组,信息符号可从该方程组中求出。因此RS喷泉码的译码可以采用求解方程组的方法进行。另外,也可以采用RS码的传统的纠删译码算法进行译码。但这两种方法都需要在全部接收到Kf个包后才能进行译码,延时较大,而且运算量也较大。下面介绍发明的代译码方法,每收到一个正确的包就可进行一次迭代,Kf个包收齐后译码就已经完成了。下面假设接收到的正确包序号为
Figure A20091010414000154
(0≤pk≤Nf-1,k=0,1,…,Kf-1),以对第i个信息多项式(即矩阵的第i行)为例对译码的方法进行说明。
当第1个正确的包p0译出后,得到该包的第i个符号
Figure A20091010414000155
先假设信息多项式为 m ^ i ( x ) = m ^ i 1 x , 其中i为初始化信息多项式序号,由 v i , p 0 = m ^ i ( α p 0 ) = m ^ i 1 α p 0 可得 m ^ i 1 = v i , p 0 / α p 0 (把这个过程称为第1次迭代),以此为初始条件,以后每收到一个正确的包进行一次迭代。在第j次迭代开始时已经有
Figure A20091010414000159
共j-1个接收符号满足方程 v i , p k = m ^ i ( α p k ) , k=0,1,…,j-2,其中j为初始化迭代次数值。第j次迭代的过程如下:
1.计算
Figure A200910104140001511
如果 v i , p j - 1 = m ^ i ( α p j - 1 ) , 则不需对信息多项式进行修正,转第3步;
2.对信息多项式进行修正,使已收到的j个符号满足 v i , p k = m ^ i ( α p k ) , k=0,1,…,j-1,修正方法为:
y ( x ) = m ^ i ( x ) + ( x - α p 0 ) ( x - α p 1 ) · · · ( x - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) · · · ( α p j - 1 - α p j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) - - - ( 12 )
其中修正值 b i , j ( x ) = ( x - α p 0 ) ( x - α p 1 ) · · · ( x - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) · · · ( α p j - 1 - α p j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) - - - ( 13 )
对于 x = α p k , k=0,1,…,j-2,有
y = ( α p k ) = m ^ i ( α p k ) + ( α p k - α p 0 ) ( α p k - α p 1 ) · · · ( α p k - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) · · · ( α p j - 1 - α p j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) - - - ( 14 )
= m ^ i ( α p k ) = v i , p k , k=0,1,…j-2
对于 x = α p j - 1 ,
y ( α p j - 1 ) = m ^ i ( α p j - 1 ) + ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) · · · ( α p j - 1 - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) · · · ( α p j - 1 - α P j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) - - - ( 15 )
= m ^ i ( α p j - 1 ) + ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) = v i , p j - 1
因此,y(x)满足 v i , p k = y ( α p k ) , k=0,1,…,j-1。将信息多项式修正为 m ^ i ( x ) = y ( x ) ;
3.如果j=Kf,迭代完成;否则j=j+1,转第1步继续迭代。
经过Kf次迭代后,
Figure A200910104140001611
满足 v i , p k = m ^ i ( x ) ( α p k ) , k=0,1,...,Kf-1,
Figure A200910104140001613
必与发送信息多项式mi(x)相同,喷泉译码完成。译码的流程如图3所示。
下面一个简单的例子对上述方法进行下说明:
假设第1,3,5个数据包正确接收,并且都满足方程 v i , p k = m ^ i ( α p k ) , v i , 1 = m ^ i ( α ) , v i , 3 = m ^ i ( α 3 ) v i , 5 = m ^ i ( α 5 ) . 此时不用进行修正,第6个数据包也正确接收,但是不满足方程 v i , p k = m ^ i ( α p k ) , 那么采用上述方法对信息多项式进行修正。
y ( x ) = m ^ i ( x ) + ( x - α 1 ) ( x - α 3 ) ( x - α 5 ) ( α 6 - α 1 ) ( α 6 - α 3 ) ( α 6 - α 5 ) ( v i , 6 - m ^ i ( α 6 ) )
那么对于x=α1,x=α3,x=α5,,都满足上述方程,
对于x=α6存在
y ( α 6 ) = m ^ i ( α 6 ) + ( α 6 - α 1 ) ( α 6 - α 3 ) ( α 6 - α 5 ) ( α 6 - α 1 ) ( α 6 - α 3 ) ( α 6 - α 5 ) ( v i , 6 - m ^ i ( α 6 ) )
= m ^ i ( α 6 ) + ( v i , 6 - m ^ t ( α 6 ) ) = v i , 6
此时y(x)满足vi,k=y(αk),k=1,3,5,6。将信息多项式就修正为了 m ^ i ( x ) = y ( x ) .
以此类推,以后接收端每正确译出一个数据包,都可以通过这个方法检查或者修正信息多项式,以得到我们所期望的值。
分析每次迭代时对信息多项式进行修正时修正量的分子部分 ( x - α p 0 ) ( x - α p 1 ) · · · ( x - α p j - 2 ) , 第j-1次迭代时为 ( x - α p 0 ) ( x - α p 1 ) · · · ( x - α p j - 3 ) , 而第j次迭代时为 ( x - α p 0 ) ( x - α p 1 ) · · · ( x - α p j - 3 ) 是在前一次值的基础上乘以
Figure A20091010414000177
可以迭代计算,因此计算量大大降低。
上面讨论的是对一个信息多项式译码的迭代过程,实际上,接收端每正确译出一个数据包,都对每一行信息多项式进行一次迭代。在Kf个数据包正确接收后,整个信息矩阵的Kc×Kf个符号即译出。
在上述编码部分的第二步纠错或检错编码步骤中,矩阵的一列称为一个包,符号的发送按照先列后行的顺序发送,即以包为单位顺序发送,码长和码率的选择主要取决于信道条件,信道较差时,选择较长的码长和较小的码率的可采用性能好的纠错编码,以提供足够多的编码符号供接收端进行喷泉译码。
当信道条件较好时,采用CRC码;当信道条件较差时,采用LDPC或Turbo码。
通过对采用本发明中的编译码方法的系统进行仿真,可以看出其技术效果是显而易见的,参见附图4。仿真中每个包的纠错编码采用码长为1008、码率为0.5的二进制LDPC规则码,采用BPSK调制,译码采用和-积译码算法;信道为瑞利衰落信道,衰落系数每个LDPC码字(即1008个符号)变化一次;接收端已知信道特性;喷泉编码为GF(256)上的(255,127)RS码;仿真系统为点对多点的广播系统,接收端数分别为2~5个;发送端到每个接收端间的信道性能相同。为对比喷泉编码系统的性能,针对同样的纠错编码、信道条件和接收端数对未进行喷泉编码的系统也进行了仿真。
图中的纵坐标为每个用户均正确译出127个原始信息数据包时,发送端平均需要发送的数据包数。在未进行喷泉编码的广播系统中,对于其中任何一个数据包,只要任何一个接收端未能正确译码,该数据包都需要重传,并且重传需持续到所有用户均正确译码为止。随着接收端的增加,发送端平均发送的数据包数明显增加,在信道较差时尤为明显。在进行喷泉编码的系统中,发送端不必针对每个数据包、每个接收端进行重发,任何一个接收端只要正确译出发端所发数据包中的任何127个即可正确译出原始信息,接收端的增加并不会带来发送端发送数据包数的明显增加。从仿真结果中可以看出,采用喷泉编码的系统发送端平均发送的数据包数远低于未进行喷泉编码的系统,而且这个差距是随着接收端数的增加而快速上升的。例如,在信道信噪比为4dB、2个接收端的情况下,未采用喷泉编码的系统中,为使所有接收端均正确接收到原始的127个数据包,发送端平均需要发送的数据包是277.44个;采用喷泉编码后,为使所有接收端均能正确地从接收数据中译出原始的127个数据包,发送端平均发送的数据包为221.44个,为前者的79.8%;当有5个接收端时,这三个数字分别为390.26、228.84、58.6%。从此可以看出,接收端数越多,喷泉编码对系统性能的改善越显著。

Claims (3)

1、一种基于迭代方法的RS喷泉码的编译码方法,包括译码和编码两部分:
1)、编码
整个喷泉编码的编码过程分为两步:第一步为RS喷泉编码:将发送的信息按Kc×Kf的矩阵进行组织,先对矩阵的每行进行RS编码,编码参数为(Nf,Kf),得到Kc×Nf的矩阵,即喷泉编码码字;具体步骤如下:
假设要产生(n,k)非系统RS码,n=q-1,α是伽罗华域GF(q)的生成元。若k个信息符号为{m0,m1,m2,…,mk-1},相应的信息多项式为:
m(x)=m0+m1x+m2x2+…+mk-1xk-1    (9)
则非系统RS码的一个码多项式为:
v(x)=v0+v1x+v2x2+…+vn-1xn-1=m(1)+m(α)x+m(α2)x2+…+m(αn-1)xn-1    (10)
即RS码的n个编码符号{v0,v1,v2,…,vn-1}分别为GF(q)上的q-1=n个非零元素α0,α1,α2,...,αn-1代入信息多项式后的值:
v 0 = m ( α 0 ) = m ( 1 ) = m 0 + m 1 + m 2 + . . . + m k - 1 v 1 = m ( α 1 ) = m 0 + m 1 α + m 2 α 2 + . . . + m k - 1 α k - 1 · · · v n - 1 = m ( α n - 1 ) = m 0 + m 1 α n - 1 + m 2 ( α n - 1 ) 2 + . . . + m k - 1 ( α n - 1 ) k - 1 - - - ( 11 )
编码符号的数量是根据接收端译码情况逐个生成,当接收端完成译码时发送端就停止产生编码符号,不要求Nf个编码符号一次全部生成;
第二步为纠错或检错编码:为让接收端能正确识别传输中出错的符号,将多个经过RS喷泉编码后的码字对应位置上的符号再进行一次纠错或检错编码;为使接收端能正确识别接收编码符号,将经过RS喷泉编码后的Kc×Nf的矩阵按列进行纠错或检错编码,最终得到Nc×Nf的发送符号矩阵,矩阵的一列为一个数据包;
2)、译码
接收端每接收到一个上述数据包后进行纠错或检错编码的译码,接收端只要正确译出数据包中的任意Kf个,即能将全部原始信息译出,此时可将译码成功的消息通知发送端,用于控制编码的进行和编码符号的发送;译码的过程如下:假设正确进行纠错或检错编码的译码后得到的正确包序号为
Figure A2009101041400003C1
(0≤pk≤Nf-1,k=0,1,…,Kf-1),以对第i个信息多项式(即矩阵的第i行)为例对译码的方法进行说明:
当第1个正确的包p0译出后,得到该包的第i个符号
Figure A2009101041400003C2
先假设信息多项式为 m ^ i = m ^ i 1 x , 其中i为初始化信息多项式序号,由 v i , p 0 = m ^ i ( α p 0 ) = m ^ i 1 α p 0 可得 m ^ i 1 = v i , p 0 / α p 0 (把这个过程称为第1次迭代),以此为初始条件,以后每收到一个正确的包进行一次迭代,在第j次迭代开始时已经有
Figure A2009101041400003C6
共j-1个接收符号满足方程 v i , p k = m ^ i ( α p k ) , k = 0,1 , . . . , j - 2 , 其中j为初始化迭代次数值;第j次迭代的过程如下:
(1).计算
Figure A2009101041400003C8
如果 v i , p j - 1 = m ^ i ( α p j - 1 ) , 则不需对信息多项式进行修正,转第(3)步;
(2).对信息多项式进行修正,使已收到的j个符号满足 v i , p k = m ^ i ( α p k ) , k = 0,1 , . . . , j - 1 , 修正方法为:
y ( x ) = m ^ i ( x ) + ( x - α p 0 ) ( x - α p 1 ) . . . ( x - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) . . . ( α p j - 1 - α p j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) - - - ( 12 )
其中修正值 b i , j ( x ) = ( x - α p 0 ) ( x - α p 1 ) . . . ( x - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) . . . ( α p j - 1 - α p j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) - - - ( 13 )
对于 x = α p k , k = 0,1 , . . . , j - 2 ,
y ( α p k ) = m ^ i ( α p k ) + ( α p k - α p 0 ) ( α p k - α p 1 ) . . . ( α p k - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) . . . ( α p j - 1 - α p j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) - - - ( 14 )
= m ^ i ( α p k ) = v i , p k , k = 0,1 , . . . j - 2
对于 x = α p j - 1 ,
y ( α p j - 1 ) = m ^ i ( α p j - 1 ) + ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) . . . ( α p j - 1 - α p j - 2 ) ( α p j - 1 - α p 0 ) ( α p j - 1 - α p 1 ) . . . ( α p j - 1 - α p j - 2 ) ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) - - - ( 15 )
= m ^ i ( α p j - 1 ) + ( v i , p j - 1 - m ^ i ( α p j - 1 ) ) = v i , p j - 1
因此,y(x)满足 v i , p k = y ( α p k ) , k = 0,1 , . . . , j - 1 , 将信息多项式修正为 m ^ i x = y ( x ) ;
(3).如果j=Kf,迭代完成;否则j=j+1,转第(1)步继续迭代。
经过Kf次迭代后,
Figure A2009101041400004C6
满足 v i , p k = m ^ i ( x ) ( α p k ) , k=0,1,...,Kf-1,
Figure A2009101041400004C8
必与发送信息多项式mi(x)相同,完成一个包的RS喷泉译码;
以上完成的是对一个信息多项式译码的迭代过程,接收端每接收到一个正确的包,都对每一行信息多项式进行一次迭代;在正确接收Kf个包后,整个信息矩阵的Kc×Kf个符号的译出,即完成全部RS喷泉译码。
2、根据权利要求1所述的基于迭代方法的RS喷泉码的编译码方法,其特征是:在编码部分的第二步纠错或检错编码步骤中,矩阵的一列称为一个包,符号的发送按照先列后行的顺序发送,即以包为单位顺序发送,码长和码率的选择主要取决于信道条件,信道较差时,选择较长的码长和较小的码率的可采用性能好的纠错编码,以提供足够多的编码符号供接收端进行喷泉译码。
3、根据权利要求2所述的基于迭代方法的RS喷泉码的编译码方法,其特征是:当信道条件较好时,采用CRC码;当信道条件较差时,采用LDPC或Turbo码。
CNA2009101041402A 2009-06-19 2009-06-19 一种基于迭代方法的rs喷泉码的编译码方法 Pending CN101582744A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2009101041402A CN101582744A (zh) 2009-06-19 2009-06-19 一种基于迭代方法的rs喷泉码的编译码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2009101041402A CN101582744A (zh) 2009-06-19 2009-06-19 一种基于迭代方法的rs喷泉码的编译码方法

Publications (1)

Publication Number Publication Date
CN101582744A true CN101582744A (zh) 2009-11-18

Family

ID=41364730

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2009101041402A Pending CN101582744A (zh) 2009-06-19 2009-06-19 一种基于迭代方法的rs喷泉码的编译码方法

Country Status (1)

Country Link
CN (1) CN101582744A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882972A (zh) * 2010-06-04 2010-11-10 中国传媒大学 一种Raptor码的解码方法
CN103338046A (zh) * 2013-06-21 2013-10-02 上海交通大学 码率兼容的ldpc-rs二维乘积码的编码与译码方法
CN103399749A (zh) * 2013-08-07 2013-11-20 山东大学 基于mfc对话框的rs码编码及识别方法
CN104506199A (zh) * 2014-11-28 2015-04-08 电子科技大学 一种模拟喷泉码的低复杂度译码方法
WO2015058351A1 (zh) * 2013-10-22 2015-04-30 华为技术有限公司 一种广播系统中发送的编码数据包数量的计算方法和设备
CN104954099A (zh) * 2015-06-17 2015-09-30 重庆邮电大学 译码迭代次数约束下累积无率码的优化设计方法
CN107181533A (zh) * 2016-03-09 2017-09-19 中国科学院声学研究所 一种喷泉码的译码方法及喷泉码的水声通信传输方法
CN107196665A (zh) * 2017-06-14 2017-09-22 中国电子科技集团公司第三十六研究所 一种纠错纠删rs码的识别方法
CN108471315A (zh) * 2017-02-23 2018-08-31 杭州海康威视数字技术股份有限公司 一种纠删译码方法及装置
CN109274462A (zh) * 2018-09-30 2019-01-25 东北大学 一种基于改进在线喷泉码的图像传输方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882972B (zh) * 2010-06-04 2012-08-22 中国传媒大学 一种Raptor码的解码方法
CN101882972A (zh) * 2010-06-04 2010-11-10 中国传媒大学 一种Raptor码的解码方法
CN103338046B (zh) * 2013-06-21 2016-03-30 上海交通大学 码率兼容的ldpc-rs二维乘积码的编码与译码方法
CN103338046A (zh) * 2013-06-21 2013-10-02 上海交通大学 码率兼容的ldpc-rs二维乘积码的编码与译码方法
CN103399749A (zh) * 2013-08-07 2013-11-20 山东大学 基于mfc对话框的rs码编码及识别方法
CN103399749B (zh) * 2013-08-07 2016-10-05 山东大学 基于 mfc 对话框的rs 码编码及识别方法
WO2015058351A1 (zh) * 2013-10-22 2015-04-30 华为技术有限公司 一种广播系统中发送的编码数据包数量的计算方法和设备
CN104506199A (zh) * 2014-11-28 2015-04-08 电子科技大学 一种模拟喷泉码的低复杂度译码方法
CN104506199B (zh) * 2014-11-28 2017-06-09 电子科技大学 一种模拟喷泉码的低复杂度译码方法
CN104954099A (zh) * 2015-06-17 2015-09-30 重庆邮电大学 译码迭代次数约束下累积无率码的优化设计方法
CN104954099B (zh) * 2015-06-17 2018-04-27 重庆邮电大学 译码迭代次数约束下累积无率码的优化设计方法
CN107181533A (zh) * 2016-03-09 2017-09-19 中国科学院声学研究所 一种喷泉码的译码方法及喷泉码的水声通信传输方法
CN107181533B (zh) * 2016-03-09 2019-11-19 中国科学院声学研究所 一种喷泉码的译码方法及喷泉码的水声通信传输方法
CN108471315A (zh) * 2017-02-23 2018-08-31 杭州海康威视数字技术股份有限公司 一种纠删译码方法及装置
CN107196665A (zh) * 2017-06-14 2017-09-22 中国电子科技集团公司第三十六研究所 一种纠错纠删rs码的识别方法
CN107196665B (zh) * 2017-06-14 2020-11-06 中国电子科技集团公司第三十六研究所 一种纠错纠删rs码的识别方法
CN109274462A (zh) * 2018-09-30 2019-01-25 东北大学 一种基于改进在线喷泉码的图像传输方法

Similar Documents

Publication Publication Date Title
CN101582744A (zh) 一种基于迭代方法的rs喷泉码的编译码方法
CN101453297B (zh) 低密度生成矩阵码的编码方法和装置、及译码方法和装置
CN101039119B (zh) 编码与解码的方法及系统
US9236887B2 (en) File download and streaming system
US8737519B2 (en) Apparatus and method for channel coding in a communication system
US20080232357A1 (en) Ls digital fountain code
US8281209B2 (en) Encoding method and device for low density generator matrix codes
US20110164705A1 (en) Bit mapping scheme for an ldpc coded 32apsk system
CA2989593C (en) Bit interleaver for low-density parity check codeword having length of 16200 and code rate of 4/15 and 16-symbol mapping, and bit interleaving method using same
US20110119554A1 (en) Method for transmitting non-binary codes and decoding the same
CN101432969A (zh) 前向纠错(fec)编码和流送
US8291288B2 (en) Method and device for encoding the low density generator matrix code
CN101252606A (zh) 深空通信中基于低密度奇偶校验码-喷泉码的编译方法
KR101615384B1 (ko) 통신 시스템에서의 채널 부호화 장치 및 방법
US8413025B2 (en) Method of handling packet loss using error-correcting codes and block rearrangement
US8301961B2 (en) Decoding method for low density generator matrix code
RU2461963C2 (ru) Способ и устройство для декодирования кода с генераторной матрицей низкой плотности
CN102523072A (zh) 具有检错纠错功能的lt码编译码方法
EP2234304B1 (en) Method for recovery of lost and/ or corrupted data
Saxena et al. Network coding advantage over MDS codes for multimedia transmission via erasure satellite channels
CN107257244A (zh) 一种基于广播环境下的喷泉码编码方法
CN102820952A (zh) 基于无率编码的无线网络系统吞吐量优化方法
CN101471743A (zh) 低密度生成矩阵码的编码方法
Yue et al. Design of binary network coding for wireless broadcast
Cao et al. Cross-layer Raptor coding for broadcasting over wireless channels with memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20091118