是由貝爾實驗室的richard hamming設計的,是一種利用奇偶性來檢錯和糾錯的檢驗方法。海明碼的構成方法是在資料位之間的特定位置上插入k個校驗位,通過擴大碼距來實現檢錯和糾錯。
實現原理:是在m個資料位之外加上k個校驗位,從而形成乙個m+k位的新的碼字,使新的碼字的碼距比較均勻地拉大。把資料的每乙個二進位制位分配在幾個不同的偶校驗位的組合中,當某一位出錯後,就會引起相關的幾個校驗位的值發生變化,這不但可以發現出錯,還能指出是哪一位出錯,為進一步自動糾錯提供了依據。
設資料位是n位,校驗位是k位,則n和k必須滿足以下關係:
根據上訴不等式,可計算出
n值最小k值12
2~43
5~11
412~26
527~57
658~120
7例如:原始資訊——101101100 9位
則推出 k=4
因為海明校驗碼是放在2的次冪位上的,所有插在位置1,2,4,8中位置1
2345
6789
1011
1213
原始資訊位10
1101
100位置
用到的校驗碼
海明碼下標
1校驗位
2校驗位
31,2
1+2=3
4校驗位
51,4
1+4=5
62,4
2+4=6
71,2,4
1+2+4=7
8校驗碼
91,8
1+8=9
102,8
2+8=10
111,2,8
1+2+8=11
124,8
4+8=12
131,4,8
1+4+8=13
用到的校驗碼是看當前位置由哪幾個校驗碼所在的位置的和
校驗碼的位置是1,2,4,8。位置3= 1 + 2,所以位置3用到的校驗碼是1和2;位置7 = 1 + 2 + 4組成的,所以位置7用到的校驗碼是1,2和4。
然後將校驗碼校驗的位置記錄下來:12
3456
78910
1112
130001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
注意:後面的數字串是位置的下標,不是值,值還是0或1。
然後做異或運算(相同時為0,不同時為1)位置1
2345
6789
1011
1213
原始資訊位11
1001
1001
100
真是研究了好久,才知道是啥,果然是難者不會會者不難。
海明校驗碼
這是關於計算機基礎的知識。我們都知道計算機系統執行時,各個部件之間要進行資料交換,為了確保資料在傳送的過程中正確無誤,一是提高硬體電路的可靠性,二是提高 的校驗能力,包括查錯和糾錯。此文主要是從海明碼的校驗能力來說,也是使用校驗碼的方法來檢測傳送的資料是否出錯。它的實現原理,是在m個資料位之外加上k...
海明校驗碼
計算機組成中的海明校驗碼,相信學過的都會有了解,那麼對其中校驗位的確定,我想似乎有些人不是很明白,今天我來詳細的把如何確定校驗位分享一下 首先看下基本的概念 2 r k r 1 其中r為校驗位 k為資訊位 資訊位是已知的,那麼如何確定校驗位呢,用乙個例子來說明 例如 二進位製碼1011 求它的海明編...
常用校驗碼(奇偶校驗碼 海明校驗碼 CRC校驗碼)
一 奇偶校驗碼 二 海明校驗碼 三 crc校驗碼 計算機系統執行時,各個部之間要進行資料交換.交換的過程中,會有發生誤碼的可能 即0變成1或1變成0 由於計算機的儲存是通過二進位制 來實現的的,誤碼會導致儲存的內容發生改變。為確保資料在傳送過程正確無誤,常使用檢驗碼.我們常使用的檢驗碼有三種.分別是...