一种数据传输的自适应降速方法

文档序号:7863937阅读:325来源:国知局
专利名称:一种数据传输的自适应降速方法
技术领域
本发明属于数据传输的数据处理方法,特别涉及一种数据传输的自适应降速方法。
背景技术
由于日趋复杂的传输信道以及多变的通讯环境,如何能在保持数据传输的高速率的同时也能增强数据传输的可靠性成为当今专家以及研究人员的一个难题,信道的衰落和延时容易造成传输误差或者数据的缺失,因此目前大部分的通讯业务采用了整包数据重传以及被迫降速的方式来应对,但在这种方式中,前次传输的错误数据不具有任何意义、无法利用,影响整体传输效率,并且在信道环境较差时,收发两端需要在数据中添加额外的冗余 码或者在建立通信前制定协议在才能达成降速。以下对本发明所涉及的有关概念加以说明分包传输在数据的发送端将一长段数据分成字节相等的多段小包,将其逐个传送到信道,适用于各种传输方案。应答报文接收端收到数据包后会根据发送端和接收端双方先前拟定的协议,对数据包进行检验并且将检验结果反馈给发送端,发送端可以依据反馈进行下一步操作。卷积码是属于前向纠错方式一种编码方式,通过多项式生成器生成制定的多项式,再将待发送数据与多项式进行卷积运算形成对应待发送数据的卷积码,从而增强了数据在传输中的抗信道干扰的能力;而在接收端也需要对所接收到的卷积码进行对应的译码,才能得到有效数据,完成整个传输过程;联合译码便是利用了多项式之间的相关性并将其特性以及规律运用在接收端的译码上。

