一种LT码编解码方法与流程

文档序号:12490684阅读:2893来源:国知局
一种LT码编解码方法与流程

本发明涉及通信编解码技术,尤其是涉及一种LT码编解码方法。



背景技术:

随着科学技术的发展,通信已在人们的日常生活中发挥越来越重要的作用。小到一个房间中的Wi-Fi,大到遍及全国的3G网络,都需要通信技术的支持。而在不同的应用环境中,又对所采用的通信编码技术有不同的要求。在互联网上经常有点对点传输文件的需求。信息由一个发送方发给一个接收方。这时要求通信算法具有非常高的传输效率和较强的纠错效率。对于产生的少数错误可以通过重传的方式弥补。而在类似电视这样的广播网络中,相同的信息由一个发送方发给许许多多个接收方。在这样的情景下使用的通信算法需要有非常强的自我纠错能力。否则若每个接收端都将自己遇到的错误向发送端反馈然后重发,这样将对通信资源造成极大的浪费。综上所述,在不同的网络环境下,需要采用不同的通信编码技使实际系统的工作效率更高。

喷泉码是20世纪初提出的一种编码概念。相较于传统的编码技术,它有着反馈少,效率高,网络环境适应性强等特点。这些特点使得喷泉码在广播,高延迟网络等领域有着传统编码技术无法比拟的优势。而LT码作为首个具有实用意义(编解码时间复杂度较低)的喷泉码算法,已经被应用于广播网络,深空通信等许多领域,并取得了非常好的效果。

现有的LT码编解码方法如下:

在数据传输时,将长为N的文件分割成k=N/l个数据包(即每个数据包的长为l),并称每个数据包为输入符号,称每个编码包为输出符号。

编码算法(如图1所示):

在1~k范围内按某一分布Ω(称为编码度分布)随机选取一个整数d,其中k称为该码的码长,d称为输出符号的度;

在输入符号中均匀地随机且不重复地选取d个,将这d个输入符号相异或得到一个输出符号。

传输时,将每个输出符号和随机选取出的d个输入符号的序号一并发送给接收端。

解码算法:

1、接收一定数量的输出符号,根据输出符号和输入符号间的对应关系建立双向图,顶层实心节点代表输入符号,底层空心节点代表编输出符号,连接它们的边代表该输出符号是该输入符号的模二和分量(图2为一个简单的示例)。

2、任意选取一个度数为1的输出符号。如果不存在,则解码停止;如果存在,则通过简单的复制运算,即可恢复与之相连的唯一输入符号。

3、将已经恢复的输入符号模二和到与其相连的所有其他输出符号中,相应地,将双向图中对应的边删除,使得这些编码分组的度数减1。

4、重复步骤2、3直到所有输入符号都被恢复。

很明显,解码过程若一次解码失败,则第二次解码需要在接收到更多传输符号后重新开始。这中间有非常多重复的运算,极大影响了系统的工作效率。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种LT码编解码方法。

本发明的目的可以通过以下技术方案来实现:

一种LT码编解码方法,包括:

步骤S1:将长为N的文件均分为K个输入符号;

步骤S2:选取设定的编码度分布函数对所述K个输入符号进行LT编码得到多个输出符号,并对外发送;

还包括:

步骤S3:接收第一设定数量的输出符号;

步骤S4:根据输出符号和输入符号间的对应关系建立双向图;

步骤S5:判断是否存在度数为1的输出符号,若为是,则还原与之相连的唯一的输入符号的值为该输出符号的值,并执行步骤S7,若为否,则执行步骤S6;

步骤S6:将所有已经还原的输入符号保存为仅与该输入符号相连的输出符号,继续接收第二设定数量的输出符号并返回步骤S4;

步骤S7:将已经还原的输入符号模二和到与其相连的所有其他输出符号中,并将双向图中对应的边删除,使这些输出符号的度数减1;

步骤S8:判断是否所有的输入符号已还原,若为是,则解码结束,若为否,则返回步骤S5。

所述第一设定数量具体为一次解码成功概率为50%的所需输出符号的数量。

所述第二设定数量为:

k2=k'-k

其中:k2为第二设定数量,k'为一次解码成功概率为95%的所需输出符号的数量,k为一次解码成功概率为50%的所需输出符号的数量。

所述编码度分布函数具体为:

其中:μ(d)为编码度分布函数,ρ(d)为理想状态下的孤波分布,τ(d)为提高算法鲁棒性的鲁棒分布,s为鲁棒分布的临界点,δ为1与一次解码成功概率的差,c为鲁棒分布在总分布中所占的比例,可当做自由变量。

