糾錯編碼 海明碼(動一發而牽全身)

2021-10-05 11:39:42 字數 1892 閱讀 1465

糾錯編碼–海明碼

假設傳送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 糾...