Estoy implementando Reed-Solomon de corrección de errores para los formatos de código de barras 2D (parte de la ZXing proyecto). Ya tiene un trabajo de implementación, que me las arreglé para crear, sobre todo hace años, cuando yo entendía las matemáticas más.
La aplicación sólo corrige los errores (malinterpretar la palabra clave en ubicación desconocida), no borraduras (ubicación conocida). Por supuesto, borraduras puede ser trivialmente tratados como errores en el olvido de que usted sabe la ubicación, pero la utilización de un extra de corrección de errores de la palabra de esta manera. En su lugar, yo sé que uno tiene que utilizar el conocimiento de la ubicación del error para poder corregir el máximo número posible de errores.
Entiendo que el conocimiento de la ubicación le permite construir parte del error localizador de polinomio. Si los lugares son $j_1$, $j_2$, ... a continuación, parte del error localizador polinomio es
$\sigma(x) = (1 - \exp(j_1)x) (1 - \exp(j_2)x)\cdots$
Lo que aún no sé es cómo utilizar esta en el algoritmo! ¿Cómo funciona el error localizador de usar esto como un punto de partida para localizar el resto de los errores? Siento que es algo tan simple como multiplicar o dividir algo por este parcial error localizador de polinomio.
Estoy usando el algoritmo de Euclides para encontrar el error localizador de corrección de error y el polinomio, no de Berlekamp-Massey. El algoritmo es más o menos el uno en el PDF417 página de la Wikipedia.