(3) 码字的循环特性,循环码中任一许用码字经过循环移位后,所得到的码组仍然是许用码组。
4 设计的主要原理及方法
4.1 CRC校验原理
循环冗余码CRC 检验技术广泛应用于测控及通信领域。其基本原理是: 在K 位信息码后再拼接R 位的校验码, 整个编码长度为N位, 因此, 这种编码又叫(n, k)码。对于一个给定的(n, k)码, 可以证明存在一个最高次幂为n- k=r 的多项式G(x)。根据G(x)可以生成k 位信息的校验码, 而G(x)叫做这个CRC 码的生成多项式。
校验码的生成过程为: 设信息多项式为C(x), 将C(x)左移R 位, 则可表示成C(x)×2n, 这样C(x)的右边就会空出R 位, 这就是校验码的位置。通过C(x)×2n 除以生成多项式G(x)得到的余数就是校验码。
利用线性编码理论,在发送端根据所要传送的k 位二进制码序列,以一定的规则产生一个校验用的监督码( 既CRC 码) r 位,并附在信息后边,构成一个新的二进制码序列数共(k + r)位,最后发送出去。在接收端,则根据信息码和CRC 码元之间所遵循的规则进行检验,以确定传送中是否出错。
表4.1 CRC码的出错模式(G(X)=1011)
收到的CRC码 余数 出错位
码位 A7 A6 A5 A4 A3 A2 A1
正确 1 0 1 0 0 1 1 000 无
错误 1 0 1 0 0 1 0 001 1
1 01 1 0 0 0 1 010 2
1 0 1 0 1 1 1 100 3
1 0 1 1 0 1 1 011 4
1 0 0 0 0 1 1 110 5
1 1 1 0 0 1 1 111 6
0 0 1 0 0 1 1 101 7
接收端收到了CRC 码后用生成多项式为G(x)去做模2 除,若得到余数为0,则码字无误。如果有一位出错,则余数不为0,而且不同位出错,其余数也不同。可以证明,余数与出错位的对应关系只与码制及生成多项式有关,而与信息位无关。表1给出了G(x)=1011,C(c)=1010 的出错模式,改变C(x)(码字) ,只会改变表中码字内容,不改变余数与出错位的对应关系。
4.2 CRC译码性能
CRC的算法很简单,就是看能否在接收端检测出错误。除以G(x)余数是否为0。我们来看一个简单的讨论,如:
串T=11010111010,对应于
串E=00010110000,对应于
串T'=11000001010,对应于
加法是异或运算,所以E(x)和T(x)中的x7相加结果为x7+ x7=(1+1)×x7=0。
所以我们必须得找出 什么时候余数为0?既然 ,而第一项余数为0,则后一项决定余数,所以问题可以是对于什么样的多项式 , 余数为0? Matlab循环码在不同信道中性能仿真研究+流程图(10):http://www.751com.cn/tongxin/lunwen_351.html