超詳細的海明校驗碼方法解讀

2021-10-02 10:00:11 字數 1689 閱讀 7365

海明校驗碼原理:在有效的資訊為中加入幾個校驗位形成海明碼,使碼距[rjazgj1] 比較均勻地拉大,並把海明碼的每個二進位制位分配到幾個奇偶校驗組[rjazgj2] 中。當某一位出錯後,就會引起有關的幾個校驗位的值發生變化,這不但可以發現錯誤,還能指出錯誤的位置,為自動糾錯提供了依據。 

公式:

例:設傳輸的資料為:1010。求海明碼。

解:1) 由公式:

即:2的k次方-1=k+4

得k=3

所以海明碼的總位數為4+3=7

位(m)

1(001)

2(010)

3(011)

4(100)

5(101)

6(110)

7(111)資料1

010校驗碼

p1p2

p3偶海明碼10

1101

0奇海明碼

01    

1      00

10校驗碼一般放在2的n次方的位置(n=0 1 2 3 4 …….)

2) 將位用二進位制表示出來如表中所示。

3) 將p與m分組:[rjazgj4]

p1 m3 m5 m7

p2 m3 m6 m7

p3 m5 m6 m7

4)將m3 m5 m7等替換下來即:

p1 1 0 0

p2 1 1 0

p3 0 1 0

5)將p的值分別求出來得出校驗碼(奇校驗:1的個數為奇數。偶校驗:1的個數為偶數):

(奇:0偶:1)1 0 0

(奇:1偶:0)1 1 0

(奇:0偶:1)0 1 0

6)海明碼檢查錯誤:

傳送端:0 1 1 0 0 1 0(奇校驗)

接收端:0 1 1 0 0 1 1

6.1)將分組拿來用同時加上錯誤位置e:

e1p1 m3 m5 m7

e2p2 m3 m6 m7

e3p3 m5 m6 m7

6.2)將分組中的數字替換下來:              

e10 1 0 1

e21 1 1 1

e30 0 1 1

6.3)因為是奇校驗所以e的值分別為:1 1 1

7)檢查錯誤將e3 e2 e1 寫出來為:111轉換成10進製為7所以第七位出現錯誤。

如果 e 的值都是0則沒有錯誤。

注釋:

[rjazgj1]是指乙個編碼系統中任意兩個合法編碼之間至少有多少個二進位制位不同。

[rjazgj2]題目中會給出具體要求。

[rjazgj3]其中k是校驗碼的位數。m是資料的位數。減去1是減去正確的那一種情況。錯誤的情況一定大於等於傳輸的位數即得到該公式。

[rjazgj4]分組規則:p1對應的m1(001)第三位是1,在位中找到同樣第三位是1的m.,以此類推。

海明校驗碼

這是關於計算機基礎的知識。我們都知道計算機系統執行時,各個部件之間要進行資料交換,為了確保資料在傳送的過程中正確無誤,一是提高硬體電路的可靠性,二是提高 的校驗能力,包括查錯和糾錯。此文主要是從海明碼的校驗能力來說,也是使用校驗碼的方法來檢測傳送的資料是否出錯。它的實現原理,是在m個資料位之外加上k...

海明校驗碼

是由貝爾實驗室的richard hamming設計的,是一種利用奇偶性來檢錯和糾錯的檢驗方法。海明碼的構成方法是在資料位之間的特定位置上插入k個校驗位,通過擴大碼距來實現檢錯和糾錯。實現原理 是在m個資料位之外加上k個校驗位,從而形成乙個m k位的新的碼字,使新的碼字的碼距比較均勻地拉大。把資料的每...

海明校驗碼

計算機組成中的海明校驗碼,相信學過的都會有了解,那麼對其中校驗位的確定,我想似乎有些人不是很明白,今天我來詳細的把如何確定校驗位分享一下 首先看下基本的概念 2 r k r 1 其中r為校驗位 k為資訊位 資訊位是已知的,那麼如何確定校驗位呢,用乙個例子來說明 例如 二進位製碼1011 求它的海明編...