一种用于二元擦除信道前向纠错的喷泉编解码方法

文档序号:7702119阅读:430来源:国知局
专利名称:一种用于二元擦除信道前向纠错的喷泉编解码方法
技术领域
本发明属于通信领域,涉及一种二元擦除信道中进行前向纠错的喷泉编解 码方法。
技术背景随着通信技术的发展,使用编码技术解决数据传送过程中的安全问题成为 计算才几和通信领域研究的热点。在寻找逼近香农理想的"好石马"过程中,由Michael Luby提出了 LT Codes编解码方法。LT Codes具有线程的编码和多项 式的解码时间,但也存在一些不足如解码的时空代价不固定等。为了克服LT Codes的局限,Amin Shokrollahi进一步提出了 Raptor Codes编解码方法。 Raptor Codes方法能够产生稍大于源节点集合的编码节点,对于任何给定的编 码节点子集都能恢复出源节点;同时Raptor Codes编解码时间负载度控制在 多项式以内,以上特性决定了 Raptor Codes在通信传输上的二位元消除通道 (Binary Erasure Channel, BEC)的文件传输中有着广泛的应用。其编解码方 案如下Raptor Codes编码方法在发送端首先发送输入节点,在输入节点发送完毕 后再发送修复节点。该编码方法分为两个阶段。第一阶段对于给定的K个输 入节点向量C< d,C2,…,CK >产生L个中间节点,其中L和K的关系满足L=K+S+H,其中的S和H分别代表码率为」」的LDPC编码以及码率为《+>S的Half码的预编码过程。通过将K个输入节点前补S+H个值为零的新节点,使其扩充成L个预编码节点。对于L个预编码节点乘以对应的一个LxL 的编码生成矩阵,得到L个中间节点。这L个中间节点组成中间节点向量IVK M,,M2,…,Ml >,即m-g1mxC,其中LxL的矩阵Gl^代表着LDPC、 Half码与LT码的生成矩阵。第二阶段在第一阶段编码完成的基础上,对于给定的N 个修复节点产生一个NxL的LT编码矩阵G2嵐,这里的N同时也代表着发送过 程中的系统冗余,N/K即为编码冗余度。根据等式i^G2嵐xM使用产生的L 个中间节点向量M乘以G2m,产生发送端的N个修复节点向量R< R,,R2RN>,完成整个编码过程。从上述编码过程可以看出,Raptor Codes在编码的时候需要通过K个源节 点计算出L (L>K)个中间节点,然后通过中间节点进行LT编码计算出^"复节 点。从中间节点生成y^式M-Gl^xC可知,每个中间节点的生成,实际上是通 过矩阵Gl^中对应的行向量同源结点向量相乘所得,因此每个中间节点的生成 需要u个不同的源结点进行异或计算得到,其中u为矩阵Gl^中对应的行向量 非零列的个数。显然,生成L个中间节点计算量复杂度为O (L),需要进行大 量节点之间的异或操作。采用Raptor Codes进行解码时,由于擦除信道不可避免的误码率和丢包 率,因此有N^N'、 K>K',对于接收到的由N'个修复节点和K'个源节点构成的 已知编码节点集合E',生成(N'+K') xL的修复矩阵A,其中A满足等式 E' = 4w,+JnxixM'且N'+K、L。根据上式的变形M:《;+^丄x5',可以通过对矩 阵A进行高斯消元法修复中间节点向量IVKI^,M2,…M!^。修复好中间节点M 之后,根据等式C = Gl-丄x M可以还原所有的源码节点向量C 。从上述解码过程可以看出,解码时需要处理大矩阵^^,+"d,对大矩阵运算, 目前数学上能够证明的时间复杂度一般是0(n3),同时空间复杂度是0(n2), n 为运算复杂度。正是由于上述原因,使得Raptor Codes方法的时间复杂度和空间复杂度 都较大,对硬件的要求也比较高,不利于提高计算速度,从而影响发送端的发 送效率以及接收端的接收效率,提高了系统硬件成本和时间成本。 发明内容本发明的技术解决问题是克服现有技术的不足,提供了一种计算速率高、资源占用量小的用于二元擦除信道前向纠错的喷泉编解码方法。
本发明的4支术解决方案是 一种用于二元擦除信道前向纠一睹的喷泉编解码 方法,包4舌编;马方法和解;马方法,
编码方法为釆用编码关系式/^Zh一C进行编码,其中向量C< d,C2,…,CK >为K个输入节点的集合,矩阵Z^K为矩阵4^的后K列, 4^W嵐xGl尽,矩阵GU和矩阵G^为RFC 5053中定义的生成矩阵,N
为修复节点的个数,L=K+S+H, S和H分别代表码率为^^的LDPC编码以
及码率为《+ s的Half码的预编码过程;
解码方法为对所述修复节点进行降度操作,将所述修复节点同所有与其 相关的已接收的源节点进行异或操作,使得所述修复节点仅同丢失的源节点相 关,修复节点的度d,为第i个修复节中含有的源节点的个数;然后将所有降度后 的修复节点的度向量组成矩阵N'xk的矩阵Z',所述度向量为行向量,若修复 节点包含第m个丢失源节点则该行向量的第m个元素为1,其余元素为0, 0<m<k, N'为接收到的修复节点个数,k为丟失的源节点个数,采用解码关系 式及'^v,^c'恢复丢失的源节点,其中向量C乂C、C'2,…,C'k〉为所有丢失的 源节点集合,向量R'< RN, R'2,..., R'N. >为降度之后的修复节点集合。
所述解码算法中根据解码关系式及'-zv,^c'计算恢复丢失的源节点的方法 为Maximum-Likelihood解码算法。
所述解码算法中进行降度才喿作的修复节点为同任意丢失的源节点相关的修~ 复节点,修复节点是否同源节点相关根据矩阵ZM来判断,若z^中第i行、第 j列为1,则说明第i个修复节点同第j个源节点相关。
本发明与现有技术相比的优点在于
(1)本发明的编码算法在维持同传统Raptor Codes编码算法相同输出的 同时,无需计算中间节点,直接通过生成矩阵计算校验节点,更加高效和简单; 本发明的解码算法在维持传统Raptor Codes相同冗余率的同时,无需计算中
5间节点,且对修复节点进行降度之后组成的矩阵Z,w,xA大小只同二元擦除信道
(BEC)的丢包率同源节点数目的乘积线性相关,远远小于传统Raptor Codes
解码时所要处理大小同源节点数据线性相关的矩阵z^x ,因此本发明的解码算
法占用资源和所用时间要远小于传统Raptor Codes的解码算法,更加高效和简单;
(2) 本发明在解码过程中根据解码关系式,=zvxAxc'计算恢复丢失的源节点的方法为Maximum-Likelihood解码算法,使得需要解码所需冗余率同信道的丟包率接近,最大程度减少冗余度;
(3) 本发明在降度4喿作之前,先判断需要降度的修复节点是否同任意丢失源节点相关,可以进一步缩小所要处理的修复节点个数,减少计算量,提高解码速度。


