2013-06-30 201 views
0

我在SEC/DED纠错代码中遇到了一些麻烦。看来我发现了一些解码器认为发生了双位翻转的情况,但只有一个确实发生了。我想我错了,但我不明白是什么。 让我给你看一个例子。Hamming SEC/DED额外奇偶校验位

假设我想使用(7,4)代码加上执行双错误检测所需的额外位来编码4位1011。编码字应该是00110011,其中最重要的位是额外的奇偶校验位,以下两个是p0和p1等等。

现在,我们假设在传输期间,较低有效位被翻转;因此收到的字将是00110010。接收机将从这个码中提取四个接收的数据比特1010,并将构造一个新的码,这将导致01011010。最后,接收器将执行两个代码的逐位异或,获得0111。最后三位表示位7已被翻转(这是正确的),但是第一位是0,据我所知,解码器应该考虑这种情况,就好像发生了多于一次的翻转一样。

我做错了什么?

回答

0

我想我已经解决了这个问题。

在上面的例子中,我计算了综合征,然后计算了结果码字的一个新的整体奇偶校验位。相反,我应该检查接收到的字的整体奇偶校验,并将error_hapedned布尔值设置为该值;然后计算综合征。