专利名称:一种用于消除短环的喷泉码编译码方法
技术领域:
本发明涉及一种用于消除短环的喷泉码编译码方法,属于通信技术领域。
背景技术:
在二十一世纪,随着通信技术的不断发展,信道编码技术也日趋成熟。近年来出现的一种无率码一喷泉码,具有较高的传输可靠性以及简单的编译码方法。在传统的自动反馈重传方法中,当接收端用户数较多,或者信道的条件比较差的时候,接收端用户发送的反馈信息可能会占据大多数网络资源,使得正常通信无法顺利进行。这种情况被称为“反馈风暴”。喷泉码作为一种前向纠错码(Forward error correction, FEC),可以有效地解决这个问题。信源端只需要源源不断地向信宿端发送编码符号,当信宿端接收到足够多的编码符号以保证高概率译码时,才向信源端发送一个比特的反馈信息。因此,喷泉码可以有效地减少用户的反馈量,提高传输系统的利用率。喷泉码的具体编码步骤如下(I)根据度分布函数随机地选择一个值d,该值为编码分组由几个数据包生成,d称为该次的编码分组的度数;(2)从原数据包分组中随机选择d个数据,将该d个数据进行模2和;(3)重复上述步骤,生成编码分组。喷泉码的译码方式为BP(Belief Propagations)译码,具体译码步骤如下(I)在接收到的编码数据中选择一个度为一的编码符号,将编码符号的值直接赋值给相连接的信源符号,从而恢复出该信源符号,同时删除连接该信源符号与编码符号的边。(2)将所有连接该信源符号和其余与之对应的编码符号的边删除,并且将该信源符号的值与编码符号的值进行模2和,所得结果分别赋给对应的编码符号。(3)重复上述步骤,生成译码分组。该译码方式也可以通过生成矩阵G来进行(I)搜索生成矩阵的每一列,如果该列的列重(列中的所有元素的和)为1,那么将该列所对应的编码符号的值赋给该列中“ I”所在位置所对应的信源符号,并将“ I ”所在位置所对应的行中所有元素置为0.(2)重复上述操作,直到完全译码或者找不到仅有一个元素为“I”的列为止。喷泉码在信源码字数k较大,即长码字时能够实现在较小的编码开销下高概率译码。但是,当信源码字数k较小,即短码字时,喷泉码的译码率并不令人满意,需要较大编码开销来实现高概率译码。其重要原因之一就是在喷泉码的二部图中存在较多的短环,尤其是长度为4的短环(下文中所提到的短环均默认为长度为4的短环),如图I所示。在图I中,V1V2V3V4代表信源码字,C1C2C3C4代表编码码字,可以看到V1V2C1C2构成了一个长度为4的短环。这些短环会阻碍译码过程的进行,导致译码的失败,降低译码率。
发明内容
本发明为了解决短环导致译码失败的问题,提出了一种用于消除短环的喷泉码编译码方法。在短码长喷泉码编码过程中,通过在接收端查找存在的短环,并将信息反馈到发送端,然后由发送端发送编码码字来消除短环,使得短码长喷泉码的译码率得到较大提高,实现喷泉码编码在较低编码开销下的高概率译码。本发明目的是通过如下技术方案实现的步骤1,发送端对待发送的k个信源码字进行喷泉编码,产生Ii1个编码符号,并将它们发送到接收端。步骤2,接收端对所接收到的编码码字进行BP译码,如果顺利恢复出所有信源码字,则译码终止;如果译码过程中,一旦在喷泉码生成矩阵中找不到仅有一个位置为“I”的列,则表示产生短环的可能性大,得到此时刻的喷泉码生成矩阵G,其中第i行第j列的元素为g(i,j),进行步骤3。步骤3,初始化计数参数s=0,以及一个长度为k的数组1=
。接收端对步骤2得到的生成矩阵G操作,首先搜索出其中所有列重大于等于2的列,按顺序记为1,2,. . .,R。将第r列(r = 1,2,···,! )的每行元素分别与第I列至第(r_l)列对应行元素一一进行比较。具体比较方法为若两列对应的行元素同为1,则s=s+l。当两列的所有对应行的元素比较完成后,判断s与2的关系。若s〈2,则第r列与该列的比较结束,s清零,进行与下一列进行比较;若s彡2,则得到满足g(m, j)=g(m, r)=l的行数m,将数组I中对应的m位置的元素加1,即I[m]++,然后s清零,再与下一列按照同样方法进行比较。直到第R列与第(R-I)列比较完毕,得到一个数组I。数组I中位置m上的元素值表示对应的第m个信源符号中包含的短环个数。步骤4,接收端将数组I反馈给发送端,发送端按由大到小的顺序,找出数组I中前H2个数值(η2〈ηι),并将此n2个数值在原数组I中的位置所对应的n2个信源符号直接作为编码符号发送到接收端参与译码,从而达到消除短环的目的。步骤5,接收端利用所接收到的步骤I的Ii1个编码符号以及步骤4的n2个编码符号,完成译码。本发明方法中n2过小则达不到将短环完全消除的目的;过大则会降低译码效率,根据实际通信要求进行调整。有益效果通过本发明方法可以在接收端有效地将短环消除,达到较大地提高译码率的目的;使得在信源码字较少时,喷泉码也可以在较低编码开销的情况下实现较高的译码率。由于短环多出现在短码长喷泉码中,所以本发明是主要针对短码长喷泉码的编码方式。
图I为背景技术的喷泉码中出现的短环示意图;图2为本发明的用于消除短环的喷泉码编译码方法流程图;图3为具体实施方式
中当信源符号数为40时,二元删除信道下不同n2的译码率比较图4为具体实施方式
中当信源符号数为80时,二元删除信道下不同n2的译码率比较图;图5为具体实施方式
中当信源符号数为40时,信噪比为Odb的加性高斯白噪声信道下不同n2的译码率比较图;图6为具体实施方式
中当信源符号数为80时,信噪比为2db的加性高斯白噪声信道下不同n2的译码率比较图。
具体实施例方式为使发明的目的,技术方案及优点更加清晰,下面将参照附图对本发明做进一步详细说明。本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。仿真中,发送端的信源符号数用k表示,所发送的编码符号数用η表示(η=ηι+η2)。为了说明本发明在多种信道下的普适性,本实施方式分别给出本发明方法在二元删除信道和加性高斯白噪声信道中的仿真过程与结果。在二元删除信道中,本实施方式分别进行了信源符号数k=40和k=80的仿真。在k=40时,最终产生的编码符号总数n=69 ;在k=80时,最终产生的编码符号总数n=132,其中H2分别设置为1,2,3,4,5,6,7,8,9,10。本实例给出在不同n2下接收端的译码率。为了使得实施方案更加清晰明了,我们假定信道删除概率为0,在每个n2的取值上,均进行5000次仿真。在加性高斯白噪声信道中,采用BPSK调制解调,k=40时信噪比设置为Odb,k=80时信噪比设置为2db。在每个n2的取值上,均进行5000次仿真。下面给出具体的仿真流程步骤1,发送端将k个信源符号进行喷泉编码,产生Ii1个编码符号,并将这些编码符号通过二元删除信道或者加性高斯白噪声信道发送到接收端。步骤2,接收端对接收到的编码码字进行BP译码,当出现短环使得译码不成功时,对生成矩阵做如下操作初始化s=0,以及长度为k的数组I。首先搜索出生成矩阵中所有列重大于等于2的列,并将这些列顺序记为1,2,. . . .,R。将第r列(r=l,2,…,R)的每行元素分别与第I列至第(r-Ι)列对应行元素一一进行比较。具体过程如下先将第2列与第I列的对应行元素一一相比较(即比较g(l,I)和g(l,2),g(2,I)和g(2,2),g(3,I)和g(3,2)....g(k,I)和g(k,2)),若二者同为1,则s=s+l.当所有对应行的元素比较完成时,判断若s小于2,则该列的比较结束,s清零,进行下一列的比较。若s大于等于2,则将满足g(m, l)=g (m, 2)=1的行数m对应的数组I的元素加一,即I [m]++,然后s清零,继续进行下一列比较。当第R列与之前列的比较结束之后,接收端将所得信息(数组I)反馈给发送端。步骤3,发送端接收到接收端的反馈信息之后,找出数组I中最大的n2个元素所对应的信源符号,并将其直接作为编码符号,通过二元删除信道或者加性高斯白噪声信道将其发送到接收端。步骤4,接收端在接收到n2个编码符号之后,继续进行译码。并得出译码率。图3给出了 k为40时二元删除信道下不同n2的译码率比较;图4给出了 k为80时二元删除信道下不同n2的译码率比较。由图3和图4可见,n2应该保持在一个合适的值以保证最大化地提高消除短环方法的译码率。在n2过大的时候译码率会降低,甚至不如传统的喷泉编码方法。在图3和图4中,n2的最合适的值均为4.图5给出了 k为40时信噪比为Odb的加性高斯白噪声信道下不同n2的译码率 比较;图6给出了 k为80时信噪比为2db的加性高斯白噪声信道下不同n2的译码率比较。由图6和图5可见,在加性高斯白噪声信道下,消除短环方法的译码率在n2的取值为I, 2, 3, 4, 5, 6, 7, 8, 9, 10时均好于传统喷泉编码方法,但是n2同样应该保持在一个合适的值以保证最大化地提高消除短环方法的译码率。在图6和图5中,n2的最合适的值也均为4.联合分析图3-图6可知,针对短码长喷泉码,无论是在二元删除信道还是加性高斯白噪声信道下,在n2设置为一个合适的值的时候,本发明的消除短环方法均可达到较大译码率的提升。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改,等同替换,改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种用于消除短环的喷泉码编译码方法,其特征在于包括如下步骤步骤1,发送端对待发送的k个信源码字进行喷泉编码,产生II1个编码符号,并发送到接收端;步骤2,接收端对所接收到的编码码字进行BP译码,得到译码不成功时刻的喷泉码生成矩阵G,其中第i行第j列的元素为g(i,j),进行步骤3 ;步骤3,初始化计数参数s=0,以及一个长度为k的数组1,1的各元素初始化为O ;接收端搜索出步骤2得到的生成矩阵G中所有列重大于等于2的列,按顺序记为1,2,,R ;将第r列的每行元素分别与第I列至第(r-Ι)列对应行元素一一进行比较;其中r=l,2,···,! ;具体比较方法为若两列对应的行元素同为1,则s=s+l ;完成两列所有对应行的元素比较后,判断s与2的关系;若s〈2,结束第r列与该列的比较,s清零,然后进行与下一列进行比较;若s彡2,则得到满足g(m, j)=g(m, r)=l的行数m,将数组I中对应的m位置的元素加I即I[m] = I[m]+1,然后s清零,再与下一列按照同样方法进行比较;直到第R列与第(R-I)列比较完毕,得到一个数组I ;步骤4,接收端将数组I反馈给发送端,发送端按由大到小的顺序,找出数组I中前n2个数值,η2〈ηι,并将此n2个数值在原数组I中的位置所对应的n2个信源符号直接作为编码符号发送到接收端参与译码;步骤5,接收端利用所接收到的步骤I的Ii1个编码符号以及步骤4的n2个编码符号,完成译码。
2.根据权利要求I所述的一种用于消除短环的喷泉码编译码方法,其特征在于n2根据通信要求调整。
3.根据权利要求I所述的一种用于消除短环的喷泉码编译码方法,其特征在于数组I中位置m上的元素值表示对应的第m个信源符号中包含的短环个数。
全文摘要
本发明涉及一种用于消除短环的喷泉码编译码方法,属于通信技术领域。首先在发送端进行短码长喷泉码编码,在接收端得到译码不成功时刻的喷泉码生成矩阵,对矩阵各列进行比较,得到数组I,反馈给发送端;按由大到小的顺序找到数组I中n2个元素值对应的信源符号作为编码符号直接发送到接收端参与译码,接收端利用所接收到的步骤1的n1个编码符号以及步骤4的n2个编码符号,消除短环,完成译码;使得短码长喷泉码的译码率得到较大提高,实现喷泉码编码在较低编码开销下的高概率译码。
文档编号H04L1/00GK102916780SQ20121041984
公开日2013年2月6日 申请日期2012年10月29日 优先权日2012年10月29日
发明者费泽松, 曹聪哲, 王妮炜, 贾岱, 邢成文, 匡镜明 申请人:北京理工大学