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