首页 > 解决方案 > 获取没有控制位的原始汉明字

问题描述

如何在没有汉明编码的情况下获得原始单词?

例如:我有这个汉明编码的词:011001101100 我怎样才能回到原来的词?正确答案是:00111100

标签: algorithmerror-detection

解决方案


这篇维基百科文章描述了编码算法。文章包含一个表格,可用于手动执行解码过程。将解码过程转换为软件留给读者作为练习。

在此处输入图像描述

首先,将接收到的代码字写在表格的底部。然后,对于每一行,计算奇偶校验并将其写入右侧的列。例如,对于 row p8,我们想要码字末尾的五位奇偶校验,如红色 X 所示。如果指示的位置有偶数个 1,则在右列中写入 0,否则写入 1。

右列(底部的 MSB)中生成的二进制数表示有错误的位的位位置。如果数字为 0,则没有位有错误。在此示例中,右列包含数字 3,因此位位置 3 存在位错误。

要完成解码,请按照以下步骤操作:

0110 0110 1100     the received code word
0100 0110 1100     flip the bit that has the error (bit 3 in this example)
__0_ 011_ 1100     remove the parity bits

剩下的位是00111100.


推荐阅读