海明校验思路
之前学习的奇偶校验码中的偶校验只能发现奇数位错误,并且不能确定哪一位出错,所以只要出现错误就要重新传输。
海明码思想:
1.将信息位分组进行偶校验。(导致多个校验位)
2.对n个信息位进行k个分组,每个分组对应一个校验位。
3.k个校验位可以表示2^ k种状态,海明码是n个信息位+k个校验位,一共是n+k个位,都有可能出错,还有一种正确的状态。故校验位2^k种状态都需要包括这些情况。
2^k>=n+k+1
(考试的时候带几个k算即可求出)
求解步骤
例:信息位:1010
1.确定海明码位数:n=4->k=3 (一共7位)
信息位:D4 D3 D2 D1 = 1 0 1 0
校验位:P3 P2 P1
海明码:H7 H6 H5 H4 H3 H2 H1
2.校验位的位置:
Pi放在海明位号为2^(i-1)的位置上。(即为1 2 4 8 16…)可以理解为权重,P1的权重为1,P2的权重为2…以此类推。
3.求校验位:
已经将信息位分为了三组,再在每组进行偶校验。首先需要求Pi的值。
方法:将信息位所在海明码的位号展开成二进制:
H3: 3-> 0 1 1
H5: 5-> 1 0 1
H6: 6-> 1 1 0
H7: 7 -> 1 1 1
对应权重为:4 2 1与P3 P2 P1对应。
末位为1的归为P1所属分组。 P1=D1 D2 D4 的异或=0
倒数第二位归为P2所属分组。P2=D1 D3 D4 的异或=1
倒数第三位归为P3所属分组。P3=D2 D3 D4 的异或=0
4.纠错:
校验方程:
S1= P1 D1 D2 D4 的异或
S2=P2 D1 D3 D4 的异或
S3=P3 D2 D3 D4 的异或
(每个分组进行偶校验)
若接收到1010010
则

本文详细介绍了海明码的工作原理,包括信息位分组、校验位计算和纠错过程。通过实例展示了如何将信息位1010转换为7位海明码,并解释了如何根据接收到的不同数据进行错误检测和纠正。此外,提到了海明码在实际使用中通常会加上全校验位以确保数据完整性的策略。
最低0.47元/天 解锁文章
2114

被折叠的 条评论
为什么被折叠?