c取0.1。

与现有技术相比,本发明具有以下优点:

改进后的解码算法即使一次解码失败,也可以将此次解码的一部分结果保存起来,等到继续接收少量的传输符号后,在第一次解码结果的基础上再进行第二次解码,通过以上步骤实现二次解码的可能后,就可以在调整参数时将一次解码的成功率降低,即使一次解码失败,进行二次解码额外接收的输出符号与相应所带来的额外运算量仍小于因Ω平均值下降带来的收益,进而提高运行效率。

附图说明

图1为现有的LT码解码过程的流程示意图;

图2为双向图的简单示意图;

图3为本发明方法解码过程的流程示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

一种LT码编解码方法,分为编码和解码两个过程,。

其中编码过程大致与现有的方式相同,包括:

步骤S1:将长为N的文件均分为K个输入符号;

步骤S2:选取设定的编码度分布函数对K个输入符号进行LT编码得到多个输出符号,并对外发送;

本申请方案对解码算法做出一些改进,首先使一次解码的成功率降低,改进后的解码算法即使一次解码失败,也可以将此次解码的一部分结果保存起来,等到继续接收少量的传输符号后,在第一次解码结果的基础上再进行第二次解码,这样一来就省去了大量的重复计算。

如图3所示,本申请提供了一种独特的解码算法,即编解码方法还包括:

步骤S3:接收第一设定数量的输出符号;

步骤S4:根据输出符号和输入符号间的对应关系建立双向图;

步骤S5:判断是否存在度数为1的输出符号,若为是,则还原与之相连的唯一的输入符号的值为该输出符号的值,并执行步骤S7,若为否,则执行步骤S6;

步骤S6:将所有已经还原的输入符号保存为仅与该输入符号相连的输出符号,继续接收第二设定数量的输出符号并返回步骤S4;

步骤S7:将已经还原的输入符号模二和到与其相连的所有其他输出符号中,并将双向图中对应的边删除,使这些输出符号的度数减1;

步骤S8:判断是否所有的输入符号已还原,若为是,则解码结束,若为否,则返回步骤S5。

为方便说明,本节的全部数据都以要传输的文件长度K=10000为例,目标为使最后解码的成功率为在95%以上。

编码度分布函数具体为:

其中:μ(d)为编码度分布函数,ρ(d)为理想状态下的孤波分布,τ(d)为提高算法鲁棒性的鲁棒分布,s为鲁棒分布的临界点,δ为1与一次解码成功概率的差,c为鲁棒分布在总分布中所占的比例,可当做自由变量、取0.1。

参量δ亦是接收到指定个确知的输出符号后无法解码的概率的极限。

另外,进行一次解码时需要接收的输出符号数量ki为ki=KZ,令一次解码的成功率为50%,即δ=0.5,然后c取0.1。经过计算可得k=11000。此为进行一次解码需要接收的输出符号数。再令一次解码的成功率为95%,即δ=0.05,然后c取0.1。经过计算可得k'=11600。取二者的差值11600-11000=600为进行二次解码需要继续接收的输出符号数。

即:第一设定数量k1具体为一次解码成功概率为50%的所需输出符号的数量。

第二设定数量为:

k2=k'-k

其中:k2为第二设定数量,k'为一次解码成功概率为95%的所需输出符号的数量,k为一次解码成功概率为50%的所需输出符号的数量。

所有参数确定后,可以得出最后的编码与解码具体步骤如下。

首先按照上文的步骤计算得出编码度分布μ(d)

编码步骤:

(1)在1~10000范围内按分布μ(d)随机选取一个整数d。

(2)在输入符号中均匀地随机且不重复地选取d个,将这d个输入符号相异或得到一个输出符号。

传输时,将每个输出符号和随机选取出的d个输入符号的序号一并发送给接收端。

解码步骤:

(1)接收11000个输出符号。

(2)根据输出符号和输入符号间的对应关系建立双向图。

(3)任意选取一个度数为1的输出符号。如果不存在,则进入步骤(6);如果存在,则通过简单的复制运算,即可恢复与之相连的唯一输入符号。

(4)将已经恢复的输入符号模二和到与其相连的所有其他输出符号中。相应地,将双向图中对应的边删除,使得这些输出符号的度数减1。

(5)重复步骤(3),(4)直到所有输入符号都被恢复。

(6)将所有已经还原的输入符号转换为仅与该输入符号相连的输出符号。然后将这些输出符号和已接收到并处理了一半的输入符号放到一起,并清空已经还原的输入符号。

(7)继续接收600个输出符号,然后进入步骤(2)。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1