软考
APP下载

循环冗余码的计算方法

循环冗余码(Cyclic Redundancy Check, CRC)是一种广泛应用于数字通信和计算机存储中的校验码。它能够检测数据传输或存储中的错误,并防止数据误码。本文将从循环冗余码的定义、计算方法、应用以及优缺点四个角度进行分析。

一、定义

循环冗余码的定义是:它是一种在数字通信数据传输过程中,用于检测数据是否被改变的错误校验码。

它通过对待传输的数据进行异或处理,最终生成一组短而固定的校验码,这些校验码被附加在原始数据的尾部,一同传输或存储,接收方再次通过异或处理来验证数据的完整性,从而确保了数据的正确传输和存储。

二、计算方法

循环冗余码的计算方法主要有两种:按位计算和矩阵计算。

按位计算的步骤如下:

1. 首先要选定生成多项式G(x),通常为低阶的二进制数码,如G(x)=x3+x+1,其中x3表示x的立方。

2. 将原始数据D(x)乘以x的次数等于G(x)的次数减一,例如若G(x)=x3+x+1,则将D(x)乘以x2。

3. 对于初始数据D(x)加上所得的余数R(x),从而生成所谓的带校验位的数据码T(x),其中T(x)=D(x)x(k-1)+R(x),k是数据码的长度。

4. 发送带有校验位的数据T(x)。

矩阵计算的步骤如下:

1. 首先构建一个与数据码长度相关的n×(n-k+1)的矩阵G,并依据所选的生成多项式G(x)进行计算。例如若G(x)=x3+x+1,并且数据码的长度为k=5,则矩阵G为:

1 0 0 1 1

1 1 0 0 1

0 1 1 0 1

2. 将数据码和矩阵G进行相乘,得到一个长度为n的二进制向量,即为传输数据码。

3. 发送传输数据码。

三、应用

循环冗余码的应用非常广泛,主要有以下几个方面:

1. 用于计算机存储中的数据校验。

2. 用于计算机网络通信中的数据校验。

3. 用于CD、DVD和蓝光光盘等存储介质数据校验。

4. 用于移动通信中的数据校验。

5. 用于数字电视广播中的数据校验。

四、优缺点

循环冗余码的优点在于:

1. 简单易实现。

2. 误检率低。

3. 可检测的错误种类多。

4. 具有高效性和可靠性。

缺点在于:

1. CRC值会造成一定的冗余。

2. 相同的CRC值可能会造成数据的误判。

3. 生成多项式的选择对数据的检错能力有很大影响。

备考资料 免费领取:软件设计师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
软件设计师题库