7 votos

¿Cómo se aplican los polinomios primos a los LFSR?

Al investigar un poco sobre LFSRs Entiendo que un polinomio primitivo puede determinar qué grifos se deben utilizar para crear un LFSR que tenga tantos bits como el grado del polinomio que hará un ciclo a través de todos los estados distintos de cero. Por ejemplo, un polinomio primitivo cuyos coeficientes están en GF(2) como $x^4+x^3+1$ implica que un LFSR de 4 bits hará un ciclo a través de cada posible estado distinto de cero una vez y sólo una vez si el 4º bit y el 3º bit se utilizan como taps.

No entiendo la relación entre un polinomio primitivo y las derivaciones de un LFSR. Nunca hubiera mirado un polinomio primitivo y pensado "hagamos esos bits en un registro y xor... etc" y hubiera hecho la conexión. ¿Puede alguien explicar esta magia?

0 votos

(Si lo he entendido bien, lo siguiente sólo se aplica a los LFSR de Galois, así que sólo lo comentaré). El truco está en que si representamos el estado $(a_0,a_1,a_2,a_3)$ como un polinomio $p(x)=a_0+a_1x+a_2x^2+a_3x^3$ y, a continuación, el nuevo estado (tras un único tick de reloj) $(a_3,a_0,a_1+a_3,a_2)$ corresponde al polinomio $q(x)=x p(x)+a_3(x^4+x^3+1)$ que es congruente con $xp(x)$ módulo del polinomio de retroalimentación. Los polinomios primitivos $r(x)$ de grado $d$ tienen la propiedad de que el coset $x+(r(x))$ genera el grupo multiplicativo del campo finito $GF(2^d)=GF(2)[x]/(r(x))$ .

0 votos

(cont.) y esto explica por qué el vector de estado recorre todos los estados distintos de cero. Nunca recuerdo cómo funciona el álgebra polinómica para los LFSR Fibonacci. IIRC el polinomio recíproco entra en juego o el reloj corre hacia atrás o algo así. Lo siento, es demasiado tarde para pensar con claridad :-/

1 votos

Eche un vistazo a John Kerl "Computación en campos finitos" parte V (lamentablemente, el documento está incompleto).

2voto

Para entender la conexión entre los grifos y los polinomios primitivos, es importante profundizar en el campo de Galois o en el campo finito. Sin embargo, trataré de resumirlo: El circuito LFSR básicamente realiza una multiplicación sobre un "campo". Un campo suele definirse como un conjunto con dos operaciones definidas (multiplicación y suma) y otras leyes como la asociativa y la distributiva.

Los campos finitos se denominan Campo de Galois tales Números binarios (0 y 1) con XOR (= suma de módulo 2) y AND (multiplicación) es un GF(2).

Los polinomios con coeficiente binario también forman un GF(2) con cada término (x^n) presente (1*x^n) o ausente (0*x^n). La suma y la multiplicación de estos polinomios forman un campo: Suma (= XOR de cada término) y Multiplicación (Desplazamiento a la izquierda).

Addition Multiplication

Un polinomio primitivo es aquel que no puede ser factorizado. Y como dato: para cualquier grado existe al menos un polinomio primo ( Busca la Tabla de Polinomios Primitivos).

Tomando el resultado de la multiplicación anterior, y modulando un polinomio primo, podemos formar GF(2^n).

Como ejemplo: Consideremos un LFSR de 4 bits con los polinomios x^4 + x + 1. Con LFSR=> 4 Bit LFSR

El patrón que genera : 0001, 0010, 0100, 1000, 0011, 0110, 1100, 1011 ....

Observe que siempre que el MSB (Q4) es uno, los valores del registro actual se xorrean con "10011" o si es cero, los valores sólo se desplazan a la izquierda.

Esto también se puede explicar en términos de elementos primitivos: a^3 = 1*x^3 + 0*x^2 + 0*x^1 + 0*x^0 a^4 = 1*x^4 xor x^4 + x + 1 = x + 1 = "0011"

En resumen : Multiplicación del campo de Galois => Desplazamiento a la izquierda en el hardware Tomando el resultado mod p(X) => Xoring cuando el MSB es 1

Espero que esto ayude.

Fuente: Recopilación de notas de estudio de la Universidad de Múnich y Berkeley.

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