一种RS码译码方法及装置与流程

文档序号:11278914阅读:318来源:国知局
一种RS码译码方法及装置与流程

本发明涉及通信技术领域,特别是涉及一种rs码译码方法及装置。



背景技术:

rs(reed-solomon)码是一种既能纠随机错误又能纠突发错误的多进制分组信道差错控制码,随着以fpga为代表的可编程大规模集成电路vlsi技术的迅猛发展,rs码也得到了广泛应用,其广泛应用于各种通信系统及数据存储中。rs码纠错能力强,更适合恶劣通信环境的应用,但rs码的译码复杂性随着码长的增加而激增。

在复杂的信道传输条件下,使用rs码作为信道编译码可以提高传输的可靠性。对比编码而言,rs码译码的复杂性较高,需要的存储空间较大,资源耗费较为严重。现有的rs码译码步骤较为复杂,硬件实现起来更加困难。

所以,如何高效实现rs码译码,减小硬件实现难度,缩减硬件资源,提高译码速度,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种rs码译码方法及装置,以高效实现rs码译码,减小硬件实现难度,缩减硬件资源,提高译码速度。

为解决上述技术问题,本发明提供如下技术方案:

一种rs码译码方法,包括:

接收码多项式r(x);

根据码多项式r(x),计算伴随式si;

根据伴随式si和修正的迭代算法,计算错误位置多项式σ(x)和错误值多项式ω(x);

使用钱搜索求解错误位置多项式σ(x)的根,确定错误位置数和错误位置;

通过错误值多项式ω(x)计算错误值,获得错误图样e(x);

根据码多项式r(x)和错误图样e(x),获得针对码多项式r(x)的译码结果。

在本发明的一种具体实施方式中,所述根据伴随式si和修正的迭代算法,计算错误位置多项式σ(x)和错误值多项式ω(x),包括:

根据伴随式si,确定错误位置多项式σ(x)、错误值多项式ω(x)的初始条件分别为:σ0(x)=1,ω0(x)=1,dj=s1,φ0(x)=1,其中,i=1,2,…,2t,dj为计算修正值,

更新序列号j;

根据dj与0的对比结果,确定迭代规则;

使用所述迭代规则计算错误位置多项式σ(x)和错误值多项式ω(x);

更新dj,并重复执行所述更新序列号j的步骤,直至j=2t-1,确定错误位置多项式σ(x)和错误值多项式ω(x)。

在本发明的一种具体实施方式中,所述根据dj与0的对比结果,确定迭代规则,包括:

如果dj=0,则确定迭代规则为第一迭代规则:

σj+1(x)=σj(x);

ωj+1(x)=ωj(x);

φj+1(x)=xφj(x);

在本发明的一种具体实施方式中,所述根据dj与0的对比结果,确定迭代规则,包括:

如果dj≠0,则确定迭代规则为第二迭代规则:

σj+1(x)=σj(x)+djj(x);

其中,在时,φj+1(x)=xφj(x),时,

在本发明的一种具体实施方式中,所述更新dj,包括:

根据以下公式更新dj:

在本发明的一种具体实施方式中,所述根据码多项式r(x),计算伴随式si,包括:

根据码多项式r(x)和以下公式,计算伴随式si:

si=((((yn-1·αi+yn-2)·αi+yn-3)·αi+yn-4)·αi…)·αi+y0;

其中,i=1,2,…,2t。

在本发明的一种具体实施方式中,所述通过错误值多项式ω(x)计算错误值,获得错误图样e(x),包括:

根据以下公式计算错误值yi,获得错误图样e(x):

在本发明的一种具体实施方式中,rs码为(31,15)rs码,

通过以下公式计算错误值yi的分母:

通过以下公式计算错误值yi的分子:

一种rs码译码装置,包括:

码多项式接收模块,用于接收码多项式r(x);

伴随式计算模块,用于根据码多项式r(x),计算伴随式si;

错误计算模块,用于根据伴随式si和修正的迭代算法,计算错误位置多项式σ(x)和错误值多项式ω(x);

