网站大量收购独家精品文档,联系QQ:2885784924

BCH种译码算法之比较.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
BCH种译码算法之比较

BCH三种译码算法之比较 龙进凯 崔小欣 北京大学信息科学技术学院微电子学研究院 摘要 本文从BCH译码中错位多项式的求解这一关键步骤入手,详细分析了彼得森算法(Peterson)、伯利坎普算法(Berlekamp)和欧几里得算法(Euclidean)这三种译码算法的数学原理,并给出了三种算法相应的硬件实现。文章的最后还给出了三种算法的实现比较,希望能够对BCH译码工作起到一定的参考价值。 关键词:错位多项式,彼得森算法,伯利坎普算法,欧几里得算法 1 引言 二进制BCH译码一般来说分为四个步骤,如图1所示。首先根据接收到的码字R(x)来计算伴随多项式S(x),然后通过伴随多项式S(x)的系数S1,S2,…,S2t(t为最多可纠正的错误个数)来计算错误位置多项式σ(x),最后再根据错误位置多项式σ(x)的系数σ1,σ2,…,σt利用Chien搜索算法来求出错误位置并对接收码字进行纠错译码。 图1 译码器结构框图 在上述的四个步骤中,决定BCH译码器的复杂性和速度的关键在于错位多项式σ(x)系数的计算。因此,本文着重对错位多项式σ(x)的各种计算方法以及相应的硬件实现展开讨论。 2 算法描述 2.1 彼得森(Peterson)译码算法 定义错误图案为,则有 (2.11) 若传输过程中有个错误,则对于,有 (2.12) 令,则有 (2.13) 称为错误位置。 定义错误位置多项式 (2.14) 的根的倒数为。因此需要求出错误位置多项式的系数。的系数可以通过解下面的方程组得出: (2.15) 这种通过直接解方程组来得到错位多项式系数的方法称为彼得森(Peterson)译码算法。假设某种码的纠错能力t=2,则方程(2.1-5)变为 (2.16) 从而解得 , 2.2 伯利坎普(Berlekamp)译码算法 令 (2.21) 且满足 称式2.2-1为Berlekamp关键方程。满足方程2.2-1的解不唯一,而由最小距离译码原理,求得的应该是对应发生错误码元最少的错误图案,即是次数最低的解,记作。求一个,使得 (2.22) 满足 解关键方程的迭代步骤如下: 1) 设; 2) 若,则 若,则 其中,且有最大值; 3) 如果,则迭代结束,否则执行4); 4) 令,计算 回到2)。 2.3 欧几里得(Euclidean)译码算法 定义错误值多项式 (2.31) 且满足 式2.3-1的等价表达为 (2.32) 其中,是除以的商,是余数。 可由下面两式开始迭代计算得到: 具体迭代步骤如下: 1) 初始化,迭代次数; ,;,; 2) 如果 ,则停止迭代;否则就进行以下运算: a) ,; b) ,; ,; c) 如果 ,; 否则,; d) ; 3) 迭代次数,返回2)。 当进行完2t次迭代计算后,的个系数中的高个为错误位置多项式的个系数。 3 硬件实现 下面我们以(15,7)二元BCH码(最多可以纠正2个随机错误)为例,将以上的三种译码算法分别用硬件描述语言加以实现,以供比较。 1) 对于彼得森(Peterson)算法,如果输入的伴随多项式的系数S1=S2=S3=S4=0,则表示接收到的码字没有错误,那么相应的错位多项式的系数σ1=σ2=0;有一个或者两个错误时的情况如下: 2) 对于改进的伯利坎普(Berlekamp)算法,有一个或者两个错误时的情况如下: 3) 对于欧几里得(Euclidean)算法,有一个或者两个错误时的情况如下: 4 分析比较 从以上的仿真结果可以看出,对于三种算法,同样的一组伴随多项式的系数得到了相同的错位多项式的系数;但是三种算法所花费的计算时间是不一样的。Peterson算法对于三种情况(接收码字没有错误、有一个错误、有两个错误)来说计算时间都是相等的,都只要经过2拍就能得到结果;Berlekamp算法对于接收码字没有错误或者只有一个错误时,也只需要2拍就能得到结果,但是对于两个错误,该算法则需要(t+e+2=6)拍;而Euclidean算法对于接收码字有一个或两个错误的情况则分别需要(2t+4=8)拍和(4t+7=15)拍来得到结果。 对三种算法的硬件描述进行FPGA综合,结果如下(所选器件为Xilinx Virtex2 : XC2V40 : CS144 : -6): 1)三种算法在该器件上可以达到的最高频率如下表所示: 算法 Requested Frequency Estimated Frequency 彼得森(Peterson)算法 250.0 MHz 259.5 MHz 伯利坎普(Berlekamp)算

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档