一。循环冗余(CRC)校验:
循环冗余(CRC)校验码是线性码,由基本代码和校验码(冗余位)组成。
线性码:在长度为n位代码中,若有k位信息码和r位校验码,其中每一个校验码元
是该代码某些信息码元的和(模之和)。
线性代码表示为(n,k),n-码长,k-信息码 n位代码=k位信息码元+r位校验码
由矩阵表示 V=[akak-1...a2a1 CrCr-1...C2C1](注:k和r均是下标)
其中ai-信息码元 Ci-校验码元
2.代码的多项式表示方法
例:11001011=X7+X6+X3+X+1 (其中X是除0之外的任意数)
例:用多项式模2除法求(X3+1)/(X2+X)得X+1
3.循环冗余码的形成
设要传送的报文码长度为K位,可用K-1阶的报文码多项式M(X)表示。
G(x)为 r=n-k阶的生成多项式即G(x)=Xr+Xr-1+...+X2+X+1
M(x)Xr R(x)
------ = Q(x)+ ----------
G(x) G(x)
C(x) = M(x)Xr + R(x)=Q(x)*G(x)
循环冗余码 基本代码 校验码
在实际应用中生成多项式预先给定,最常用的的生成多项式有四个:
1,CRC_12 G(x)=X12+X11+X3+X2+1
2,CRC_16 G(x)=X16+X15+X2+1 (IBM公司)
3,CRC_16 G(x)=X16+X12+X5+1 (CCITT)
4,CRC_32 G(X)=X32+X26+X23+X22+X16+X11+X10+X8+X7+X5+X4+X2+X+1 (在LAN中应用)
例题:
利用生成多项式G(X)=X4+X3+X2+1
计算报文11001010101的校验序列。
解:因为G(X)=X4+X3+X2+1=11011,所以r=4
M(X) = 110010101
M(x)*Xr(注:是X的r次方)=110010101010000
得:R(x)=0011 (注:R(x)=M(x)*Xr/G(x),因为r=4,所以取四位)
因此:C(x)=M(x)*Xr+R(x)=110010101010011
把上学期网络课的笔记敲了给你,希望能有用的上的地方。