3 votos

¿Es correcta mi interpretación de la división en campos finitos?

He seguido este tutorial ( http://web.eecs.utk.edu/~jplank/plank/papers/CS-96-332.pdf ) que introduce la codificación Reed-Solomon y, por tanto, cubre campos finitos. Mi problema es con uno de los ejemplos de cómo se consultan las tablas de logaritmos y antilogaritmos para realizar una división. He incluido una imagen de los ejemplos y la tabla a continuación:

Excerpt of log tables and examples

El tutorial está escrito para programadores, por lo que $gflog[i]$ es realmente $log_2(i)$ y $gfilog[i]$ est $log_2^{-1}(i)$ .

Soy capaz de seguir todos los ejemplos menos el último. He utilizado una calculadora de campo finito en línea que indica que el resultado debería ser $10$ . El resultado en el ejemplo es $14$ al principio supongo que se trata de un simple error al buscar el resultado en la fila incorrecta (es decir, al buscar la fila $log_2(i)$ en lugar de la fila $log_2^{-1}(i)$ fila) como tabla muestra correctamente el resultado debería ser $10$ .

Pero si lo examinamos más detenidamente, su aritmética para la indexación en la tabla parece estar mal para el ejemplo final, $gfilog[4-10] = gfilog[9]$ . ¿No debería ser el resultado $gfilog[10]$ ?

Ahora mi lo que sospechoso lo que ocurre es que la aritmética de los índices es aritmética de enteros regulares. Y en este caso, $4-10$ resulta en $-6$ . Dado que se trata de un índice no válido, y las tablas de registro son más de $GF(2^4)$ la posición correcta de $-6$ viene determinada por $-6 mod 16$ que da $10$ . Sin embargo $10$ es sólo el rango del índice correcto y pas el propio índice. Por lo tanto, la 10ª posición de la tabla está realmente en el 9º índice. De ahí que $gfilog[9] = 10$ .

¿Lo he entendido correctamente? Lo he probado con otros valores y parece que funciona. Esto es todo muy nuevo para mí, así que por favor, elaborar un poco en sus respuestas como mi formación es principalmente en la programación :)

3voto

Yves Daoust Puntos 30126

Obsérvese que las funciones directa e inversa sólo están definidas en $15$ valor de $16$ ( $0$ no tiene logaritmo y $15$ sin antilogaritmo). Por esta razón, la suma y la resta de los logaritmos se realizan en módulo $15$ no $16$ ¡!

Puede verlo en el tutorial, página $7$ : $\bmod 2^w-1$ ( NW-1 en el código).

3voto

user87023 Puntos 1

El grupo multiplicativo de $GF(2^4)$ es cíclico de orden $2^4-1=15$ y $-6\equiv 9\pmod{15}$ .

Lo que ocurre es que $\log_2$ es un isomorfismo de grupo de $GF(2^4)^\times$ a $\mathbb Z/15\mathbb Z$ . Así que cuando usted dice "las tablas de registro son más de $GF(2^4)$ ", eso es correcto sólo a medias.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X