概述
前几天好不容易把海明码弄懂了,今天在此复习复习,总结总结,巩固巩固,提高提高……呵呵。
海明码k=信息位(m位)+校验位(r位)
校验位根据一定的规则,穿插在信息位中。
(一)根据信息数据,求海明码
(1)确定信息位个数,即m的值。
信息位(m位)是要传送的数据位数,是已知条件。
(2)确定校验位个数,即r的值。
校验位(r位)是多少位呢?
答:它需要满足以下条件:2r >= m+r+1的最小值。根据这个不等式可以解出r。
例如,信息1011,则需要校验位2r >= 4+r+1,解出r=3,4,5……。其中最小值是3,所以r取值为3。
(3)确定每一个校验位,应该穿插在信息位的哪一个位置。
假设信息位的每一个二进制位可以表示成mnmn-1...m3m2m1(注意:最低位的下标是1)
校验位的每一个二进制位可以表示成rnrn-1...r3r2r1r0(注意:最低位的下标是0)
例如,接上例。信息位m4m3m2m1,校验位r2r1r0 。
由于
海明码k=信息位(m位)+校验位(r位),所以海明码一共是k=m+r=4+3=7位。(注意:最低位是k1)
那么,这7位中,哪些位是信息位,哪些位是校验位呢?
答:校验位遵循以下规律:
校验位rn所在海明码中的位数为2n,其余由信息位填充。
例如,接上例。
海明码k=7,即k
7k
6k
5k
4k
3k
2k
1。
信息位m=4,即m4m3m2m1。
校验位r=3,即r2r1r0 。
r2所在海明码中的位数为22=4,即k4位。
r1所在海明码中的位数为21=2,即k2位。
r0所在海明码中的位数为20=1,即k1位。
剩下的位有信息位填充,即m4在k7位,m3在k6位,m2在k5位,m1在k3位。
画个表格更清楚:
k7 | k6 | k5 | k4 | k3 | k2 | k1 | 海明码位数 |
m4 | m3 | m2 | m1 | 信息位 | |||
r2 | r1 | r0 | 校验位 |
(4)确定校验位rnrn-1...r3r2r1r0分别是多少。
答:校验位rn由海明码位数下标数写成2的幂之和中包含2n的位数对应的信息位之和构成。(汗~~~,太晦涩了,举个例子吧)
接上例。
海明码的k7位,7=22+21+20。
海明码的k6位,6=22+21。
海明码的k5位,5=22+20。
海明码的k3位,3=21+20。
(关键时刻到了!!)
由于7、6、5中都有22,而m4在k7位,m3在k6位,m2在k5位,
所以,r2=m4异或m3异或m2。
信息是1101, 那么r2=m4异或m3异或m2
=1异或0异或1=0
所以校验位r2=0。
同理,
由于7、6、3中都有21,而m4在k7位,m3在k6位,m1在k3位,
所以,r1=m4异或m3异或m1。
信息是1101, 那么r2=m4异或m3异或m1 =1异或0异或1=0
所以校验位r1=0。
由于7、5、3中都有20,而m4在k7位,m2在k5位,m1在k3位,
所以,r1=m4异或m2异或m1。
信息是1101, 那么r2=m4异或m2异或m1 =1异或1异或1=1所以校验位r0=1。
到此为止,我们已经求出校验码r=001。
将信心码m=1011和校验码人=001带入上边的表格中
k7 | k6 | k5 | k4 | k3 | k2 | k1 | 海明码位数 |
m4 | m3 | m2 | m1 | 信息位 | |||
r2 | r1 | r0 | 校验位 |
k7 | k6 | k5 | k4 | k3 | k2 | k1 | 海明码位数 |
1 | 0 | 1 | 1 | 信息位 | |||
0 | 0 | 1 | 校验位 |
所以,海明码为1010101。
转载于:https://blog.51cto.com/85275662/440656
最后
以上就是幸福草丛为你收集整理的海明码(1)——求海明码的全部内容,希望文章能够帮你解决海明码(1)——求海明码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复