一种基于FPGA的RS编译码器实现方法与流程

文档序号:13424922阅读:374来源:国知局
一种基于FPGA的RS编译码器实现方法与流程

本发明属于信号传输技术领域,尤其是涉及一种基于fpga的rs编译码器实现方法。



背景技术:

随着信息时代的到来,人们对通信的的安全性与可靠性要求逐步提高,信息隐藏与数据保护已成为当下的研究热点,而纠错码算法的发展为信息隐藏提供了很好的解决方法,通过人为设计冗余、对数据进行改值、乱序等运算来为有效信息的传输带来可靠性保障。在实际信道上传输数字信号时,由于信道传输特性不理想及加性噪声的影响,所收到的数字信号不可避免地会发生错误。为了在已知信噪比的情况下达到一定的误比特率指标,首先应合理设计基带信号,选择调试、解调方式,采用频域均衡或时域均衡,使误比特率尽可能降低。但若误比特率仍不能满足要求,则必须采用信道编码,即差错控制编码。目前常用的纠错检错码有bch码,rs码,卷积码,turbo码,ldpc码等。其中bch码和rs码为循环码中的重要子类,与rs码相比,bch码的纠错个数较少,冗余码字所占比例较高,在传输数据较多时rs码能够提高编码效率,且其卓越的纠错能力使得它在工程应用中引人注目,已被多个国际、国内标准采用。



技术实现要素:

有鉴于此,本发明旨在提出一种基于fpga的rs编译码器实现方法,以解决现有的数字信号传输过程中容易出现错误的情况。

为达到上述目的,本发明的技术方案是这样实现的:

一种基于fpga的rs编译码器实现方法,其特征在于:通过除法电路实现rs编码;

实现rs译码的方法包括以下几个步骤;

s1、由码接收多项式r(x)计算校正子;

s2、采用bm迭代算法,确定错误位置多项式σ(x);

s3、确定错误估值函数;

s4、求解错误位置数和错误数值并进行纠错。

进一步的,所述rs编码的具体实现方法为:

设定义在gf(qm)域上分组长度n=qm-1,纠错个数为t,设计距离为δ的rs码,m=1,其可表示为rs(n,k);其生成多项式g(x)以α,α2,…,α2t为其全部的根,α为gf(qm)域上的本原元;对于同参数的bch码,其生成多项式g(x)是以α,α2,…,α2t为根的最低次数多项式,即为:

g(x)=lcm{φ1(x),φ2(x),...,φ2t(x)}式a

因为最小多项式φi(x)=x-αi,则式a可计算得到:

g(x)=(x-α)(x-α2)...(x-α2t)=g0+g1x+g2x2+...+g2t-1x2t-1+x2t式b

其中gi∈gf(q)0≤i<2t;由于xq-1-1的根是α,α2,…,α2t,因此xq-1-1能够被整除;所以用该生成多项式生成的rs码有2t个校验位,该码的最小距离至少为2t+1。

进一步的,所述步骤s1中计算校正子的方法,具体如下:

校正子s=[s1,s2,...,s2t]=[r0,r1,...,rn-1]×ht,其中h为监督矩阵,则矩阵式为:

ri为码接收多项式系数,将表达式带入求解校正子公式中,采用horner准则,将求解广义牛顿恒等式,则伴随式可等效为:

进一步的,所述步骤s2中,确定错误位置多项式σ(x)的方法,具体如下:

定义错误位置多项式其中σ0=1,σ(x)的系数σi与校正子分量si之间的关系为:

直接求解式c非常困难,一般采用bm迭代算法,其是基于自回归滤波器综合原理来求解最短反馈连接多项式σ(x)的过程,经过2t次迭代,通过递推方法求解σ(x);设第i次迭代后的σ(x)为

其中σ(i)(x)的次数用li表示;另外,设di为一个偏量,迭代参数的初值可以设为:i=0,σ(0)(x)=1,d0=s1,l0=0;则我们可以通过以下迭代过程来计算得到式d;

第一步,计算偏量第二步,进行第i+1次迭代,若di=0,则

若di≠0,则

其中j是第i次迭代之前的某次迭代次数,它满足dj≠0,且j-lj为最大值;当迭代第2t次时,σ(x)=σ2t(x);所以当接收到的信息中错误码元超过纠错能力t时,便不能准确计算出错误位置,而当错误数目不超过纠错能力t时,此即为真正的错误位置多项式。

进一步的,所述s3中,确定错误估值函数采用chien搜索算法,具体方法如下:

chien搜索采用t个乘法器,分别执行乘以α,α2,…,αt的运算,在初始状态时,将bm迭代过程中计算的σ,σ2,…,σt载入t个乘法器的寄存器,之后将这些乘法器移位n次,过程中若α(α-i)=0或则说明第i个位置是错误码元,再利用错误估值函数来确定错误数值,便可以在纠错能力内改正该码元上的错误。

相对于现有技术,本发明所述的基于fpga的rs编译码器实现方法具有以下优势:

本发明所述的基于fpga的rs编译码器实现方法在有限域中进行编译码运算,实现较为简单,避免了大量的复杂数学运算,并且减小信号传输过程中所受到的干扰,提高了信噪比。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例所述的rs编码电路示意图;

图2为本发明实施例所述的rs伴随式计算电路示意图;

图3为本发明实施例所述的chien搜索电路示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。

下面将参考附图并结合实施例来详细说明本发明。

一种基于fpga的rs编译码器实现方法,其特征在于:通过除法电路实现rs编码;

