扩展汉明码

信息处理 前向纠错
2022-02-10 22:28:33

对于 (7,4) 汉明码,我知道如何使用校正子解码方法解码一个码字,只使用 3 个奇偶校验位,如果只有 1 个错误是可以纠正的。

但是,对于 (8,4) 扩展的汉明码,我知道在没有错误或 1 个错误的情况下如何正确解码码字。但是,我们可以在出现 2 个错误的情况下这样做吗?

1个回答

假设传输的码字是C. 如果没有发生错误,或者发生了一个错误,则C远处的唯一码字1或小于接收到的单词R, 解码算法产生C作为它的输出。当有两个错误时,没有一个 唯一的代码字在远处2或更少从接收到的单词。 远处的码字之一2C,但至少还有一个这样的代码字因此,必须设计解码算法来处理这种情况。可能的选项是

  • 声明解码失败,即告诉全世界已检测到不可纠正的错误模式。在 ARQ(自动重复请求)系统中使用了一种不太可耻的替代方案,其中接收器将 NACK 信号发送回发送器,然后发送器重新发送C. 因此,在解码器能够成功解码之前,外部世界不会被告知传输正在一遍又一遍地重复,尽管外部世界可能能够推断出这一点,因为它必须等待很长时间才能到达下一个数据位出解码器。

  • 选择最接近的代码字之一R并将其作为解码器输出。在这种情况下,解码可能是正确的,因为解码器偶然选择了C,或者它可能是不正确的。

重要的是要记住,解码算法可能会输出错误的代码字,即使它们相当确定自己正确无误。如果C传输和信道错误模式E 是这样的C+E=R恰好是另一个 码字C^,那么解码器输出将是 C^解码器甚至可以宣称它确信它找到了正确的码字,因为它没有发现任何错误R; 它匹配C^ 在每一点!正如我们所知道的,骄傲会在跌倒之前消失。


最后,转向 OP 关于 (8,4)扩展汉明码,解码器可以判断发生了偶数个错误,如果8收到的比特是0 综合征的其余部分(与 (7,4)汉明码)非零。因此,无论何时发生这种情况,解码器都可以声明解码失败或向发送器发送 NACK,或输出代码字。在最后一种情况下,一个简单的方法是假设整个奇偶校验位出错(并因此翻转它),然后使用其余的非零校验子来纠正另一个错误 7就像它们来自一个(7,4)(非扩展)汉明码。这将给出一个代码字C^ 那是在远处2R它甚至会是传输的码字C如果恰好有两个传输错误,一个在7位和一个整体奇偶校验位。