海明校验码--检错纠错详解

第一次接触:海明校验码很难!后端

第二次接触:海明校验码仍是很难!spa

第三次接触:海明校验码很难? Say no.net

第四次接触:海明校验码除了步骤多一点,其实并不难 对象

海明校验码定义blog

海明码(Hamming Code)是利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的肯定位置插入k个校验位,经过扩大码距来实现检错和纠错。对于数据位m的数据,加入k位的校验码,它应知足:m+k+1<2^kci

揭开海明校验码神秘面纱get

因运算步骤较多,采用栗子的方式一步一步求解,更易于理解。博客

栗子1:table

求信息1011的海明码方法

第一步:求校验码的位数值K

    根据公式  2^k >= m+k +1 ,信息1011的长度m=4, 2^k >= k+5 , -->k=3 ;

第二步:求校验码的位置   海明校验码方法中,校验码的位置是固定的,从2^0位,2^1 位 --> 2^2位  ... 2^n位 ,总个数为K位 

   校验码的位置在第1位、第2位、第4位,分别用R一、R二、R3表示;

第三步:画图表

注释:  我分别把七个位置用1~7来表示了  在填写信息为的时候也要把高位的数据填到高的位置 ,例如1011  就要相似图中的填法  

位置 1 2 3 4 5 6 7
信息码     1   1 0 1
校验码 R1 R2   R3      

第四步:计算校验位的值,也是最为关键的一步 。

 肯定校验位的分组原则:每一个位数都由R一、R二、R3中的一或若干个所肯定。

说明:1由第一位R1来校验;2由第二位R2来校验;因为3=1+2(1和2指的是位数,都是2的n次方)因此3由第一位R1和第二位R2校验,4由第四位R3校验,5和3道理是同样的,5=1+4(2^0+2^2);6=2+4;7=1+2+4来校验,一次类推;

画表以下所示:

海明码位置 占用的校验位号 备注
1 1 R1
2 2 R2
3 1,2 R1,R2
4 4 R3
5 1,4 R1,R3
6 2,4 R2,R3
7 1,2,4 R1,R2,R3

第四步:进行汇总,看每一个校验位都肯定了哪一位。

R1:一、三、五、7

R2:二、三、六、7

R3: 四、五、六、7

第五步:用亦或运算求出R一、R二、R3的值:(以R1为例)

普及:参加运算的两个对象,若是两个相应位为“异”(值不一样),则该位结果为1,不然为0。多个异或运算时,从左至右依次异或 

第二行是对应的信息位上的数,如图求出R1=1

以此类推,求出值表以下

位置 1 2 3 4 5 6 7
信息码     1   1 0 1
校验码 1 0   0      

第五步第二种求法:

有此图的数据位置关系求值;

位置 1 2 3 4 5 6 7
信息码     1   1 0 1
校验码 R1 R2   R3      

以R1为例: R1校验了1,3,5,7这四个位置,而这4个位置对应的值分别为 空、一、一、1,对着几个值 “异或运算”得1,即

R1校验的结果 1⊕1⊕1 = 1

R2校验的结果 1⊕0⊕1 = 0

R3校验的结果 1⊕0⊕1 = 0

以此类推,求出值表以下

位置 1 2 3 4 5 6 7
信息码     1   1 0 1
校验码 1 0   0      

第六步:读数

从位置1到7依次读出:1010101

完毕!很简单吧 -_-

 

思惟拓展

接收端如何检验和纠错呢 
假设 信息传输前  1010101–>传输后 1000101  

解析:

1000101  获取到的信息码 是1001;校验码是 100 ;

求解1001的海明码,这里不累赘求解过程了,获得的 海明码是 :

由上面的第四步,肯定

R1校验 一、三、五、7

R2校验 二、三、六、7

R3校验  四、五、六、7

传输后端的数据 1000101 ,⊕表示异或运算

R1校验的结果 1⊕0⊕1 = 0

R2校验的结果 1⊕0⊕1 = 0

R3校验的结果 0⊕0⊕1 = 1

即校验位R1~R3 为 001 ;

 001 不等于 100 因此传输过程当中数据出了问题  (检错)

开始纠错:

求出的校验位值和得到的校验位值异或运算 100⊕001,获得 101 

101 即对应哪一个位置的值出错了,  2^2 + 2^0 = 5;

接收的数据 1000101 第5个位置出错了,与以前的假设吻合,将出错的值取反,即获得正确的值

全部正确的值为 1010101

一波很6的海明校验码操做!谢谢观看 !

 

 

 

在此很是感谢下面的这位博主,写的很好,一看就懂了,很是感谢!!

博客参考:https://blog.csdn.net/wlj323/article/details/48830819

相关文章
相关标签/搜索