发明名称 一种应用于GPON的16位FEC解码实现方法
摘要 本发明涉及一种应用于GPON的16位FEC解码实现方法。现有的技术无法实现16位FEC解码。本发明方法首先接收RS码,并让RS码经过异步FIFO提速,其次求解提速后的RS码伴随式,然后将求出的伴随式应用到改进的欧几里德算法中,求解错误位置和错误值的多项式。最后使用钱搜索算法查找错误位置,利用福尼算法计算错误值,将错误值与错误位置上接收到的值异或得到正确值,完成解码纠错过程。本发明在用MEA算法时分别采用三路并行计算,缩短了MEA计算的时间,同时分别用了两个钱搜索和福尼算法解决了只用一个钱搜索和福尼算法模块在16位RS解码时存在的问题。
申请公布号 CN101674090A 申请公布日期 2010.03.17
申请号 CN200910153200.X 申请日期 2009.09.28
申请人 杭州电子科技大学;杭州初灵信息技术股份有限公司 发明人 陈科明;庄世辉;洪爱金;马琪;潘剑侠;胡睿;尹法纪;王晓晖
分类号 H03M13/15(2006.01)I 主分类号 H03M13/15(2006.01)I
代理机构 杭州求是专利事务所有限公司 代理人 杜 军
主权项 1.一种应用于GPON的16位FEC解码实现方法,其特征在于该方法包括如下步骤:步骤(1).接收RS码,并让RS码经过异步FIFO提速;步骤(2).求经过提速后的RS码伴随式S<sub>j</sub>,S<sub>j</sub>=r<sub>n-1</sub>(α<sup>j</sup>)<sup>n-1</sup>+r<sub>n-2</sub>(α<sup>j</sup>)<sup>n-2</sup>+....+r<sub>1</sub>α<sup>j</sup>+r<sub>0</sub>,其中r<sub>0</sub>~r<sub>n-1</sub>为RS码的各个码字,n=255,0≤j≤15,α<sup>j</sup>是生成多项式g(x)=(x+1)(x+α)....(x+α<sup>15</sup>)的各个根;步骤(3).将求出的伴随式S<sub>j</sub>应用到改进的欧几里德算法中,求w(x)和σ(x);具体方法是:当(deg(R<sub>i-1</sub>(x))≥8&amp;&amp;(l<sub>i-1</sub>≥0))时<maths num="0001"><![CDATA[<math><mrow><msub><mi>R</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mo>[</mo><msub><mi>b</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><msub><mi>R</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>]</mo><mo>-</mo><msup><mi>x</mi><mrow><mo>|</mo><msub><mi>l</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>|</mo></mrow></msup><mo>[</mo><msub><mi>a</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><msub><mi>Q</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>Q<sub>i</sub>(x)=Q<sub>i-1</sub>(x)<maths num="0002"><![CDATA[<math><mrow><msub><mi>L</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mo>[</mo><msub><mi>b</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><msub><mi>L</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>]</mo><mo>-</mo><msup><mi>x</mi><mrow><mo>|</mo><msub><mi>l</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>|</mo></mrow></msup><mo>[</mo><msub><mi>a</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><msub><mi>U</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>U<sub>i</sub>(x)=U<sub>i-1</sub>(x)当(deg(R<sub>i-1</sub>(x))≥8&amp;&amp;(l<sub>i-1</sub>≤0))时<maths num="0003"><![CDATA[<math><mrow><msub><mi>R</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mo>[</mo><msub><mi>a</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><msub><mi>Q</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>]</mo><mo>-</mo><msup><mi>x</mi><mrow><mo>|</mo><msub><mi>l</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>|</mo></mrow></msup><mo>[</mo><msub><mi>b</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><msub><mi>R</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>Q<sub>i</sub>(x)=R<sub>i-1</sub>(x)<maths num="0004"><![CDATA[<math><mrow><msub><mi>L</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mo>[</mo><msub><mi>a</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><msub><mi>U</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>]</mo><mo>-</mo><msup><mi>x</mi><mrow><mo>|</mo><msub><mi>l</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>|</mo></mrow></msup><mo>[</mo><msub><mi>b</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><msub><mi>L</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>U<sub>i</sub>(x)=L<sub>i-1</sub>(x)初始值:R<sub>0</sub>(x)=x<sup>2i</sup>;Q<sub>0</sub>(x)=S<sub>j</sub>;L<sub>0</sub>(x)=0;U<sub>0</sub>(x)=1;其中t为能纠错的最大错误个数,t=8;i表示迭代的次数;deg(R<sub>i-1</sub>(x))和deg(Q<sub>i-1</sub>(x))分别为R<sub>i-1</sub>(x)和Q<sub>i-1</sub>(x)的非零最高幂次,a<sub>i-1</sub>和b<sub>i-1</sub>是R<sub>i-1</sub>(x)和Q<sub>i-1</sub>(x)最高幂次的系数;l<sub>i-1</sub>=deg(R<sub>i-1</sub>(x))-deg(Q<sub>i-1</sub>(x));每次迭代就是将R<sub>i</sub>(x)或Q<sub>i</sub>(x)的最高幂次的系数变成零;当deg(R<sub>i-1</sub>(x))<8时,令w(x)=R<sub>i-1</sub>(x),σ(x)=L<sub>i-1</sub>(x);步骤(4).使用钱搜索算法查找错误位置,具体方法是:设接收码字多项式为r<sub>n-1</sub>x<sup>n-1</sup>+r<sub>n-2</sub>x<sup>n-2</sup>+....+r<sub>1</sub>x+r<sub>0</sub>;按r<sub>n-1</sub>到r<sub>0</sub>的顺序依次将α、α<sup>2</sup>......α<sup>n-2</sup>、α<sup>n-1</sup>代入σ(x)验根;哪次代入后σ(x)的值为零,说明这个位置上的码字发生了错误;利用福尼算法计算错误值e<sub>i</sub>,具体方法是:<maths num="0005"><![CDATA[<math><mrow><msub><mi>e</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><mi>w</mi><mrow><mo>(</mo><msubsup><mi>&beta;</mi><mi>i</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow></mrow><mrow><msub><mi>&sigma;</mi><mi>odd</mi></msub><mrow><mo>(</mo><msubsup><mi>&beta;</mi><mi>i</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow></mrow></mfrac><mo>,</mo></mrow></math>]]></maths>其中β<sub>i</sub><sup>-1</sup>为σ(x)多项式的根,<maths num="0006"><![CDATA[<math><mrow><msub><mi>&sigma;</mi><mi>odd</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>&sigma;</mi><mn>1</mn></msub><mi>x</mi><mo>+</mo><msub><mi>&sigma;</mi><mn>3</mn></msub><msup><mi>x</mi><mn>3</mn></msup><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msub><mi>&sigma;</mi><msub><mi>t</mi><mi>odd</mi></msub></msub><msup><mi>x</mi><msub><mi>t</mi><mi>odd</mi></msub></msup><mo>;</mo></mrow></math>]]></maths>步骤(5).将错误值与错误位置上接收到的值异或得到正确值。
地址 310018浙江省杭州市江干区下沙高教园区2号大街