BCH码

发布时间:2024-06-03 15:08:41 作者:汉语成语

BCH码(BCHcode),是循环码的一个重要子类,用于纠错,特别适用于随机差错校正的循环检验码。BCH码有严密的代数理论,是目前研究最透彻的一类码。它的生成多项式与最小码距之间有密切的关系,人们可以根据所要求的纠错能力t很容易构造出BCH码,它们的译码器也容易实现,是线性分组码中应用最普遍的一类码。由R.C.Bose、D.K.Chaudhuri和A.Hocquenghem共同提出。

概述

BCH码取自Bose、Ray-Chaudhuri与Hocquenghem的缩写,是自1959年发展起来的一种能纠正多位错误的循环码,是编码理论尤其是纠错码中研究得比较多的一种编码方法。用术语来说,BCH码是用于校正多个随机错误模式的多级、循环、错误校正、变长数字编码。BCH码也可以用于质数级或者质数的幂级的多级相移键控。11级的BCH码已经用于表示10进制数外加一个符号位。

BCH码是一类重要的纠错码,它把信源待发的信息序列按固定的κ位一组划分成消息组,再将每一消息组独立变换成长为n(n>κ)的二进制数字组,称为码字。如果消息组的数目为M(显然M≤2),由此所获得的M个码字的全体便称为码长为n、信息数目为M的分组码,记为n,M。把消息组变换成码字的过程称为编码,其逆过程称为译码。

常见种类

1、戈雷码(Golay)

(23,12)码是一个特殊的非本原BCH码,称为戈雷码,它的最小码距7,能纠正3个错误,其生成多项式为。它也是目前为止发现的能纠正多个错误的完备码。

2、扩展形式

实际应用中,为了得到偶数码长,并增加检错能力,可以在BCH码的生成多项式中乘D+1,从而得到(n+1,k+1)扩展BCH码。扩展BCH码相当于将原有BCH码再加上一位的偶校验,它不再有循环性。

3、缩短形式

几乎所以的循环码都存在它另一种缩短形式。实际应用中,可能需要不同的码长不是或它的因子,我们可以从码中挑出前s位为0的码组构成新的码,这种码的监督位数不变,因此纠错能力保持不变,但是没有了循环性。

构建

BCH码使用有限域上的域论与多项式。为了检测错误可以构建一个检测多项式,这样接收端就可以检测是否有错误发生。

要构建一个能够检测、校正两个错误的BCH码,我们要使用有限域GF(16)或者Z2[x]/<x4+x+1>。如果α是m1(x)=x4+x+1的一个根,那么m1就是α的极小多项式,这是因为

m1(x)=(x-α)(x-α2)(x-α4)(x-α8)=x4+x+1。

如果要构建一个能够纠正一个错误的BCH码,那么就使用m1(x),这个代码就是所有满足

C(x)≡0(modm1(x))且根为α,α2,α4,α8的多项式C(x)。

解码

BCH的解码过程可以分为以下四步

1、计算接收到的向量R的2t伴随矩阵

2、计算错误定位多项式

3、解多项式,得到错误位置

4、如果不是二进制BCH码,就计算错误位置的误差值