汉明码是一种纠错块码。该代码是以理查德-汉明的名字命名的,他在20世纪50年代开发了该代码。当时,汉明使用带有继电器的机器,并使用打孔卡来读取数据。由于使用量大,打孔卡经常出现错误,需要员工纠正。

汉明码用于数字信号处理和电信。汉明码是按照一定的规则生成的。汉明码使用多个奇偶校验位。一个奇偶校验位告诉一组比特是偶数还是奇数。在哈明码中,每一个数据位都由多个奇偶校验位覆盖。这允许检测错误,在某些情况下,也可以纠正错误。Hamming码使用冗余。如果每个码字有三个奇偶校验位,那么码字的长度必须为7(2 k - 1 {\displaystyle 2^{k}-1{\displaystyle 2^{k}-1}} ,k为奇偶校验位数)。在本例中,每个码字的用户数据为4位。通常写成(N,n),其中第一个数字是一个码字的总长度,第二个数字是用户数据的位数。上面的例子就是(7,4)。

最短的汉明码是(3,1),2个奇偶校验位用于一个数据位。这个码有两个有效值000111--码001010100是传输错误,将被分配到有效码字000。其他可能的011101110将被改为'111