循环冗余码计算

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

循环冗余编码(CRC )

循环冗余编码是一种通过多项式除法检测错误的方法。其核心思想是将待传输的数据位串看成系数为0或1的多项式,如位串10011可表示为f(x)=x4(x 的四次方)+x+1.发送前收发双方约定一个生成多项式G (x )(其最高阶和最低阶系数必须为1),发送方在数据位串的末尾加上校验和,使带校验和的位串多项式能被G (x )整除。接受方收到后,用G (x )除多项式,若有余数,则传输有错。

校验和计算方法如下:

(1) 若G(x)为r 阶,原数据m 位,其多项式为M (x ),则在原始数据后面添加r 个0,

实际传送数据为m+r 位,相应多项式为xr(x 的r 次方)M(x)。

(2) 按模2除法用对应于G (x )的位串去除对应于xr(x 的r 次方)M(x)的位串。

(3) 按模2加法把xr(x 的r 次方)M(x)的位串与余数相加,结果就是要传送的带校验和

的数据多项式T (x ):

T (x )=xrM(x)+【xrM(x) MOD 2 G (x )】

例如,若要发送的数据为1101011011,生成多项式为10011,即G(x)= x4(x 的四次方)+x+1,则实际传输的位串为:

T (x )=11010110111110

其中最后4位为余数,如下图所示:

循环冗余编码检错能力强,实现容易,是目前应用最广泛的检错码编码方法。

11010110110000

10011 1100001010 10011

10011 10011

0000010110 10011

10100 10011

1110

1100001010

11010110110000 10011

10011

相关文档
最新文档