错误确定模块,用于使用钱搜索求解错误位置多项式σ(x)的根,确定错误位置数和错误位置;

错误图样获得模块,用于通过错误值多项式ω(x)计算错误值,获得错误图样e(x);

译码结果获得模块,用于根据码多项式r(x)和错误图样e(x),获得针对码多项式r(x)的译码结果。

在本发明的一种具体实施方式中,所述错误计算模块,具体用于:

根据伴随式si,确定错误位置多项式σ(x)、错误值多项式ω(x)的初始条件分别为:σ0(x)=1,ω0(x)=1,dj=s1,φ0(x)=1,其中,i=1,2,…,2t,dj为计算修正值,

更新序列号j;

根据dj与0的对比结果,确定迭代规则;

使用所述迭代规则计算错误位置多项式σ(x)和错误值多项式ω(x);

更新dj,并重复执行所述更新序列号j的步骤,直至j=2t-1,确定错误位置多项式σ(x)和错误值多项式ω(x)。

应用本发明实施例所提供的技术方案,在接收到码多项式后,根据码多项式,计算伴随式,根据伴随式和修正的迭代算法,计算错误位置多项式和错误值多项式,使用钱搜索求解错误位置多项式的根,确定错误位置数和错误位置,通过错误值多项式计算错误值,获得错误图样,根据码多项式和错误图样,获得针对码多项式的译码结果。通过修正迭代算法实现了rs码的高效译码,减小了硬件实现难度,缩减了硬件资源,提高了译码速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种rs码译码方法的实施流程图;

图2为本发明实施例中错误位置多项式和错误值多项式计算流程图;

图3为本发明实施例中一种rs码译码装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1所示,为本发明实施例所提供的一种rs码译码方法的实施流程图,该方法可以包括以下步骤:

s110:接收码多项式r(x)。

在编码过程中,使用rs码对在信道中待传输信息进行编码,获得码多项式,在译码过程中,可以接收码多项式r(x)。

s120:根据码多项式r(x),计算伴随式si。

根据接收到的码多项式r(x),可以计算伴随式si。

假设错误图样e(x)=en-1xn-1+en-2xn-2+…+e1x+e0,ei为gf(2m)的元素。若信道产生t个错误,分别位于xi,相应的错误值为yi,i=1,2,…,2t。

则有:e(x)=y1x1+y2x2+…+ytxt。

伴随式si的计算式为:

在本发明的一种具体实施方式中,可以根据码多项式r(x)和公式(1),计算伴随式si:

si=((((yn-1·αi+yn-2)·αi+yn-3)·αi+yn-4)·αi…)·αi+y0,i=1,2,…,2t公式(1)

即:

s1=((((yn-1·α+yn-2)·α+yn-3)·α+yn-4)·α…)·α+y0;

s2=((((yn-1·α2+yn-2)·α2+yn-3)·α2+yn-4)·α2…)·α2+y0;

……

s2t=((((yn-1·α2t+yn-2)·α2t+yn-3)·α2t+yn-4)·α2t…)·α2t+y0。

这样更方便使用fpga实现,用veriloghdl语言来描述伴随式si的计算过程,硬件实现变得简单,简化了计算量。

在计算伴随式时,可以采用乒乓操作:设置两个用来存储输入数据y0、……、yn-1的临时存储器,在接收一组数据并存储的过程中,取出另一组已经存储的数据,同时进行译码,过程由乒乓开关来操作。

s130:根据伴随式si和修正的迭代算法,计算错误位置多项式σ(x)和错误值多项式ω(x)。

在步骤s120计算得到伴随式si,根据伴随式si和修正的迭代算法,可以计算错误位置多项式σ(x)和错误值多项式ω(x)。

在本发明的一种具体实施方式中,步骤s130可以包括以下步骤:

步骤一:根据伴随式si,确定错误位置多项式σ(x)、错误值多项式ω(x)的初始条件分别为:σ0(x)=1,ω0(x)=1,dj=s1,φ0(x)=1,其中,i=1,2,…,2t,dj为计算修正值,

