1.漢明碼實質及原理
漢明碼實質上是多重奇偶校驗,其實現原理是:在有效資訊位中加入幾個校驗位形成漢明碼,使碼距比較均勻的拉大。具有檢驗並糾正一位錯誤的能力。
2.核心公式介紹
2^k >= n+k+1
其中,k
代表校驗位的位數,n
代表資訊位的位數
下面是資訊位n值與校驗位k值的對應關係表(重要)
資訊碼位數(n)
12~4
5~11
12~26
27~57
58~120
校驗碼位數(m)23
4567
3.確定校驗位的位置
根據上表確定校驗碼位數之後,將它插入到資訊碼中(這裡資訊碼用d表示,校驗碼用p表示),規則是:
舉個例子,現有乙個4位資訊碼(d1,d2,d3,d4)
,它的排列是這樣的:
d4 d3 d2p3d1p2p1
知道位置之後,下一步就是確定校驗位的值了
4.確定校驗位的值(核心)
下面通過乙個例子介紹,現在有乙個二進位制編碼1011(d1,d2,d3,d4),求它的漢明碼
位置(從右至左)
占用的校驗位號備註1
11=122
2=23
1,23=1+244
4=45
1,45=1+4
62,4
6=2+4
71,2,4
7=1+2+4
校驗碼名稱(位置)
參與校驗碼的資訊位的位置
p1 (位置為1)
1,3,5,7(1出現過的位置)
p2 (位置為2)
2,3,6,7(2出現過的位置)
p3 (位置為4)
4,5,6,7(4出現過的位置)
現在就可以根據上表確定各校驗位的值了(異或運算):
p1 = d1⊕d2⊕d4 = 1⊕0⊕1 = 0
p2 = d1⊕d3⊕d4 = 1⊕1⊕1 =1
p3 = d2⊕d3⊕d4 = 1⊕0⊕1 = 0
異或運算簡單來說,就是兩個相同的數結果為0,不同的數結果為1,這裡看1的個數就成,偶數為0,奇數就是1
所以生成的海明碼為
d4 d3 d2p3d1p2p1
1 1 00110
5.漢明碼糾正
假設傳輸中h6(d3)發生了錯誤,原碼就變為:
1 0 00110
檢錯過程很簡單,將接收到的碼字重新進行奇偶校驗:
s1 = p1⊕d1⊕d2⊕d4 = 0⊕1⊕0⊕1 = 0
s2 = p2⊕d1⊕d3⊕d4 = 1⊕1⊕0⊕1 = 1
s3 = p3⊕d2⊕d3⊕d4 = 0⊕0⊕0⊕1 = 1
所以真值為s3,s2,s1
,即110,轉換為十進位制為6,即第六位發生了錯誤,糾正
1 1 00110
漢明碼(Hamming Code)原理及實現
漢明碼實現原理 漢明碼 hamming code 是廣泛用於記憶體和磁碟糾錯的編碼。漢明碼不僅可以用來檢測轉移資料時發生的錯誤,還可以用來修正錯誤。要注意的是,漢明碼只能發現和修正一位錯誤,對於兩位或者兩位以上的錯誤無法正確和發現 設將要進行檢測的二進位制 為n位,為使其具有糾錯能力,需要再加上k位...
漢明碼(Hamming Code)原理及實現
漢明碼實現原理 漢明碼 hamming code 是廣泛用於記憶體和磁碟糾錯的編碼。漢明碼不僅可以用來檢測轉移資料時發生的錯誤,還可以用來修正錯誤。要注意的是,漢明碼只能發現和修正一位錯誤,對於兩位或者兩位以上的錯誤無法正確和發現 漢明碼的實現原則是在原來的資料的插入k位資料作為校驗位,把原來的n為...
漢明碼的原理 生成和檢驗
在計算機執行過程中,由於種種原因導致資料在儲存過程中可能出現差錯,為了能夠及時發現錯誤並且將錯誤糾正,通常可以將原資料配成漢明編碼。漢明碼具有一位糾錯能力。設將要進行檢測的二進位制 為n位,為使其具有糾錯能力,需要再加上k位的檢測位,組成n k位的 那麼,新增加的檢測位數k應滿足 2k n k 1或...