文章目录
前言
这是CRC码原理与实现系列的第二篇文章。第一篇为:
(1)CRC码简介及其与汉明码的区别
3. CRC校验码的原理
下面举例说明CRC校验码的原理。
若要传输的原始信息序列为:11010011。
使用CRC8生成校验码,生成多项式为x^8 + x^2 + x + 1,生成多项式对应的比特序列为100000111。
生成CRC校验码的步骤如下:
首先,在原始信息序列后增加8个0,得到新序列:1101001100000000。
其次,将这个新序列作为被除数,对生成多项式序列进行“模二除”,计算如下:
所得到的余数就是生成的CRC8校验码。
最后,将所得到的余数附加到原始信息序列后面,得到新序列:1101001100110111。至此,就完成了CRC校验码的编码。
在接收端,使用相同的CRC8生成多项式对接收到的序列进行校验(模二除以生成多项式序列),就能指导传输过程中有没有产生误码,若模二除的余数为0则表示没有错码,若余数非0则表示有错码。
需要特别注意的是,计算CRC校验码的时候,若使用不同的生成多项式,则得到的CRC校验结果也是不同的。所以,收发双方一般需要事先约定好所用的生成多项式。
后续
关于CRC校验码这个主题,后续将给出以下内容:
(3)CRC校验码的生成多项式表示
(4)MATLAB生成CRC校验码