大家好,欢迎来到IT知识分享网。
目录
码距:
任意两个码字之间最少变化的二进制位数就称为数据校验码的码距。
例如:00,01,10,11
00,01—变化的二进制位数有1位
00,11—变化的二进制位数有2位
所以最小的变化位数是1,码距为1
1.奇偶校验
奇偶校验码的编码方法是:由若干位有效信息 (如一个字节),再加上一个二进制位(校验位) 组成校验码。
对于奇偶校验,只能检测出奇数个错误或者一位错误,例如11变为00,还是偶数个“1”,偶数的错误“0”和“1”会相互抵消,无法检错,并且不可以纠错。
2.CRC循环冗余校验
把接收到的CRC码用约定的生成多项式G(X)除 (模二除法) ,如果正确则余数为0; 如果某一位出错,则余数不为0。不同的位数出错其余数不同,余数和出错位序号之间有惟一的对应关系。
可检错,不可纠错可检错,不可纠错
模二除法的具体过程,通过例题来看:
由上面运算结果可知需要添加的余数为1110
3.海明校验码
在有效信息位中加入几个校验位形成海明码,使码距比较均匀地拉大,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出错误的位置,对应公式:
,其中n为数据位数,k为校验位数
注:校验码是通过扩大码距进行校验的,所以码距>1
对于海明码的求解过程:
例1:
若题目给出的数据是1010,默认D1~D4=1010,带入公式,得到k=3,表示有3个校验码
3个校验码分别为,
,
列如下表格
对于P1,我们寻找最低位有1的数,其他同理:
P1(001):③011⑤101⑦111
P2(010):③011⑥110⑦111
P3(100):⑤101⑥110⑦111
接下来,我们将1010带入,默认为偶校验(异或计算):
P1:③⑤⑦—>1 0 0=1
P2:③⑥⑦—>1 1 0=0
P3:⑤⑥⑦—>0 1 0=1
最后将P1,P2,P3:101带入,就得到海明校验码:1 0 1 1 0 1 0
例2:
若题目给出D8~D1:,也就是降序排列,那么我们写数列时就反过来写:
数据位是8,那么k=4,即校验位为4,4+8=12,数列至少需要画12格
P1:③⑤⑦⑨⑪—->11100=1
P2:③⑥⑦⑩⑪—->10110=1
P3:⑤⑥⑦⑫—->1011=1
P4:⑨⑩⑪⑫—->0101=0
所以海明码:1 0 1 0 0 1 0 1 1 1 1 1
拓展:
P13进行全校验,即看海明码是否满足偶校验,满足则前面添0,否则添1,这里满足,所以:
(0)1 0 1 0 0 1 0 1 1 1 1 1
4.校验方式的对比
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/125683.html