1. 程式人生 > >迴圈冗餘校驗碼例題[轉帖]

迴圈冗餘校驗碼例題[轉帖]

【例】假設使用的生成多項式是G(x)=x^3+x+1。4位的原始報文為1010,求編碼後的報文。 
解: 
1、將生成多項式G(x)=x^3+x+1轉換成對應的二進位制除數1011。 
2、此題生成多項式有4位(R+1),要把原始報文C(x)左移3(R)位變成1010000 
3、用生成多項式對應的二進位制數對左移4位後的原始報文進行模2除: 
1001-------商 
------------------------ 
1010000 
1011----------除數 
------------ 
1000 
1011 
------------ 
011-------餘數(校驗位)

【例1】某迴圈冗餘碼(CRC)的生成多項式 G(x)=x^3+x^2+1,用此生成多項式產生的冗餘位,加在資訊位後形成 CRC 碼。若傳送資訊位 1111 和 1100 則它的 CRC 碼分別為_A_和_B_。由於某種原因,使接收端收到了按某種規律可判斷為出錯的 CRC 碼,例如碼字_C_、_D_、和_E_。(1998年試題11)

供選擇的答案 
A:① lllll00 ② 1111101 ③ 1111110 ④ 1111111
B:① 1100100 ② 1100101 ③ 1100110 ④ 1100111
C~E:① 0000000 ② 0001100 ③ 0010111 
   ⑤ 1000110 ⑥ 1001111 ⑦ 1010001 ⑧ 1011000
解:
A:G(x)=1101,C(x)=1111 C(x)*2^3÷G(x)=1111000÷1101=1011餘111
得到的CRC碼為1111111
B:G(x)=1101,C(x)=1100 C(x)*2^3÷G(x)=1100000÷1101=1001餘101
得到的CRC碼為1100101
C~E:
分別用G(x)=1101對①~⑧ 作模2除: ① 0000000÷1101 餘000   ② 1111101÷1101 餘001
③ 0010111÷1101 餘000   ④ 0011010÷1101 餘000   ⑤ 1000110÷1101 餘000

⑥ 1001111÷1101 餘100   ⑦ 1010001÷1101 餘000   ⑧ 1011000÷1101 餘100
所以_C_、_D_和_E_的答案是②、⑥、⑧