循环冗余码计算
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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