海明校驗碼--檢錯糾錯詳解

第一次接觸:海明校驗碼很難!後端

第二次接觸:海明校驗碼仍是很難!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

相關文章
相關標籤/搜索