海明校驗碼



一、作用


     這是關於計算機基礎的知識。我們都知道計算機系統運行時,各個部件之間要進行數據交換,爲了確保數據在傳送的過程中正確無誤,一是提高硬件電路的可靠性,二是提高代碼的校驗能力,包括查錯和糾錯。此文主要是從海明碼的校驗能力來說,也是使用校驗碼的方法來檢測傳送的數據是否出錯。

     它的實現原理,是在m個數據位之外加上k個校驗位,從而形成一個m+k位的新的碼字,使新的碼字的碼距比較均勻地拉大。把數據的每一個二進制位分配在幾個不同的偶校驗位的組合中,當某一位出錯後,就會引起相關的幾個校驗位的值發生變化,這不但可以發現出錯,還能指出是哪一位出錯,爲進一步自動糾錯提供了依據。

     可能看這原理較難理解,請看下面的例子。

二、確定校驗碼方法

     要計算海明校驗碼的值,很簡單,三步即可:

     首先,要知道海明校驗碼是放在2的冪次位上的,即“1,2,4,8,16,32······”;

     其次,對於信息位爲m的原始數據,需要加入k位的校驗碼,它滿足m+k+1<2k

     最後,即可計算出校驗碼。

三、舉例

     例如:要計算原始信息位爲101101100的海明校驗碼。

     1.先用m+k+1<2k計算出校驗位:9+k+1 <2k→k=4,即校驗位爲4位。

     2.把原始信息位填入下表1

     3.填充校驗位

     這是比較關鍵的一步,看看都有哪些位置用到了哪幾個校驗位,如下表2

                                                                 

     至此,咱們就可以知道每個校驗位都校驗了哪些位置,即:

     Bit1=3,5,7,9,11,13

     Bit2=3,6,7,10,11

     Bit4=5,6,7,12,13

     Bit8=9,10,11,12,13

     最後,用位置上的原始信息(表1)做異或運算(相同時爲0,不同時爲1就可以知道校驗位上的值了,即:

     Bit1=101010=1

     Bit2=11111=1

     Bit4=01100=0

     Bit8=01100=0

     把校驗位填到表1爲:

四、結語

     第一次看海明校驗的時候,不知道它是怎麼計算出校驗位上的值,之後和同伴討論了之後感覺自己明白了,但當另一個同伴再問的時候,需要點時間才能拾起,所以這次進行了總結。學習真的需要反覆。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章