里德-索罗蒙编码器实现方法

文档序号:7525525阅读:334来源:国知局
专利名称:里德-索罗蒙编码器实现方法
技术领域
本发明涉及数字通信技术,特别涉及一种里德-索罗蒙编码器实现方法。
背景技术
里德-索罗蒙码(Reed-Solomon码,RS码)是一种线性纠错码,由于它具有同时 纠突发错误和随机错误的能力,并且纠突发错误能力很强,因而广泛用于数据通信和数据 存储系统的差错控制中。RS码是一种多元BCH码,定义在Galois有限域GF (2m)上,m为一个符号包含的二 进制序列的位数,纠t个错误的RS码的参数如下码长n = 2m-l个符号信息码k = n-2t个符号校验码z = 2t = n-k个符号最小码距d = 2t+l个符号对于一个长度为η个符号的RS码,每个符号均是Galois有限域GF (2m)中的一个
元素。能纠t个错误的RS码的生成多项式为 2 -1<formula>formula see original document page 3</formula>其中α i为g(x)的根,并且是GF(2m)中的一个元素。假设需要编码的信息码为m(x),校验码为p(X),最终形成要发送的数据块由信息 码和校验码组成,并且被称为码字C (x)。该码字用一个η-1阶的多项式表示为c (χ) = x2tm (χ)+ρ (χ)其中p(x)是一个2t_l阶的多项式,它由下面的公式生成ρ (x) = X2tm(X)modg(X)其中 g (χ)为生成多项式RS编码器就是采用特殊的电路用于计算P(X),并将最终计算获得的校验码P(X) 放在信息码的后面组成一个码子C(X)。通常,一个(n,k)RS编码器的实现都采用一个2t级的反馈移位寄存器(FSR)来实 现,典型的RS编码器结构如图1所示从图1可以看到在传统的RS编码器中存在全局反馈信号送到各个有限域乘法器, 当需要使用可纠正较多错误的RS码时,由于电路中的反馈路径太长,这会限制编码器的开 关速度。其次在传统的RS编码器中输入编码器中的信息码必须是m bits位宽的符号。因 此当系统中出现送入编码器内的信息是多个并行的符号(nXm bits位宽)时就只能通过 提高编码器工作时钟频率或把信息码进行并串转换来满足编码电路的要求。从上面的描述中可以看到传统的RS编码器存在一些不足。1.由于在电路中有全局反馈信号,随着使用的RS码可纠正错误能力的提高,电路 的反馈路径就更长,编码器的工作时钟频率就不能跑得太快,无法满足高速数字传输系统 的需要。
2.由于传统RS编码器的输入位宽为一个符号,因此当同时送入编码器的符号大 于一个时,只能通过提高编码器工作时钟频率或把信息码进行并串转换来满足系统的要 求。但是提高编码器工作频率与上面提到的反馈路径长工作时钟不能太快存在矛盾,而把 信息进行并串转换会增加系统的复杂度和资源,并且造成信息码经过编码器的延时很大, 在某些应用中较大的编码延时是不被允许的。

