校驗碼(奇偶、海明碼、循環冗餘)

一、效驗碼:奇偶校驗碼、海明碼、循環冗餘校驗碼

碼距:一個編碼系統中任意兩個合法編碼(碼字)的最小距離就是這個編碼系統的碼距。

如:1)001、010、100    故這個編碼系統的碼距爲1.         

       2)111、000   這個編碼系統的碼距爲3.

1、奇偶校驗碼它是由n-1位信息元和1位校驗元組成。

(此通過該式能檢測碼字中是否發生了單個或奇數個錯誤。)

水平校驗:只檢不糾

垂直校驗:只檢不糾

水平垂直校驗:只能糾正1位錯,(互補的錯不行)

2、海明碼(可檢錯、可糾錯)

  (n爲校驗位,r爲信息位)第n個校驗位位於編碼的2^n-1個位置。且2^n >= r+n+1

    碼距和檢錯能力的關係:n=d-1(n爲檢錯個數,d爲編碼長度)

    碼距和糾錯能力的關係:n=(d-1)/2(n爲糾錯個數,d爲編碼長度)

如題:求信息1011的海明碼。

          1、根據2^n >= r+n+1公式得出 2^3 >= 4+3+1。n=3所以有3位校驗位

7 6 5 4 3 2 1 位數
i4 i3 i2   i1     信息位
      r2   r1 r0 校驗位

         2、根據(i4所在的列)7=2^2+2^1+2^0,(i3所在的列)6=2^2+2^1,(i2所在的列)5=2^2+2^0,(i1所在的列)3=2^1+2^0得出

               r2受到 i4、i3、i2影響,           r2 = i4⊕i3⊕i2 = 1⊕0⊕1 = 0

               r1受到 i4、i3、i1影響,           r1 = i4 ⊕ i3 ⊕i1 = 1⊕0⊕1 = 0

               r0受到 i4、i2、i1影響              r0 = i4 ⊕ i2 ⊕ i1 = 1⊕1⊕1 = 1

        3、所以收到的信息爲:1010101.

7 6 5 4 3 2 1 位數
1 0 1   1     信息位
      0   0 1 校驗位

 

       4、如果收到的信息爲:1010100(最後一位出錯了)校驗位爲 000.

            則 r2⊕i4⊕i3⊕i2 = 0⊕1⊕0⊕1 = 0.

               r1⊕i4⊕i3⊕i1 = 0⊕1⊕0⊕1 = 0.

               r0⊕i4⊕i2⊕i1 = 0⊕1⊕1⊕1 = 1.

     結果爲001.

    與校驗位進行異或運算,001⊕000 = 001   若結果全部爲0 則表示沒有錯誤,若其中有爲1的位數則表示有錯,取反即可糾錯。

2、循環冗餘校驗碼CRC(可以檢錯不可以糾錯左邊爲信息位,右邊位校驗位,又稱(n,k)碼

CRC碼的生成步驟:

1、將x的最高冪次爲R的生成多項式G(x)轉換成對應的R+1位二進制數。

2、將信息碼左移R位

3、模2除,得到R位的餘數。

4、將餘數拼到信息碼左移後空出的位置,得到完整的CRC碼。

【例】假設使用的生成多項式是G(x)=x3+x+1。4位的原始報文爲1010,求編碼後的報文。

解:1、二進制數爲1011

       2、原始報文左移三位,1010000

       3、進行模2除法,得到商爲1001,餘數爲011

      4、編碼後的報文:1010011.

 

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