1、1,第九章循环码,2,第九章 循环码,内容提要:循环码是线性分组码中一个重要的子类。本章首先提出了循环码的定义以及循环码的多项式描述方法,论述了循环码构成的有关重要定理;接着讨论了循环码的编译码方法及其实现电路,最后介绍了已获得广泛应用的循环汉明码、BCH码等。,3,本章重点:1.循环码的基本概念; 2. 循环码的编码和译码方法; 3. BCH码。,4,9.1.1 循环码的定义,将任一码字中的7个码元排在一个圆周上,则从圆周的任一码元开始,按顺时针方向移动一周,都将构成该码的一个码字。这就是循环码的由来。(见图9.1),9.1 循环码的一般概念,5,图9.1 (7,4)汉明码的码字循环图,第二
2、循环,第一循环,6,定义9.1 一个线性分组码,若具有下列特性,则称其为循环码。设码字 c(cn-1,cn-2,c1,c0) 若将码元循环左移一位,得 c (1)(cn-2,c1,c0,cn-1) c (1)也是一个码字。,7,9.1.2 循环码的多项式描述,设c(cn-1 cn-2 c1 c0)是(n,k)循环码的一个码字,则与其对应的多项式c (x)cn-1xn-1cn-2xn-2c1xc0 (91) 称为码字c的码字多项式(或码多项式)。,如果c(cn-1 cn-2 c1 c0)是(n,k)循环码的一个码字,则c (1)(cn-2 c1 c0 cn-1)也是该循环码的一个码字。这就是说
3、c (x)cn-1xn-1cn-2xn-2c1xc0和 c (1) (x)cn-2xn-1c1x2c0xcn-1 都是(n,k)循环码的码字多项式。,8,比较c(x)和c (1) (x)后可得c (1) (x)x c (x), mod xn1 (92) 以及 c(i) (x)xic (x) (i1,2,n1), mod xn1(93),定理9.1 在以多项式xn1为模的剩余类全体所构成的n维线性空间Vn中,其一个子空间Vn,k是一个循环子空间(循环码)的充要条件是:Vn,k是一个理想。,一个(n,k)循环码的码字多项式都是模xn1运算下多项式剩余类环中的一个理想,而且一定是一个主理想子环。反之
4、,多项式剩余类环的一个主理想子环也一定生成一个循环码。,9,9.1.3 循环码的生成多项式,定理9.2 GF(2)上的(n,k)循环码中,存在有唯一的nk次首一多项式 g(x)xn-k gn-k-1xn-k-1 g1xg0 使得每一个码多项式c(x)都是g(x)的倍式,且每一低于或等于n1次的g(x)倍式,一定是码多项式。,定理9.3 (n,k)循环码的生成多项式g(x)一定是xn1的因式:xn1g(x)h(x)。反之,若g(x)为nk次,且除尽xn1,则此g(x)一定生成一个(n,k)循环码。,定义9.2 若一个循环码的所有码字多项式都是一个次数最低的非零首一多项式g(x)的倍式,则称g(x
5、)生成该循环码,并称g(x)为该码的生成元或生成多项式。,10,定理9.4 若g(x)是(n,k)循环码的生成多项式,由xn1g(x)h(x),h(x)是k次多项式,称为校验多项式。令 h(x)hkxkhk-1xk-1h1xh0 则(95)为(nk)n阶矩阵,称为码的校验矩阵。,11,(n,k)循环码的生成多项式g(x)是一个次数最低的唯一的首一多项式,其次数rnk正好是码字中校验元的数目;, 生成多项式g(x)是xn1的因式。要构造一个(n,k)循环码,就是要在xn1的因式中找一个nk次的首一多项式g(x),它的所有次数低于或等于n-1的倍式就构成一个(n,k)循环码。反之,循环码的每一个码
6、字多项式必是g(x)的倍式;,综上所述,有如下结论:, 由xn1g(x)h(x),h(x)称为校验多项式。对于任意一个(n,k)循环码,必有 g(x)h(x)0 mod xn1 及 GH T 0,12,9.2 循环码的编码,9.2.1 利用生成多项式g(x)实现编码,若已知 g(x)gn-kxn-kgn-k-1xn-k-1g1xg0 并设信息元多项式 m(x)mk-1xk-1mk-2xk-2m1xm0要编码成系统循环码形式,须用xn-k乘以m(x),再加上校验元多项式r(x),这样得到的码字多项式c(x)为:c(x)xn-k m(x)r(x) mk-1xn-1mk-2xn-2m0xn-krn-
7、k-1xn-k-1r1xr0 其中 r(x)rn-k-1xn-k-1r1xr0,13,c(x)一定是g(x)的倍式,即有 c(x)xn-km(x)r(x)q(x)g(x)或 c(x)xn-km(x)r(x)0, mod g(x) 注意到g(x)为nk次多项式,而r(x)至多为nk1次多项式,必有r(x)xn-km(x), mod g(x) (96) 即r(x)必是x n-k m(x)除以g(x)的余式。,(96)式指出了系统循环码的编码方法:,首先将信息元多项式m(x)乘以xn-k成为xn-km(x);,然后将xn-km(x)除以生成多项式g(x)得到余式r(x),该余式就是校验元多项式,从而
8、得到码字多项式 c(x)xn-km(x)r(x)。,14,9.2.2 除法电路,设GF(2)上的两个多项式 a(x)akxkak-1xk-1a1xa0 b(x)brxrbr-1xr-1b1xb0 a(x)是被除式,b(x)是除式。用图9.2所示的电路完成a(x)除以b(x)的运算 。,图9.2 除法电路的一般形式,15,【例9.2】设被除式a(x)x4x1,除式b(x)x3x21,完成二个多项式相除的运算。,长除法:,多项式的系数运算,16,实现以上除法运算的除法电路如图9.3所示,图9.3 以b(x)x3x21为除式的除法电路,17,9.2.3 编码电路,然后将xn-km(x)除以生成多项式
9、g(x)得到余式r(x),该余式就是校验元多项式,从而可得码字多项式c(x)xn-km(x)r(x)。,系统循环码的编码方法是:,首先将信息元多项式m(x)乘以xn-k成为xn-km(x);,18,用电路实现编码时可采用以g(x)为除式的除法电路。作为实例,图9.4示出了生成多项式g(x)x3x21的(7,4)循环码的编码电路。,图9.4 以g(x)x3x21的(7,4)循环码编码器,19,9.3 循环码的译码,当码字c通过噪声信道传送时,会受到干扰而产生错误。如信道产生的错误图样是e,译码器收到的n重接收矢量是y,则表示为 y c e 上式也可写成多项式形式:y(x)c(x)e(x) (97
10、),译码器的任务就是如何从y(x) 中找到错误图样多项式 ,然后得到估计码字多项式 ,进而得到信息组 。,20,循环码的译码可按以下三个步骤进行:,()根据伴随式s(x)找出对应的估值错误图样 ;,()计算 ,得到估值码字 。若 ,则译码正确,否则,若 ,则译码错误。,()由接收到的y(x)计算伴随式多项式s(x);,21,9.3.1 伴随式计算,对于(n,k)循环码,可以定义码的生成多项式g(x)除以接收码字多项式y(x)的余式为伴随式多项式s(x),写成s(x)y(x) mod g(x) (98) 由于 y(x)c(x)e(x) 而 c(x) mod g(x)0 于是 s(x)e(x) m
11、od g(x) (99),s(x)伴随式计算电路的一个重要性质:,定理9.5 设s(x)是接收码字多项式r(x)的伴随式,则y(x)的一次循环移位xy(x)(mod xn1)的伴随式s(1)(x),是s(x)在伴随式计算电路中无输入时,右移一位的结果(称为自发运算):s(1)(x)xs(x) mod g(x) (911),【例9.3】以g(x)x4x3x21为生成多项式的(7,3)循环码(示于表9.1),能纠正一个错误。,设传送出现一个错,错误图样e(0 0 0 1 0 0 0),即e(x)x3,其伴随式 s(x)e(x) mod g(x)x3 mod (x4x3x21)x3, 即s (1 0
12、 0 0) 现设错误图样e1(0 0 1 0 0 0 0),即e(1)(x)xe(x)x4,相应的伴随式s(1)(x)x4 mod (x4x3x21)x3x21,即 s1(1 1 0 1),s1是s在图9.5所示的g(x)x4x3x21除法电路中无输入时,右移一位的结果,也即自发运算的结果。,图9.5 (7,3)循环码的伴随式计算电路,23,9.3.2 循环码的译码,把某一可纠正的错误图样e(x)及其所有的小于等于n1次的循环移位归成一类,用一个错误图样来代表。译码时只要计算这个错误图样的伴随式,该类中其它错误图样的伴随式都可由该伴随式在g(x)除法电路中循环移位来得到。,以(7,3)循环码为
13、例:当码字传送出现一个错误时,若用一般译码器需要识别如(0 0 0 0 0 0 1),(0 0 0 0 0 1 0),(0 0 0 0 1 0 0),(0 0 0 1 0 0 0),(0 0 1 0 0 0 0),(0 1 0 0 0 0 0),(1 0 0 0 0 0 0)等7个不同的错误图样,但对于按上述定理设计的循环码译码器来说,可以把这些错误图样归成一类,译码器只要识别其中的一个错误图样就可以了。,24,若(7,3)循环码译码器按错误图样(1 0 0 0 0 0 0)设计,于是 s(x)e(x) mod g(x)x6 mod (x4x3x21)x3x2x, 即s(1 1 1 0) 其译
14、码器电路示于图9.6。,图9.6 (7,3)循环码译码器,25,9.3.3 Meggit译码器,循环码译码器的缺点无法对接收到的码字实现连续的译码输出。改进的译码器称作Meggit通用译码器,其结构如图9.7,可实现连续的译码输出。,图9.7 Meggit通用译码器,26,9.4.1 循环汉明码,定义9.3 设是GF(2m)上的一个本原元,则以的本原多项式为生成多项式的(2m1,2m1m)汉明码是循环汉明码。,码的校验矩阵为(913),因码长n2m1,H也可以表为(914),9.4 一些重要的循环码,27,例如,以GF(23)上的三次本原多项式为生成多项式,可生成一个(7,4)循环汉明码,其生
15、成多项式g(x)x3x1。,设是GF(23)上的本原元,则码的校验矩阵,28,9.4.2 BCH码,定义9.4 设是GF(2m)上的一个本原元,t为整数,则以含有、2、2t等共2t个根,其系数在GF(2)上的最低次多项式g(x)为生成多项式的循环码,叫做二元本原BCH码。,码长n2m1,校验位数rnk mt,最小距离d 2t1,纠错能力为t,二元本原BCH码的参数为:,29,(917),【例9.4】设m4,是GF(24)上的本原元,求码长n24115的二元本原BCH码。,若t1,则码以为根,即以,2,4,8共轭根系为根,最小多项式 m1(x)x4x1生成多项式 g(x)m1(x)x4x1 校验
16、位数目nk4,码的校验矩阵为,30,若t2,则码以,3为根,即以,2,4,8共轭根系和3,6,12,24 9共轭根系为根,最小多项式 m3(x)x4x3x2x1 生成多项式 g(x)m1(x)m3(x)(x4x1)( x4x3x2x1)x8x7x6x41 校验位数目nk8 ,其校验矩阵:,31,若t3,则码以,3,5为根,即以,2,4,8共轭根系、3,6,12,249共轭根系和5,10共轭根系为根,最小多项式 m5(x)x2x1 生成多项式 g(x)m1(x)m3(x)m5(x)(x4x1)( x4x3x2x1)(x2x1)x10x8x5x4x2x1 校验位数目nk10 ,其校验矩阵,32,循
17、环码是线性分组码中一个重要的子类,由于这种码的代数结构完全建立在有限域基础上,它是目前理论上最为成熟的一类码。本章的主要内容有:,本 章 小 结,(2)循环码的性质:循环码的生成多项式,生成多项式的重要性质,由生成多项式构造生成矩阵。,(1)循环码的定义及多项式描述:循环码的循环特性,循 环码的码字多项式,循环码是多项式剩余类环的一个 主理想子环。,33,(5)循环Hamming码和BCH码:用g(x)的根定义循环码,建立在有限域扩域上的BCH码。,(4)循环码的译码:伴随式的计算电路,自发运算电路,Meggit译码器。,(3)循环码的编码:用生成多项式编码的理论,除法电路,循环码的编码电路。,