是接受方和傳送方的乙個約定,也就是乙個二進位制數,在整個傳輸過程中,這個數始終保持不變。
在傳送方,利用生成多項式對資訊多項式做模2除生成校驗碼。在接受方利用生成多項式對收到的編碼多項式做模2除檢測和確定錯誤位置。
應滿足以下條件:
a、生成多項式的最高位和最低位必須為1。
b、當被傳送資訊(crc碼)任何一位發生錯誤時,被生成多項式做模2除后應該使餘數不為0。
c、不同位發生錯誤時,應該使餘數不同。
d、對餘數繼續做模2除,應使餘數迴圈。
將這些要求反映為數學關係是比較複雜的。但可以從有關資料查到常用的對應於不同碼制的生成多項式如圖9所示: n
k碼距d
g(x)多項式
g(x) 7
4 3x3+x+1
1011 7
4 3x3+x2+1
1101 7
3 4x4+x3+x2+1
11101 7
3 4x4+x2+x+1
10111 15
11 3
x4+x+1
10011 15
7 5x8+x7+x6+x4+1
111010001 31
26 3
x5+x2+1
100101 31
21 5
x10+x9+x8+x6+x5+x3+1
11101101001 63
57 3
x6+x+1
1000011 63
51 5
x12+x10+x5+x4+x2+1
1010000110101
1041
1024
x16+x15+x2+1
11000000000000101
圖9 常用的生成多項式
例如第一項可以寫成:x3+x2+x+1 有冪次就為1 沒有冪次就為0 首尾一定要是1
所以 1 0 1 1
一道計算題:
已知資訊位為1100,生成多項式g(x) = x3+x+1,求crc碼。
m(x) = 1100 m(x)*x3 = 1100000 g(x) = 1011
m(x)*x3 / g(x) = 1110 + 010 /1011 r(x) = 010
crc碼為: m(x)*x 3+r(x)=1100000+010 =1100010
其原理是:crc碼一般在k位資訊位之後拼接r位校驗位生成。編碼步驟如下:
(1)將待編碼的k位資訊表示成多項式 m(x)。
(2)將 m(x)左移 r 位,得到 m(x)*xr 。
(3)用r+1位的生成多項式g(x)去除m(x)*xr 得到餘數r(x)。
(4)將m(x)*xr 與r(x)作模2加,得到crc碼。
MATLAB多項式及多項式擬合
多項式均表示為陣列形式,陣列元素為多項式降冪係數 1.polyval函式 求多項式在某一點或某幾個點的值.p 1,1,1 x 2 x 1 x 1,0,1 y polyval p,x 另外求函式在某一點或某幾個點的值可以用函式feval.x 1,0,1 y feval x exp x x 注意用的乘法...
數學 多項式 多項式求逆
多項式求逆 前置知識 ntt 給定乙個多項式 f left x right 求乙個多項式 g left x right 使得 f left x right g left x right equiv 1 left bmod 998244353 right 考慮遞迴求解。假定現在已經求出了 g 0 le...
多項式與生成函式複習
秦九邵演算法,多點求值 高斯消元,插值 任意乙個n次多項式,都能找到n個根,複數是代數閉域 對於範德蒙德矩陣,求解它的逆矩陣 a a det ai naa detai n aa de tain 乘積的組合意義 字首和與差分 插板法或者廣義二項式定理 斐波那契數列的ogf f x xf x x2f x...