适合物理层无速率编码传输的自适应流水线传输方法
【专利摘要】本发明公开了一种适合物理层无速率编码传输的自适应流水线传输方法。发送端先将数据包经过无速率编码产生足够多的编码包,然后将编码包拆分成多个编码包块并封装成子帧。每次发送新的数据包的子帧时,同时对下一个数据包进行无速率编码和子帧封装,检测信道,接收上一个数据包的ACK。接收端在接收数据包N的子帧时,同时也在对数据包i-1进行无速率译码。若在接收数据包i的子帧的过程中数据包i-1成功译码,则一旦接收的数据包i的子帧数超过启动译码的门限值,立即启动数据包i的译码,并在接收完数据包i的子帧后发送数据包i-1的ACK。
【专利说明】适合物理层无速率编码传输的自适应流水线传输方法
【技术领域】
[0001]本发明涉及通信领域的信道编码和传输技术,尤其涉及一种适合物理层无速率编码传输的自适应流水线传输方法。
【背景技术】
[0002]通信系统的基本目的在于将信息由信源高效、可靠、安全地传送到信宿。有扰通信信道中的噪声会不可避免地对传输信息产生不同程度的干扰,从而可能降低通信可靠性。所以通信系统设计的核心问题就是在存在随机噪声的信道中如何克服干扰,减小信息传输的差错,同时又保证信息传输的效率。为了克服信道中各种噪声的干扰,人们提出了纠错编码的方法以实现可靠传输。在香农以前,人们都认为增加信道的信息传输速率总要引起错误概率的增加,认为要使错误概率为零,则传输速率只能为零。1948年,香农建立了信息论,为纠错编码的研究指明了方向。香农提出,对每个信道可以根据它的噪声干扰特性计算出它的容量C,所有低于信道容量C的速率R均是可达的,即当R〈C时,总存在一系列码,当码长η —c?时,最大误码概率趋于O。这一理论创造性的颠覆了关于人们对于通信的认识,而寻找能够实际应用的逼近香农极限的编码方案也就成了纠错编码理论的最终目标。[0003]自信道编码定理提出以来,如何构造一个逼近信道容量限的实用编码成了众多研究学者竟相研究的课题,并逐渐形成信息论的一个重要分支——信道编码理论。几十多年来,通过众多学者,特别是有关数学和信息论学术界的研究人员五十多年的共同努力,目前已经取得了很多成果。如已经相当成熟的线性分组码,编码器有记忆的卷积码,1993年由Berror, Glavieux和Thitimajashia提出的与香农极限只差几个分贝的Turbo码,之后出现的另一种可以逼近香农极限的低密度校验码LDPC码等。
[0004]然而这些信道编码在设计时,通常先根据信道状态信息估计信道参数,根据信道参数设计一个码率固定为R的信道纠错编码(由k个输入符号得到η个输出符号,则码率为R=k/n)。当估计的信道参数大于实际的信道参数时,虽然可以实现可靠传输,但是造成了传输的浪费,因为此时可以使用更高码率的信道纠错编码;当估计的信道参数小于实际的信道参数时,不能实现可靠传输,此时需要更低码率的信道纠错编码。而且很多时候,信道还是随时变化或者无法提前判断的,这个时候这些传统的编码就显得难以应付。于是出现了码率可变的无速率码。对于无速率码,由原始数据产生的编码数据包是随着编码过程而源源不断产生的,根据译码的需要可多可少,只要保证能成功译码即可。实际传输的码率取决于实际发送的编码包数目,而需要发送的编码包数目则取决于当时的信道状况。
[0005]无速率码具有三个重要属性:I)自适应链路速率适配:其最终速率决定于信道特性,不需要在传输前估计信道特性而固定码率,实际传输的码率取决于当时的信道状况。2)无速率属性(流属性):发送端可以源源不断的输出编码包,形成一个可以无限延续的编码包流,而没有任何速率约束;3)桶积水效应:接收端不断收集编码包,收集到足够多的编码包即能恢复出所有原始数据包。正是由于无速率码的三个重要属性,使其在广播信道,认知,网络传输,反馈代价较大的通信场合等各个方面具有广泛的应用前景。[0006]目前关于无速率码在实际系统中的应用,主要集中在物理层以上的传输。而对于在物理层采用无速率编码传输的应用几乎是一片空白,尤其是在信道不断变化的通信环境下。
【发明内容】
[0007]本发明的目的是针对现有技术的不足,提供一种适合物理层无速率编码传输的自适应流水线传输方法。
[0008]本发明的目的是通过以下技术方案来实现的:适合物理层无速率编码传输的自适应流水线传输方法,发送端先将数据包经过无速率编码产生足够多的编码包,然后将编码包拆分成多个编码包块并封装成子帧。每次发送新的数据包的子帧时,会连续发送一定数目的子帧,同时对下一个数据包进行无速率编码和子帧封装,然后检测信道,接收上一个数据包的ACK。设发送端连续发送了数据包i的子帧,接着便检测信道,等待接收上一个数据包1-Ι的ACK。若检测ACK超时,则发送数据包1-Ι的冗余子帧,再次检测信道等待接收ACK,直到接收到ACK或者检测超时;若接收到数据包1-Ι的ACK,则根据发送的数据包1-1的子帧数更新接下来数据包i+Ι需要连续发送的子帧数,再发送数据包i+Ι的子帧。接收端在接收数据包N的子帧时,同时也在对数据包1-Ι进行无速率译码。若在接收数据包i的子帧的过程中数据包1-Ι成功译码,则一旦接收的数据包i的子帧数超过启动译码的门限值,立即启动数据包i的译码,并在接收完数据包i的子帧后发送数据包1-Ι的ACK。本发明方法包括发送端的处理方法、接收端的处理方法和自适应调整发送子帧数方法;
[0009]设发送端连续发送数据包i的子帧数为TVjx,平均连续发送子帧数为Atlp,且有关系式
【权利要求】
1.适合物理层无速率编码传输的自适应流水线传输方法,其特征在于,发送端先将数据包经过无速率编码产生足够多的编码包,然后将编码包拆分成多个编码包块并封装成子帧,每次发送新的数据包的子帧时,会连续发送一定数目的子帧,同时对下一个数据包进行无速率编码和子帧封装,然后检测信道,接收上一个数据包的ACK,设发送端连续发送了数据包i的子帧,接着便检测信道,等待接收上一个数据包i_l的ACK,若检测ACK超时,则发送数据包i_l的冗余子帧,再次检测信道等待接收ACK,直到接收到ACK或者检测超时;若接收到数据包i_l的ACK,则根据发送的数据包1-Ι的子帧数更新接下来数据包i+Ι需要连续发送的子帧数,再发送数据包i+Ι的子帧,接收端在接收数据包N的子帧时,同时也在对数据包i_l进行无速率译码,若在接收数据包i的子帧的过程中数据包i_l成功译码,则一旦接收的数据包i的子帧数超过启动译码的门限值,立即启动数据包i的译码,并在接收完数据包i的子帧后发送数据包i_l的ACK,本发明方法包括发送端的处理方法、接收端的处理方法和自适应调整发送子帧数方法; 设发送端连续发送数据包i的子帧数为Nlrx,平均连续发送子帧数为Nir)-,且有关系式 K- == Wirnd(N1remp); 其中f (.)为更新连续发送子帧数算法函数,round O为四舍五入函数; 发送端的状态机为,发送端先发送当前数据包的子帧,然后进入CS状态检测上一个数据包的ACK ;若检测到信号,则进入RX状态处理ACK,更新Α?:1,然后返回TX状态发送下一个数据包的子帧;否则,发送上一个数据包的冗余子帧,发送端的具体处理步骤如下: a.取数据包i,进行无速率编码产生足够多的编码包,然后将编码包拆分成多段,并分别封装成子帧; b.连续发送个数据包i的子帧,同时读取新的数据包i+Ι进行无速率编码和子帧封装; c.进入CS状态检测信道,若检测到信号,则进入步骤d;若检测ACK超时,则进入步骤e ; d.进入RX状态解调信号,若信号为接收端反馈的上一个数据包i_l的ACK,则释放数据包i_l的子帧资源,按式子K- = f{N^mp)和Ni;: = round{N'Tcmp)更新N 和ivf,i增加1,返回步骤b ;否则,进入步骤e ; e.发送数据包i_l的冗余子帧,返回步骤c; 接收端的状态机为,接收端先进入CS状态检测信道,检测到信号后进入接收状态接收并解调信号,若收到的信号为当前正在译码的数据包i_l的子帧,将该子帧的数据加入译码器参与译码,同时读取当前译码器的结果;如果译码成功,则反馈数据包i_l的ACK,并启动数据包i的译码;若收到的信号为数据包i的子帧,则将该子帧的数据存入一个缓存器,当收到数据包i的码率低于当前信道容量时,读取译码器的结果,若数据包i_l译码成功,则启动数据包i的译码,并在接收完数据包i的子帧后反馈数据包i_l的ACK,接收端具体的处理步骤如下: a.进入CS状态检测信道,若检测到信号,则进入步骤b ;否则继续检测信道;b.设当前的数据包序号为i_l,则若收到的子帧为数据包i的子帧,则进入步骤c;若收到的子帧为新的数据包i+2的子帧,则进入步骤d ;若收到的子帧为当前正在译码的数据包i_l的子帧,则将该子帧的数据加入译码器参与译码,并读取译码器的译码结果,若数据包i_l成功译码,则向发送端反馈数据包i_l的ACK ;若数据包1-Ι未成功译码,则返回步骤a; c.将数据包i的子帧的数据按子帧的序号存入一个缓存器,若收到的数据包i的子帧数超过启动译码的门限值,则读取当前译码器的状态,若数据包i_l已经译码成功,则启动数据包i的译码,并在收完数据包i的最后一个子帧后反馈数据包i_l的ACK ;若数据包1-1未成功译码,则返回步骤a; d.将数据包i+2的子帧的数据存入缓存器,同时将序号i加1,返回步骤a。
2.根据权利要求1所述的适合物理层无速率编码传输的自适应流水线传输方法,其特征在于,发送端在收到ACK后会更新WLp和^丨::1,其基本思想是当发送端需要发送冗余的数据包比例较高时,则增加发送的子帧数;若发送的数据包有极高的比例不需要发送冗余子帧,则降低发送的子帧数,设数据包首次发送的子帧数初始值为#1,为了提高参数调整的精度和准度,每次统计最新发送的K个消息包的平均子帧数Λ^1,.来更新变量和K,则更新和N1;'1步骤如下: a.初始化,N0Te—= N^x,计数器 Counter 置 O ; b.收到一个ACK帧,计数器Counter加I,判断计数器Counter是否为K,若Counter等于K,则将Counter置0,进入步骤c ;否则,等待下一个ACK,然后返回步骤b ; c.统计最近K个消息包所发送的平均子帧数#
【文档编号】H04L1/16GK103944675SQ201410136267
【公开日】2014年7月23日 申请日期:2014年4月4日 优先权日:2014年4月4日
【发明者】张朝阳, 屠坤, 姚创沐, 余启联, 杨潇翔, 付攀玉, 张婧 申请人:浙江大学