假设原始代码是具有 3 个可能字母的 2 位二进制编码。
就是它编码?7位是不是太长了?
假设原始代码是具有 3 个可能字母的 2 位二进制编码。
就是它编码?7位是不是太长了?
为了纠正 1 位错误,我们需要在所有符号之间有 3 的汉明距离(必须翻转的位数):当我们随机翻转一位时,然后随机翻转另一位必须要么得到我们回到原始符号(如果同一位被翻转两次)或无效符号。
只有两个符号我们可以编码为 000 和 111,因为这给了我们所需的汉明距离,所以很明显我们可以用 6 位编码 3 个符号。我们还能做得更好吗?
如果我们使用 4 位将一个符号编码为 0000,则 3 次翻转会产生 0111、1011、1101 或 1110。这些都彼此相差不超过 2 位,因此显然 4 位是不够的。
另一方面,如果我们使用 5 位将一个符号编码为 00000,则 3 次翻转将得到 00111、01011、01101、01110、11100、11010 和 11001。如果我们随后将第二个符号编码为 00111,则剩下第三个符号的以下有效选择:11100、11010 或 11001。这些都是与第一个符号的距离 3 和与第二个符号的距离 4。
因此,使用 5 位的 3 个符号的许多可能编码之一是:a = 00000,b = 00111,c = 11100。