步骤二:更新序列号j;

步骤三:根据dj与0的对比结果,确定迭代规则;

步骤四:使用迭代规则计算错误位置多项式σ(x)和错误值多项式ω(x);

步骤五:更新dj,并重复执行更新序列号j的步骤,直至j=2t-1,确定错误位置多项式σ(x)和错误值多项式ω(x)。

为便于描述,将上述五个步骤结合起来进行说明。

在现有技术中,多是通过bm迭代算法来计算错误位置多项式σ(x)和错误值多项式ω(x),具体计算公式为:

其中,i满足最大,i<j,且di≠0。在求解错误位置多项式σ(x)和错误值多项式ω(x)的迭代过程中,i是一个不确定值。采用这个迭代算法计算每一步σ(x)和ω(x)时,其迭代过程都需要回溯此前的计算结果,来确定i值,导致两个多项式的计算相当复杂,使得fpga编程实现极为不便。

本发明实施例中对bm迭代算法进行修正,获得修正的迭代算法。

参见图2所示,根据伴随式si,可以确定错误位置多项式σ(x)、错误值多项式ω(x)的初始条件分别为:σ0(x)=1,ω0(x)=1,dj=s1,φ0(x)=1,其中,i=1,2…,t,dj为计算修正值,

令j=j+1,更新序列号j。更新序列号j后,根据dj与0的对比结果,可以确定迭代规则。

具体的,如果dj=0,则可以确定迭代规则为第一迭代规则:

σj+1(x)=σj(x);

ωj+1(x)=ωj(x);

φj+1(x)=xφj(x);

如果dj≠0,则可以确定迭代规则为第二迭代规则:

σj+1(x)=σj(x)+djj(x);

其中,在时,φj+1(x)=xφj(x),时,

使用确定的迭代规则可以计算错误位置多项式σ(x)和错误值多项式ω(x)。

判断j是否等于2t-1,如果否,则更新dj,具体的,可以使用公式(2)更新dj:

重复执行更新j的步骤,直至j=2t-1,确定错误位置多项式σ(x)和错误值多项式ω(x):

σj(x)=σj+1(x);

ωj(x)=ωj+1(x)。

假设在第j步迭代时,已经确定了i,那么σi(x)也就确定了,则是对所有di≠0的中最大的,可以称为修正项。

令第j步迭代中原迭代关系式转换为:

σj+1(x)=σj(x)-djj(x);

此与i完全无关。且φj(x)和的计算也与i无关。

本发明实施例修正的迭代算法简单快速,在迭代过程中只需存储最近一次迭代的结果,前面的迭代结果在完成迭代后都可以舍弃,所需存储空间也降低到很小。另外,降低了算法的迭代次数。相对于原bm迭代算法,修正的迭代算法在迭代过程中,不再需要回溯此前的结果,从而极大的简化了错误位置多项式σ(x)和错误值多项式ω(x)的计算,降低了处理难度。

s140:使用钱搜索求解错误位置多项式σ(x)的根,确定错误位置数和错误位置。

错误位置多项式σ(x)的根即为实际错误位置。使用钱搜索可以求解得到错误位置多项式σ(x)的根,从而可以确定出错误位置数和错误位置。使用钱搜索求解错误位置多项式σ(x)的根为现有技术,本发明实施例对此不再赘述。

s150:通过错误值多项式ω(x)计算错误值,获得错误图样e(x)。

在本发明实施例中,可以根据公式(3)计算错误值yi,获得错误图样e(x):

为在fpga中简单实现,在本发明的一种具体实施方式中,如果rs码为(31,15)rs码,则可以通过以下公式计算错误值yi的分母:

通过以下公式计算错误值yi的分子:

根据不同的d值,可以方便得到错误图样e(x)。

s160:根据码多项式r(x)和错误图样e(x),获得针对码多项式r(x)的译码结果。

