一种低复杂度的里德所罗门-卷积级联码迭代译码方法与流程

文档序号:15647936发布日期:2018-10-12 22:48阅读:221来源:国知局

本发明属于数字通信和信道编码领域,特别涉及一种里德所罗门-卷积级联码的低复杂度迭代译码方法。



背景技术:

信道编码是为了保证数字通信系统的传输可靠性,克服信道中的噪声和干扰,而专门设计的一类抗干扰技术和方法。在信道特性一定情况下,为了得到差错概率小的好码,就需要增加码的长度,但是译码复杂度与码长成指数关系,所以采用直接增加码长的方法不是一种有效办法。

为了解决纠错码的性能与译码器复杂性之间的矛盾,forney提出了级联码概念,以里德所罗门(rs)码为外码,卷积码为内码的里德所罗门-卷积级联(reed-solomonconvolutionalconcatenated,rscc)码是级联码的黄金搭配,既具有很强的纠随机错误的能力,又具有很强的纠突发错误的能力。因此,rscc码被广泛地应用于无线和空间通信。

rscc码的传统译码算法采用维特比(viterbi)算法和berlekamp-massey(bm)算法来分别译内码和外码,内外码只经过一次顺序译码,译码过程简单,然而由于没有充分利用内外码的信息,译码性能受限。在迭代译码算法中,外码译码器不是进行一次性判决,而是将译码结果反馈给内码译码器,内外码译码器间交换判决信息并分别译码若干次后,再输出最终的译码结果。虽然迭代译码算法能提供较大的性能增益,但是由于rs码的译码复杂度比较高,尤其是rs码软判决译码算法的复杂度非常高,因此rscc码的迭代译码算法复杂度很高,而且随着迭代次数的增加呈线性增长。



技术实现要素:

为了解决上述的技术问题,本发明的目的是提供一种低复杂度的里德所罗门-卷积级联码的迭代译码方法。

本发明解决其技术问题所采用的技术方案是:

针对里德所罗门-卷积级联码的低复杂度迭代译码方法,包括:

里德所罗门-卷积级联码的译码系统,包括:内码译码器,解交织器,外码译码器和交织器;包含以下步骤:

s1、初始化迭代次数为0,假设所有的rs码译码失败;

s2、判断迭代次数是否达到了预设的最大迭代次数,当迭代次数未达到预设的最大迭代次数时,继续执行步骤s3,否则,输出译码结果,终止译码;

s3、令搜索的列表数目为0;

s4、判断搜索的列表数目是否达到了预设的最大路径条数,当搜索的列表数目未达到预设的最大路径条数时,继续执行步骤s5;否则,执行步骤s9;

s5、将译码成功的rs码字作为列表维特比译码算法的约束信息,在网格图上串行搜索最优路径;

s6、当搜索的列表数大于0时,使用结合后向插值的gs算法对解交织后的次优路径进行译码,然后执行步骤s8,否则,继续执行步骤s7;

s7、使用gs算法对解交织后的最优路径进行rs码译码;

s8、判断是否有新的rs码字译出,若有,则令列表数加1,然后返回步骤s4,否则,继续执行步骤s9;

s9、判断是否所有的rs码字都被正确译出,若是,则输出译码结果,终止译码;否则,令迭代次数加1,然后返回步骤s2。

进一步,所述步骤s5中将译码成功的rs码字作为列表维特比译码算法的约束信息,其具体为:

结合每个rs码字的译码结果,将每个rs码字比特的确定性信息赋值给列表维特比译码算法中比特的先验概率:若该rs码字比特为0,则该rs码字比特的确定性信息为:p(ci=0)=1,p(ci=1)=0;若该rs码字比特为1,则该rs码字比特的确定性信息为:p(ci=0)=0,p(ci=1)=1;

其中,p(ci=0)表示该rs码字比特为0的确定性信息,p(ci=1)表示该rs码字比特为1的确定性信息。

进一步,所述步骤s6中使用结合后向插值的gs算法对解交织后的次优路径进行译码,其具体为:

