汉明码计算器
由四个数据位生成汉明 (7,4) 码,并检测或纠正传输中的单比特错误。
汉明 (7,4) 码
使用偶校验编码四个数据位,也可选择检查接收到的七位码。
关于汉明码计算器
汉明码是数学家理查德·汉明提出的一类纠错码。它在数据字的特定位置加入校验位,使接收方能够识别并修复一个发生变化的比特。这里使用的汉明 (7,4) 方案将四个数据位变成七位码字,简洁展示数字通信、计算机内存、存储系统及嵌入式电子设备所采用的差错控制原理。
七个码位从一到七编号。校验位位于第一、第二和第四位,因为这些位置编号是二的幂。原始四个数据位放在第三、第五、第六及第七位。各校验位检查不同但相互重叠的位置组。本计算器使用偶校验,即加入校验位后,每个受检组中的一应为偶数个。
对于数据位 d1、d2、d3、d4,校验位 p1 检查 d1、d2、d4;p2 检查 d1、d3、d4;p4 检查 d2、d3、d4。最终排列为 p1, p2, d1, p4, d2, d3, d4。因此,1011 编码后得到 0110011。数一数各校验组中的一,即可验证。
接收到七位码时,接收方重新执行三次校验。失败的校验构成三位伴随式,其数值指出错误位置。伴随式为一表示第一位出错,为五表示第五位出错,为零则表示没有单比特错误。翻转指定比特可恢复原有效码字。可选的接收码字段演示此过程,并显示纠正后的序列。
标准汉明 (7,4) 码保证纠正一位错误,但无法可靠区分所有两位错误。扩展汉明码增加一个整体校验位,以实现单错纠正和双错检测。本计算器专注于经典七位版本和偶校验。请仅输入零和一,不要加入空格、前缀或分隔符,以免位位置产生歧义。
汉明码示例
| 数据或接收码 | 结果 | 说明 |
|---|---|---|
| 数据 1011 | 0110011 | 校验位为 0、1、0。 |
| 数据 1101 | 1010101 | 校验位为 1、0、0。 |
| 接收码 0010101 | 位置 1 出错 | 翻转第一位可恢复为 1010101。 |
如何使用汉明码计算器
- 恰好输入四个二进制数据位,不要使用空格或分隔符。
- 可选填接收到的七位码字,检查传输错误。
- 点击计算汉明码,生成偶校验码字。
- 如提供了接收码,请查看伴随式结果与纠正后的编码。
汉明码常见问题
汉明 (7,4) 表示什么?
码字总共七位,其中四位为原始数据,另外三位提供纠错所需的校验信息。
本计算器使用哪种校验约定?
三个校验组均使用偶校验,因此有效受检组中一的个数为偶数。
伴随式如何定位错误?
每个失败的校验为伴随式贡献一个二进制位权,合计值等于单个错误比特的位置,位置从一开始编号。
汉明 (7,4) 能纠正两个错误吗?
不能。它用于纠正每个码字中的一个比特变化。两个比特变化可能产生误导性的伴随式,不应认为可安全纠正。
汉明码用于哪些领域?
它用于编码理论教学,也见于内存、通信及存储设计。实际系统通常会根据可靠性要求使用扩展码或更强大的编码。