計算機系統基礎知識03

校驗碼編碼

  碼距與檢錯糾錯:spa

    一個編碼系統的碼距就是整個編碼系統中任意(全部)兩個碼字的最小距離。例如:若一個編碼系統有四種編碼分別爲:0000,0011,1100,1111,此編碼系統中0000與1111的碼距爲4;0000與0011的碼距爲2,是此編碼系統的最小碼距。所以該編碼系統的碼距爲2。blog

    1.在一個碼組內爲了檢測e個誤碼,要求最小碼距應該知足:d>=e+1class

    2.在一個碼組內爲了糾正t個誤碼,要求最小碼距應該知足:d>=2t+1循環

    3.同時糾錯檢錯:d>=e+t+1二進制

   例如:方法

     假如咱們如今要對A,B兩個字母進行編碼。咱們能夠選用不一樣長度的編碼,以產生不一樣碼距的編碼,分析它們的檢錯糾錯能力。im

     1.若用1位長度的二進制編碼。若A=1,B=0.這樣A,B之間的最小碼距爲1.數據

      合法碼:{0,1};非法碼:{0,1}img

         2.若用2位長度的二進制編碼,可選用11,00做爲合法編碼,也能夠選用01,10做爲合法編碼。若以A=11,B=00爲例,A、B之間的最小碼距爲2。合法碼:{11,00}。非法碼:{01,10} 

         3.若用3位長度的二進制編碼,能夠選用111,000做爲合法編碼。A,B之間的最小碼距爲3。

        合法碼:{111,000} 非法碼:{001,010,011,110,101,100}

      

校驗碼的3種碼  

1.奇偶校驗碼

人爲的在編碼後的最高位或最低位加一些校驗碼。具體加的是1。

例如:某編碼如今有2個1,編碼後再加1個1。使1的個數變成奇數3個。這樣在傳輸過程若是出錯,則會變成偶數個1。從而知道出錯了。

只能檢測代碼中奇數位出錯的編碼,但不能發現偶數位出錯的狀況。

2.海明碼

海明碼的校驗碼的位置必須是在2^n位置(n從0開始,分別表明從左邊數起分別是第一、二、四、八、16......),信息碼也就是在非2n位置、

設數據位是n位,校驗位是k位。則n和k必須知足如下關係:

  2^k >= n+k+1

  練習:海明碼是一種糾錯碼,其方法是爲須要校驗的數據位增長若干校驗位,使得校驗位的值決定於某些被校驗位的數據,當被校驗數據出錯時,可根據校驗位的值的變化找到出錯位,從而糾正錯誤,對於32位的數據,至少須要加()個校驗位才能構成海明碼。

  A .3               B .4             C.5              D.6

  以10位數據爲例,其海明碼錶示爲D9D8D7D6D5D4P4D3D2D1P3D0P2P1中,其中Di(0 <= i <=9)表示數據位,Pj(1 <= j <=4)表示校驗位,數據位D9由P四、P3和P2進行校驗(從右至左D9的位序爲14,即等於8 + 4 + 2,所以用第8位的P四、第4位的P3和第2位的P2校驗),數據位D5由()進行校驗

   A .P4P1     B.P4P2       C.P4P3P1   D.P3P2P1 

    

3.循環冗餘校驗碼CRC:

這個校驗碼會產生一個屢次方程,這個屢次方程會跟信息碼會有一個模%2運算。所得的餘數就是CRC所須要加的位數。

 

練習:

  

 

  

相關文章
相關標籤/搜索