如何发现仅使用综合症的里德-所罗门可能出现的错误?



我正在为我正在上课的课做作业。

如果可能的话,我需要给出几个给定综合症的码字错误的位置和大小。如果我能弄清楚如何为一个人做的方法,我可以做剩下的,但我迷失了第一个。

这是综合征: [2, 2, 0, 1]

我将使用一个 q = 11 的里德-所罗门代码,原始元素为 2。

我创建了以下 H 矩阵试图解决这个问题:

1  1  1  1  1  1   1  1   1  1
1  2  4  8  5  10  9  7   3  6
1  4  5  9  3  2   8  10  7  6
1  8  9  6  4  10  3  2   5  7

但由于我所拥有的只是综合症,我不确定从这里开始。我确定我在这里错过了一些相当直接的东西,希望有人可以向我指出来。

我在网上找到了Berlekamp,Peterson和Euclidean方法,但我们没有讨论过其中任何一个,我从网上有限的解释中不明白它们是如何工作的。我们使用了定位多项式方法的错误,但我不知道如何将其应用于这种情况,因为要达到有 4 个方程和 4 个未知数的地步,您需要知道输入码字。

谢谢。

有 4 种综合征且没有擦除(已知错误位置),只能纠正 2 个错误。有 2 个方程和 2 个未知数。参考维基文章中的示例:

https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction#Error_locator_polynomial

在您的情况下,综合症下标是 0 到 3,而不是 wiki 的 1 到 4。

S0 Λ2 + S1 Λ1 = -S2 (= 11 - S2)
S1 Λ2 + S2 Λ1 = -S3 (= 11 - S3)

反转 2 x 2 矩阵很简单,因此无需使用 Berlekamp Massey 或扩展的 Euclid 算法。

如果所有错误位置都是已知的(擦除),则代码只需要求解错误值,使用 E 表示错误值,L 表示定位器,^ 表示幂:

1^L1 E1 +  1^L2 E2 +  1^L3 E3 +  1^L4 E4 = S0
2^L1 E1 +  2^L2 E2 +  2^L3 E3 +  2^L4 E4 = S1
4^L1 E1 +  4^L2 E2 +  4^L3 E3 +  4^L4 E4 = S2
8^L1 E1 +  8^L2 E2 +  8^L3 E3 +  8^L4 E4 = S3

相关内容

  • 没有找到相关文章

最新更新