Reed-Solomon 算法正在向输入中添加额外的数据,因此可以将此类损坏输入上的潜在错误(特定大小/数量)纠正回原始状态。正确的?这个算法是否也保护了这些不是输入的一部分但被算法使用的附加数据?如果不是,如果错误发生在这样的非输入数据部分会发生什么?
最佳答案
一个重要的方面是 Reed-Solomon (RS) 码是循环的:码字集通过循环移位是稳定的。
结果是代码字的任何特定部分都没有受到更多保护或更少保护。
RS 码具有等于 t = (n-k)/2 的纠错能力,其中 n 是码长(通常以字节表示),k 是信息部分长度。
如果错误总数(在两个部分中)小于 t,则 RS 解码器将能够纠正错误(更准确地说,一般情况下的错误字节)。如果它更高,则无法纠正错误(但可以检测到,另一个故事)。
错误的位置,无论是在信息部分还是添加部分,对纠错能力没有影响。
编辑:我提到的规则 t = (n-k)/2 对 Reed-Solomon 码有效。此规则通常不适用于 BCH 代码:t <= (n-k)/2。但是,关于您的问题,这不会改变答案:这些代码系列具有给定的容量校正,对应于码字之间的最小距离,解码器可以纠正 t 个错误,无论码字中错误的位置如何
关于algorithm - 只有当输入数据部分发生错误时,Reed-Solomon 错误算法才允许更正?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61641353/