发明内容
本发明提供一种数据传输的自适应降速方法,解决现有数据传输中无法利用前次传输的错误数据并需要额外操作的问题,以有效提高数据传输的效率,准确性以及抗干扰性。本发明所提供的一种数据传输的自适应降速方法,顺序包括下述步骤一.分包步骤发送端将待传送的全部数据顺序分成N个数据包,每个数据包的字节数目相等;二.编码步骤对N个数据包中各数据包Di,分别进行卷积码编码,每个数据包生成M块编码数据,共生成NXM块编码数据Dn,Di2. ..Dui = 1、2、…N,j = 1、2、…M,N、M为正整数;三.数据传输步骤,包括下述子步骤(3. I)在传输周期T内,从N个数据包的前L个数据包中各取出第一块编码数据,依据数据包的排序顺序进行发送,L^N;(3. 2)接收端收到L块编码数据,按照发送端的发送顺序依次对每块编码数据进行译码,得到L块译码数据,并利用循环校验判断各块译码数据是否正确,正确的译码数据则转子步骤(3. 15),对于不正确的译码数据则进行子步骤(3.3);(3. 3)接收端保留不正确的译码数据对应的K块编码数据,向发送端反馈应答报文,内容为K块不正确的译码数据对应的数据包接收错误,进行下一子步骤;(3.4)在下一个传输周期中,发送端从K个接收错误的数据包中各取出第二块编码数据,并从N个数据包的第L+1个 数据包开始,从之后L-K个数据包中各取出第一块编码数据,共L块编码数据,依据如下排序顺序进行发送其中K个第二块编码数据分别保持它们在前一个传输周期的原有排序位置,其余L-K个排序位置由L-K个第一块编码数据依其所属数据包的排序顺序依次占据;(3. 5)接收端收到L块编码数据,按照发送端的发送顺序依次对每块编码数据进行译码,得到L块译码数据,并利用循环校验判断各块译码数据是否正确,正确的译码数据则转子步骤(3. 15),对于不正确的译码数据则进行子步骤(3.6);(3. 6)接收端保留不正确的译码数据对应的各块编码数据,判断不正确的译码数据是否为第一块编码数据,是则转子步骤(3. 7),否则转子步骤(3.8);(3. 7)接收端向发送端反馈应答报文,内容为H块不正确的译码数据对应的数据包接收错误,在下一个传输周期中,发送端从H个接收错误的数据包中各取出第二块编码数据,H个第二块编码数据在发送时分别保持它们在前一个传输周期的原有排序位置,转子步骤(3. 10);(3. 8)接收端将不正确的译码数据相应的第二块编码数据与其对应的第一块编码数据联合译码,得到译码数据,并利用循环校验判断各译码数据是否正确,正确的译码数据则转子步骤(3. 15),对于不正确的译码数据则进行子步骤(3.9);(3. 9)接收端向发送端反馈应答报文,内容为P块译码数据对应的数据包接收错误;(3. 10)在下下个传输周期中发送端从P个接收错误的数据包中各取出第三块编码数据,并从N个数据包的第2L+1-K个数据包开始从之后L-H-P个数据包中各取出第一块编码数据,与子步骤(3.7)中的H个第二块编码一起,共L块编码数据,依据如下排序顺序进行发送其中H个第二块编码数据与P个第三块编码数据分别保持它们在前一个传输周期的原有排序位置,其余L-H-P个排序位置由L-H-P个第一块编码数据依其所属数据包的排序顺序依次占据;(3. 11)重复子步骤(3. 5)-(3. 7)的操作,区别仅在于其中不正确的译码数据属于第一块编码数据的个数为S块,对于不属于第一块编码数据,接收端将错误的译码数据对应数据包中本次所接收的Q块第二块编码数据或者R块第三块编码数据与之前保留的同数据包的各块编码数据进行任意组合然后联合译码,得到译码数据,并利用循环校验判断各块译码数据是否正确,正确的译码数据则转子步骤(3. 15),对于不正确的译码数据则进行子步骤(3.12);任意组合是指某块编码数据与同一数据包内的一块编码数据或多块编码数据组成编码数据组,编码数据组包括两块或两块以上的编码数据;(3. 12)接收端向发送端反馈应答报文,内容为Q+R块译码数据对应的数据包接收错误;(3. 13)在再下个周期中,发送端从S个接收错误的数据包中各取出第二块编码数据,从Q个接收错误的数据包中各取出第三块编码数据,从R个接收错误的数据包中各取出第四块编码数据,并从N个数据包的第3L+1-K-H-P个数据包开始从之后L-S-Q-R个数据包中各取出第一块编码数据,依据如下排序顺序进行发送其中S个第二块编码数据,Q个第三块编码数据与R个第四块编码数据分别保持它们在前一个传输周期的原有排序位置,其余L-S-Q-R个排序位置由L-S-Q-R个第一块编码数据依其所属数据包的排序顺序依次占据;(3. 14)重复循环子步骤(3. 11)-(3. 13)的操作,区别仅在于不正确的译码数据个数以及它们对应的编码数据在数据包中的块序数;校验正确的译码数据转子步骤(3. 15),第一次错误的编码数据直接在下个周期重传与它同数据包的第二块编码数据,而连续错误的编码数据则与之前收到的同数据包的编码数据任意组合并且联合译码,然后再次校验,正确的译码数据转子步骤(3. 15),如果依旧错误则在下次周期重传与它同数据包下一块编
码数据,在下次周期中,所有重传的编码数据需要与前次的传输位置保持一致,同时与未传输的剩余数据包的第一块编码数据凑足L块编码数据一同发送,此过程一直循环重复直到传完同一数据包的最后一块编码数据,如果所有组合的联合译码均不正确,则需要在下次周期重传相应数据包的第一块编码数据;(3. 15)接收端向发送端反馈应答报文,内容为该译码数据对应的数据包接收正确;直到N个数据包全部正确传输后整个传输过程结束;所述K、H、P、Q、R、S均为小于L的正整数。本发明所述数据传输步骤的子步骤(3. 4)中,重传的同一数据包的编码数据必须与前次错误的编码数据保持位置顺序的一致,因此可以由位置判断编码数据是否连续发生错误;所述的数据传输步骤的子步骤(3. 14)中,循环重复的操作仅针对一个连续错误的小数据包,并不是在同周期发送的所有编码数据,其他编码数据需根据不同情况进行不同次数的重复操作,由于不同组合的联合译码,自适应地实现了编码率的降低,即为波形速率的自适应降速。本发明基于分包重传与编码分集,将传输数据分成多个数据包,使传输错误局部化,提高了重传的效率,并且利用编码分集技术,对同一段数据生成多块编码数据,从而可以在接收端实现联合译码,增加了对错误数据的利用率并且保证了数据的正确性,同时实现了波形速率根据信道质量自适应变化,从而在传输中去除冗余信息与额外操作,进一步提高了传输的效率。


