海明碼(漢明碼)的工作機制

2022-05-06 17:06:10 字數 940 閱讀 6717

一、海明碼的形成方式:

1、首先海明碼是由資訊位和校驗位組成的

2、資訊位校驗位的關係 校驗位的位數r  資訊位的位數i  2^r - 1 >=  i+r 

3、校驗位的位置是2的整數次方 如 1 2 4 8 ......

4、海明碼位數分組 

(因為海明碼其實是分組的奇偶校驗碼,所以有個分組的概念)

1 - 1、3、5、7

2 - 2、3、6、7

4 - 4、5、6、7

規律是:海明碼的每一位數都由若干校驗位校驗,校驗位本身也被校驗。

每個被校驗位的位數(即在海明碼中的位置)等於校驗位位數的和

5、分組後 計算校驗位的方式:

配偶原則:該組的1的個數為偶數個 ∑pi % 2=0 

配奇原則 :該組的1的個數為奇數個∑pi % 2=1

二、海明碼為什麼可以校驗1位錯?

1、為什麼能發現錯

由於海明碼在生成時,就按照配偶原則或者配奇原則來,因此只要有錯誤,我們就會從校驗組的

計算中發現,如按配偶原則來生成的海明碼,發現某一組中1的個數為奇數,那就說明這一組出

了乙個錯。

2、怎樣確定是哪一位錯

我們需要計算出每一組的「配置引數」,(這個詞是我自己造的)配置引數為1,代表該組的1的個

數 不符合生成時的配置原則,配置引數為0代表該組1的個數符號生成海明碼時的配置原則。

根據由各組的配置引數按組號從大到小順序組成的一串2進製數,我們可以直接算出哪一位錯

了。3、為什麼可以發現是哪一位錯?

因為分組時,第i組獨佔第2^(i-1) 位,第i組和第j組共享第2^i'(i-1)+2^(j-1) 位,以此類推。

因此,在我們找是**出錯時,我們可以通過計算每一組的配置引數來看該組有沒有出錯

只要把每一組的配置引數都算出來,就可以根據被校驗位共享的機制,精確計算出出錯位的

位置了。

計網筆記 海明碼(漢明碼)

海明碼是可以發現雙位元錯誤,並可以糾正單位元錯誤的編碼方案。一般來講,檢錯編碼不一定具有糾錯能力,但是糾錯編碼具有檢錯能力 其工作流程可以分為以下四個步驟 1 確定校驗碼位數r 2 確定校驗碼和資料的位置 3 求出校驗碼的值 4 檢錯並糾錯。在以下的工作流程中,我們要傳送的資料d 101101.我們...

漢明碼或者海明碼的計算或者糾錯

設k為有效資訊的位數,r為校驗位的位數,則整個碼字的位數n應滿足不等式 n k r 2r 1 是2的r次方 若要求海明碼能檢測出2位錯誤,則再增加1位校驗位。例如 二進位制編碼位10101100,共8位所以k 8,可以得出校驗位r的位數為4位。位號 1 n 是那些權值為2的那些位,即2 0 2 1 ...

漢明碼(海明碼)你了解多少?帶你探秘背後秘密

如何編碼?如何校驗?在計算機儲存中,可能受其它原因,導致儲存出現錯誤,0變成1,1變成0,存放資料以漢明碼的方式儲存,可以進行資料的校正,具有一位糾錯能力。在介紹漢明碼之前舉乙個例子說明一下分組校驗 比如有乙個位元組的資料 1000 0101 黃色為檢驗位 資料說明 1 1010 0001 該資料1...