一、校验码技术概述
- 循环冗余校验码(CRC): 用于检测数据传输过程中因干扰导致的错误,如电磁干扰导致的比特翻转。
1.为何使用校验码
- 数据传输过程中可能因干扰出错,如原本传输的1变为0。
- 两种解决方式:
- 提高硬件可靠性(有瓶颈)
- 提升代码校验能力(更为实用)
2.校验码的实际应用
- 校验码用于检测传送数据是否出错,类似于身份证最后一位的校验位,用于验证信息的真实性。
3.CRC校验码的特点
- 使用多项式对K个数据位生成R个校验位,最终传输K+R位数据。
- 概念性理解即可,不需深入。
二、题目背景介绍
- 示例题目:使用CRC进行差错校验,生成多项式为 G(x) = x4 + x + 1 。
- 信息码字为10111,需计算对应的CRC校验码。
1.多项式转换为二进制
- 多项式 x4 + x + 1 转换为二进制形式:10011。
- 转换方法:将各次幂对应二进制位设为1,缺失的次幂设为0。
2.模2除运算的准备
- 信息码字10111需在其后添加4个0(因多项式最高次为4),变为101110000。
- 模2除运算类似于普通除法,但使用异或或不进位加法进行运算。
3.模2除运算过程
- 用101110000除以10011,进行异或运算求得余数。
- 每次运算后落下一个0,直到无法继续运算。
- 商为10100,余数为1100。
4.CRC校验码的生成
- 余数1100作为CRC校验码。
- 原始信息码字10111后添加四个0,替换为余数1100,最终传输码为101111100。
5.余数位数说明
- 余数位数通常比除数少一位,如除数为5位,则余数为4位。
- 若余数位数不足,可在高位补0。
- 从传输效率角度考虑,余数位数不宜过多。
