海明校驗碼

2021-08-28 16:13:53 字數 1775 閱讀 7602

是由貝爾實驗室的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 由於計算機的儲存是通過二進位制 來實現的的,誤碼會導致儲存的內容發生改變。為確保資料在傳送過程正確無誤,常使用檢驗碼.我們常使用的檢驗碼有三種.分別是...