CRC码是用来验错的,当2^R≥K+R+1时,CRC码可以纠正1位错误,即单比特错误
详见下图
纠错编码
求解海明码:
1)2K≥K+N+1,求解K,信息位(N位)+检验位(K位)组成海明码,注意校验位的位置
2)将校验码Pi放在H2(i-1) 的位置上
3)分组形成检验关系。每个数据位使用多个检验位进行检验,且被检验数据位的海明位号等于检验该数据位的各检验位海明位号之和。例如D1放在H3上,3D=11B,故由P1P2检验D1/H3;D4放在H7上,7D=111B,故由P1P2P3检验D4/H7
4)求检验位值。将所有对应关系列出后,将检验位所检验的对应的数位做异或运算,得到位数值。如P3参与了D2D3D4的检验,则P3=D2 xor D3 xor D4
检验:每个检验组分别利用检验位和参与检验位形成的信息为进行奇偶检验检查,构成K个方程,若结果为K个‘0’,则无错;否则说明出错,且这个数就是错误位的位号,如S3S2S1=001
为了纠正d比特的错误,海明码需要(1+2d)的编码方案,编码的海明码码距为(1+d)
流量控制、可靠传输
标签:错误,明码,检验位,检验,数据位,0914,D4 From: https://www.cnblogs.com/Lunysia/p/18414744