BCH码(bch码的生成矩阵)

币安下载

Binance币安交易所

全球最大加密货币交易所,注册100%可领取100USDT奖励!通过本站注册不仅可以享受手续费折扣同时有机会获得币安周边

点击注册 更多线路

更多交易所入口

一站式注册各大交易所、点击进入加密世界、永不失联,币安Binance/欧易OKX/GATE.IO芝麻开门/Bitget/抹茶MEXC/火币Huobi

点击进入 永不失联


什么是BCH码?


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

BCH码的编码译码


                

用Vn表示GF(2)域的n维线性空间,Vκ是Vn的κ维子空间,表示一个(n,κ)线性分组码。Ei=(vi1,vi2…,vin)是代表Vκ的一组基底(i=1,2,…,κ)。以这组基底构成的矩阵
称为该(n,κ)线性码的生成矩阵。对于给定的消息组m=(m1,m2,…,mκ),按生成矩阵G,m被编为mG=m1E1+m2E2+…+mκEκ
这就是线性分组码的编码规则。若
之秩为n-κ并且满足GH=0,仅当=(v1,v2,…,vn)∈n满足H=0时,才为κ中的码字。称H为(n,κ)线性分组码κ的均等校验矩阵,称H为矢量的伴随式。假设v是发送的码矢量,在接收端获得一个失真的矢量r=v+E,式中E=(e1,e2,…,en)称为错误型。由此rH=(v+e)H=eH
线性码的译码原则便以此为基础。


BCH码的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码的其他码制


                

里德-索洛蒙码
这是一种特殊的非二进制BCH码。对于任意选取的正整数s,可构造一个相应的码长为n=q-1的q进制BCH码,其中码元符号取自有限域GF(q),其中q为某一素数的幂。当s=1,q>2时所建立的码长为n=q-1的q进制BCH码便称为里德-索洛蒙码,简称为RS码。当q=2(m>1),码元符号取自域GF(2)的二进制RS码可用来纠正成区间出现的突发错误。这种码在短波信道中特别有用。


LDPC码或者Turbo码比BCH码强吗? 为什么书上要单独讲。


                
BCH的本质就是线性循环码,就是纠正一个错误循环码,编码也是和循环码一样采用生成多项式来编码的,解码的方法很多种,常用的硬件解码电路就是用移位寄存器等主成,软件解码有钱搜索等方法,所以一般把BCH码放在循环码里面或者紧挨着循环码后面讲,BCH码讲完了就是讲RS码,因为RS码就是多进制的BCH码,他们都是线性码,应用范围主要是短距离对码率要求不高的地方,通信上很少用,但是LDPC和TURBO都不是线性码,他们和线性循环等码有本质的区别,无论编码解码都有自己的方法,而且这两种码都是最近几年才出来的,LDPC1996年才开始大规模的研究,主要用于远程移动通信上面,4G里面用了很多LDPC,这两种码也是性能很高的码,可以接近香农极限,当然,学习这两种码也是比较难的,当年我学的差点吐血。
    至于哪种码更好,我觉得不存在这样一个问题,每个人每种码都有自己的用处,比如要是用于光盘纠错,非得BCH来,用于远程通信,LDPC或者TURBO码更胜任,没有比较的意义,总之存在就是合理的,要是有一种码是万能的,其他码就会消失了,你也听不到那些名字了,所以你所了解到的东西,说明他们都是有用处的。

目录[+]