细说海明码编码原理和校验方法
海明码编码原理和校验方法
3.1.1考点分析
历年网络工程师考试试题涉及到检错与纠错的相关知识点有:基本概念、海明码、CRC编码
前言:(海明码核心问题)
前言:大家在做这种题之前一定要明白一个问题 海明码是来纠错检错的
,而关于海明码的一系列问题都是根据校验位的值的变化找出错误,从而进行纠正错误。(记住这一句话!!!,如果你题目做多了就会发现这段话是海明码的出题核心)
基本概念:
海明码是一种纠错码,其方法是为需要校验的数据位
+校验位
,使得校验位的值决定于某些被校位的数据,当被校数据出错时,可根据校验位的值的变化找到出错位
,从而纠正错误。
教材例题:
解答: 以原始信息101101
为例,讲解推导过程和校验过程
信息位(m)表示,校验位(k)表示
原始信息的个数 即 m=6 ;由关系式得 6+k+1≤2^k 解不等式 最小k:4
海明码总长度 m+k 即 6+4=10 总长度:信息位+校验位
海明码排列规则:10个位置是指海明码的总长度
(1)填写原始信息 如上图,自己可以按照例题模仿走一遍流程
(2)校验
图中仅举出X4的一个例子,很明显第4位为1的 B8,B9,B10
校验采用的是(异或)运算 即 相异为1 相同为0
X8=B8⊕B9⊕B10=1⊕0⊕1=0