计算机网络:循环冗余码CRC
对于CRC的编码原理、编码过程、相关性质进行了介绍。
循环冗余码(CRC)又称为多项式编码,将任何一个由二进制位串组成的编码,与一个只含有0和1两个系数的多项式建立一一对应关系。如:位串1010111对应的多项式为;多项式
对应的位串为101111。
多项式的算术运算采用代数域理论的规则。以2为模来完成,即加法没有进位,减法没有借位,模2加法和模2减法都等同于亦或运算。
CRC编码原理:
使用CRC时,发送方和接收方必须预先商定一个生成多项式G(X),发送方编码和接收方校验都是利用预先商定的生成多项式来得到。假设G(X)的阶为r,发送方要发送的信息位为k位,CRC的基本思想就是在信息位的尾部追加一个r位的冗余位,使得信息位与冗余位构成的码字所对应的多项式能够被G(X)除尽。当接收方收到码字之后,用G(X)去除对应的码字,如果有余数则表示传输过程中有错误。
CRC具体编码过程:
①收发双方预先商定一个生成多项式G(X),最高次数为r。——>②将发送方要发送的信息位转换为对应的多项式K(X)。——>③G(X)去除K(X)得到的余式就是冗余位对应的多项式R(X)。——>④发送的码字(信息位+冗余位):T(X)=
K(X)+R(X)。
CRC编码举例说明:
发送方要发送的信息位为:1010001,对应的多项式K(X)=,生成多项式为G(X)=
;由此可知冗余位的位数为 r =4,因此
K(X)=
(10100010000)。
G(X)去除K(X):

通过除法运算可知,R(X)=1101;故发送的码字(信息位+冗余位):T(X)=K(X)+R(X)=10100011101。
CRC的相关重要性质:
-
G(X)含有X+1的因子,则能检测出所有的奇数错误。
-
若G(X)中不含有X的因子,换句话说,G(X)中含有常数项1,那么能检测出所有突发长度
的突发错误。
-
若G(X)中不含有X的因子,而且对于任何
的e,除不尽
+1,则能检测出所有的双错。
-
若G(X)中不含有X的因子,则对于突发长度为r+1的突发错误的漏检率为
。
-
若G(X)中不含有X的因子,则对于突发长度
的突发错误的漏检率为
。
Ending... ...
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)