BCH码

纠错码

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

线性与否
分组码就其构成方式可分为线性分组码与非线性分组码。
线性分组码是指[n,M]分组码中的M个码字之间具有一定的线性约束关系,即这些码字总体构成了n维线性空间的一个κ维子空间。称此κ维子空间为(n,κ)线性分组码,n为码长,κ为信息位。此处M=2。
非线性分组码[n,M]是指M个码字之间不存在线性约束关系的分组码。d为M个码字之间的最小距离。非线性分组码常记为[n,M,d]。非线性分组码的优点是:对于给定的最小距离d,可以获得最大可能的码字数目。非线性分组码的编码和译码因码类不同而异。虽然预料非线性分组码会比线性分组码具有更好的特性,但在理论上和实用上尚缺乏深入研究(见非线性码)。
编码译码
用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
线性码的译码原则便以此为基础。
汉明码
这是最早提出的一类线性分组码,已广泛应用于计算机和通信设备。它是由R.W.汉明于1950年提出的。若码的均等校验矩阵H由2-1个、按任一次序排列且彼此相异的二进制r维列矢量构成。这样得到的线性分组码称为汉明码,其分组长为n=2-1,信息位为κ=n-r=2-1-r,即为(2-1,2-1-r)码。例如,以矩阵
为均等校验矩阵的线性分组码便为(7,4)汉明码。汉明码的译码十分简单。例如, 假定=(1001100)为发送的码字,其第3位有错,即接收矢量为r=(1011100)。于是
恰为矩阵H的第 3 列,因而判定原来发送的码字为=(1001100)。这种译码方式是一般性的。如果接收矢量r在第i位有错,则其伴随式Hr刚好为矩阵H的第i列。汉明码是可以纠正单个错误的线性分组码
循环码
具有某种循环特性的线性分组码,如果(n,κ)线性分组码Vκ具有如下的性质:对于每一个=(ɑ0,ɑ1,…,)∈Vn,只要∈Vκ,其循环移位()亦属于Vκ,则称Vκ为循环码。循环码的优点在于其编码和译码手续比一般线性码简单,因而易于在设备上实现。使Vn中的每一个矢量=(ɑ0,ɑ1,…,),对应于域GF(2)上的多项式ɑ(x)=ɑ0+ɑ1x+…+x。于是Vn中的全体n维矢量便与上述多项式之间建立了一一对应的关系。基于这种对应,使Vn中除了线性运算而外,还建立了矢量之间的乘法运算。A=(ɑ0,ɑ1,…,)与B=(b0,b1,…,)的乘积ab可视为ɑ(x)b(x)[mod(x-1)]所对应的矢量。因此,一个(n,κ)循环码生成矩阵及均等校验矩阵可分别由生成多项式及均等校验多项式h(x)所代替,从而简化了编码及译码运算。
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码是一种有限域中的线性分组码,具有纠正多个随机错误的能力,通常用于通信和存储领域中的纠错编码。BCH码定义如下:给定任意一个有限域GF(q)及其扩展域GF(q^m),其中q是素数或素数的幂,m为正整数。对于任意一个码元取自扩展域GF(q^m)的循环码(n,k),其中n=2^m-1,其生成多项式g(x)具有2t个连续的根{a^1,a^2,a^,...,a^(2t-1),a^(2t)},则由生成多项式g(x)编码产生的循环码称为q进制的BCH码,记为(n,k,t)。当码长n=2^m-1,称为本原BCH码,否则称为非本原BCH码。
最常用的BCH码是二进制的BCH码。二进制BCH码的所有码元都是由0和1构成,便于硬件电路的实现。如无说明,本文以下讨论的BCH码都是二进制BCH码。二进制本原BCH码具有以下重要参数:
BCH码的生成多项式是由GF(q^m)的2t个最小多项式最小公倍式的乘积,纠错能力为t的BCH码生成多项式为g(x)=LCM{m1(x),m2(x),...,m2t-1(x),m2t(x)},其中LCM表示最小公倍式,m(x)为最小多项式。
由多项式理论知道,如果有限域GF(2^m)中的元素a^i是m次即约多项式mi(x)的根,则(a^i)^2,(a^i)^4,(a^i)^8,...也是mi(x)的根,(a^i)^2,(a^i)^4,(a^i)^8,...称为共轭根系。如果两个根共轭,则它们具有相同的最小多项式。因此生成多项式g(x)=LCM{m1(x),m2(x),...,m2t-1(x),m2t(x)}=m1(x)*m3(x)*...*m2t-1(x)通过以上步骤就可以求出BCH码的生成多项式。得到生成多项式就可以对信息进行编码。
BCH码编码原理
将未编码的k位数据记为多项式:
m(x)=m0+m1*x^1+m2*x^2+...+mk-1*x^k-1;其中mi属于{0,1}
将生成多项式记为:
g(x)=g0+g1*x1+g2*x^2+...+gr*x^r,其中r=m*t,校验位记为r(x),则
r(x)=x^r*m(x) mod g(x)
编码后的BCH码字多项式可记为:
C(x)=x^r*m(x)+x^r*m(x) mod g(x)
BCH编码实现的关键是通过除法电路得到校验位多项式。编码的过程可总结为:
戈帕码
这是一种重要的线性分组码,它不仅包括常见的诸如本原BCH码等大量的循环码类,还包括相当多的非循环线性分组码类,并且后一种码具有良好的渐近特性。戈帕码的理论实质在于将每一个码矢量与一个有理分式相对应。q是某一个素数幂,g(z)是域GF(q)上的任意多项式,L表示域GF(q)中所有不为g(z)之根的元素所成之集合,|L|代表L中元素的数目。于是存在一个以GF(q)为符号域,以GF(q)为位置域的线性分组码。码长为|L|,它的各码元用L中的元素来标志。这种码可定义为满足条件
的一切GF(q)上的全体|L|维矢量的集合,式中 这种码称为戈帕码,称g(z)为戈帕多项式。
例如,q=2,m=2,g(z)=z+α,α是域GF(z)上的本原元素 α+α+1=0 α3=1
于是
可验证,(1,1,1)即为这一戈帕码的码字。戈帕码也有类似于BCH码的译码方法。
自50年代分组码的理论获得发展以来,分组码在数字通信系统和数据存储系统中已被广泛应用。由于大规模和超大规模集成电路的迅速发展,人们开始从易于实现的循环码理论研究中解脱出来,更重视研究性能良好的非循环线性分组码和非线性分组码。人们在分组码研究中又引进了频谱方法,这一研究方向受到了较多的注意。
其他码制
里德-索洛蒙码
这是一种特殊的非二进制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码可用来纠正成区间出现的突发错误。这种码在短波信道中特别有用。
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市