CRC 生成多项式
来源:互联网 发布:途虎轮胎靠谱吗 知乎 编辑:程序博客网 时间:2024/05/17 01:17
是接受方和发送方的一个约定,也就是一个二进制数,在整个传输过程中,这个数始终保持不变。
在发送方,利用生成多项式对信息多项式做模2除生成校验码。在接受方利用生成多项式对收到的编码多项式做模2除检测和确定错误位置。
应满足以下条件:
a、生成多项式的最高位和最低位必须为1。
b、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做模2除后应该使余数不为0。
c、不同位发生错误时,应该使余数不同。
d、对余数继续做模2除,应使余数循环。
将这些要求反映为数学关系是比较复杂的。但可以从有关资料查到常用的对应于不同码制的生成多项式如图9所示:
N
K
码距d
G(x)多项式
G(x)
7
4
3
x3+x+1
1011
7
4
3
x3+x2+1
1101
7
3
4
x4+x3+x2+1
11101
7
3
4
x4+x2+x+1
10111
15
11
3
x4+x+1
10011
15
7
5
x8+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
一道计算题:
已知信息位为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码。
- CRC 生成多项式
- CRC 生成多项式
- CRC-32校验 多项式
- CRC 多项式规范
- crc校验多项式码
- CRC校验生成
- CRC-16生成过程
- crc的生成
- 某个数据通信系统采用CRC校验方式,并且生成多项式的二进制比特序列为11001,目的结点接收到的二进制比特序列为 110111001(含CRC校验码)。请判断传输过程中是否出现了差错?为什么?
- 多项分布 多项式分布
- 生成随机的多项式
- 二次“素数生成”多项式
- CRC校验码的生成编码
- 二进制CRC校验码生成程序
- CRC-16校验(多项式为x16+x15+x2+1):
- crc校验学习CRC-CCITT 多项式为:G(x)= X16+X12+X5+1
- 采用CRC查表法快速生成CRC的函数
- 浅谈生成函数和多项式
- express
- POJ 3176
- LOB数据类型
- 模板是怎么炼成的
- PLSQL 复合类型数据
- CRC 生成多项式
- 阅读1
- 大学英语四级听力必考26个短语
- 一道java习题
- 一道java习题
- jobs命令
- kill 命令
- less 命令
- umask 权限掩码