发明内容
本发明要解决的技术问题是提供一种里德_索罗蒙编码器实现方法, 在不提高系 统工作时钟频率的基础上,实现并行多符号数据输入的里德-索罗蒙编码,减小数据通过 编码器的时延。为解决上述技术问题,本发明的里德-索罗蒙编码器实现方法,通过电路计算校 验码,然后将计算获得的校验码放在信息码的后面组成一个码字;其特征在于,校验码的计 算方式如下,一 . <吏用 Lagrange interpolation 计豸 Ei,
<formula>formula see original document page 4</formula>Ei的数据格式为
<formula>formula see original document page 4</formula>
将计算得到的Ei存入存储器中保存,二.把信息码送入多符号并行输入的伴随式计算电路,计算f(l),f(a),.... f ( a 2t_0,计算 f (1),f ( a ),….f ( a 2^)的公式如下
<formula>formula see original document page 4</formula>
如果一个信息码的符号数k不等于MXN,就在信息码输入编码器前在信息码前面 添加数值为0的符号使得信息码最终的符号数等于MXN ;三.从存储器中读出Ei与f (Cii)相乘,获得最终的校验码,计算公式如下
<formula>formula see original document page 4</formula>其中,m(x)是信息码,p(x)是校验码,dinNu+v是输入的信息码符号,Ei是以1,α, a2··· a 2H为节点的2t_l次插值基函数,α为有限域GF(2m)的本原元,a 1 ( a j)是RS码生 成多项式g U)的2t个根,t是编码器最大纠错个数,η是一个里德_索罗蒙编码码字的符号 数,k是信息码的符号数,m为一个符号包含的二进制序列的位数,i、j是零或正整数,并且 0彡j彡n-k-Ι,Ο彡i彡n-k-l,n-k-l = 2t_l,M、N为正整数,u、v是整数且0彡u彡M-1, 0彡ν彡N-I。本发明的里德-索罗蒙编码器实现方法,编码器实现中由于不需要使用较长的反 馈电路,可以在不提高系统工作时钟频率的基础上,实现并行多符号数据输入,工作于较高 时钟电路中,减小数据通过编码器的时延,特别适用于高速数字传输系统。


