我正在做我正在选修的一门课的作业。
如果可能的话,我需要给出两个给定症状的码字错误的位置和大小。如果我能想出如何为一个人做这件事的方法,我就可以做剩下的事情,但我对第一个方法感到迷惑。
这就是症状: 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个方程的点,您需要知道输入码字。
谢谢。
发布于 2017-04-20 04:38:25
如果有4个校验子,没有擦除(已知错误位置),则只能纠正2个错误。有两个方程,其中有两个未知数。参考wiki文章中的示例:
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乘2矩阵很简单,因此不需要使用Berlekamp Massey或扩展的欧几里德算法。
如果所有的错误位置都是已知的(擦除),那么代码只需要求解错误值,使用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 = S3https://stackoverflow.com/questions/43083323
复制相似问题