通过步骤s110至步骤s150获得了码多项式r(x)和错误图样e(x),根据码多项式r(x)和错误图样e(x),可以获得针对码多项式r(x)的译码结果。具体的译码结果c(x)=r(x)^e(x)。最终完成译码。

应用本发明实施例所提供的方法,在接收到码多项式后,根据码多项式,计算伴随式,根据伴随式和修正的迭代算法,计算错误位置多项式和错误值多项式,使用钱搜索求解错误位置多项式的根,确定错误位置数和错误位置,通过错误值多项式计算错误值,获得错误图样,根据码多项式和错误图样,获得针对码多项式的译码结果。通过修正迭代算法实现了rs码的高效译码,减小了硬件实现难度,缩减了硬件资源,提高了译码速度。

相应于上面的方法实施例,本发明实施例还提供了一种rs码译码装置,下文描述的一种rs码译码装置与上文描述的一种rs码译码方法可相互对应参照。

参见图3所示,该装置包括以下模块:

码多项式接收模块310,用于接收码多项式r(x);

伴随式计算模块320,用于根据码多项式r(x),计算伴随式si;

错误计算模块330,用于根据伴随式si和修正的迭代算法,计算错误位置多项式σ(x)和错误值多项式ω(x);

错误确定模块340,用于使用钱搜索求解错误位置多项式σ(x)的根,确定错误位置数和错误位置;

错误图样获得模块350,用于通过错误值多项式ω(x)计算错误值,获得错误图样e(x);

译码结果获得模块360,用于根据码多项式r(x)和错误图样e(x),获得针对码多项式r(x)的译码结果。

应用本发明实施例所提供的装置,在接收到码多项式后,根据码多项式,计算伴随式,根据伴随式和修正的迭代算法,计算错误位置多项式和错误值多项式,使用钱搜索求解错误位置多项式的根,确定错误位置数和错误位置,通过错误值多项式计算错误值,获得错误图样,根据码多项式和错误图样,获得针对码多项式的译码结果。通过修正迭代算法实现了rs码的高效译码,减小了硬件实现难度,缩减了硬件资源,提高了译码速度。

在本发明的一种具体实施方式中,所述错误计算模块330,具体用于:

根据伴随式si,确定错误位置多项式σ(x)、错误值多项式ω(x)的初始条件分别为:σ0(x)=1,ω0(x)=1,dj=s1,φ0(x)=1,其中,i=1,2,…,2t,dj为计算修正值,

更新序列号j;

根据dj与0的对比结果,确定迭代规则;

使用所述迭代规则计算错误位置多项式σ(x)和错误值多项式ω(x);

更新dj,并重复执行所述更新序列号j的步骤,直至j=2t-1,确定错误位置多项式σ(x)和错误值多项式ω(x)。

在本发明的一种具体实施方式中,所述错误计算模块330,具体用于:

如果dj=0,则确定迭代规则为第一迭代规则:

σj+1(x)=σj(x);

ωj+1(x)=ωj(x);

φj+1(x)=xφj(x);

在本发明的一种具体实施方式中,所述错误计算模块330,具体用于:

如果dj≠0,则确定迭代规则为第二迭代规则:

σj+1(x)=σj(x)+djj(x);

其中,在时,φj+1(x)=xφj(x),时,

在本发明的一种具体实施方式中,所述错误计算模块330,具体用于:

根据以下公式更新dj:

在本发明的一种具体实施方式中,所述伴随式计算模块320,具体用于:

根据码多项式r(x)和以下公式,计算伴随式si:

si=((((yn-1·αi+yn-2)αi+yn-3)·αi+yn-4)·αi…)·αi+y0;

其中,i=1,2,…,2t。

在本发明的一种具体实施方式中,所述错误图样获得模块350,具体用于:

根据以下公式计算错误值yi,获得错误图样e(x):

在本发明的一种具体实施方式中,rs码为(31,15)rs码,所述错误图样获得模块350,具体用于:

通过以下公式计算错误值yi的分母:

通过以下公式计算错误值yi的分子:

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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