什么是BCH码?

Python011

什么是BCH码?,第1张

BCH码是循环码的一个重要子类,它具有纠多个错误的能力,BCH码有严密的代数理论,是目前研究最透彻的一类码。它的生成多项式与最小码距之间有密切的关系,人们可以根据所要求的纠错能力t很容易构造出BCH码,它们的译码器也容易实现,是线性分组码中应用最普遍的一类码。

它是一类重要的循环码,能纠正多个错误。假设m是满足模n(modn)的最小正整数,β是域GF(2)的n次单位原根,作循环码的生成多项式g(x),以d0-1个接续的元素为根,其中m0,d0均为正整数,且d0≥2。于是

其中mj(x)代表的最小多项式。由这个g(x)所生成的,分组长为n的循环码称为BCH码。它由R.C.Bose,D.K.Ray-Chaudhuri及A.Hocquenghem三人研究而得名。BCH码的主要数量指标是:码长n,首元指数m0,设计距离d0,信息位数(表示多项式g(x)的次数)。BCH码的重要特性在于:设计距离为d0的BCH码,其最小距离至少为d0,从而可至少纠正(d0-1)/2个独立错误。BCH码译码的第一步是计算伴随式。假设 为发送码矢量,为接收矢量,而E=(E0,E1,…,En-1)为错误矢量,或记为错误多项式。于是伴随矢量之诸S=(S1,S2,…,S2t)分量Sκ由

决定(κ=1,2,…2t;为简便计,设m0=1,d0=2t+1)。假设有e个错误出现(1≤e≤t),则对应于e个错误的Ei厵0。如果E的第j个(从左至右)非零分量是Ei,则称Xj=β为这个错误Ei的错位,而称Yj=Ei为这个错误的错值。称 为错位多项式。BCH码译码的关键是由诸sκ(κ=1,2,…,2t)求出(z)。这可用著名的伯利坎普-梅西迭代算法来完成。这种算法相当于线性移位寄存器(LFDR寄存器)的综合问题。最后一步是求出(z)的全部根,可用钱天闻搜索算法完成,从而可以定出接收矢量r的全部错位。

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