1.CRC简档CRC循环冗馀校验码是数据通信中的一种误码。
2.CRC原理CRC算法的基本思想是将传输的数据[m(x ) ]设为一位的长数。 此数除以另一数[g(x ) ]的馀数[r ) x ],作为检查数据附加在原始数据之后,构成循环校验码。
m(x )代表被编码的有效信息,g )-x )代表被约束的多项式,以及r )-x )代表校验比特,因此CRC的结构 = 信息位(N位) + 校验位(K位)
所以,CRC编码 = M(X) + R(X)
3.CRC编码方法将要编码n比特的有效信息比特表示为多项式m(x )
将m(x )向左移动k个位,得到m ) x ) x^k,并空出k个位以连接k个多位。这里的K位是由多项式G(X)的最高位决定的
选择一个生成多项式g(x ),对m ) x ) x^k构造模二除)多项式g ) x ),一般直接给出。 如果看以下示例,类型2除法为实质是异或运算),以下为运算式
(M(X) * X^K ) / G(X) = Q(X) + R(X) / G(X)
这里的q(x )是商,本身并不重要。这里最重要的是求出余数R(X)
将信息位m(x )和馀数m(x )连接起来构成CRC循环冗馀校验码
CRC编码 = M(X) + R(X)
4 .列举板栗的主题,请访问选择产生多项式位1011,把4位有效信息1100编成CRC码
m(x )=X^3 X^2=1100
m(x ) x(3=x ) 6x )5=1100000 ) http://www.Sina.com/() ) ) ) ) ) ) ) )。
g(x )=X^3 X 1=1011
(m ) x ) x^k )/g ) x )=1100000/1011=1110010/1011 )这里多项式最高位位3,左移3位这里进行模运算,关键
通过运算,确定此时r(x )为010
此时,CRC代码=m(x ) r ) x )=1100010
5.CRC码校验原理:实质上是异或运算
纠错时,与g(x )的选择有关,这方面很深,将得到的CRC码用约定的G(X)去除,余数为0,结果正确 ,某一位出错,则余数不为0