):
一、海明碼檢錯/糾錯基本思想
海明碼(hamming code)是乙個可以有多個校驗位,具有檢測並糾正一位錯誤**的糾錯碼,所以也僅用於通道特性比較好的環境中,如以太區域網。
它的檢錯、糾錯基本思想如下:
(1)將有效資訊按某種規律分成若干組,每組安排乙個校驗位通過異或運算進行校驗,得出具體的校驗碼
(2)在接收端同樣通過異或運算看各組校驗結果是否正確,並觀察出錯的校校組,或者多個出錯的校驗組的共同校驗位,得出具體的出錯位元位
(3)對錯誤位取反來將其糾正
二、海明碼計算
海明碼計算要按以下步驟來進行:計算校驗碼位數→確定校驗碼位置→確定校驗碼
1. 計算校驗碼位數
假設用n表示新增了校驗碼位後整個傳輸資訊的二進位制位數,用k代表其中有效資訊位數,r表示新增的校驗碼位數,它們之間的關係應滿足:
n=k+r≤2r-1(是為了確保r位校驗碼能校驗全部的資料位,因為r位校驗碼所能表示的最大十進位制數為2r-1,同時也確保各位碼本身不被其他校驗碼校驗)
信
息碼位數
1
2~4
5~11
12~26
27~57
58~120
121~247
校驗碼位數23
4567
82. 確定校驗碼位置
海明碼的校驗碼的位置必須是在2n次方位置(n從0 開始,分別代表從左邊數起分別是第1、2、4、8、16……),資訊碼也就是在非2n次方位置
3. 確定校驗碼
p1校驗碼位校驗的碼字位為:第1位(也就是p1本身)、第3位、第5位、第7位、第9位、第11位、第13位、第15位,……。
最後每組通過異或邏輯運算(與偶校驗原理一樣),使每組的運算結果為0,即可得出第i位校驗碼的值
4. 實現校驗和糾錯
把以上這些校驗碼所校驗的位分成對應的組,則在接收端的對各校驗位再進行邏輯「異或運算」,如果採用的是偶校驗,正常情況下均為0。
如果最終發現只是乙個校驗組中的校驗結果不符,則直接可以知道是對應校驗組中的校驗碼在傳輸過程中出現了差錯,因為所有校驗碼所在的位是只由對應的校驗碼進行校驗;
如果發現多組校驗結果不正確,則檢視這些組中公共校驗的資料位(只有資料位才可能被幾個校驗碼進行校驗),以最終確定是哪個資料位出了差錯(海明碼只能檢查一位出錯);
最後,對所找到的出錯資料位取反即可實現糾錯。
三、海明碼計算示例
原資訊碼
:10011101
(1)確定校驗碼位數
原始資訊碼一共8,根據前面的錶可得知校驗碼位數為4
(2)確定校驗碼位置
??1?001?1101
(2)計算機各位校驗碼
pn校驗碼位校驗的碼字位為:第2n-1位(也就是pn本身)、第2n-1+1位、第2n-1+2位、第2n-1+3位、……、第2n-1位,第3×2n-1位、第3×2n-1+1、……、第2×2n-1位,第5×2n-1位、第5×2n-1+1位、第3×2n-1位,……、第7×2n-1位、第7×2n-1+1位、……、第4×2n-1位,……,第(2m-1) 2n-1位、……第m×2n-1位
p1(n=1):1、3、5、7、9、11 #----檢驗的bit位,下同
1 1 0 1 1 0 #----對應位的值,下同
p2(n=2):2、3、6、7、10、111
1 0 0 1 1
p3(n=3):4、5、6、7、12
00 0 1 1
p4(n=4):8、9、10、11、12
11 1 0 1
最終得出插入校驗碼後的資訊碼為:111
0001
11101
5折秒殺中
,7月1號晚24點前有效!】
:購終身會員,享所有課程
王達大講堂
史上最通俗的海明碼編碼計算 檢錯和糾錯原理解析
所謂合法 集就是當 由於未知因素導致出錯後,計算機可是識別到錯誤的 不合法 集 如果 101 出錯,可能是 111 那麼無法判斷是錯誤 還是本來就是 111 因此不合法。下面給出合法 集 當有一位發生變化時並不會和 集中的其他 發生衝突,因此合法。l 編碼的最小距離 d 檢錯的位數 c 糾錯的位數 ...
史上最通俗的海明碼編碼計算 檢錯和糾錯原理詳細解析
合法 集 所謂合法 集就是當 由於未知因素導致出錯後,計算機可是識別到錯誤的 不合法 集 如果 101 出錯,可能是 111 那麼無法判斷是錯誤 還是本來就是 111 因此不合法。下面給出合法 集 當有一位發生變化時並不會和 集中的其他 發生衝突,因此合法。l 編碼的最小距離 d 檢錯的位數 c 糾...
海明碼的編碼和檢驗
我們在寄快遞時,會填寫乙個單子,在填寫完成之後自己要進行一下核對,再然後是快遞員也要進行核對,這就屬於一種校驗,這種方式時比較簡單的。而計算機系統在執行時,各個部件之間要進行資料交換,為了保證資料在傳輸過程中的汙物,通常使用校驗碼的方法來檢測傳送的資料是否出錯,常用的的方法奇偶叫研發 海明碼和迴圈冗...