Está en la página 1de 5

ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO

FACULTAD DE INFORMATICA Y ELECTRONICA


ESCUELA DE ELECTRONICA TELECOMUNICACIONES Y REDES

CARRERA: ELECTRONICA TELECOMUNICACIONES Y REDES

COMUNICACIONES INALAMBRICAS

REGISTROS DE DESPLAZAMIENTO CON


RETROALIMENTACION LINEAL

NOMBRE:

Santiago Cuenca

SEMESTRE:

OCTAVO “A”

PERÍODO ACADÉMICO

SEPTIEMBRE 2018 – FEBRERO 2019

DOCENTE:

Ing. DIEGO VELOZ


Registro de Desplazamiento con Retroalimentación Lineal:
Es un registro de desplazamiento en el cual la entrada es un bit proveniente de aplicar una función
de transformación lineal a un estado anterior.
El valor inicial se denomina semilla y, como la forma de operar el registro es determinista, la secuencia de
valores producidos está completamente determinada por el estado actual o el estado anterior. La secuencia tiene
un periodo de repetición, es decir que la secuencia vuelve a generarse y se repite indefinidamente. Cuando el
periodo de repetición es máximo, ese LFSR tiene interés criptográfico.
Los circuitos LFSR se utilizan en infinidad de sistemas electrónicos para generar secuencias pseudoaleatorias
con un período garantizado arbitrariamente largo, de forma simple y eficiente.
El esquema más habitual de un circuito LFSR es el siguiente:
+---+ +---+ +---+ +---+
+->| R +---+--->| R |---+--->| R +---+--->| R +---+---> Salida
| +---+ | +---+ | +---+ | +---+ |
| | | | |
| v v v |
| +---+ +---+ +---+ |
+--------| X |<-------| X |<-------| X |<---------+
+---+ +---+ +---+
Las cajas R son biestables, y las cajas X son funciones XOR. Como se puede ver, un registro de desplazamiento
con realimentación lineal consta de un sencillo registro de desplazamiento cuyos bits se van desplazando hacia
la derecha, en el dibujo, y el último de los cuales proporciona la salida binaria del registro. Al mismo tiempo,
por la izquierda en el dibujo, se van inyectando bits cuyo valor es una combinación lineal (módulo 2) de los bits
que forman el estado interno del registro.
Aunque en el dibujo se ha dibujado un XOR para cada bit de estado, en la práctica sólo se emplean algunos de
ellos. La forma de elegir cuáles se usan no es arbitraria, sino que se basa en principios matemáticos bien
definidos.
Como trabaja LFSR:
Veamos un ejemplo, tenemos la secuencia [16, 14, 13, 11].
La secuencia tap de un LFSR se puede representar como un polinomio mod 2. Esto significa que los
coeficientes del polinomio deben ser 1's o 0's. Esto se llama polinomio de realimentación o característica
polinomial.
Por ejemplo, si los taps están en las posiciones de los bits: 16, 14, 13 y 11, el polinomio LFSR resultante es:
Las salidas que influyen en la entrada, se denominan taps. Son las que aparecen en el polinomio. Y se indican
en azul en el esquema inferior.
Si el polinomio es primitivo, sí y solo sí, el LFSR es máximo, o lo que es lo mismo, tiene periodo máximo.
 El LFSR sólo será máximo si el número de taps es par.
 Los valores de tap en un LFSR máximo son coprimos.
 Puede haber más de una secuencia tap que haga máximo al LFSR para esa longitud determinada.
 Una vez encontrada una secuencia tap máxima, automáticamente sigue otra.
 Si la secuencia tap, en un LFSR n-bit, es [n,A,B,C], entonces la secuencia mirror correspondiente es
[n,n-A,n-B,n-C]. Por ejemplo, la secuencia tap [32, 3, 2, 1], tiene su homólogo [32, 29, 30, 31]. Ambos
dan como resultado periodo máximo.

Propiedades del Flujo de Salida:


Un LFSR se puede caracterizar de forma polinómica según sean sus conexiones y los valores de los registros.
Se define el polinomio de Estado como:
S (D) = S0 + S1D + S2D2 + … + SnDn
El polinomio de estado muestra el valor de los registros.
De la misma forma se define el polinomio de Conexiones (Polinomio Conectivo) como:
C (D) = C0 + C1D + C2D2 + … + CnDn + Cn+1Dn+1
Donde cada coeficiente CI vale 0 o 1 dependiendo de si hay conexión o no. Hay que notar que el polinomio de
conexiones (Polinomio Conectivo) es siempre un grado mayor que el de estado.
De esta manera un LFSR con n registros de desplazamiento tendrá como mínimo 2 conexiones la de C0 y la de
Cn+1. La conexión de C0 es necesaria porque sin ella el primer registro siempre valdría cero y por tanto no influiría
en el comportamiento del LFSR. La conexión Cn+1 es necesaria porque asegura la retroalimentación del LFSR. Si
este coeficiente valiera 0 (o lo que es lo mismo, no hubiera esta conexión), el LFSR ya no sería de grado n+1.
Por lo tanto para pasar de un estado al siguiente los registros se desplazan. Este desplazamiento se puede expresar
en forma polinómica como una multiplicación por D.
El polinomio resultante tiene grado n+1 al igual que el polinomio de conexiones. Esto es un problema ya que el
polinomio de estado tiene que ser de grado n. Esto se soluciona haciendo que el polinomio resultante sea
módulo de C (D).
Si S (i) (D) es el polinomio de Estado en el estado i-ésimo, en forma polinómica el desplazamiento del polinomio
de Estado se expresa así:
S (i+1) (D) = S (i) (D). D = S0D + S1D2 + S2D3 + ... + SnDn+1
Como el grado tiene que ser menor que n+1 se hace el módulo de C (D):
S (i+1) (D) = S (i) (D). D mod C (D)
Con lo que resulta un polinomio de grado n como máximo.
POLINOMIOS PRIMITIVOS:

Un polinomio primitivo puede referirse a uno de los dos siguientes conceptos:

 Un polinomio sobre un dominio de factorización única (como el de los enteros) tal que el máximo común
divisor de sus coeficientes es 1.

 El polinomio mínimo de un elemento primitivo de una extensión de cuerpos GF (pm).

Propiedades:

Como todos los polinomios mínimos son irreducibles, todos los polinomios primitivos también lo son.

Todos los polinomios primitivos tienen un número impar de términos, entre ellos, el término constante. Si un
polinomio primitivo no tiene el término constante entonces x (la indeterminada) puede ser sacada como factor
común en todos los términos por lo que el polinomio no es irreducible. Si un polinomio primitivo tiene un número
par de términos, entonces (x + a) puede ser sacado como factor común.

Un polinomio irreducible de grado m, F(x) sobre GF (p) para un p primo, es primitivo si el entero positivo n más
pequeño tal que F(x) divide xn − 1 es n = pm − 1.

Sobre GF(pm) hay exactamente φ(pm − 1)/m polinomios primitivos de grado m, donde φ es función fi de Euler.

Todas las raíces de un polinomio primitivo tienen orden pm − 1.

Usos:

Representación de los elementos de un cuerpo.

Los polinomios primitivos se usan en la representación de los elementos de un cuerpo finito. Si α ∈ GF(pm) es una
raíz de un polinomio primitivo F(x) entonces el orden de α es pm − 1, lo que significa que todos los elementos de
GF(pm) pueden ser representados como las sucesivas potencias de α:

{0, 1, α , α2, … , αpm-2 }

Cuando estos elementos son reducidos módulo F(x) producen una representación en forma de base polinómica de
todos los elementos del cuerpo.

Generación de secuencias pseudoaleatorias

Los polinomios primitivos definen una relación de recurrencia que puede ser usada para generar secuencias
pseudoaleatorias.

Por ejemplo, dado el polinomio primitivo x10 + x3 + 1, empezamos con una semilla especificada por el usuario
(puede ser escogida al azar, pero no es una condición necesaria). Entonces tomamos el 10º, 3º, y el 0º bit,
empezando por el menos significativo, y operamos con una puerta XOR todo ellos, obteniendo así un nuevo bit.
La semilla se rota hacia la izquierda y el nuevo bit se convierte en el menos significativo de la semilla. Este
proceso puede ser repetido hasta generar 210-1 = 1023 bits pseudoaleatorios.

En general, para un polinomio primitivo de grado m, este proceso genera 2m bits pseudoaleatorios antes de repetir
la misma secuencia.

CÓDIGO BCH

En la teoría de la codificación, los códigos BCH o Bose – Chaudhuri – Hocquenghem forman una clase
de códigos de corrección de errores cíclicos que se construyen utilizando polinomios sobre un campo
finito (también llamado campo Galois). Los códigos BCH fueron inventados en 1959 por el matemático
francés Alexis Hocquenghem, e independientemente en 1960 por Raj Bose y DK Ray-Chaudhuri. El
nombre Bose – Chaudhuri – Hocquenghem (y el acrónimo BCH) surge de las iniciales de los apellidos de los
inventores (erróneamente, en el caso de Ray-Chaudhuri).

Una de las características clave de los códigos BCH es que durante el diseño del código, existe un control preciso
sobre el número de errores de símbolos que el código puede corregir. En particular, es posible diseñar códigos
BCH binarios que puedan corregir múltiples errores de bit. Otra ventaja de los códigos BCH es la facilidad con la
que se pueden descodificar, es decir, a través de un método algebraico conocido como descodificación del
síndrome. Esto simplifica el diseño del decodificador para estos códigos, utilizando un pequeño hardware
electrónico de bajo consumo.

Los códigos BCH se utilizan en aplicaciones como las comunicaciones por satélite, reproductores de discos
compactos, DVD, unidades de disco, unidades de estado sólido y códigos de barras bidimensionales.

Códigos BCH en sentido estricto primitivos:

Dado un número primo q y un poder primo q m con enteros positivos m y d tales que d ≤ q m - 1, un código BCH
primitivo de sentido estrecho sobre el campo finito (o campo Galois) GF ( q ) con longitud de código n = q m - 1 y
la distancia al menos d se construye mediante el siguiente método.

Sea α un elemento primitivo de GF (q m). Para cualquier entero positivo i , sea m i ( x ) el polinomio mínimo con
coeficientes en GF ( q ) de α i . El polinomio generador del código BCH se define como el mínimo común g ( x )
= mcm ( m 1 ( x ), ..., m d - 1 ( x )). Se puede ver que g (x) es un polinomio con coeficientes en GF ( q ) y divide x n -
1 . Por lo tanto, el código polinomial definido por g (x) es un código cíclico.