首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找出只有综合症的里德-所罗门中可能存在的错误?

如何找出只有综合症的里德-所罗门中可能存在的错误?
EN

Stack Overflow用户
提问于 2017-03-29 10:39:36
回答 1查看 59关注 0票数 2

我正在做我正在选修的一门课的作业。

如果可能的话,我需要给出两个给定症状的码字错误的位置和大小。如果我能想出如何为一个人做这件事的方法,我就可以做剩下的事情,但我对第一个方法感到迷惑。

这就是症状: 2,2,0,1

我将使用里德-所罗门码,q= 11,本原元素为2。

为了解决这个问题,我创建了下面的H矩阵:

代码语言:javascript
复制
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个方程的点,您需要知道输入码字。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 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。

代码语言:javascript
复制
S0 Λ2 + S1 Λ1 = -S2 (= 11 - S2)
S1 Λ2 + S2 Λ1 = -S3 (= 11 - S3)

求2乘2矩阵很简单,因此不需要使用Berlekamp Massey或扩展的欧几里德算法。

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

代码语言:javascript
复制
 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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43083323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档