图1为本发明的编码算法实施流程图2为本发明的解码算法实施流程图3为本发明方法中编码矩阵G^的结构图4为本发明方法中编码矩阵G2^的结构图5为本发明方法中编码矩阵A的子矩阵结构图6为本发明方法中编码矩阵Z'的结构图7为本发明实施例中涉及到的DVB-S2单向链路的大文件分发系统结构
图8为本发明实施例中编码消耗时间测试数据对比图;图9为本发明实施例中解码矩阵处理消耗时间测试数据对比图;图10为本发明实施例中解码消耗时间测试数据对比图。
具体实施例方式
通过对传统Raptor Codes编解码方法的研究,本发明提出了一种编码冗余量小,计算时间复杂度小的前向喷泉(fountain)纠错编码方法,在此称为Rapid Raptor Codes,包括编码方案和解码方案,其流程如图1和图2所示。 喷泉(fountain)编码是一种新型的编码理论,含义是解码端无须接收某个特定 节点,而只需要接收的节点数量超过一定的阈值,则能以一定成功率正确解码。
需要说明的是,本发明中以下算法中提到的所有矩阵和矩阵运算都是基于 伽罗华域的GF (2)矩阵和矩阵运算,在此域内,乘法运算用与运算代替,加 法运算用异或运算代替。
> Rapid Raptor Codes编码方案
如图1所示,在本发明中,仿照传统的Raptor Codes编解码方法,由K 个给定的输入节点通过预先生成的矩阵G1m生成中间节点向量M< MlM2,…,Ml、这里的LxL的矩阵Gl^代表着预编码过程中LDPC、 Half码与 LT码的生成矩阵。L和K的关系满足L二K+S+H,其中的S和H分别代表着码 率为」—的LDPC编码以及码率为 ^ + S的Half码的预编码过程。矩阵Gl^
《+ *S K + (S +
中第i行为1的列代表着相应位置上的输入节点参与了生成中间节点的异或净喿 作。Gl^的组成结构如图3所示。其中矩阵G—LDPC, GJHalf, G—LT分别代 表RFC 5053中描述的LDPC、 Half码以及LT码的生成矩阵,其生成算法在 RFC 5053中有详细定义,l_S和l_H为S x S和H x H的单位阵。0_S x H为 S x H的零矩阵。
本发明按照RFC 5053中的描述,采用RFC 5053中定义的LT编码算法 LTEnc ()产生一个NxL的LT编码矩阵M風。矩阵M飄中第i行为1的列代 表着相应位置上的中间节点参与了生成第i个修复节点的异或操作。G2肌的组 成结构如图4所示。
至此,矩阵Gi^和G2嵐全部生成,本发明不再采用传统Raptor Codes方 法中采用中间节点得到修复节点的方法,按照下式直接生成修复节点向量 R<Ri,R2, ■ ■ ■ ,Rn>,在上式中,G2^xGl嵐表现了源节点与修复节点应满足的关系。在此记4^= G2嵐xGlixi ,矩阵4^中同源结点向量C进行异或的列为后K列,因此取J^的后K列构成矩阵^^,可得^Z^xC,其中向量C《d,C2,…,CK〉代表
K个输入节点的集合。Zw^和4^的矩阵关系如图5所示,;^即为4^的后K列。
由上述过程可以看出,相对于传统的Raptor Codes编码方法,本发明的编码方法中省去了中间节点的复杂计算,直接计算修复节点与源节点满足的依赖关系,可以迅速的由源节点计算出修复节点,从而大幅度减小编码时间消耗,降低编码器对硬件的要求,提高数据发送速度。
> Rapid Raptor Codes解码方案
由于在编码方案中省去了中间节点的计算环节,本发明在解码阶,爻中同样除去了中间节点的概念。
假设接收端收到K'个源节点和N'个修复节点,这里K'《K, N'<=N。显然在二元擦除信道上丢失了 k-K-K'个源节点,丢失了 n:N-N'个修复节点。在解码过程中,将修复节点看作是同源节点相关,即在修复节点中需要记录下该修复节点是由哪些源节点异或而成的。其中第i个修复节中含有的源节点的个数记为d,,称该修复节点的度为d,(源自LT Codes的发明人Luby等人对修复节点的一种定义,如修复节点A由三个不同的源结点异或而成,则A的度为3)。所有修复节点的度向量集合为^^W,《,...々),而源节点的度认为是1。在这里,本发明引入BP (Back Propagation,神经网络的一种二元结构)算法中度的概念(源自LTCodes的发明人Luby等人对修复节点的一种逆编码操作,在本文中表示将修复节点同组成它本身的源结点进行异或运算),若d中第i个元素d,中包含有已接收到K'个源节点中的元素j,即修复节点d,由第j个源结点异或而成,则将《对应的修复节点与第j号源节点进行异或,直到d中不含有K'个源节点中的元素。在本发明解码方法中,该部分算法称为降度算法,其相应的算法描述为t repeal
3: ,7 s f嫁,乾4仂en
4: /'f/'sL/seftv/fs)的en
5: pwf S /"to res"/f-//sf f
6.. e/se
7, 魏
8.. e/se
9.' pwf S />7to c/7ec/c-〃sf C
m- 贿靜点
■/2: for a// c /'/ C cfo
74: /"柳ove c /irom r
end for ■/ 7V end for
上面算法描述中,isuseful表示通过查询Z矩阵判断接收到的修复节点是 否相关,如果相关,则对该修复节点组成的节点进行异或操作,以达到降度的 效果。判断修复节点同源节点是否相关需要查询矩阵z^,若Zm中,第i行,
第j列为1,则说明第i个修复节点同第j个源节点相关。
通过上述计算,降度之后的修复节点向量R^ R、 R'2,..., R'n. >就是经过 "降度"之后的修复节点的集合。由于降度之后的修复节点只同丢失的源结点 相关,因此其中所有降度后修复节点的度集合d'可以看作是由丟失节点序号构 成,对应的数据可以看作是丢失节点数据异或的结果。
取d'中所有度向量(所述度向量为行向量,若修复节点包含第m个丢失源 节点则该行向量的第m个元素为1,其余元素为0, 0<m<k)构成一个N'x k 的小矩阵Z',矩阵Z'的形式如图6所示。其中Z'的第i行为1的列代表着相应 位置上丢失的源节点参与了生成修复节点的异或操作。记所有丢失的源节点集 合为向量C'《d, C'2,..., C'k>,显然,Z'矩阵满足等式i '《v^xC'。通过Maximum-Likelihood解码算法(最大似然解码算法),根据上式,通过对Z'矩阵进行上三角化和单位化,可以解出丟失的源节点向量C'< C', , C'2,...,C'k >。即在解码时对Z'使用高斯消去法进行求解,从而计算出丢失的k = (K-K')个源节点,将计算出来的丟失源结点补充道源数据中,完成数据的修复工作,从而完成整个解码过程。在计算过程中所使用的高斯消元法的算法如下所示
卞,/= / 〃,为/f樣
2: 乂' = "/ ,避#3; Zb厂,《m cto
5.. /br/c =/+〃o m cfo6.. /7A//c',;/== / ^en
7: swap raw /c anc/ raw /' 贿激/,霸/f互逸
8; swap m〖W a/ d , 8 〃搭/77(70游赠贫^"互漠
9.. jbrea/c
enoffo/"
72: end
fork =/'+〃o n ofo
76.. swap co/u譜/c anc/ co/wm/ /'
7 7: swap m'(7c) and m'(,〕 Z/i L
化' /bres/f
20.. e/ c/ fo厂2卞,er d/'f
22.. fork = /'+"omclo
23: /f A/R,7==1 men
24: /"ow / exc/"s/Ve-or厂ow /c
25: m(W exc/ws/Ve-orm〖/)/> 8//mfW m(/)弄或
26: end/f
27V end for
1028.. enof fo厂
29:for/=mto0cto
30.'for户"to 0 cto
3" ■/ ^e/7
32: row /' exc/ws/Ve-or raw 乂'
33: mf/) exc/us/Ve-o/" m(y /'/ S
34: e"of/7
35.. ena( for
36.. end for
37V copy的e ctete from 8 to /_
以上算法描ii^示在对Z'小矩阵进行高斯消元的过程,对矩阵以及对节点 的操作,实际上就是ML解码算法。 实施例
本实施例基于DVB-S2 (—种卫星传输协议)单向链路的大文件分发系统 对本发明方法进行了实现,该系统包括软件层和硬件层,主要分为发送服务器 和接收服务器两个部分。其中发送服务器包括CRC校验、文件分块、Rapid Raptor Codes编码器和组播UDP;接收服务器包括CRC校验、文件恢复、数 据块组装、Rapid Raptor Codes解码器和UDP接收。系统结构如图7所示, 在发送端,上层软件接收到输入内存的数据,通过文件分割和数据块初始化等 操作完成对数据的录入。之后通过Rapid Raptor Codes编码器编码,将编码后 的源数据和修复节点通过DVB-S2链路发送出去;在接收端,底层网卡设备在 DVB-S2链路接收到源数据和小l"复节点,然后通过Rapid Raptor Codes解码器 解码恢复出完整的源数据。
本发明的方法主要应用于软件层,在发送端先进行软件的数据读入和切割 等初始化工作,在切割成编码数据块之后,通过Rapid Raptor Codes编码器进 行编码,其中Rapid Raptor Codes软件实现基于X86体系结构计算机平台, 在实际测试环境中,软件实现使用C语言实现,运行在Linux 2.6操作系统内 核,计算机中央处理器为lntel(R) Pentium(R) CPU @2.33GHz。在实际测试中,
ii本实施例选择了节点大小为16k,节点个数《=1031的数据块。
在编码过程中,分别选择了冗余为1%, 2%, 5%, 10%的情况,其同传统 Raptor Codes编码时间消耗的测试数据对比结果如图8所示。图中,三角形节 点曲线代表传统Raptor Codes编码时间消耗;圓点节点曲线代表Rapid Codes 编码时间消耗。可以看到,对于传统Raptor Codes编码时间受冗余度影响较 小,而对于Rapid Raptor Codes编码时间几乎同冗余度呈正比;且Rapid Raptor Codes在编码时间上较Raptor codes少很多,几乎缩小了 10 ~ 100倍, 尤其是当冗余越小,差距越明显。
在解码过程,设置数据冗余率为20%,丢包率分别选取了 1%, 2%, 5%, 10%的情况。其同传统Raptor Codes解码处理矩阵的时间消耗的测试数据对 比如图9所示,图中,三角形节点曲线代表传统Raptor Codes解码处理矩阵 时间消耗;圆点节点曲线代表Rapid Codes解码处理矩阵时间消耗。由于矩阵 本身的缩小,Rapid Raptor Codes的矩阵处理速度比传统Rapor Codes提高 了 40~ 1000倍,且速度的提高随着链路丢包率的降低而越显明显;两者最终 的解码时间对比结果如图10所示,图中,三角形节点曲线代表传统Raptor Codes解码时间消耗;圓点节点曲线代表Rapid Codes解码时间消耗。Rapid Raptor Codes的解码速度比传统Rapor Codes提高了 7 ~ 150倍,且速度的提 高随着链路丢包率的降低而越显明显。
从上述结果可以看出,本发明方法的解码速度和编码速度较传统Raptor Codes都有了极大的提高。因此本发明对无线通信编解码资源占用小,速度提 高极大,减小了对硬件的要求,极大的降低了时间成本和硬件成本,可以采用 比丢包率略大的冗余度快速完成二元擦除信道数据通信过程中的数据纠错。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
权利要求
1、一种用于二元擦除信道前向纠错的喷泉编解码方法,包括编码方法和解码方法,其特征在于所述编码方法为采用编码关系式R=ZN×K×C进行编码,其中向量C&lt;C1,C2,...,CK&gt;为K个输入节点的集合,矩阵ZN×K为矩阵AN×L的后K列,AN×L=G2N×L×G1L×L,矩阵G1L×L和矩阵G2N×L为RFC 5053中定义的生成矩阵,N为修复节点的个数,L=K+S+H,S和H分别代表码率为 id="icf0001" file="A2009100908580002C1.tif" wi="11" he="9" top= "79" left = "142" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>的LDPC编码以及码率为 id="icf0002" file="A2009100908580002C2.tif" wi="18" he="9" top= "93" left = "40" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>的Half码的预编码过程;所述解码方法为对所述修复节点进行降度操作,将所述修复节点同所有与其相关的已接收的源节点进行异或操作,使得所述修复节点仅同丢失的源节点相关,修复节点的度di为第i个修复节中含有的源节点的个数;然后将所有降度后的修复节点的度向量组成矩阵N’×k的矩阵Z’,所述度向量为行向量,若修复节点包含第m个丢失源节点则该行向量的第m个元素为1,其余元素为0,0<m<k,N’为接收到的修复节点个数,k为丢失的源节点个数,采用解码关系式R′=Z′N′×k×C′恢复丢失的源节点,其中向量C’<C’1,C’2,...,C’k&gt;为所有丢失的源节点集合,向量R’<R’1,R’2,...,R’N’&gt;为降度之后的修复节点集合。
2、 4艮据权利要求1所述的一种用于二元擦除信道前向纠错的喷泉编解码 方法,其特征在于所述解码算法中根据解码关系式及'^V^C'计算恢复丢失 的源节点的方法为Maximum-Likelihood解码算法。
3、 根据权利要求1或2所述的一种用于二元擦除信道前向纠错的喷泉编 解码方法,其特征在于所述解码算法中进行降度操作的^^复节点为同^f壬意丢 失的源节点相关的修复节点,修复节点是否同源节点相关根据矩阵来判断, 若^^中第i行、第j列为1,则说明第i个修复节点同第j个源节点相关。
全文摘要
一种用于二元擦除信道前向纠错的喷泉编解码方法,编码方法在维持同传统Raptor Codes编码算法相同输出的同时,无需计算中间节点,直接通过生成矩阵计算校验节点,更加高效和简单。解码方法在维持传统Raptor Codes相同冗余率的同时,无需计算中间节点,且对修复节点进行降度之后组成的矩阵Z′<sub>N′×k</sub>大小只同二元擦除信道的丢包率同源节点数目的乘积线性相关,远远小于传统Raptor Codes解码时所要处理大小同源节点数据线性相关的矩阵Z<sub>N×K</sub>,更加高效和简单。
文档编号H04L1/00GK101630999SQ200910090858
公开日2010年1月20日 申请日期2009年8月12日 优先权日2009年8月12日
发明者张亚航, 李明泉, 程博文, 邹光南 申请人:航天恒星科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1