糾錯編碼–海明碼
假設傳送4位資料,在它上面加上冗餘資訊(冗餘碼,校驗碼),但是校驗碼很厲害,不但可以校驗自身,同時還可以校驗幾位
發現有一些資料同時被幾個校驗碼同時作用;
假如第3位資料在接收端的時候發生了錯誤,由原來的0變成了1,我們就可以通過校驗碼檢測出是哪一位發生錯誤,檢測發現第3位發生錯誤,它是被幾位校驗碼牽制著,只要它產生錯誤都能對其他幾位校驗碼產生影響,動一發而牽全身(改變乙個資料或者乙個資料發生錯誤,使得很多校驗碼察覺出來,這些校驗碼互相檢查,最後確定出錯的資料)
確定校驗碼位數r
海明不等式:2^r-1>=k+r
r:為冗餘資訊
k:資訊位
假設要傳送資料:d=101101
資料的位數:k=6
滿足不等式的最小r(冗餘位)為4
也就是d=101101的海明碼應該有6+4=10位
其中原資料6位,校驗碼4位
確定校驗碼和資料的位置
假設這4位校驗碼分別為p1,p2,p3,p4:資料從左到右為d1、d2、d3、d4、d5、d6
p的確定:放在2的幾次方的位置(只能放在2^0 、2^1 、2^2、 2^3…對應數字為1、2、4、8…)
d的確定:把p填完剩下的空補上。
求出校驗碼的值
d=101101填入:
p1對應校驗的二進位制第一位為1(從右往左數),找所有二進位制數第一位為1的數,
所以上面p1可以檢驗的有p1,d1,d2,d4,d5
如何處理以上資料呢?
令所有要校驗的位異或=0(相同為0,不同為1)
代入資料
p2對應資料第二位為1,找第二位為1(從右往左數),找所有二進位制數第而位為1的數,
所以上面p2可以檢驗的有p1、d1、d3、d4、d6
令所有要校驗的位異或=0(相同為0,不同為1)
代入資料
p3同理:p3=0
p4:p4=1
綜上所述:校驗碼為0001
所以101101的海明碼為0010011101(p和d合併在**中)
檢錯並糾錯
假設海明碼傳輸的過程中,第五位出錯,因此接收到的資料位0010111101(由0變為1)。但是接收端不知道哪位出錯,找出錯誤位。
如何找呢?
令所有要校驗的位異或運算
校驗位數的第三步一樣,
所以出錯位為第5位
把出錯的位改為其反碼,將1變為0
史上最通俗的海明碼編碼計算 檢錯和糾錯原理解析
一 海明碼檢錯 糾錯基本思想 海明碼 hamming code 是乙個可以有多個校驗位,具有檢測並糾正一位錯誤 的糾錯碼,所以也僅用於通道特性比較好的環境中,如以太區域網。它的檢錯 糾錯基本思想如下 1 將有效資訊按某種規律分成若干組,每組安排乙個校驗位通過異或運算進行校驗,得出具體的校驗碼 2 在...
史上最通俗的海明碼編碼計算 檢錯和糾錯原理解析
所謂合法 集就是當 由於未知因素導致出錯後,計算機可是識別到錯誤的 不合法 集 如果 101 出錯,可能是 111 那麼無法判斷是錯誤 還是本來就是 111 因此不合法。下面給出合法 集 當有一位發生變化時並不會和 集中的其他 發生衝突,因此合法。l 編碼的最小距離 d 檢錯的位數 c 糾錯的位數 ...
史上最通俗的海明碼編碼計算 檢錯和糾錯原理詳細解析
合法 集 所謂合法 集就是當 由於未知因素導致出錯後,計算機可是識別到錯誤的 不合法 集 如果 101 出錯,可能是 111 那麼無法判斷是錯誤 還是本來就是 111 因此不合法。下面給出合法 集 當有一位發生變化時並不會和 集中的其他 發生衝突,因此合法。l 編碼的最小距離 d 檢錯的位數 c 糾...