下面结合附图及具体实施方式
对本发明作进一步详细说明。图1是传统典型的RS编码器结构示意图;图2是多符号并行输入的伴随式计算电路结构图;图3是伴随式计算模块内部框图;图4是本发明的里德_索罗蒙编码器实现方法示意图;图5是本发明的里德_索罗蒙编码器实现方法一实施方式的伴随式计算框图;图6是本发明的里德-索罗蒙编码器实现方法一实施方式的伴随式计算模块内部 框图;图7是本发明的本发明的里德-索罗蒙编码器实现方法一实施方式的校验码计算 结构图。
具体实施例方式对于RS编码后得到的码字c (χ),应当存在一个有限域GF (2m)上的校验矩阵H,使 得码字c (χ)与校验矩阵H相乘的到的伴随式S为0。定义校验矩阵H为
"1 1 1 ··· 1 “ 1 a a1 ··· a"_lH= 1 2 [a2)2 …(a2)"‘
1 α2'"1 (a2"1)2 …(a21-1)"'1其中α 1为生成多项式g(x)的2t个根。令c(x) = [C。C1-Cn^2 cn_J = [po P1... Pn-H m0 Iii1-Hik^1]
P 1 1 …1 T「0]
1 α α2 ... α""1 0S= [Po Px ... Pn-kA % ^ ·" ^-Jx 1 ^2 (“2)…(^)" = 0
1 O2t-1 (α2'-1)2 …k由于α 1可以预先知道,所以我们可以得到下面的等式
"ι ιι "|「 「ιι … ι 「
1 11Po111m0
1 a …α"""ριa"~ka-k+l ... α""1巧
· ··X=χ
· · · · · · _'、
·· * · ■ ·
1 P-1 …(《2'-1 广-1J L^--J [(α2'~Τ ( 2,-'Γ+Ι …(《2'_Τ」L^1.
因为信息码m(x)是已知的,上面等式中的右边部分可以在信息码已知的情况下 采用RS解码电路中计算伴随式的方法进行计算,因此上式可以表示为
<formula>formula see original document page 6</formula>
f (α D是信息码通过伴随式计算电路后的结果,现在可以看到新的RS编码电路要 实现的就是如何通过上面的公式计算Pi。本发明的一实施方式是使用Lagrange interpolation (拉格朗日插值法)的方法 去计算Pi。另外也可以使用求矩阵A的逆矩阵A—1,并与矩阵F相乘的方法计算Pi。其中矩 阵A表示如下。
<formula>formula see original document page 6</formula>矩阵F表示如下
<formula>formula see original document page 6</formula>本发明的RS编码器一实施方式的实现步骤如下1.使用 Lagrange interpolation 计算 Ei,Ei 是以 1,α,α 2... α 为节点的 2t_l
次插值基函数。<formula>formula see original document page 6</formula>Ei的数据格式为
<formula>formula see original document page 6</formula>将计算得到的Ei存入ROM中保存;2.把信息码送入多符号并行输入的伴随式计算电路,计算伴随式f(l), f(a),….f(a2H)。多符号并行输入的伴随式计算结构图如图2所示,把一个信息码的多个符号并行 送入2t个伴随式计算模块,2t个伴随式计算模块分别计算输出f(l),f( a ),f( α 2),..., f (a 2tI。伴随式计算模块内部框图如图3所示,在伴随式计算模块内把当前送入的N个符 号%00与Ciiv做乘累加运算,然后再与a iN做乘法运算,并把第u次计算的结果同u-1次 计算结果相加,在当前信息码的符号全都通过了乘累加运算后,把最终的结果再与a 32相 乘得到f (a 0。
如果一个信息码的符号数k不等于MXN,就在信息码输入编码器前在信息码前面 添加数值为0的符号使得信息码最终的符号数等于MXN。3.当计算出f(l),f(a),…· f ( α 后,从ROM中读出Ei与f ( α D相乘,获得最终的校验码ρ (χ)。计算公式如下<formula>formula see original document page 7</formula>
下面给出在IOG EPON(Ethernet Passive Optical Network,以太无源光网络)系 统中一实施例。在IOG EPON系统中采用了基于流的RS (255,223)作为前向纠错编码,该系统对编 码器的编码速度和时延有下列要求1.数据速率快,以每个时钟节拍8个符号的速率勻速进入RS编码器,并且工作时 钟运行在156MHz。2.要求编码器的时延较小,且固定。3.编码器在硬件实现时面积小。该系统要求作为一个编码块的一个码字的符号数η是255个,一个码字中包含的 信息码符号数k是223个,校验码符号个数2t为32个,为了实现方便,每个编码块前添加 一个数值为0的符号,构成224个信息码符号,然后分28个时钟节拍,每个时钟节拍送8个 信息码符号进入多符号并行伴随式计算模块。在IOG EPON中实现的里德-索罗蒙码编码器结构如图4所示。多符号并行输入伴随式的计算公式如下<formula>formula see original document page 7</formula>
该伴随式计算框图如图5所示,伴随式计算模块如图6所示。图6是每次送入一组 八个并行的符号的伴随式计算模块内部框图,信息码的八个符号din8u+。,din8u+1,…,din8u+6, 肚11811+7并行送入到伴随式计算模块,肚118_同α相乘,肚11811+1同α1相乘,…,乜11811+6同α 6i 相乘,肚11811+7同Ci7i相乘,然后累加,然后再与α iM故乘法运算,并把第u次计算的结果同 U-I次计算结果相加,在当前信息码的M组符号全都通过了乘累加运算后,把最终的结果再 与α 32相乘得到f (Cii)。在计算出伴随式后,从ROM表中读取Ei值,并计算校验码。计算公式如下<formula>formula see original document page 7</formula>上式中的Ei表示如下<formula>formula see original document page 7</formula>
根据上面两个公式可得到ρ (χ)内部元素计算公式如下<formula>formula see original document page 7</formula>对应的校验码计算结构图如图7所示。该实施例中,η = 255,k = 223,t = 16,N =8,M = 28。上述实施方式及实施例中,m(x)是信息码,ρ (χ)是校验码,dinNu+v是输入的信息码符号,Ei是以1,α, α2··· α 2H为节点的2t_l次插值基函数,α为有限域GF (2m)的本 原元,Qi(Cij)是RS码生成多项式g(x)的2t个根,t是编码器最大纠错个数,η是一个里 德_索罗蒙编码码字的符号数,k是信息码的符号数,m为一个符号包含的二进制序列的位 数,i、j是零或正整数,并且O≤j≤n-k-Ι,Ο≤i≤n-k-l,n-k-l = 2t_l,M、N为正整数, U、ν是整数且 ≤u≤M-1,0 ^ ν ^ N-I0 本发明的里德_索罗蒙编码器实现方法,在确保不增加系统复杂度和资源的基础上,实现了对并行符号的RS编码,缩短了编码时延。并且能够工作在较高的时钟频率上,可 以满足高速数据传输系统对RS编码速度的要求。
权利要求
一种里德-索罗蒙编码器实现方法,通过电路计算校验码,然后将计算获得的校验码放在信息码的后面组成一个码字;其特征在于,校验码的计算方式如下,一.使用拉格朗日插值法计算Ei, <mrow><msub> <mi>E</mi> <mi>i</mi></msub><mo>=</mo><mfrac> <mrow><munder> <mi>&Pi;</mi> <mrow><mi>j</mi><mo>&NotEqual;</mo><mi>i</mi> </mrow></munder><mrow> <mo>(</mo> <mi>x</mi> <mo>-</mo> <msup><mi>&alpha;</mi><mi>j</mi> </msup> <mo>)</mo></mrow> </mrow> <mrow><munder> <mi>&Pi;</mi> <mrow><mi>j</mi><mo>&NotEqual;</mo><mi>i</mi> </mrow></munder><mrow> <mo>(</mo> <msup><mi>&alpha;</mi><mi>i</mi> </msup> <mo>-</mo> <msup><mi>&alpha;</mi><mi>j</mi> </msup> <mo>)</mo></mrow> </mrow></mfrac> </mrow>Ei的数据格式为Ei=ei,n-k-1xn-k-1+ei,n-k-2xn-k-2+…+ei,1x+ei,0将计算得到的Ei存入存储器中保存;二.把信息码送入多符号并行输入的伴随式计算电路,计算f(1),f(α),….f(α2t-1),计算f(1),f(α),….f(α2t-1)的公式如下 <mrow><mi>f</mi><mrow> <mo>(</mo> <msup><mi>&alpha;</mi><mi>i</mi> </msup> <mo>)</mo></mrow><mo>=</mo><munderover> <mi>&Sigma;</mi> <mrow><mi>u</mi><mo>=</mo><mn>0</mn> </mrow> <mrow><mi>M</mi><mo>-</mo><mn>1</mn> </mrow></munderover><munderover> <mi>&Sigma;</mi> <mrow><mi>V</mi><mo>=</mo><mn>0</mn> </mrow> <mrow><mi>N</mi><mo>-</mo><mn>1</mn> </mrow></munderover><msub> <mi>din</mi> <mrow><mi>Nu</mi><mo>+</mo><mi>v</mi> </mrow></msub><msup> <mi>&alpha;</mi> <mrow><mrow> <mo>(</mo> <mi>Nu</mi> <mo>+</mo> <mi>v</mi> <mo>)</mo></mrow><mi>i</mi> </mrow></msup><mo>=</mo><mrow> <mo>(</mo> <munderover><mi>&Sigma;</mi><mrow> <mi>u</mi> <mo>=</mo> <mn>0</mn></mrow><mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn></mrow> </munderover> <mrow><mo>(</mo><msup> <mrow><mo>(</mo><msup> <mi>&alpha;</mi> <mi>i</mi></msup><mo>)</mo> </mrow> <mi>Nu</mi></msup><munderover> <mi>&Sigma;</mi> <mrow><mi>v</mi><mo>=</mo><mn>0</mn> </mrow> <mrow><mi>N</mi><mo>-</mo><mn>1</mn> </mrow></munderover><msub> <mi>din</mi> <mrow><mi>Nu</mi><mo>+</mo><mi>v</mi> </mrow></msub><msup> <mrow><mo>(</mo><msup> <mi>&alpha;</mi> <mi>i</mi></msup><mo>)</mo> </mrow> <mi>v</mi></msup><mo>)</mo> </mrow> <mo>)</mo></mrow><msup> <mi>&alpha;</mi> <mn>32</mn></msup> </mrow>如果一个信息码的符号数k不等于M×N,就在信息码输入编码器前在信息码前面添加数值为0的符号使得信息码最终的符号数等于M×N;三.从存储器中读出Ei与f(αi)相乘,获得最终的校验码,计算公式如下 <mrow><mi>p</mi><mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo></mrow><mo>=</mo><msub> <mi>p</mi> <mrow><mi>n</mi><mo>-</mo><mi>k</mi><mo>-</mo><mn>1</mn> </mrow></msub><msup> <mi>x</mi> <mrow><mi>n</mi><mo>-</mo><mi>k</mi><mo>-</mo><mn>1</mn> </mrow></msup><mo>+</mo><msub> <mi>p</mi> <mrow><mi>n</mi><mo>-</mo><mi>k</mi><mo>-</mo><mn>2</mn> </mrow></msub><msup> <mi>x</mi> <mrow><mi>n</mi><mo>-</mo><mi>k</mi><mo>-</mo><mn>2</mn> </mrow></msup><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msub> <mi>p</mi> <mn>0</mn></msub><mo>=</mo><munderover> <mi>&Sigma;</mi> <mrow><mi>i</mi><mo>=</mo><mn>0</mn> </mrow> <mrow><mi>n</mi><mo>-</mo><mi>k</mi><mo>-</mo><mn>1</mn> </mrow></munderover><mi>f</mi><mrow> <mo>(</mo> <msup><mi>&alpha;</mi><mi>i</mi> </msup> <mo>)</mo></mrow><msub> <mi>E</mi> <mi>i</mi></msub><mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo></mrow> </mrow>其中,m(x)是信息码,p(x)是校验码,dinNu+v是输入的信息码符号,Ei是以1,α,α2…α2t-1为节点的2t-1次插值基函数,α为有限域GF(2m)的本原元,αi或αj是RS码生成多项式g(x)的2t个根,t是编码器最大纠错个数,n是一个里德-索罗蒙编码码字的符号数,k是信息码的符号数,m为一个符号包含的二进制序列的位数,i、j是零或正整数,并且0≤j≤n-k-1,0≤i≤n-k-1,n-k-1=2t-1,M、N为正整数,u、v是整数且0≤u≤M-1,0≤v≤N-1。
2.根据权利要求1所述的里德-索罗蒙编码器实现方法,其特征在于,计算f(a 0时, 首先把信息码分割为N个符号为一组的输入信号mu(x) = {dinNu+0, dinNu+1, ... , dinNu-N-1}, 送入伴随式计算电路内的2t个伴随式计算模块,在伴随式计算模块内把当前输入的N个符 号mu(x)与a iv做乘累加运算,然后再与a iN做乘法运算,并把第u次计算的结果同u-1次 计算结果相加,在当前信息码的符号全都通过了乘累加运算后,把最终的结果再与a 32相 乘得到f(ai)。
3.根据权利要求1或2所述的里德-索罗蒙编码器实现方法,其特征在于,n= 255,k =223,t = 16,N = 8,M = 28。
全文摘要
本发明公开了一种里德-索罗蒙编码器实现方法,校验码的计算方式是,根据有限域GF(2m)的本原元α计算Ei存入存储器,把信息码送入多符号并行输入的伴随式计算电路计算f(αi),从存储器中读出Ei与f(αi)相乘,获得最终的校验码。本发明的里德-索罗蒙编码器实现方法,能在不提高系统工作时钟频率的基础上,实现并行多符号数据输入的里德-索罗蒙编码,减小数据通过编码器的时延。
文档编号H03M13/15GK101834615SQ20091005694
公开日2010年9月15日 申请日期2009年3月12日 优先权日2009年3月12日
发明者李东川, 王星, 胡新宇 申请人:普然通讯技术(上海)有限公司;普然技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1