在有一个或多个字节丢失的情况下,Reed-Solomon纠错是否有效?例如,假设它是一个(12,8)的Reed Solomon编码,理论上应该能够纠正2个错误(或4个已知位置的擦除)。但是,如果只接收到11(或10)个字节,并且不知道哪些字节被丢弃了,那么Reed-Solomon纠错是否有效?
谢谢,
本
在有一个或多个字节丢失的情况下,Reed-Solomon纠错是否有效?例如,假设它是一个(12,8)的Reed Solomon编码,理论上应该能够纠正2个错误(或4个已知位置的擦除)。但是,如果只接收到11(或10)个字节,并且不知道哪些字节被丢弃了,那么Reed-Solomon纠错是否有效?
谢谢,
本
纠正擦除错误需要知道“丢失”的符号位置。而你所说的那种错误是由相位失真引起的。
你可以通过简单地循环遍历可能缺失字符的位置并让它尝试纠正你的结果来使其工作,假设你收到了10个字符:
1234567890
请将以下数值更正:
??1234567890
?1?234567890
?12?34567890
:
1??234567890
1?2?34567890
:
1234567890??
每次尝试都可能会给你一些结果,其中大部分不是你想要的。但我希望最终会有一个结果,它需要进行最少的额外修改,并且这应该是你想要使用作为最有可能正确答案的结果。
例如,如果你更正上面示例中的前三个数字,你可能会得到以下结果:
v
361274567890
917234567890
312734569897
: ^ ^
对于第一种和第三种情况,你需要在填写两个空格(标有v和^)之外进行额外的更正,而在第二种情况下,你只需填写缺失的位置,其他字符与未更正的输入匹配。因此,我会选择答案2作为最有可能正确的答案。
显然,这种方法是否有效取决于是否存在其他错误。不幸的是,我无法为您提供一组严格的条件,以确保此方法一定有效。
.
如果您的消息足够长,您可以使用交错技术来覆盖多个正交RS码以处理数据。这样,如果一个失败了,您可能可以用另一个来恢复。例如,这种方法在紧凑型光盘(CD)上被称为CIRC。
不,Reed-Solomon 不能自动纠正缺失位的情况,因为就像大多数其他FEC算法一样,它只被设计用于纠正位翻转。如果您知道缺失位的位置,您可以在这些位置上填充接收到的信号,以便RS可以正常工作。
然而,如果您不知道位置,您将需要使用另一个支持比特插入或比特删除的算法,例如标记码和水印码。
还要注意,RS不仅可用于擦除,还可用于使用Forney综合症处理嘈杂的位。