1、循环码编译码器n乘法器电路n除法器电路n循环码编码n循环码译码n循环码的检错译码n循环码的纠错译码n循环校验码(CRC)n码扩展和缩短乘法器n多项式相乘 110110.nnnnmmmmA xa xaxaB xb xbxb乘法器1 111110 0.n mn mnmnmnmn m inm inm in imC xA x B xa b xaba bxa bababxa b 乘法器电路1.bmbm-1bm-2bm-3b2b1b0a0a1a2.an-1anc(x)乘法器电路2 110120.nnnnnnnC xA x B xa x B xaxB xa B xxx x a xB xaB xaB xa B
2、 x乘法器电路2bmbm-1b2b1b0a0a1a2.an-1an.c(x)(7,4)循环码编码器(非系统码)ng(x)=x3+x+1a0a1a2a3c(x)除法器电路.0b1b2b1mb1mbq(x)A(x).0b1b2b1mb1mbq(x)A(x)1110.nnnna xa xax a 110.mmmmb xb xb 1 n mn mab x11110.nnn mnn mmn ma xab b xab bx(7,4)系统循环码编码2x3xA(x)K1K2K31ng(x)=x3+x2+1循环码译码n检错译码n由于循环码所有需用码组都是g(x)的倍式,因此接收到的多项式R(x),如果能被g(x
3、)整除,则认为R(x)是需用码组;反之,认为信道出现差错。n设g(x)是n-k次,则保证能检测出小于n-k个突发差错(课后思考题)。循环码译码n纠错译码nR(x)=C(x)+E(x),则R(x)/g(x)的余式仅与E(x)/g(x)的余式有关。nE(x)/g(x)的余式可以作为校验子(伴随式)来进行纠错。循环码译码n令伴随式s(x)=E(x)mod g(x),则 modiiiiiiiix R xx C xx E xRxCxExRxExg x modiix s xx E xg x ()modiiix s xRxExg x循环码译码n上述关系表明:n校验式s(x)的移位除以g(x)的余式与错误图样
4、的循环移位除以g(x)的余式相同n据此,可以对E(x)分类,然后进行纠错。错1位的校验式分别是xs1(x),x2*s1(x)对g(x)的余式 错两位的校验式分别是xs2(x),x2*s2(x)对g(x)的余式。循环码译码n纠错译码n例(7,4)循环码,g(x)=1+x+x3n则其一个比特错误的分类如下 E(x)=1 s(x)=1 E(x)=x s(x)=x E(x)=x2 s(x)=x2 E(x)=x3 s(x)=x3 mod g(x)=1+x E(x)=x4 s(x)=x4 mod g(x)=x+x2 E(x)=x5 s(x)=x5 mod g(x)=x2+x+1 E(x)=x6 s(x)=
5、x6 mod g(x)=x2+1纠错关系为SE00000000000010000001010000001001100010001000000100101100000011000100001110100000循环校验码(CRC)nCyclic Redundancy Coden给定一个g(x),幂次为r,不限定输入数据长度n,编码后生成(n+r,n)n由此生成的(n+r,n)不具有循环性(为什么?)nCRC通常用在一个数据帧的检错上,检错方法与循环码相同编码的扩展和缩短n目的n在应用中,经常遇到的问题是(n,k)需要固定n,希望能设计出具有一定纠错能力的码,如计算机存储中n通常是8的整倍数,便于按
6、字节操作。n缩短:通过先设计一定纠错能力t的码(n,k),然后缩短为(n-r,k-r)不改变纠错能力。采取的方法是对原有(n,k)码挑选出前r个比特为0的码组,然后删除前r个比特组成(n-r,k-r)缩短码。n扩展:n一般情况下,为了增加码距,可以对(n,k)码进行扩展,方法是增加偶校验比特成(n+1,k)n思考:偶校验相当于生成多项式乘以(x+1)?BCH码nBCH码是循环码中的一种。nBCH码的特殊性在于其g(x)是根据纠错能力t设计的。n设计的方法最早由Bose、Chaudhuri、Hocquenghem于1959-1960年提出,采用了有限域上的代数理论。n其生成多项式一般可以通过查表得到。RS码(ReedSolomon)n非二进制循环码的一种n由于非二进制,因此具有较好的纠突发差错能力nGF(28)上的RS码应用广泛,如CDROM、DVB等一些系统提案中,常用于编码的级联中。n典型译码算法有BerlekampMassey算法、Euclid算法等。