实现rs译码的方法包括以下几个步骤;

s1、由码接收多项式r(x)计算校正子;

s2、采用bm迭代算法,确定错误位置多项式σ(x);

s3、确定错误估值函数;

s4、求解错误位置数和错误数值并进行纠错。

rs编码的具体实现方法为:

设定义在gf(qm)域上分组长度n=qm-1,纠错个数为t,设计距离为δ的rs码,m=1,其可表示为rs(n,k);其生成多项式g(x)以α,α2,…,α2t为其全部的根,α为gf(qm)域上的本原元;对于同参数的bch码,其生成多项式g(x)是以α,α2,…,α2t为根的最低次数多项式,即为:

g(x)=lcm{φ1(x),φ2(x),...,φ2t(x)}式a

因为最小多项式φi(x)=x-αi,则式a可计算得到:

g(x)=(x-α)(x-α2)...(x-α2t)=g0+g1x+g2x2+...+g2t-1x2t-1+x2t式b

其中gi∈gf(q)0≤i<2t;由于xq-1-1的根是α,α2,…,α2t,因此xq-1-1能够被整除;所以用该生成多项式生成的rs码有2t个校验位,该码的最小距离至少为2t+1,以rs(255,223)为例,设计参数满足如下关系:码长n=255;信息符号长度k=223;校验位:2t=n-k=32;纠错能力t=16;每个符号的比特数为8。rs(255,223)算法设计及链路在xilinx的ise14.7中开发,选用isim仿时序,选用spartan6系列中的xc6slx100。

本原多项式:p(x)=x8+x4+x3+x2+1;

在进行rs编码时,令信息多项式为:

a(x)=a0+a1x+a2x2+...+ak-1xk-1

其中k=n-2t,用x2ta(x)除以g(x)得到的余式:

b(x)=b0+b1x+b2x2+...+b2t-1x2t-1

系数b0,b1,b2……b2t-2,b2t-1即为2t个校验位。

如图1所示,rs编码的方法是将信息多项式左移2t位得到x2ta(x),再用其除以生成多项式g(x),移位结束后在lfsr中得到的b0,b1,b2……b2t-2,b2t-1即可得到冗余位。实现时,将信息位按时钟依次进入lfsr进行移位运算,k个时钟后,我们将信息位保留,将移位过程中得到的lfsr寄存器中的值作为余式b(x)的系数依次输出,则r=n-k个时钟后可得到n位的rs编码。

步骤s1中计算校正子的方法,具体如下:

校正子s=[s1,s2,...,s2t]=[r0,r1,...,rn-1]×ht,其中h为监督矩阵,则表达式为:

ri为码接收多项式系数,将表达式带入求解校正子公式中,采用horner准则,将求解广义牛顿恒等式,则伴随式可等效为:

如图2所示,每个时钟周期进入一组接收码字,实现[r0,r1,...,rn-1]×ht的计算,其中h为校验矩阵,可用矩阵表示为对于码型rs(255,223),255个时钟周期后可接收完所有255个符号,同时得到全部32个伴随式系数s(i)。

进一步的,所述步骤s2中,确定错误位置多项式σ(x)的方法,具体如下:

定义错误位置多项式其中σ0=1,σ(x)的系数σi与校正子分量si之间的关系为:

直接求解式c非常困难,一般采用bm迭代算法,其是基于自回归滤波器综合原理来求解最短反馈连接多项式σ(x)的过程,经过2t次迭代,通过递推方法求解σ(x);设第i次迭代后的σ(x)为

其中σ(i)(x)的次数用li表示;另外,设di为一个偏量,迭代参数的初值可以设为:i=0,σ(0)(x)=1,d0=s1,l0=0;则我们可以通过以下迭代过程来计算得到式d;

第一步,计算偏量第二步,进行第i+1次迭代,若di=0,则

若di≠0,则

其中j是第i次迭代之前的某次迭代次数,它满足dj≠0,且j-lj为最大值;当迭代第2t次时,σ(x)=σ2t(x);所以当接收到的信息中错误码元超过纠错能力t时,便不能准确计算出错误位置,而当错误数目不超过纠错能力t时,此即为真正的错误位置多项式。

所述s3中,确定错误估值函数采用chien搜索算法,具体方法如下:

chien搜索采用t个乘法器,分别执行乘以α,α2,…,αt的运算,在初始状态时,将bm迭代过程中计算的σ,σ2,…,σt载入t个乘法器的寄存器,之后将这些乘法器移位n次,过程中若σ(α-i)=0或则说明第i个位置是错误码元,再利用错误估值函数来确定错误数值,便可以在纠错能力内改正该码元上的错误。

如图3所示,错误位置校验过程通过chien搜索系统,σi的初值为bm算法中求得的σ,σ2,…,σt,在从n级缓冲区中读取出rn-1前,t个乘法器执行乘法运算一次。乘法运算被执行,且σ1α1,σ2α2,σ3α3,……σvαv被存储在σ寄存器中,当且仅当1+σ1α1+σ2α2+……+σvαv=0时,逻辑电路输出1,否则输出0,从缓冲区中读出数位rn-1,并由的输出进行纠正。一旦rn-1译码完成,t个乘法器再工作一次,此时,σ1α2,σ2α4,……σvα2v被存储在σ寄存器中。校验和式1+σ1α2+σ2α4+……+σvα2v=0是否为0,从缓冲区中读出数位rn-2,并按照与rn-1相同方法进行纠正。将这一过程继续执行,直到从缓冲区中读出全部的接收向量。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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