奇偶校验原理:通过计算数据中“1”的个数是奇数还是偶数来判断数据的正确性。在被校验的数据后加一位校验位或校验字符用作校验码实现校验。
1、奇偶校验是用来检查数据传输的正确性的方法。奇偶校验能检查出传输数据的部分错误(1位误码能检测出,2位及2位以上检测不出来)。
2、奇校验:就是让原有数据序列中(包括要加上的那位)1的个数为奇数,如果原有的1已经是奇数了,就只能加0,这样1还是奇数个。eg:100011(0)
3、偶校验:就是让原有数据列中(包括要加上的那位)1的个数为偶数,如果原有的1是奇数,想要变为偶数就必须加1。eg:100110(1)
4、奇偶校验的特点:检测不出多位数据错误,更检测不出错误发生在哪位,主要应用于低速数字通信系统中,一般异步传输模式选用偶校验,同步传输模式选用奇校验。
注:如果采用偶校验,校验位应为0(1的个数为偶数);如果采用奇校验,校验位应为1(10010:1的个数才能为奇数)。
海明码:是一种可以纠正一位差错的编码
它是利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子来区分无错和在码字中的n个不同位置的一位错。
海明码被广泛采用的一种很有效的校验方法,是只要增加少数几个校验位,就能检测出二位同时出错、亦能检测出一位出错并能自动恢复该出错位的正确值的有效手段,后者被称为自动纠错。它的实现原理,是在k个数据位之外加上r个校验位,从而形成一个k+r位的新的码字,使新的码字的码距比较均匀地拉大。把数据的每一个二进制位分配在几个不同的偶校验位的组合中,当某一位出错后,就会引起相关的几个校验位的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。海明码编码的关键是使用多余的奇偶校验位来识别一位错误。
数据位为 n 位,校验位有 k 位,则海明码有 n + k 位,且 n 和 k 需满足 2𝑘 − 1 ≥ n + k 等式( 可以用 2k − 1 > n 简化计算)
海明码的接受:
例、已知:海明码的监督关系式为:
S2=a2+a4+a5+a6
S1=a1+a3+a5+a6
S0=a0+a3+a4+a6
接收码字为:"0011101"(n=7)
求:发送端的信息码。
解:1)由海明码的监督关系式计算得S2S1S0=011。
2)由监督关系式可构造出下面错码位置关系表:
(以下是一个表格,可能位置关系会错乱,自己更正)
S2S1S0 000 001 010 100 011 101 110 111
错码位置 无错 a0 a1 a2 a3 a4 a5 a6
3)由S2S1S0=011查表得知错码位置是a3。
4)纠错--对码字的a3位取反得正确码字:"0 0 1 0 1 0 1"
5)把冗余码a2a1a0删除得发送端的信息码:"0010