我已经实现了RS( n=1023,k=995 )
,每个符号有10位。为了找到误差多项式,我们使用Berlekamp-Massey(B-M)算法。我们的代码的错误检测功能应为n-k = 1023-995 = 28
。纠错能力为(n-k)/2 = 14
。对于小于或等于14的错误,B-M算法工作得非常好。如果出现14个以上的错误,如何确定错误的数量?(因为如果错误大于14,则校正将失败)。我想知道此算法在查找错误数量方面是否有任何限制。根据理论,RS代码应该能够正确识别出发生了14个以上的错误。
答案 0 :(得分:1)
对于RS(n = 1023,k = 995),距离为n-k + 1 = 29:每个有效码字与任何其他有效码字的至少29个符号不同。最大错误检测能力为n-k =28。最大错误纠正能力为(n-k)/ 2 = 14。
根据理论,RS代码应能够正确识别出发生了14个以上的错误。
并非总是如此。如果错误超过14个,则错误校正很有可能会导致有效的代码字,但与原始代码字相差29个或更多个符号的错误代码。
考虑接收到的代码字有15个或更多错误符号的情况,那么有可能尝试最大(nk)/ 2校正会创建另外14个错误符号,从而产生看似有效的代码字,但与原始代码字相差29个或更多符号的符号。仅当收到的代码字与有效代码字相差14个或更少符号时,才会发生错误校正。对于15错误的情况,发生这种情况的可能性非常低,但是随着错误数量的增加而增加。使用哪种解码器方法(P-G-Z(矩阵),B-M(差异)或Y-S(扩展的欧几里得))不会产生显着差异。
可以通过减少已校正错误的最大数量来减少错误校正的可能性。假设纠错仅限于12个符号,而不是14个符号,那么除非有17个或更多的错误符号,否则不可能进行错误纠正。
如果使用缩短的码字(例如RS(n = 511,k = 483)),则错误校正的几率也会降低,其中错误计算的位置有50%的可能性不在有效范围内(0到511)位置。