一、循环冗余校验码
1.1.用途
- 广泛地在网络通信及磁盘存储时采用
1.2.多项式
- 在循环冗余校验(CRC)中,无一例外地要提到多项式地概念。一个二进制数可以以一个多项式来表示。如1011表示位多项式X3+X1+X0,如果把这里的X替换为2,这个多项式的值就是该数的值。从这个转换可以看出多项式最高幂次为n,则转换为二进制数又n+1位
1.3.编码组成
- 编码地组成是由K位信息码,加上R位的校验码
1.4.校验码的生成
-
校验码的生成步骤如下:
- 将K位数据C(x)左移R位,给校验位留下空间,得到移位后的多项式为C(x) x XR
- 将这移位后的信息多项式除以生成多项式,得到R位的余数多项式
- 将余数作为校验码嵌入信息位左移后的空间
-
循环冗余校验码的纠错能力取决于K值和R值。在实践中,K值往往取得非常大,远远大于R的值,提高了编码效率。在这种情况下,循环冗余校验就只能检错不能纠错
-
一般来说,R位生成多项式可检测出所有双错、奇数位错和突发错位小于或等于R的突发错误