奇偶校验码、海明码校验码和CRC校验码
  n9WuM56whH67 2023年11月13日 28 0

奇偶校验

概念:   奇偶校验码是奇校验码和偶校验码的统称. 它们都是通过在要校验的编码上加一位校验位组成.

校验方法:   如果是奇校验加上校验位后,编码中1的个数为奇数个。如果是偶校验加上校验位后,编码中1的个数为偶数个。 分类: 水平奇偶校验码:对每一个数据的编码添加校验位,使信息位与校验位处于同一行 例子: image.png ==当原编码在传输、储存的过程中发生了误码,1的数量就会改变,然后就能校验出该过程出现了错误==。 垂直奇偶校验码:把数据分成若干组,一组数据排成一行,再加一行校验码. 针对每一行列采用奇校验 或 偶校验 image.png

缺点: ==1.只能检测出奇数位出错. 如果发生偶数位错误就无法检测。== 设原编码为0000,传输的过程中变成了1001。如果使用奇校验,原编码是00001,传输过后会变成10011,1仍然是奇数个,无法校验;如果使用偶校验,原编码是00000,传输过后会变成10010,1仍然是偶数个,同样无法校验。 ==2.奇偶校验码无法检测出哪位出错.所以属于无法矫正错误的校验码。==   校验过程中只知道1的数量发生变化,对于哪个地方发生变化无从知道。

海明校验码

实现原理: 它的实现原理,是在m个数据位之外加上k个校验位,从而形成一个m+k位的新的码字,使新的码字的码距比较均匀地拉大。把数据的每一个二进制位分配在几个不同的偶校验位的组合中,当某一位出错后,就会引起相关的几个校验位的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。 两个码字对应位上数字的不同位的个数称为码字的距离,简称码距; 须知: 海明校验码是放在2的幂次位上的,即“1,2,4,8,16,32······”; 信息位为m的原始数据,需要加入k位的校验码,它满足==m+k+1<2^k==; 例子: 要计算原始信息位为101101100的海明校验码。 先用m+k+1<2^k计算出校验位:9+k+1 <2^k→k=4,即校验位为4位。 因为海明校验码是放在2的幂次位上,所以插在位置1,2,4,8中 image.png image.png

用到的校验码是看当前位置由哪几个校验码所在的位置的和。 例如:校验码的位置是1,2,4,8。位置3= 1 + 2,所以位置3用到的校验码是1和2;位置7 = 1 + 2 + 4组成的,所以位置7用到的校验码是1,2和4。 然后将校验码校验的位置记录下来: 校验码1(位置1):3,5,7,9,11,13 校验码2(位置2):3,6,7,10,11 校验码3(位置4):5,6,7,12,13 校验码4(位置8):9,10,11,12,13 注意:后面的数字串是位置的下标,不是值,值还是0或1。 然后做异或运算(相同时为0,不同时为1) 校验码1(位置1):1 xor 0 xor 1 xor 0 xor 1 xor 0 = 1 校验码2(位置2):1 xor 1 xor 1 xor 1 xor 1 = 1 校验码3(位置4):0 xor 1 xor 1 xor 0 xor 0 = 0 校验码4(位置8):0 xor 1 xor 1 xor 0 xor 0 = 0

循环冗余校验码(CRC校验)

原理: CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列;附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破坏。 实现步骤: 双方事先约定了一个R次多项式g(x),即CRC码。 CRC码的特点:

  • 位数要少于原编码
  • 收尾为1
  • 自行决定 例: 原编码:1001001011 则CRC码可以为10011,也可以为11001等 但是:10010这种不可以,因为它的尾巴不是1,1001101011也不行,因为它的位数与原编码的一致。 要注意的是:> CRC码并非是校验码,但需要通过CRC码来获得校验码。具体校验码的话要先让原编码加上CRC码位数个0(即CRC码有的多少位,就要加上多少位0在原编码的后面)然后用新原编码除CRC码,得到的余数就是校验码 例: 原编码=1010001101 CRC码设为:110101 校验码有5位,因此 新原编码:101000110100000 然后用新原编码除以CRC码: image.png

校验码就是01110 校验方法用原编码与校验码进行模2减法,获得最终原编码。此时最终原编码除以CRC码是可以整除的,由于接收方也有相同的CRC码,在数据传输的过程中不发生错误,接收方用接收到的数据除以CRC码也是可以整除的,此时为无错误。同时,不能整除,说明传输过程中数据发生了错误。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

n9WuM56whH67