一、效驗碼:奇偶校驗碼、海明碼、循環冗餘校驗碼
碼距:一個編碼系統中任意兩個合法編碼(碼字)的最小距離就是這個編碼系統的碼距。
如: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.