1.2.1 校验码概述
📝 学习目标
- 理解“为什么要加校验码”:传输/存储中比特可能翻转
- 掌握校验码的核心思想:增加冗余信息帮助发现/定位错误
- 区分“检错”和“纠错”
- 了解码距(Hamming distance)与能力关系
🎯 知识点
1) 为什么需要校验码
计算机/通信传递的是二进制信号(0/1)。传输过程中如果 0 变 1 或 1 变 0,就发生错误。
校验码的做法:
- 在原始信息位后(或前/中间)增加若干校验位(冗余位)
- 接收方用同样规则重新计算并比对,从而发现错误
2) 检错 vs 纠错
- 检错(Error Detection):能发现“有错”,但不一定知道“错在哪”
- 纠错(Error Correction):不仅能发现错误,还能定位错误位并修正
课堂强调:
- 奇偶校验:一般只能检错(且有局限)
- CRC:检错强,但一般不纠错
- 海明码:常见的“既可检错也可纠错”
3) 码距(码字间最小距离)
- 两个码字之间的码距:对应位不同的个数
- 最小码距 d 决定能力:
- 能检错:最多可检出 d-1 位错
- 能纠错:最多可纠
位错
软设经常以“通过扩大码距实现校验”作为概念点出现。
🧠 难点与易错点
- 易错1:把“能检错”误当成“能纠错”
- 易错2:不知道“校验位插入位置”对能力的影响(典型:海明码是插入在信息位中间,不是简单拼接)
🔑 关键词解释
- 冗余位(Redundancy bits):为校验而增加的额外位。
- 码字(Codeword):信息位+校验位组成的整体。
- 生成规则:发送方/接收方事先约定的校验算法(如奇偶规则、生成多项式等)。
🔍 联想扩展(软设关联)
- “校验码”不仅用于通信,也用于存储(磁盘、内存、网络帧等)。
- CRC 的生成多项式需要“双方约定”,题干常直接给出或隐含。
- 海明码常考:校验位个数公式、校验位位置(1,2,4,8,...)。
🧪 例题(按难度)
简单(3题)
在校验码的语境中,“码字(codeword)”通常指:
两个码字之间的“码距(Hamming distance)”定义为:
若某编码的最小码距为 d=2,则其能力最合理的描述是:
中级(3题)
例题1(概念判断)
下列关于校验码的说法正确的是:
选择正确说法:
例题2(检错/纠错区分)
下列校验方式中,通常可用于纠错的是:
选择通常可用于纠错的方式:
若某编码的最小码距为 d=4,则其最大检错与纠错能力分别为:
困难(1题)
若某编码的最小码距为 d=5,则它最多能检错多少位、纠错多少位?
📚 本课小结
- 校验码 = 信息位 + 冗余位
- 检错是“发现有错”,纠错是“定位并修正”
- 码距越大,能力越强(检错 d-1,纠错
)