s61、输入新的n个插值点(αi,β'i),和以重数为m经过n个插值点(αi,βi)的插值多项式集{gj(x,y):j∈{0,1}},令i=0;

s62、判断βi是否等于β'i,如果相等,则执行步骤s65,否则,执行步骤s63;

s63、使用后向插值将插值点(αi,βi)从g0(x,y)和g1(x,y)中移除;

s64、使用前向插值将新的插值点(αi,β'i)添加到g0(x,y)和g1(x,y)中;

s65、判断插值多项式是否经过所有新的插值点,若是,则执行步骤s66,否则,令i加1,返回步骤s62;

s66、执行gs算法的多项式分解算法,对多项式分解得到的因式进行重新编码,即可得到rs码字。

进一步,所述步骤s63中使用的后向插值算法,在该技术方案中,设插值重数均为1,需要将插值点(α,β)从插值多项式g0(x,y)和g1(x,y)中移除,插值多项式集合可表示成以下形式:gj(x,y)=gj,0(x)+ygj,1(x),j∈{0,1},则其具体为:

s631、计算g0,1(α)和g1,1(α);

s632、令u表示满足gj,1(α)不等于0的插值多项式集合中加权次数最小的多项式下标,v表示另一个插值多项式下标;

s633、判断gv,1(α)是否等于0,若等于0,则继续执行步骤s634,否则,令gv(x,y)=gv,1(α)gu(x,y)+gu,1(α)gv(x,y),然后继续执行步骤s634;

s634、令gv(x,y)=gv(x,y)/(x-α)。

本发明的有益效果是:本发明的针对里德所罗门-卷积级联码的低复杂度迭代译码方法,采用列表维特比算法译内码,并采用结合后向插值的gs算法译外码rs码,迭代地对rscc码进行译码,在保证rscc码的译码性能不降低的同时,通过后向插值重新利用上一次的插值结果,避免很多重复的前向插值过程,从而有效降低了迭代译码的复杂度

下面通过附图和实施例,对本发明的技术方案做进一步的详细叙述。

附图说明

图1为里德所罗门-卷积级联码的编译码系统。

图2为里德所罗门-卷积级联码的迭代译码框架。

图3为本发明提出的低复杂度迭代译码方法的流程图。

图4为本发明的低复杂度迭代译码方法与不同译码方法的效果对照图。

(图中使用的译码方法有传统的bm+viterbi译码算法,列表值为2的低复杂度迭代译码算法,迭代次数为3和30的迭代软判决译码算法)

具体实施方式

为了便于下文的描述,首先给出以下名词解释:

rscc码:reed-solomonconvolutionalconcatenated码,里德所罗门-卷积级联码;

lv算法:listviterbi算法,列表维特比算法;

bm算法:berlekamp-massey算法,rs码的硬判决译码算法;

gs算法:guruswami-sudan算法,rs码的硬判决列表译码算法,主要包含koetter插值和rr分解两个步骤。

里德所罗门-卷积级联码系统为:外码是gf(256)上的(255,223)rs码,内码是(2,1,7)卷积码。卷积码的生成多项式是:g1(x)=1+x+x3+x4+x6,g2(x)=1+x3+x4+x5+x6。交织度为8,即有8个rs码。设迭代次数为8,且列表维特比算法最优路径的搜索条数为2。

如图3所示,本发明提出的里德所罗门-卷积级联码的低复杂度迭代译码方法,包括以下步骤:

s1、初始化迭代次数为0,假设所有的rs码译码失败;对本实施例,一个级联码由8个交织的rs码生成,假设这8个rs码都译码失败;

s2、判断迭代次数是否达到了预设的最大迭代次数,当迭代次数未达到预设的最大迭代次数时,继续执行步骤s3,否则,输出译码结果,终止译码;本实施例中,预设的最大迭代次数为外码个数8;

s3、令搜索的列表数目为0;

s4、判断搜索的列表数目是否达到了预设的最大路径条数,当搜索的列表数目未达到预设的最大路径条数时,继续执行步骤s5;否则,执行步骤s9;本实施例中,预设的最大搜索路径条数为2;

s5、将译码成功的rs码字作为列表维特比译码算法的约束信息,在网格图上串行搜索最优路径:结合每个rs码字的译码结果,将每个rs码字比特的确定性信息赋值给列表维特比译码算法中比特的先验概率:若该rs码字比特为0,则该rs码字比特的确定性信息为:p(ci=0)=1,p(ci=1)=0;若该rs码字比特为1,则该rs码字比特的确定性信息为:p(ci=0)=0,p(ci=1)=1。

其中,p(ci=0)表示该rs码字比特为0的确定性信息,p(ci=1)表示该rs码字比特为1的确定性信息。

本实施例中,内码卷积码信息组的长度为255×8×8共16320个比特,为了使卷积码编码器回到全零状态,需要6个全零的收尾比特,因此每组信息对应的输出码长为32652,网格图包含16326个时间单元或层。对于译码成功的rs码字,其对应的列表维特比译码算法中比特的先验概率为其比特确定性信息。对于译码失败的rs码字,其对应的列表维特比译码算法中比特的先验概率均初始化为:p(ci=0)=p(ci=1)=0.5。这里,因为每个卷积码包含8个rs码字比特,因此,i=0,1,2,…,16319。

s6、当搜索的列表数大于0时,使用结合后向插值的gs算法对解交织后的次优路径进行译码,然后执行步骤s8,否则,继续执行步骤s7;其中,结合后向插值的gs算法具体为:

s61、输入新的n个插值点(αi,β'i),和以重数为m经过n个插值点(αi,βi)的插值多项式集{gj(x,y):j∈{0,1}},令i=0;本实施例中,插值点的个数n为rs码的码长255,插值重数均为1;

s62、判断βi是否等于β'i,如果相等,则执行步骤s65,否则,执行步骤s63;

s63、使用后向插值将插值点(αi,βi)从g0(x,y)和g1(x,y)中移除;假设需要将插值点(α,β)从插值多项式g0(x,y)和g1(x,y)中移除,插值多项式集合可表示成以下形式:gj(x,y)=gj,0(x)+ygj,1(x),j∈{0,1},则后向插值算法的具体步骤为:

s631、计算g0,1(α)和g1,1(α);在本实施例中,g0,1(x)和g1,1(x)的次数均不超过665;

s632、令u表示满足gj,1(α)不等于0的插值多项式集合中加权次数最小的多项式下标,v表示另一个插值多项式下标;

s633、判断gv,1(α)是否等于0,若等于0,则继续执行步骤s634,否则,令gv(x,y)=gv,1(α)gu(x,y)+gu,1(α)gv(x,y),然后继续执行步骤s634;

s634、令gv(x,y)=gv(x,y)/(x-α);

s64、使用前向插值将新的插值点(αi,β'i)添加到g0(x,y)和g1(x,y)中;在本实施例中,前向插值算法采用的是koetter插值算法;

s65、判断插值多项式是否经过所有新的插值点,若是,则执行步骤s66,否则,令i加1,返回步骤s62;

s66、执行gs算法的多项式分解算法,对多项式分解得到的因式进行重新编码,即可得到rs码字;在本实施例中,多项式分解算法采用的是rr分解算法,多项式分解得到的因式可能不止一个,对每个因式都进行编码得到多个候选码字,我们会选择与接受序列汉明距离最小的码字作为rs码的译码结果;

s7、使用gs算法对解交织后的最优路径进行rs码译码;

s8、判断是否有新的rs码字译出,若有,则令列表数加1,然后返回步骤s4,否则,继续执行步骤s9;

s9、判断是否所有的rs码字都被正确译出,若是,则输出译码结果,终止译码;否则,令迭代次数加1,然后返回步骤s2。在本实施例中,判断是否8个rs码字都已被正确译出,若是,则译码结束,否则,继续进行迭代译码。

图1是里德所罗门-卷积级联码编译码系统的示意图。在发送端,信息序列首先经过外码rs码编码得到多个rs码字,然后送入交织器,得到符号序列。把符号序列转化为二进制比特流送入内码卷积码编码器,得到码字。在接收端,受到噪声污染的接收序列先经过内码译码器,经过符号转换后再送入解交织器,最后经过外码译码器得到发送信息的估计序列。

图2是里德所罗门-卷积级联码的迭代译码框架。在接收端,接收序列经过内码译码器后,通过解交织器,被送入外码译码器。外码译码器将译码结果反馈给内码译码器,不是进行一次性判决。内外码译码器分别译码并交换判决信息若干次后,再输出最终的译码结果。内外码译码器间传递的信息称为外信息,它完全由译码过程获得。

图4是在加性高斯白噪声(awgn)信道下,采用二进制相位调制(bpsk),本实施例与不同译码方法的效果对照图,其中,纵坐标为cer(codeworderrorrate)。采用的译码算法有:传统的bm+viterbi译码算法;最大列表值为2低复杂度迭代译码算法;迭代次数为3和30的迭代软判决译码算法。仿真结果表明,当cer为10-4时,低复杂度迭代译码算法相比于传统的译码算法可获得约0.3db的性能增益,且可达到与迭代软判决译码算法类似的译码性能,但是其译码复杂度更低。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变型或替换均包含在本申请权利要求所限定的范围内。

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