一,海明码
1.传输的数据:1101
2.校验位计算公式:2^k >= k+n+1,n为数据位
在本例中计算的k为3;
用P1,P2,P3,表示校验位,其中
P1,的位数2^0,P2,的位数2^1,P3,的位数2^2
则:
| 1 | 2 | 1+2 | 4 | 1+4 | 2+4 | 1+2+4 |
位数的二进制 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 |
位数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
数据位 |
|
| 1 |
| 1 | 0 | 1 |
校验位 | P1, | P2, |
| P3 |
|
|
|
3分组:
校验位 | 位数分组 |
P1, | 1,3,5,7 |
P2, | 2,3,6,7 |
P3 | 4,5,6,7 |
4.计算校验位值
P1^1^1^1=0,得P1=1
P2^1^0^1=0,得P2=0
P3^1^0^1=0,得P3=0
最终传输的数据位:1010101
5,检验
如果接收端收到的是1010111
还是按照刚才的分组进行计算P1,P2P3每个分组的异或值,为零则无错,为1则有错。
P1组 1^1^1^1=0
P2组 0^1^1^1=1
P3组 0^1^1^1=1
把每个分组的异或结果由高位到低位排列,结果为110,化为十进制为6,所以第六位错误。
相关文章
https://www.cnblogs.com/godoforange/p/12003676.html
https://www.jianshu.com/p/54d1adc74314
https://www.cnblogs.com/lesroad/p/8688634.html
二,编码的海明距离
纠错d位:码距=2d+1
检错d位:码距=d+1
相关文章
https://blog.csdn.net/weixin_44330072/article/details/106860286
https://www.maixj.net/ict/maju-15632