CRC码一般在k位信息位之后拼接r位校验位生成。
选择产生多项式为1011,把4位有效信息1100编程CRC码.即G(蠢则X)=X^3+X+1=1011,M(x)=X^3+X^2=1100。
(1)将待编码的k位信息表示成多项式M(x)。得到M(X)=1100,即M(x)=X^3+X^2=1100
(2)将M(x)左移r位,得到M(x)*xr。则取r=3M(X)*X^3=X^6+X^5=1100000
(3)用r+1位的生成多项式G(x)去除M(x)*xr得到余数R(x)。则被除数为1100000,除数为1011,进行二进制除法,求得余数为010。
(4)将M(x)*xr与R(x)作模2加,得到CRC码。则CRC校验码为1100010
扩展资料:
凡设有校验码的代码,是由本体码与校验码两部分组成(如组织郑档信机构代码),本体码是表示编码对象的号码,校验码则是附加在本体码后边,用来校验本体码在输入过程中准确性的号码。每一个本体码只能有一个校验码,校验码通过规定的数学关系得到。
系统内喊轮部预先设置根据校验方法所导出的校验公式编制成的校验程序,当带有校验码的代码输入系统时,系统利用校验程序对输入的本体码进行运算得出校验结果之后,再将校验结果与输入代码的校验码进行对比来检测输入的正确与否。如果两者一致,则表明代码输入正确,系统允许进入,如果不一致,则表明代码输入有误,系统拒绝进入,并要求代码重新输入。
参考资料来源:百度百科-校验码
借助于模2除法则,其余数为校验字段。
例如:信息字段代码为: 1011001;对应m(x)=x6+x4+x3+1
假设生成多项式为:g(x)=x4+x3+1;则对应g(x)的代码为: 11001
x4m(x)=x10+x8+x7+x4 对应的代码记为:10110010000;
采用模2除法则: 得余数为: 1010 (即校验字段为:1010)
发送方:发出的传输字段为: 1 0 1 1 0 0 1 1010
信息字段 校验字段
接收方:使用相同的生成码进行校验:接收到的字段/生成码(二进巧冲制除法)
如果能够除尽,则正确,
给出余数(1010)的计算步骤:
除法没有数学上的含义,而是采用计算机的模二除法,即除数和被除数做异或运算。进行异或运算时除数和被除数最高位对齐,按位异或。
10110010000
^11001
--------------------------
01111010000
1111010000
^11001
-------------------------
0011110000
11110000
^11001
--------------------------
00111000
111000
^11001
-------------------
001010
则四位CRC校验模仔码就为:1010。
利用CRC进行检错的过程可简单描述为:在发送端根据要传送的k位二进制码旦宽汪序列,以一定的规则产生一个校验用的r位监督码(CRC码),附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。在接收端,根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。这个规则,在差错控制理论中称为“生成多项式”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)