数据在传输的过程中可能会发生误码,或被篡改,因此需要进行校验。
一、奇偶校验码
奇偶校验(Parity Codes)是一种简单有效的校验方法。这种方法通过在编码中增加一位
校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2,对
于奇校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况,即当合法编
码中的奇数位发生了错误时,即编码中的1变成0或0变成1,则该编码中1的个数的奇偶性
就发生了变化,从而可以发现错误。
常用的奇偶校验码有3种:水平奇偶校验码、垂直奇偶校验码和水平垂直校验码。
发送方 | 接收方 | |
奇校验 | 增加一位校验码,使得编码中的1的个数为奇数 | 验证编码中1的个数是否为奇数 |
偶效验 | 增加一位校验码,使得编码中的1的个数为偶数 | 验证编码中1的个数是否为偶数 |
奇校验 | 0 1 0 1 | 1 的个数为偶数,添加效验位,值为1,使编码中1的个数为奇数 | 1 0 1 0 1 |
0 1 1 1 | 1 的个数为奇数,添加效眼位,值为0 | 0 0 1 1 1 | |
偶校验 | 0 1 0 1 | 1 的个数为偶数,添加效验位,值为0,编码中1的个数为还是为偶数 | 0 0 1 0 1 |
0 1 1 1 | 1 的个数为奇数,添加效验位,值为1,使编码中1的个数为偶数 | 1 0 1 1 1 |
二、海明校验码
海明码(Hamming Code)是由贝尔实验室的Richard Hamming设计的,是一种利用奇偶
性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的特定位置上插入k个校验
位,通过扩大码距来实现检错和纠错。
海明码利用多组数位的奇偶性来检错和纠错 (可以检错和纠错, 码距为3)
三、循环冗余码
循环冗余校验码(Cyclic Redundancy Check,CRC)广泛应用于数据通信领域和磁介质
存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。
CRC的代码格式为:
k个数据位[n,r+1]后跟r个校验位[r,1] 可以检错但不能纠错(码距为2 ,采用模2运算 ,得到校验码)
总结:
相关题目:
2、以下关于海明码的叙述中,正确的是( )。2017 下半年 第 5 题海明码性质
3、以下关于采用一位奇校验方法的叙述中,正确的是( )。2018 下半年 第 5 题奇偶校验能力边界
4、海明校验码是在 n 个数据位之外增设 k 个校验位,从而形成一个 k + n 位的新码字,使新的码字的码距 比较均匀地拉大。n 与 k 的关系是( )。2009 上半年 第 1 题海明码公式(n 与 k 关系)
6、已知数据信息为 16 位,最少应附加( )位校验位,以实现海明码纠错。2016 下半年 第 4 题已知 n 求 k(n = 16 )2017 上半年 第 5 题
7、海明码是一种纠错码,其方法是为需要校验的数据位增加若干校验位,使得校验位的值决定于某些被校 位的数据,当被校数据出错时,可根据校验位的值的变化找到出错位,从而纠正错误。对于 32 位的数 据,至少需要增加( )个校验位才能构成海明码。 以 10 位数据为例,其海明码表示为 D9D8D7D6D5D4P4D3D2D1D0P3P2P1中,其中 Di(0 ≤ i ≤ 9)表 示数据位,Pj(1 ≤ j ≤ 4)表示校验位,数据位 D9由 P4、P3和 P2进行校验(从右至左 D9的位序为 14,即等于 8 + 4 + 2,因此用第 8 位的 P4、第 4 位的 P3和第 2 位的 P2校验),数据位 D5由( ) 进行校验。
8、循环冗余校验码(CRC)利用生成多项式进行编码。设数据位为 k 位,校验位为 r 位,则 CRC 码的格式 为( )。2012 下半年 第 2 题CRC 码字格式
9、在( )校验方法中,采用模 2 运算来构造校验位。2019 上半年 第 5 题模 2 运算属于谁