1.CRC的工作方法
在發(fā)送端產(chǎn)生一個(gè)循環(huán)冗余碼,附加在信息位后面一起發(fā)送到接收端,接收端收到的信息按發(fā)送端形成循環(huán)冗余碼同樣的算法進(jìn)行校驗(yàn),
若有錯(cuò),需重發(fā)。
2.循環(huán)冗余碼的產(chǎn)生與碼字正確性檢驗(yàn)例子。
例1.已知:信息碼:110011 信息多項(xiàng)式:K(X)=X5+X4+X+1
生成碼:11001 生成多項(xiàng)式:G(X)=X4+X3+1(r=4)
求:循環(huán)冗余碼和碼字。
解:1)(X5+X4+X+1)*X4的積是 X9+X8+X5+X4 對(duì)應(yīng)的碼是1100110000。
2)積/G(X)(按模二算法)。
由計(jì)算結(jié)果知冗余碼是1001,碼字就是1100111001。
1 0 0 0 0 1←Q(X)
G(x)→1 1 0 0 1 )1 1 0 0 1 1 0 0 0 0←F(X)*Xr
1 1 0 0 1 ,
1 0 0 0 0
1 1 0 0 1
1 0 0 1←R(X)(冗余碼)
例2.已知:接收碼字:1100111001 多項(xiàng)式:T(X)=X9+X8+X5+X4+X3+1
生成碼 : 11001 生成多項(xiàng)式:G(X)=X4+X3+1(r=4)
求:碼字的正確性。若正確,則指出冗余碼和信息碼。
解:1)用字碼除以生成碼,余數(shù)為0,所以碼字正確。
1 0 0 0 0 1←Q(X)
G(x)→1 1 0 0 1 )1 1 0 0 1 1 1 0 0 1←F(X)*Xr+R(x)
1 1 0 0 1 ,
1 1 0 0 1
1 1 0 0 1
0←S(X)(余數(shù))
2)因r=4,所以冗余碼是:11001,信息碼是:110011
3.循環(huán)冗余碼的工作原理
循環(huán)冗余碼CRC在發(fā)送端編碼和接收端校驗(yàn)時(shí),都可以利用事先約定的生成多項(xiàng)式G(X)來(lái)得到,K位要發(fā)送的信息位可對(duì)應(yīng)于一個(gè)(k-1)
次多項(xiàng)式K(X),r位冗余位則對(duì)應(yīng)于一個(gè)(r-1)次多項(xiàng)式R(X),由r位冗余位組成的n=k+r位碼字則對(duì)應(yīng)于一個(gè)(n-1)次多項(xiàng)式T(X)=Xr*K(X)+R(X)。
4.循環(huán)冗余校驗(yàn)碼的特點(diǎn)
1)可檢測(cè)出所有奇數(shù)位錯(cuò);
2)可檢測(cè)出所有雙比特的錯(cuò);
3)可檢測(cè)出所有小于、等于校驗(yàn)位長(zhǎng)度的突發(fā)錯(cuò)。
模2除法每一步的模2減法,可以簡(jiǎn)單的理解為就是按位異或,各種情況的結(jié)果為
0 0 1 1
0 1 0 1
--- --- --- ---
0 1 1 0
例子3.1
計(jì)算余數(shù)(可以不考慮模2除法的結(jié)果,光考慮余數(shù))
101100110000
10011
--------------------------
1010110000
10011
--------------------------
11010000
10011
--------------------------
1001000
10011
--------------------------
0100
發(fā)送端的碼字應(yīng)為101100110100