在存在一个丢弃的字节(或多个丢弃的字节)的情况下,里德-所罗门纠错是否有效?例如,假设它是一个(12,8)里德-所罗门码,因此理论上它应该能够纠正2个错误(如果位置已知,则可以纠正4个擦除)。但是,如果只收到11 (或10)个字节,并且不知道丢弃了哪些字节,会发生什么呢?里德-所罗门纠错能行得通吗?
谢谢,
本
发布于 2010-02-26 10:42:48
删除的RS解码需要“丢弃”或丢失的符号的位置。你所说的那种误差是由相位失真引起的。
发布于 2012-11-16 09:12:36
您可以通过简单地遍历字符可能丢失的可能位置并让它尝试更正您的结果来使其工作,所以假设您收到了10个字符:
1234567890
让它更正以下值:
??1234567890
?1?234567890
?12?34567890
:
1??234567890
1?2?34567890
:
1234567890??
每一次尝试都可能会给你一些结果,其中大多数都不是你想要的。但我希望应该只有一个额外修改次数最少的结果,这应该是您想要用作最有可能是正确答案的结果。
例如,如果更正上面示例中的前三个数字,您可能会得到以下结果:
v
361274567890
917234567890
312734569897
: ^ ^
对于第一种和第三种情况,除了填充两个空格(用v和^标记)之外,还需要进行额外的更正,而在第二种情况下,您只填充了缺少的位置,其他字符与未更正的输入匹配。因此,我会选择答案2作为最有可能正确的答案。
显然,这种方法起作用的可能性取决于是否存在其他错误。不幸的是,我不能给你一组严格的条件,在这些条件下,这种方法可以肯定地工作。
。
如果您的消息足够长,您可以做的另一件事是使用交错技术,基本上使多个正交RS码覆盖您的数据。这样,如果一个失败了,你也许可以用另一个来恢复。该方法例如用于光盘(CD)上,其中该方法被称为CIRC。
发布于 2015-03-06 05:41:41
不,里德-所罗门算法不能自动纠正丢失比特的情况,因为就像大多数其他前向纠错算法一样,it was only designed to correct bit-flips。如果您知道丢失比特的位置,则可以在这些位置填充接收到的信号,以便RS可以正常工作。
但是,如果您不知道位置,则需要使用另一种支持bit-insertion or bit-deletion的算法,如标记代码和水印代码。
还要注意的是,RS不仅可以用于擦除,还可以用于process noisy bits using Forney syndrome。
https://stackoverflow.com/questions/2339083
复制相似问题