我在使用SEC / DED纠错码时遇到了一些麻烦。似乎我发现了一些解码器认为发生双位翻转但只发生一次的情况。我想我做错了什么,但我无法理解什么。 让我举个例子。
假设我想使用(7,4)代码加上执行双错误检测所需的额外位来对4位1011
进行编码。编码字应为00110011
,其中最高有效位为额外校验位,后两位为p0和p1,依此类推。
现在,让我们假设在传输过程中,较低位被翻转;因此,收到的单词将为00110010
。接收器将从该代码中提取四个接收的数据位1010,并将构造一个新的代码,该代码将产生01011010
。最后,接收器将执行获得0111
的两个代码的按位xor。最后三位表示第7位已经被翻转(这是正确的),但是第一位是0,据我所知,解码器应该考虑这种情况,就好像发生了多次翻转一样。
我做错了什么?
答案 0 :(得分:0)
我想我已经解决了这个问题。
在上面的示例中,我计算了校正子,然后计算得到的码字的新的整体校验位。相反,我应检查接收到的字的整体奇偶校验,并将error_happened布尔值设置为该值;然后计算综合症。