码距:指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。
1. 奇偶校验码
奇偶校验码(Parity Code)是一种简单有效的校验方法。通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或偶数(偶校验),从而使码距变为2。
-
常见的奇偶校验码有3种:
水平奇偶校验码;
垂直奇偶校验码;
水平垂直校验码; -
奇偶校验只能查错不能纠错。
2. 海明码
海明码(Hamming Code)是一种利用(或多组数位)奇偶性来检错和纠错的校验方法。
- 海明码的构成方法
在数据位之间的特定位置上插入k个校验位,通过扩大码距来实现检错和纠错。 - 设数据位是n位,校验位是k位,n与k之间的关系:
2 k − 1 > = n + k 2^{k}-1>=n+k 2k−1>=n+k
3. 循环冗余校验码
循环冗余校验码(CRC),广泛用于数据通信领域和磁介质存储系统中。
它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码的长度为k+r。
左边为信息码;右边为校验码。
特点是 检错能力极强,且开销小。只能检错不能纠错,因为纠错译码算法比较复杂。