图I是本发明的流程示意图;图2是编码分集不意图;图3是数据传输步骤的流程示意图;图4是分包重传的实例示意图。
具体实施例方式以下结合附图对本发明进一步说明
如图I所示,本发明的实施例,顺序包括分包步骤、编码步骤和数据传输步骤。一 .分包步骤发送端将待传送的全部数据顺序分成24个数据包Dp D2*" D24,每个数据包的字节数目相等;二.编码步骤对24个数据包中各数据包Di,分别进行卷积码编码,每个数据包生成4块编码数据,共生成24X4块编码数据分别是Dla、Dlb、Dlc, Dld、D2a, D2b, D2c, D2fD24a、
D24b、D24c、D24d。编码步骤如图2所示,4组8位的移位寄存器,生成4个不同的多项式
x7+x4+x3+x2+l, x7+x5+x4+x3+x2+l, x7+x5+x3+x1+l, x7+x6+x5+x3+x2+x1+l ;其中 x7 是这个编码器的最高次项。发送端对每一个数据包利用上述4个多项式进行卷积编码,从而得到编码数据a、编码数据b、编码数据C、编码数据d共4块编码数据,这同时也意味着重传的最大次数为4次。三.数据传输步骤,如图3所示,包括下述子步骤(I)在传输周期T1内,从24个数据包的前8个数据包中各取出第一块编码数据a :Dla> D2a, D3a> D4a, D5a, D6a, D7a, D8a,如图4第I行所示,依据数据包的排序顺序进行发送;(2)接收端收到8块编码数据,按照发送端的发送顺序依次对每块编码数据进行译码,得到8块译码数据,并利用循环校验判断各块译码数据是否正确,如图4第2行所示,正确的译码数据为Dla,、D3a,、D4a,、D5a,、D7a,,接受端向发送端反馈它们相应的5个数据包接收正确,对于不正确的译码数据02^06^0“则进行子步骤(3);(3)接收端保留不正确的译码数据对应的3块编码数据D2a、D6a、D8a,向发送端反馈应答报文,内容为3块不正确的译码数据对应的数据包D2、D6、D8接收错误,进行下一子步骤;(4)在下一个传输周期T2中,发送端从3个接收错误的数据包中各取出第二块编码数据D26、D6b、D8b,并从24个数据包的第9个数据包开始,从之后5个数据包中各取出第一块编码数据,共8块编码数据,依据如下排序顺序进行发送其中3个第二块编码数据分别保持它们在前一个传输周期的原有排序位置,其余5个排序位置由5个第一块编码数据依其所属数据包的排序顺序依次占据D9a、D2b, D10a, Dlla, D12a, D6b, D13aD8b,如图4第3行所示;(5)接收端收到8块编码数据,按照发送端的发送顺序依次对每块编码数据进行译码,得到8块译码数据,并利用循环校验判断各块译码数据是否正确,正确的译码数据为D9a,、D1(la,、D12a,、D13a,,接受端向发送端反馈它们相应的4个数据包接收正确,对于不正确的译码数据D2b,、Dlla,、D6b,、D8b,则进行下一子步骤;(6)接收端保留不正确的译码数据对应的各块编码数据D2b、Dlla、D6b、D8b,判断不正确的译码数据是否为第一块编码数据,是则转子步骤(7),否则转子步骤(8);(7)接收端向发送端反馈应答报文,内容为I块不正确的译码数据对应的数据包D11接收错误,在下一个传输周期中,发送端从I个接收错误的数据包D11中取出第二块编码数据Dllb,这个第二块编码数据在发送时保持它在前一个传输周期的原有排序位置,转子步骤(10);(8)接收端将不正确的译码数据相应的第二块编码数据D2b、D6b, D8b与其对应的第一块编码数据D2a、D6a、D8a联合译码,得到译码数据,并利用循环校验判断各译码数据是否正确,正确的译码数据为D8a与D8b的联合译码,接受端向发送端反馈它们相应的数据包D8接收正确,对于不正确的译码数据D2b、D6b与D2a、D6a联合译码则进行下一子步骤;(9)接收端向发送端反馈应答报文,内容为2块译码数据对应的数据包D2、D6接收错误;图4第4行反映了子步骤(5)、(7)、(8)中的最终反馈应答报文的内容;(10)在下下个传输周期T3中,发送端从2个接收错误的数据包D2、D6中各取出第三块编码数据D2。、D6c,并从24个数据包的第14个数据包开始从之后5个数据包中各取出第一块编码数据D14a、D15a, D16a, D17a, D18a,与子步骤(7)中的I个第二块编码Dllb —起,共8块编码数据,依据如下排序顺序进行发送其中I个第二块编码数据与2个第三块编码数据分别保持它们在前一个传输周期的原有排序位置,其余5个排序位置由5个第一块编码数据依其所属数据包的排序顺序依次占据D14a、D2c;、D15a、Dllb、D16a、D6c;、D17a、D18a,如图4第5行所示;·
(11)重复子步骤(5)-(7)的操作,经校验正确的译码数据为D14a,、D15a,、Dllb,、D16a,、D17a,、D18a,,错误的为D2。,、D6。,,区别仅在于其中不正确的译码数据属于第一块编码数据的个数为0块,对于不属于第一块编码数据,接收端将错误的译码数据对应数据包中本次所接收的2块第三块编码数据D2c;、D6。与之前保留的同数据包的各块编码数据D2a、D6a、D2b、D6b进行任意组合然后联合译码,得到译码数据,并利用循环校验判断各块译码数据是否正确,正确的译码数据为D2。与D2a、D2b的组合,接受端向发送端反馈它们相应的数据包D2接收正确,对于不正确的译码数据D6。与D6a、D6b的组合进行下一子步骤;(12)接收端向发送端反馈应答报文,内容为I块译码数据对应的数据包D6接收错误;图4第6行反映了子步骤(11)、(12)中的最终反馈应答报文的内容;(13)在再下个周期中,发送端从I个接收错误的数据包D6中各取出第四块编码数据D6d,并从24个数据包的第19个数据包开始从之后6个数据包中各取出第一块编码数据D19a>D20a,D21a,D22a,D23a>D24a,(本应是7个,但由于24个数据包已全部进入发送队列,本次队列中的最后的位置闲置)依据如下排序顺序进行发送I个第四块编码数据D6d保持它在前一个传输周期的原有排序位置,其余6个排序位置由6个第一块编码数据依其所属数据包的排序顺序依次占据D19a、D20a, D21a, D22a, D23a、D6d, D24a,,如图4第7行所示;(14)重复循环子步骤(11)-(13)的操作,区别仅在于不正确的译码数据个数以及它们对应的编码数据在数据包中的块序数;校验正确的译码数据转确的为D19a,、D2(la,、D21a,、D22a,、D23a,, D24a,,接受端向发送端反馈它们相应的6个数据包接收正确,第一次错误的编码数据直接在下个周期重传与它同数据包的第二块编码数据(此次为0块),而连续错误的编码数据D6d则与之前收到的同数据包的编码数据D6a、D6b、D6。任意组合并且联合译码,然后再次校验,正确的译码数据为D6d与D6a、D6b, D6c的组合,接受端向发送端反馈它们相应的I个数据包D6接收正确,本周期传输的所有数据都经校验后正确,所以无需再下次周期重传,图4第8行反映了子步骤(14)中的最终反馈应答报文的内容;(15)第四周期后,所有数据包已正确传输,本次数据传输全部完成。在本次传输中,对于数据包D8,接收端利用了 D8a与D8b组合并联合译码,最终校验正确;对于数据包D2,接收端利用了 D2a、D2b、D2。组合并联合译码,最终校验正确;对于数据包D6,接收端利用了 D6a、D6b、D6c;、D6d组合并联合译码,最终校验正确;它们的编码率变成了原来的1/2、1/3、1/4,编码增益加大,而由于发送端的速率一致不变,接收端进行了对同一数据包的联合译码,波形速率会自动降低成原速率1/2、1/3、1/4,达成了自适应降速的功能。
权利要求
1.一种数据传输的自适应降速方法,顺序包括下述步骤 一.分包步骤发送端将待传送的全部数据顺序分成N个数据包,每个数据包的字节数目相等; 二 .编码步骤对N个数据包中各数据包Di,分别进行卷积码编码,每个数据包生成M块编码数据,共生成NXM块编码数据Dn,Di2. . .Dij, i = 1、2、…N,j = 1、2、…M,N、M为正整数; 三.数据传输步骤,包括下述子步骤 (3. I)在传输周期T内,从N个数据包的前L个数据包中各取出第一块编码数据,依据数据包的排序顺序进行发送,L^N; (3. 2)接收端收到L块编码数据,按照发送端的发送顺序依次对每块编码数据进行译码,得到L块译码数据,并利用循环校验判断各块译码数据是否正确,正确的译码数据则转子步骤(3. 15),对于不正确的译码数据则进行子步骤(3.3); (3. 3)接收端保留不正确的译码数据对应的K块编码数据,向发送端反馈应答报文,内容为K块不正确的译码数据对应的数据包接收错误,进行下一子步骤; (3. 4)在下一个传输周期中,发送端从K个接收错误的数据包中各取出第二块编码数据,并从N个数据包的第L+1个数据包开始,从之后L-K个数据包中各取出第一块编码数据,共L块编码数据,依据如下排序顺序进行发送其中K个第二块编码数据分别保持它们在前一个传输周期的原有排序位置,其余L-K个排序位置由L-K个第一块编码数据依其所属数据包的排序顺序依次占据; (3. 5)接收端收到L块编码数据,按照发送端的发送顺序依次对每块编码数据进行译码,得到L块译码数据,并利用循环校验判断各块译码数据是否正确,正确的译码数据则转子步骤(3. 15),对于不正确的译码数据则进行子步骤(3.6); (3. 6)接收端保留不正确的译码数据对应的各块编码数据,判断不正确的译码数据是否为第一块编码数据,是则转子步骤(3. 7),否则转子步骤(3.8); (3. 7)接收端向发送端反馈应答报文,内容为H块不正确的译码数据对应的数据包接收错误,在下一个传输周期中,发送端从H个接收错误的数据包中各取出第二块编码数据,H个第二块编码数据在发送时分别保持它们在前一个传输周期的原有排序位置,转子步骤(3. 10); (3. 8)接收端将不正确的译码数据相应的第二块编码数据与其对应的第一块编码数据联合译码,得到译码数据,并利用循环校验判断各译码数据是否正确,正确的译码数据则转子步骤(3. 15),对于不正确的译码数据则进行子步骤(3.9); (3. 9)接收端向发送端反馈应答报文,内容为P块译码数据对应的数据包接收错误;(3. 10)在下下个传输周期中发送端从P个接收错误的数据包中各取出第三块编码数据,并从N个数据包的第2L+1-K个数据包开始从之后L-H-P个数据包中各取出第一块编码数据,与子步骤(3.7)中的H个第二块编码一起,共L块编码数据,依据如下排序顺序进行发送其中H个第二块编码数据与P个第三块编码数据分别保持它们在前一个传输周期的原有排序位置,其余L-H-P个排序位置由L-H-P个第一块编码数据依其所属数据包的排序顺序依次占据; (3. 11)重复子步骤(3.5)-(3.7)的操作,区别仅在于其中不正确的译码数据属于第一块编码数据的个数为S块,对于不属于第一块编码数据,接收端将错误的译码数据对应数据包中本次所接收的Q块第二块编码数据或者R块第三块编码数据与之前保留的同数据包的各块编码数据进行任意组合然后联合译码,得到译码数据,并利用循环校验判断各块译码数据是否正确,正确的译码数据则转子步骤(3. 15),对于不正确的译码数据则进行子步骤(3.12);任意组合是指某块编码数据与同一数据包内的一块编码数据或多块编码数据组成编码数据组,编码数据组包括两块或两块以上的编码数据; (3. 12)接收端向发送端反馈应答报文,内容为Q+R块译码数据对应的数据包接收错误; (3. 13)在再下个周期中,发送端从S个接收错误的数据包中各取出第二块编码数据,从Q个接收错误的数据包中各取出第三块编码数据,从R个接收错误的数据包中各取出第 四块编码数据,并从N个数据包的第3L+1-K-H-P个数据包开始从之后L-S-Q-R个数据包中各取出第一块编码数据,依据如下排序顺序进行发送其中S个第二块编码数据,Q个第三块编码数据与R个第四块编码数据分别保持它们在前一个传输周期的原有排序位置,其余L-S-Q-R个排序位置由L-S-Q-R个第一块编码数据依其所属数据包的排序顺序依次占据; (3. 14)重复循环子步骤(3. 11)-(3. 13)的操作,区别仅在于不正确的译码数据个数以及它们对应的编码数据在数据包中的块序数;校验正确的译码数据转子步骤(3. 15),第一次错误的编码数据直接在下个周期重传与它同数据包的第二块编码数据,而连续错误的编码数据则与之前收到的同数据包的编码数据任意组合并且联合译码,然后再次校验,正确的译码数据转子步骤(3. 15),如果依旧错误则在下次周期重传与它同数据包下一块编码数据,在下次周期中,所有重传的编码数据需要与前次的传输位置保持一致,同时与未传输的剩余数据包的第一块编码数据凑足L块编码数据一同发送,此过程一直循环重复直到传完同一数据包的最后一块编码数据,如果所有组合的联合译码均不正确,则需要在下次周期重传相应数据包的第一块编码数据; (3. 15)接收端向发送端反馈应答报文,内容为该译码数据对应的数据包接收正确;直到N个数据包全部正确传输后整个传输过程结束;所述K、H、P、Q、R、S均为小于L的正整数。
全文摘要
一种数据传输的自适应降速方法,属于数据传输的数据处理方法,解决现有数据传输中无法利用前次传输的错误数据并需要额外操作的问题。本发明包括分包步骤、编码步骤和数据传输步骤,数据传输步骤过程为接收端对多个数据包逐一译码校验,校验正确,则发送端传输新数据包,否则发送端重传数据,接收端进行前一帧联合译码,此过程不断反复直至译码正确。本发明将传输数据分成多个数据包,使错误局部化,提高了重传的效率,并且利用编码技术,对同一段数据生成多块编码数据,从而可以在接收端实现联合译码,增加了对错误数据的利用率,同时实现了波形速率根据信道质量自适应变化,从而在传输中去除冗余信息与额外操作,进一步提高传输效率。
文档编号H04L1/00GK102957511SQ201210417899
公开日2013年3月6日 申请日期2012年10月26日 优先权日2012年10月26日
发明者胡健, 李鹰, 李莉, 包晓燕, 乔晓斌, 罗小宝, 张江林 申请人:中国船舶重工集团公司第七二二研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1