注:该内容是观看大学mooc之后做的笔记,便于之后的复习,以及初学时的理解
1CRC校验冗余码(校验码):
(1)增加冗余码(校验位):
【有效信息(k位)校验信息(r位)】(注【】:无实际意义,只表示二者连接在一起)
N=k+r<=2的r次方-1
含义是,一共有r个校验位,那么便可以表示2的r次方种状态(每一个二进制数都只有0或1这2中情况,而一共有r位),其中一种状态没有错误,剩下的2的r次方-1个都是错误状态,而这些错误状态的数量一定要大于或者等于(>=) k+r (有效信息位和校验信息位)
(2)生成多项式G(x):
生成多项式是收发双方约定的一个(r+1)位二进制数,发送方利用G(x)对信息多项式做模2除运算,生成校验码。 接受方利用G(x)对收到的编码多项式做模2除运算检测差错及错误定位
(3)G(x)应满足的条件:
A、最高位和最低位必须是1;
B、当被传送信息(CRC码)任何一位发生错误时,被生成多项式做除后应该使余数不为0;
C、不同位发生错误时,模2除运算后余数不同
D、对不为0余数继续进行模2除运算应使余数循环(因此CRC校验又叫做循环冗余校验,这个循环指余数循环)
2CRC校验的基本原理:
(1)常见生成多项式G(x):
根据上述公式中的K和r的关系,在工程中常见的应用
N | K | 码距d | G(x)多项式 | G(x) |
7 | 4 | 3 | x^3+x+1 | 1011 |
7 | 4 | 3 | x^3+x^2+1 | 1101 |
7 | 3 | 4 | x^4+x^3+x^2+1 | 11101 |
7 | 3 | 4 | x^4+x^2+x+1 | 10111 |
15 | 11 | 3 | x^4+x+1 | 10011 |
15 | 7 | 5 | x^8+x^7+x^6+x^4+1 | 111010001 |
31 | 26 | 3 | x^10+x^9+x^8+x^6+x^5+x^3+1 | 11101101001 |
31 | 21 | 5 | x^10+x^9+x^8+x^6+x^5+x^3+1 | 11101101001 |
63 | 57 | 3 | x^6+x+1 | 1000011 |
63 | 51 | 5 | x^12+x^10+x^5+x^4+x^2+1 | 1010000110101 |
(2)模2运算规则(本质式异或运算):
【1】:加/减运算(加不进位,减不借位)
0+0=0,0-0=0,0+1=1,0-1=1,1+0=1,1-0=1,1+1=0,1-1=0
【2】模2除法
按模2减,求部分余数,不借位
【3】上商原则
1:部分余数首位为1时,商为1,减除数
2:部分余数首位为0时,商为0时,减0
3:当部分余数的位数小于除数的位数时,改余数即为最后的余数