我們在寄快遞時,會填寫乙個單子,在填寫完成之後自己要進行一下核對,再然後是快遞員也要進行核對,這就屬於一種校驗,這種方式時比較簡單的。而計算機系統在執行時,各個部件之間要進行資料交換,為了保證資料在傳輸過程中的汙物,通常使用校驗碼的方法來檢測傳送的資料是否出錯,常用的的方法奇偶叫研發、海明碼和迴圈冗餘校驗碼。現在主要討論海明校驗碼
【定義】
海明碼(hamming code)是利用奇偶性來檢錯和糾錯的校驗方法。海明碼的構成方法是在資料位之間的確定位置插入k個校驗位,通過擴大嗎距來實現檢錯和糾錯。對於資料位m的資料,加入k位的校驗碼,它應滿足:
m+k+1<2^k
【例子】
設資料為01101001,試採用校驗位求其偶校驗方式的海明碼。
1)確定資料位d和校驗位p在海明碼中的位置:
由海明碼編碼規則可知:
pi在海明碼的第2i-1
比如p4=2^(4-1)=8,所以位於第8位
2)確定校驗關係
這個難點在於如何確定校驗位組。
舉乙個例子來說:h3=d0,海明碼下標為3,我們必須用已知的校驗位(p1,p2,p3,p4)來表示3,這裡3就可以等於1+2。
比如p1 的校驗位為**中紅色標記出來所對應的海明碼的位數
故:p1校驗:p1,d0,d1,d3,d4,d6
p1=d0⊕d1⊕d3⊕d4⊕d6=1⊕0⊕1⊕0⊕1=1
⊕符號:代表異或,相同則為0,不同則為1。只要仔細一定可以計算正確。
p2、p3、p4的海明碼計算也是如此,關鍵是要找出正確的校驗位組,所以海明校驗碼:011001001101
海明碼編碼原理及其解釋
一.糾正一位錯的海明碼的位數k 的選取必須符合下式 當資訊位為8 位時,海明碼校驗碼共有 4位,而當資訊位為 20位時,其校驗碼需要 5位。這是理論上進行糾錯需要用到的最少位。解釋 k位的糾錯碼能指明的位置最多為個,即從0.0 到1.1 除去0.0 表示第0 位出錯 沒有錯誤 再減去糾錯碼本身占用 ...
海明碼的編碼和校驗方法
海明碼 也叫漢明碼 具有一位糾錯能力。本文以1010110這個二進位制數為例解釋海明碼的編碼和校驗方法。編碼確定校驗碼的位數x 設資料有n位,校驗碼有x位。則校驗碼一共有2x種取值方式。其中需要一種取值方式表示資料正確,剩下2x 1種取值方式表示有一位資料出錯。因為編碼後的二進位制串有n x位,因此...
海明碼的編碼和校驗方法
海明碼 也叫漢明碼 具有一位糾錯能力。本文以1010110這個二進位制數為例解釋海明碼的編碼和校驗方法。編碼確定校驗碼的位數x 設資料有n位,校驗碼有x位。則校驗碼一共有2x種取值方式。其中需要一種取值方式表示資料正確,剩下2x 1種取值方式表示有一位資料出錯。因為編碼後的二進位制串有n x位,因此...