如果 RS 代码中的纠错码字被破坏会发生什么

what happens if the error correcting code word is corrupted in RS code

一条用 Reed Solomon 代码编码的消息,现在我有了完整的数据,即消息 + 代码字。现在在传输过程中,如果消息部分发生变化,则可以解码,但如果代码字本身得到 corrupted/changed 怎么办?是否也可以更正代码字?如果可以纠正怎么办?或者 Reed Solomon 纠错码本身会负责纠正损坏的代码字?

我有点困惑。我希望我能得到一个相关的答案。 提前致谢。

问题中的术语有问题。代码字由消息数据加上奇偶校验(冗余)数据(问题称为代码字的内容)组成。此外,术语代码字通常表示没有错误(在消息部分或奇偶校验部分),是生成多项式的精确倍数(具有有限域系数乘法的多项式)。

在更正过程中,错误位于消息数据或奇偶校验数据中并不重要。只要错误符号的总数小于或等于奇偶校验符号数的 1/2,那么错误是可纠正的。 Reed Solomon 代码有两种类型,"original view" 和 "BCH view",大多数实现都是“BCH 视图。

wiki 文章可以帮助您理解。

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

在维基文章的 "BCH view" 部分:

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

消息被视为多项式 p(x) 乘以 x^t 得到 space t 个奇偶校验符号,余数 sr(x) = p(x)x^t mod g(x),其中 g(x) 是生成多项式。码字是 s(x) = p(x)x^t mod g(x) - sr(x)。如果对 Reed Solomon 使用基于二进制的字段,则加法和减法都是异或。

请注意,在其他关于 Reed Solomon 的文章中,通常 t 表示可以校正的符号数,奇偶校验符号的数量为 2t(或奇数个奇偶校验符号 2t+1)。 wiki 文章使用 lambda: Λ 作为定位器多项式的系数,而其他文章使用 sigma: σ 表示相同的东西。