本发明属于网络编码技术领域,主要涉及随机卷积网络编译码技术,具体是一种基于随机卷积网络纠错码的自适应构造与译码方法,用于网络拓扑未知和具有时延的实际网络中。
背景技术:
网络编码最初是由ahlswede在2000年提出的,其实质是允许中间节点在处理接收到的信息之后执行转发操作。许多工作表明网络编码在吞吐量,负载平衡,安全性等方面具有潜在优势,并引起广泛关注。随机网络编码(rnc),其允许中间结点在有限域内随机选择编码系数,对于未知拓扑是可行的,t.ho等人证明了当用户数大于编码域大小时,随机成功编码的概率接近1。卷积网络编码(cnc)允许节点组合从不同的输入信道和不同的时隙接收信息,对于实际通信更为可行。通信系统中始终存在错误,由于中间节点的混合过程,即使单个错误也会在接收结点影响更多符号,因此纠错对rnc和cnc必不可少,是正确译码的重要保证。
卷积网络纠错码(cnecc)最初由k.prasad等人提出,并给出了cnecc的构建和译码算法来纠正相干网络的一组网络错误。针对随机网络编码中纠错,koetter和kschischang提出了用子空间表示码字,silva和kschischang指出提升的秩度量码是随机网络编码几乎最优子空间码,a.wachter-zeh等给出了秩度量卷积码,即在信源端使用卷积码来纠正错误,但使用子空间码和秩距离码的复杂度都比较高,难以实现。yang等提出了一种基于最小错误重量的类viterbi译码算法,用k.prasad提出的方法构造的广义cnecc,给出了算法可行性的充分条件,但是,只考虑确定性网络和二元有限域
综上,现有技术中基于相干网络的编译码方案,其中的相干网络是拓扑确定、编码确定的网络,不太适用于拓扑未知和具有时延的网络,基于随机网络的纠错译码算法使用子空间码和秩度量码,但复杂度高,并且都没有考虑在q元域上的编译码操作,难以工程化应用。
技术实现要素:
发明目的:针对现有随机卷机网络编译码算法的不足,提出一种纠错能力强并且复杂度低的基于随机卷积网络纠错码的自适应构造与译码方法。
为了实现发明目的,本发明采用以下技术方案:
步骤1、自适应构造随机卷积网络编码:
信源结点发送全零数据分组到网络以自适应地构造随机卷积网络编码,从小的编码域开始,本地编码核(lek)长度一直增加直到所有相关的接收节点可译为止,此时编码成功;接收结点收到的是网络错误经过中间结点的混合叠加形成的组合错误向量;
步骤2、构造随机卷积网络纠错码:
用全零测试数据搜集网络错误;由于全局编码核(gek)按时隙发送到接收结点,因此在接收结点处分布式获得传输矩阵的信息,同时网络错误也按照传输编码系数混合,分布式得到组合错误;当网络中间节点用一般多项式作为系数时,用传输矩阵的伴随矩阵代替其逆矩阵,将组合错误等效到信源端;根据信源端等效错误的最大重量ts,在信源端选取自由距离大于等于2ts+1的能够纠正网络错误的纠错码作为随机卷积网络的输入码;
步骤3、改进得到q元随机卷积网络纠错译码算法:
将基于最小网络错误重量的类viterbi译码算法扩展到随机卷积网络和
步骤4、优化q元随机卷积网络纠错译码算法:
在优化接收序列的操作中,通过减去q元随机卷积网络纠错译码译出码字的影响和估计的网络错误来更新译码序列;后续窗口中的情形通过移除该窗口之前的输入序列造成的影响而等价变换到第一个窗口中,实现低复杂度和低译码时延的分布式译码。
本发明给出了通过上述四个步骤实现随机卷积网络纠错码的自适应构造与译码方法的整体技术方案,纠错能力强且复杂度低,适用于拓扑未知以及具有时延的网络。
有益效果
与现有技术相比,本发明的有益效果为:
符合实际网络的要求:针对现有研究技术都研究确定性和即时性的网络编码,不太适用于实际网络,本发明构造了随机卷积网络编码,结合了随机网络和卷积网络的优点,适用于拓扑未知和有时延的网络,更符合实际网络。
纠错能力强:编码操作:本发明针对可能发生的网络错误集合,估计信源处的等效错误的最大重量,在发送到网络之前就设计能够纠正该网络错误集的纠错码。译码操作:本发明提出的q元随机卷积网络纠错译码算法,基于组合错误的累计最小重量译码,能够纠正rcnecc纠错范围内的任意错误。
复杂度低:编码操作:本发明自适应地构造随机卷积网络编码,结合了rnc和cnc的优点,不同节点根据自身的情况选用不同长度的本地编码核,等效的编码核长度尽量短,编码复杂度低。译码操作:本发明的q元随机卷积网络纠错译码算法,可以直接在接收结点处译码,接收序列通过减去已译码字的影响和估计的网络错误更新译码序列,降低了复杂度和译码时延,实现了分布式译码。
附图说明
图1是本发明采用的具有输入卷积码的随机卷积网络编码图,也是本发明的流程示意图;
图2是本发明中传输速率为2的随机卷积网络编码图;
图3是本发明中t=0时刻的随机卷积网络编码图;
图4是本发明中t=1时刻的随机卷积网络编码图;
图5是本发明中译码窗口[0,2]的正确输入与输出图;
图6是本发明中译码窗口[0,2]中的错误筛选过程图。
具体实施方式
下面结合附图和实例对本发明进行详细说明。
实施例1:
网络编码的实质是允许中间节点在处理接收到的信息之后执行转发操作,在吞吐量,负载平衡,安全性等方面具有潜在优势,并引起广泛关注。随机网络编码(rnc)允许中间结点在有限域内随机选择编码系数,适用于拓扑未知的网络。卷积网络编码(cnc)允许节点组合从不同输入信道和不同时隙的接收信息,对时延网络是可行的。
现有的技术中给出了构建卷积网络纠错码的算法,虽具有一定纠错能力,但只适用于相干网络;子空间码和秩距离码应用于随机网络中的纠错,但复杂度较高,难以实现;网络中间结点的混合过程使得基于汉明重量的经典viterbi算法不再适用于网络中的纠错译码。为了解决这些问题,本发明对此展开了研究,提出了基于随机卷积网络纠错码的自适应构造与译码方法,其在编码和译码的过程中均加入纠错,纠错能力强且复杂度低,适用于实际网络。
本发明是一种基于随机卷积网络纠错码的自适应构造与译码方法,参见图1,包括以下步骤:
步骤1、自适应构造随机卷积网络编码:
信源端发送ω分组的全零数据到网络,使网络开始自适应构造。卷积网络编码是物理可实现的当且仅当本地编码核常数项系数矩阵k0是幂零的,下述操作确保k0是幂零的:网络中的边是有向的并编号为ei,1≤i≤|e|,在0时刻,令拐点e′>e处的本地编码核ke',e,0=0,否则均匀随机地从小域上选取;初始化步骤过后,ke',e,t可以随机均匀在有限域中选。本地编码核(lek)长度一直增加直到所有相关的接收节点处的全局编码矩阵满秩为止,此时编码成功,且不同lek的长度可能不同。接收结点收到的是网络错误经过中间结点的混合叠加得到的组合错误向量。
步骤2、构造随机卷积网络纠错码:
卷积网络自适应随机编码,全局编码核的信息与传输的字符一起按时隙传输给接收节点,因此在接收结点处分布式获取传输矩阵每一时刻的信息mr,0,mr,1z,mr,τzτ,…,分布式计算组合错误
步骤3、改进得到q元随机卷积网络纠错译码算法:
由y(z)=x(z)go,t(z)+e(z)ft(z)得到:x(z)go,t(z)=y(z)-e(z)ft(z),错误序列e(z)按照卷积的方式错位叠加,形成了e(z)ft(z),其刻画了任一错误向量在网络中的影响,最终在接收结点处输出。由于中间节点处的混合过程,即使单个错误也会在接收结点影响更多符号,在接收结点处仅基于输出序列和输入序列之间的最小汉明距离译码不再可行,因此译码基于组合错误向量,找到新的度量方式:将每个组合错误向量的重量定义为最小网络错误向量的重量,寻找具有累积的最小错误重量的译码路径。将最小网络错误重量的类viterbi译码算法扩展到随机卷积网络编码和
步骤4、优化q元随机卷积网络纠错译码算法:
在优化接收序列的操作中,当译码窗口中只剩下唯一的组合错误向量,需要将该错误从译码网格图上删掉。因为输入序列的1比特消息将影响无错输出序列的ω比特消息,在删除q元随机卷积网络纠错译码译出码字的影响之后,接收序列的前ω比特都是零。将此序列除以时延因子z之后视为新接收的序列,后续窗口中的情形可以通过移除该窗口之前的输入序列造成的影响而等价变换到第一个窗口中,实现低复杂度和译码时延的分布式译码。
本发明的思路:信源端发送零数据分组到网络以自适应地构造随机卷积网络编码,同时用作搜集组合错误向量用以纠错码设计,因为无论成功与否,都可以用这些组合错误向量来估计错误及信源的等效错误;将组合错误向量等价到信源端,在信源端根据等效错误的最大重量设计能够纠正此错误的随机卷积网络纠错码;在接收结点处使用随机卷积网络纠错译码算法进行纠错译码。
本发明构造了随机卷积网络编码,其结合了随机网络和卷积网络的优点,适用于拓扑未知网络和有时延的网络;将网络中发生的错误等效到信源端,在发送数据之前设计具有纠错能力的码字,在接收结点纠错译码,纠错能力强,同时通过优化算法,使得整个编译码过程的复杂度都比较低。
实施例2
基于随机卷积网络纠错码的自适应构造与译码方法同实施例1,步骤1中所述的自适应构造随机卷积网络编码,其中的构造过程是,具体包括以下步骤:
将全零数据的ω分组发送到网络,使网络开始自适应构造;卷积网络编码是物理可实现的当且仅当本地编码核常数项系数k0对应的编码拓扑是无圈的。网络中的边是有向的并编号为ei,1≤i≤|e|,一对边标为拐点当编号为e′>e,也就是边e'比e的编号大。所有本地编码核和全局编码核初始值为0,在0时刻,对于e′≥e,令其本地编码核ke',e,0=0,否则均匀随机地从小域上选取,这个初始化步骤保证了本地编码核k0是无圈的。初始化之后ke',e,t可以随机任意选。
kv(z)=(ke′,e(z))e′∈in(v),e∈out(v)=kv,0+kv,1z+kv,2z2+...为中间节点v在t时刻的本地编码核矩阵,其中每一个元素ke′,e(z)=ke′,e,0+ke′,e,1z+ke′,e,2z2+...是多项式。节点v存储所有收入边e'∈in(v)收到的符号ye',t,并对v的输出边e随机选取第t+1项本地编码核系数ke',e,t。然后对每一条输出边e构造传输数据包
在每一时刻t,接收节点r判断其接收的全局编码核是否满秩。如果满秩,将自己的成功状态设为1,并发确认信号ack给其父节点。中间节点v收到所有子节点的ack,则停止随机选取本地编码核,并向其父节点发送ack。以后的编码则用已确定并存储的
本发明自适应构造随机卷积网络编码,它从小的编码域开始编码,本地编码核长度一直增加直到所有相关的接收节点可译为止,允许不同节点根据自身的情况选用不同长度的本地编码核,使得等效的编码核长度尽量短,减少译码时延和存储要求,可应用于拓扑未知情况并在有限时间内停止,构造成功之后得到的输出为组合错误。
实施例3
基于随机卷积网络纠错码的自适应构造与译码方法同实施例1-2,步骤1中所述的自适应构造随机卷积网络编码,其随机卷积网络编码的数学模型为:
卷积网络编码采用自适应随机的编码方式,fr(z)的信息与传输的字符一起按时隙传输给接收节点。信源产生的数据可表示为:
x(z)=x0+x1·z+…+xt-1·zt-1+…,
信宿节点r的传输矩阵可表示为:
mr(z)=mr,0+mr,1z+…+mr,τzτ+…,
通过随机卷积网络时对应的每一时刻的无错输出应为:
每一时刻对应的有错输出为:
式中,z是时延因子,x(z)是输入序列,xt是x(z)在t时刻的系数,mr,t是mr(z)在t时刻的系数,e(z)为错误序列,et是e(z)的在t时刻的系数,fr(z)为传输矩阵去除信源端的映射后在网络中造成的影响。
本发明构建了随机卷积网络编码模型,传输的数据在不同的时隙形成卷积最终按时序输出到接收结点,用数学公式将此过程表示出来,并分析得到加入网络错误之后的输出序列,有利于之后的纠错编译码操作。
实施例4:
基于随机卷积网络纠错码的自适应构造与译码方法同实施例1-3,步骤2中所述的构造随机卷积网络纠错码具体包括以下步骤:
2.1)随机卷积网络编码在自适应构造过程中利用全零测试数据搜集每一时刻的组合错误向量:
2.2)分布式获得传输矩阵mr(z),其行列式|mr(z)|是非零常数多项式,在求逆
2.3)计算信源端等效错误
2.4)令wh(y)表示一个给定向量y∈fq的汉明重量,即y系数的非零数量;估计源节点处的等效错误的最大重量ts=max{wh(e)}。
2.5)在源节点处选取自由距离为2ts+1的能够纠正等效错误的纠错码。
本发明按照上述步骤,针对可能发生的网络错误集合,当网络中间节点用一般多项式作为系数时,用传输矩阵的伴随矩阵代替其逆矩阵,从而将网络中错误等效到信源端,根据信源端等效错误的最大重量设计一个纠错码,在发送到网络之前就设计能够纠正该网络错误集的纠错码,从而译码算法可以纠正其纠错范围内的码字。
实施例5:
基于随机卷积网络纠错码的自适应构造与译码方法同实施例1-4,步骤3中所述的q元随机卷积网络纠错译码算法,具体包括以下步骤:
3.1)由yr(z)=x(z)go,r(z)+e(z)fr(z)得到:x(z)go,r(z)=yr(z)-e(z)fr(z),其中,go,r(z)为输出卷积码的生成矩阵。在接收结点处来处理e(z),就等价于处理一个个的组合错误向量,这些组合错误向量按照卷积的方式错位叠加,形成了最终的e(z)ft(z),在译码过程中,所有的组合错误向量被纠正,所有的网络错误随之得以纠正。
3.2)在译码开始之前加入判断,判断输出消息子空间φ(t,l)和错误子空间δ(t,l)二者的交集是否只有零空间,若只有零空间,则消息序列和错误序列可分,此时在滑动窗口中进行译码,寻找组合错误向量;若不止有零空间,则下一时刻再执行判断,直到φ(t,l)∩δ(t,l)={0}。
本发明基于随机卷积网络编码中间结点的混合过程,网络错误可能扩散并且在接收节点影响更多符号,在接收节点处仅基于输入序列和输出序列的最小汉明距离译码不再可行;受到经典的viterbi算法的启发,可以用与其类似的方法实现该译码过程,在比较操作中,事先定义了每一个组合错误所对应的网络错误向量的hamming重量,当φ(t,l)和δ(t,l)的交集只有零空间时,确定窗口滑动长度并在滑动窗口中开始译码,寻找组合错误向量,从而在输出网格图上寻找具有累积最小网络错误重量的译码路径。
实施例6:
基于随机卷积网络纠错码的自适应构造与译码方法同实施例1-5,步骤4中所述的优化q元随机卷积网络纠错译码算法,其中实现低复杂度和译码时延的分布式译码具体包括以下步骤:
4.1)当网络中发生错误并在译码窗口中唯一确定时,必须减去组合误差向量的影响:
4.2)假设可以唯一地确定x0,由于卷积网络编码的性质可知,接收序列
4.3)假设序列译码的时延为l,即x0可由从时间0到l在接收结点r接收字符流x0m0,x0m1+x1m0,…,x0ml+…+xlm0唯一确定。对于具有全局编码核
本发明对接收的序列进行优化,通过减去译出码字的影响和估计的网络错误来更新译码序列,算法复杂度降低,结合序列译码的译码时延,得到该算法的译码时延。
实施例7:
基于随机卷积网络纠错码的自适应构造与译码方法同实施例1-6,具体实施方法如下。
网络中的边是有向的,并编号为ei,1≤i≤|e|。在0时刻,所有本地编码核和全局编码核初始值为0,发全零序列使得网络开始自适应随机编码。对于边e'比e的编号大的拐点,令其本地编码核ke',e,0=0,否则均匀随机地从小域上选取,这个初始化步骤过后,ke',e,t可以随机任意选。在t时刻,中间节点v存储所有收入边e'∈in(v)收到的符号ye',t,并对v的输出边e随机选取第t+1项本地编码核系数ke',e,t。然后对每一条输出边e构造输出数据包且将全局编码核放在包头送出。
在每一时刻t,接收节点r判断其接收的全局编码核是否满秩。如果满秩,发ack给其父节点。中间节点v收到所有子节点的ack,则停止随机选取本地编码核,并向其父节点发送ack。以后的编码则用已确定并存储的ke',e,在每一时刻增加lek的长度,直到所有接收结点具有满秩的传输矩阵。
构造成功得到的随机卷积网络编码的数学模型为:
卷积网络编码采用自适应随机的编码方式,fr(z)的信息与传输的字符一起按时隙传输给接收节点。信宿节点r的传输矩阵可表示为:
mr(z)=mr,0+mr,1z+…+mr,τzτ+…,
每一时刻对应的有错输出为:
如果传输的零数据在网络传输中发生错误,则输出序列是组合错误;根据源节点的等效错误的最大重量,在信源处构造卷积纠错码来纠正错误;将该码字输入到网络,可以纠正随机卷积网络的一组网络错误,具体有以下步骤:
(1)随机卷积网络编码在自适应构造过程中利用全零测试数据搜集每一时刻的组合错误向量:
(2)分布式获得传输矩阵mr(z),其行列式|mr(z)|是非零常数多项式,在求逆
(3)计算信源端等效错误
(4)令wh(y)表示一个给定向量y∈fq的汉明重量,即y系数的非零数量;计算源节点处的等效错误的最大重量ts=max{wh(e)}。
(5)在源节点处选取自由距离为2ts+1的能够纠正等效错误的纠错码。
在信宿端所使用的译码算法过程如下:由y(z)=x(z)go,t(z)+e(z)ft(z)得到:x(z)go,t(z)=y(z)-e(z)ft(z),在接收结点处理错误序列e(z),等价于处理组合错误向量e(z)ft(z),其刻画了任一错误向量e在网络中的影响。虽然e(z)ft(z)按卷积的方式错位叠加对纠错造成了巨大的困难,但是仍不妨先从最简单的情形入手,即所有的组合错误没有叠加,由于ft(z)往往非常简单,因此组合错误种类远远小于可能的错误向量数量。在比较操作中,每个组合错误向量的重量被定义为最小错误向量的重量。译码即是要找到在输出网格图上具有累积的最小错误重量的译码路径。如果所有的组合错误向量可以被纠正,则网络错误得以纠正,得到正确的输入序列。算法描述如下:
卷积网络编码的分布式译码算法
对于接收序列y(z),最小重量译码算法是在每一时刻选择重量最小的错误向量min{wh(ei)},考虑到各个组合错误向量之间并不重叠,因此等价于选择重量最小的网络错误向量wh(e(z))。而wh(e(z))越小即意味着pe越小,即就是选择与y(z)之间误码率pe最小的输入序列x(z)。整个译码过程相当于寻找最相似的码字x,使得译码后的码字
对于具有全局编码核
本发明先自适应地构造随机卷积网络编码,当编码成功时在信源端设计能够纠正一组网络错误集的随机卷积网络纠错码;发送数据到网络,在接收结点处使用随机卷积网络纠错译码算法进行译码。本发明自适应构造了随机卷积网络编码,编译码算法都具有纠错能力且降低了复杂度,可应用到实际网络。
下面主要介绍本发明使用定理1如何确定译码窗口长度及组合错误向量。
实施例8:
基于随机卷积网络纠错码的自适应构造与译码方法同实施例1-7,φ(t,l)为由输出卷积码张成的消息子空间,即φ(t,l)中的所有元素为[0,l]窗口中的xlgo,r(z),xl(z)为0到l时刻所有可能的输入序列。δ(t,l)表示错误向量张成的子空间,fr(z)可以写成幂级数
定理1:对于任意不同的y,y′∈φ(t,l),y和y′在接收节点上可分当且仅当
证明:对于信源s和接收节点r,卷积网络编码可以看作编码核为fr(z)的线性网络编码。
充分性:如果满足
必要性:如果对于任意不同的y,y′∈φ(t,l),y和y′在接收节点上可分,则对任意g,g′满足y′+g≠y+g′,即y′≠y+(g′-g),即
对于线性编码,因为任意y,y′∈φ(t,l),有y-y′∈φ(t,l),所以y和y′在接收节点上可分当且仅当φ(t,l)∩δ(t,l)={0}。证毕。
由定理1可知译码前需要判断:t=l(l≥lt)时判断对应的φ(t,l)和δ(t,l)的交集是否只有零空间。只有零空间时消息序列和错误序列可分,得到滑动窗口长度l,在每个窗口中计算组合错误向量,下一个窗口中的组合错误向量从上一个可以延伸的组合错误向量得到。本发明给出了的确定译码窗口长度以及窗口中组合错误向量的方法,是译码算法中的关键一步。
下面结合具体实例来说明本发明的整个编译码过程。
实施例9:
基于随机卷积网络纠错码的自适应构造与译码方法同实施例1-8,以
信源s的两条出边的全局编码分别为
在0时刻,一种可能的分配如图3所示。此时
在1时刻,本地编码核ke',e,1可以随机均匀地从
efr,0={00,01,02,10,11,12,20,21,22},efr,1={00,01,02}为可能输出的组合错误向量。计算信源端的等价错误得到ts=2,因此选择自由距离dfree≥2ts+1=5的卷积码为输入卷积码,选取输入卷积码的生成矩阵为gi(z)=[1+z21+z+z2]。
假设输入序列为x(z)=1+z2+z5,即|x(z)|=6。以接收结点r2为例来说明q元域上rcnecc的随机卷积网络纠错译码及其分布式译码过程。
从上述自适应编码过程分布式地得到:
和
在此之后,确定滑动窗口的长度。通过判断φ(r2,l)∩δ(r2,l)={0}可知l=2满足条件。
令
如图5所示,树图上第一,第二和第三分支分别代表输入信息0、1和2。[0,2]窗口中的组合错误筛选过程如下:
根据实施例7中描述的算法,如果e0=00且e1=00,则设置累计错误重量{00,00,e2}为0;如果e0不属于参考表中的
窗口[0,2]可以确定输入序列x0=1,接收到的序列
在第3时刻接收到的序列为
简而言之,本发明公开的一种随机卷积网络纠错码的自适应构造与译码方法,解决了现有技术中拓扑未知和传输时延的实际网络编译码算法的纠错复杂度高的问题,实现步骤为:自适应构造随机卷积网络编码;构造随机卷积网络纠错码作为输入卷积码;使用q元随机卷积网络纠错译码算法在接收端译码;对q元随机卷积网络纠错译码算法进行优化。本发明以数据包在随机卷积网络中传输过程为基础,提出发送全零数据自适应构造随机卷积网络编码算法,允许不同节点根据自身的情况选用不同长度的本地编码核;将网络中的错误等效到信源端,在消息发送到网络之前设计一个能够纠正此错误的纠错码;将最小网络错误重量的译码算法扩展到随机编码和