為了避免信息傳遞發(fā)生的諸如0變成1的錯(cuò)誤,利用校驗(yàn)碼可以發(fā)現(xiàn)錯(cuò)誤并且可以同時(shí)給出錯(cuò)誤所在位置;這被稱為數(shù)據(jù)校驗(yàn)碼;
1.檢錯(cuò)碼??
奇偶效驗(yàn)碼:例如奇校驗(yàn)的編碼規(guī)律是將校驗(yàn)碼(包含有效信息和校驗(yàn)位)中1的個(gè)數(shù)為奇數(shù);偶效驗(yàn)則相反;
2.糾錯(cuò)碼有漢明碼,循環(huán)碼
漢明碼:
只要使用足夠的校驗(yàn)位,就可以達(dá)到對(duì)任何錯(cuò)誤的檢測和糾錯(cuò)的水平
例如校正字長K位的錯(cuò)誤,則需要添加r位的校驗(yàn)位,它能夠指出k+r個(gè)錯(cuò)誤和無錯(cuò)誤的情況,r的滿足條件是2的r次方大于等于k+r+1
N=11,k=7,r=4,漢明碼:
位號(hào) 1 2 3 4 5 6 7 8 9 10 11
pi占位 P1 P2 X P3 X X X P4? X X X
例子:有效信息:b1b2b3b4=1011;分別填入3,5,6,7位,若采用偶校驗(yàn),例如第一組 P1b1b2b4,因?yàn)榕紨?shù)個(gè)1,所以P1=0,同理P2=1,P3=0;
循環(huán)碼(CRC):基于模2運(yùn)算(異或同0異1)的校驗(yàn)碼
2^r≥k+r+1? -------2^r-r-1>=k
例題:4位有效信息1100作循環(huán)校驗(yàn)碼,選擇生成的多項(xiàng)式G(x)=1011,求(7,4)碼
1.M(x)=1100;
2.r=3 M(x)左移3位,空出r位,M(x)x3=1100000
3.模2除多項(xiàng)式G(x)? ?M(x)x3/G(x)=1100+010/1011;
4.模2加 M(x)x3 +R(x)=1100000+010=1100010? ? ? ? ? ? //{(7,4)碼}