Está en la página 1de 10

NOMBRE: Andrs Valencia CDIGO: 246014 CODIGOS CICLICOS EN FORMA POLINOMICA Los cdigos cclicos son un subconjunto de los

cdigos lineales, los cuales poseen dos caractersticas muy importantes: Son fciles de implementar usando una circuitera basada en registros de desplazamiento. Tienen una estructura algebraica bien definida.

Descripcin de los Cdigos Cclicos Rotacin Cclica Sea la n-tupla v=(v0, v1, ... , vn-1). Si los componentes de esa n-tupla son desplazados cclicamente un lugar a la derecha obtenemos la n-tupla: v(1) =(vn-1, v0, ... , vn-2), denominada rotacin cclica de un elemento de v. De una forma ms general si los componentes de v son rotados cclicamente i veces obtenemos: v(i) =(vn-i, vn-i+1 , ... , vn-1, v0, v1, ..., vn-i-1) Definicin de Cdigo Cclico El cdigo C(n,k) es cclico si y solo si cualquier rotacin cclica de un vector v perteneciente a C es tambin un vector del cdigo C. Notacin Polinimial Para representar los vectores pertenecientes a los cdigos cclicos usaremos la notacin polinomial. Cada una de las componentes de un vector cdigo v =(v0, v1, ... , vn-1) sern los coeficientes del polinomio: v(x)=v0+ v1x+v2x2+ ... + vn-1xn-1. A este polinomio se le denomina polinomio cdigo. Por lo tanto a todo vector v le corresponde un polinomio cdigo v(x) de grado (n-1) o menor. v(i) , en representacin polinomial, sera v(i)(x) =(vn-i, vn-i+1x, ... , vn-1xi-1, v0xi, v1xi+1, ... , vn-i-1xn-1). Si multiplicamos xiv(x)=v0xi+ v1xi+1+ ... + vn-1xn+i-1. Este producto lo podemos expresar como: xiv(x)=vn-i+vn-i+1x+ ... + vn-ixi-1+ ... +vn-i-1xn-1+ vn-i(xn+1)+vn-1+1x(xn+1)+ ... + vn-i1xi-1(xn+1)= xiv(x)=(vn-i+vn-i1+1x+ ... + vn-1xi-1)(xn+1) + (vn-i +vn-i+1x+ ... +v0xi+ ... + vnxn-1). xiv(x)=q(x)(xn+1)+v(i)(x) De aqu se observa que v(i)(x) es el resto de dividir xiv(x) entre (xn+1). Polinomio de Grado Mnimo Teorema: El polinomio cdigo distinto de 0 de grado mnimo en C(n, k) cclico es nico.

Teorema: Sea g(x)=g0+g1x+g2x2+ ... + gr-1xr-1+xr el polinomio de grado mnimo => g0=1. Hemos visto que el polinomio de grado mnimo siempre tendr la forma: g(x)=1+g1x+g2x2+ ... + gr-1xr-1+xr. Consideremos ahora el conjunto de polinomios g(x), x(g)x, x2g(x), ..., xn-r-1g(x) de grado r, r+1, r+2, ..., n-1 respectivamente. Vamos a demostrar que ese conjunto pertenece al cdigo. Sabemos que: xiv(x) =q(x)(xn+1)+v(i)(x). Si sustituimos v(x) por g(x) quedara : xig(x)=q(x)(xn+1)+g(i)(x). Sin embargo q(x)(xn+1) tendra grado mayor o igual que n => q(x) debe ser 0. Por tanto queda: xig(x)=gi(x) para todo i que pertenezca al intervalo [0, n-r-1]. Luego el conjunto {g(x), xg(x), ... , xn-r-1g(x)} son rotaciones de g(x), por lo que pertenecen al cdigo y adems son linealmente independientes (todos tienen distinto grado). Por lo tanto ese conjunto puede constituir una base del cdigo. v(x)=u0g(x)+u1g(x)+u2x2g(x)+ ... +un-r-1xn-r-1g(x) perteneciendo v(x) a C(n,k). v(x)=u(x)g(x), u(x)=u0g(x)+u1g(x)+ ... + un-r-1xn-r1g(x). Teorema: Sea g(x)=1+g1x+g2x2+ ... + gr-1xr-1+xrel polinomio de grado mnimo, para todo v(x) de grado menor o igual que n-1 v(x) pertenecer al cdigo si y solo si v(x) es mltiplo de g(x). El nmero de mltiplos que habr ser:

Si aadimos el 0, el nmero de palabras del cdigo (todos los mltiplos posibles de g(x))=2n-r=2k. Por tanto r=n-k ser el grado mnimo de un polinomio cclico (grado de g(x)) => g(x)=1+g1x+ ... +gnk-1xn-k-1+xn-k. Por tanto una posible codificacin de u(x) ser: v(x)=u(x)*g(x)=(u0+ ... +uk-1xk1)g(x). El grado de g(x) ser el nmero de bits de redundancia que se aaden. Teorema: Sea g(x) polinomio generador de C(n, k) => g(x) es factor de (xn+1). Teorema: Si g(x) tiene grado (n-k) y es factor de xn+1 => g(x) genera siempre un cdigo cclico C(n, k). Codificacin Sistemtica Sea u=(u0, ... , uk-1), u(x)=u0+ ... +uk-1xk-1. xn-ku(x)=u0xn-k+ ... +uk-1xn-1. xn-ku(x)=a(x)g(x)+b(x). b(x) es un polinomio de grado menor o igual que (n-k-1). b(x)=b0+ ... +bn-k-1xn-k-1. b(x)+xnku(x)=a(x)g(x) pertenecer a C(n,k). Por lo tanto: (b0+b1x+ ... +bn-k-1xn-k-1+u0xn-k+ ... +uk-1xn-1) pertenecer al cdigo C(n, k). Por lo tanto tenemos:

Pasos para la codificacin sistemtica de u: 1. Multiplicar xn-k por u(x). 2. Calcular b(x), que es el resto de dividir xn-ku(x) entre g(x). 3. Concatenar b(x) y u(x). Matrices Generadora y de Comprobacin de Paridad De los Cdigos Cclicos Matriz Generadora (MATRIZ G) Sea C(n, k) un cdigo cclico y g(x)=g0+g1x+ ... +gn-kxn-k. Se ha demostrado anteriormente que el conjunto de k polinomios {g(x), xg(x), ... , xk-1g(x)} forman una base del cdigo C. Si ponemos como filas de una matriz k*n, las k n-tuplas correspondientes a esos k polinomios cdigo obtendramos la matriz generadora siguiente:

El problema de usar esta matriz generadora es que, en general, produce una codificacin no sistemtica. Para sistematizar G se vern dos modos de hacerlo ms adelante. Matriz Comprobadora de Paridad (MATRIZ H) Como g(x) es factor de (xn+1) => (xn+1)=g(x)h(x), siendo h(x)=h0+h1x+ ... +hkxk, con h0=hk=1. Sea una palabra cdigo v=(v0, v1, ... , vn-1), por lo tanto v(x), polinomio asociado a v, debe ser mltiplo del polinomio generador v(x): v(x)=a(x)g(x). v(x)h(x)=a(x)g(x)h(x)=a(x)(xn+1)=a(x)xn+a(x). El grado de a(x) es menor o igual que (k-1), las potencias xk, xk+1, ... , xn-1 no aparecen en a(x)+xna(x). Si expandimos el producto v(x)h(x), los coeficientes de xk+1, ... , xn-1 deben ser iguales a cero. Por lo tanto, obtenemos (n-k) ecuaciones, denominadas ecuaciones de diferencia:

El polinomio recproco de h(x) es xkh(x-1)=hk+hk-1x+hk-2x2+... +h0xk. xkh(x-1) es tambin factor de (xn+1), por lo tanto generar un cdigo cclico C(n, n-k).

La matriz generadora de ese cdigo ser:

De las ecuaciones de diferencias obtenemos que cualquier palabra del cdigo es ortogonal a cualquiera de las filas de la matriz H => H es la MATRIZ DE PARIDAD de C. H genera el cdigo dual de C, h(x)=polinomio de paridad de C. Teorema: Sea C(n,k) un cdigo cclico con polinomio generador g(x) => el cdigo dual de C es cclico y se genera por xkh(x-1), con h(x)=(xn+1)/g(x) Sistematizacin de la matriz G Tenemos dos formas para sistematizar la matriz G : 1) Combinando filas de la matriz G. Por ejemplo : Sea g(x)=1+x+x3. La sistematizacin de la matriz G se muestra en la figura siguiente :

2) Sea C(n, k) nuestro cdigo cclico y g(x) su polinomio generador. Si dividimos xn-k+i por g(x) obtenemos : xn-k+i=a(x)ig(x)+bi(x), con i=0, 1, ..., k-1.bi(x)=bi, 0+bi, 1x+bi, 2x2+ ... +bi, n-k-1xn-k-1. bi(x)+xn-l+i=ai(x)g(x), es decir, bi(x)+xn-l+i es un mltiplo de g(x) por lo que pertenecer al cdigo. Podemos usar esos k polinomios cdigo como las filas de la matriz G, obteniendo la matriz generadora de forma sistemtica :

Podemos calcular H a partir de esta matriz G en forma sistemtica como : H=(In-k | Pt) segn se vio en el tema de cdigos lineales. La matriz quedara de la forma :

ALGORITMO DE VITERBI El algoritmo de Viterbi es uno de los dos tipos de decodificacin que se pueden emplear con la codificacin convolucional. El otro algoritmo es la decodificacin secuencial, que tiene la ventaja que se puede ejecutar muy bien sobre cdigos convolucionales con grandes longitudes (K), aunque el proceso de decodificacin no tiene una duracin fija sino variable. El algoritmo de Viterbi tiene la ventaja de que emplea un tiempo de decodificacin fijo, lo que lo hace idneo para implementarlo mediante hardware. Por otro lado, los recursos computacionales necesarios para su implementacin crecen exponencialmente con K, por lo que usualmente en la prctica como mximo slo se realizan implementaciones hasta K=9. El algoritmo de decodificacin de Viterbi basa su funcionamiento en el llamado diagrama de Trellis. En dicho diagrama se intentar ir reconstruyendo las transiciones que se produjeron al codificar una secuencia de entrada dada, de manera que as podamos en el decodificador cual fue dicha secuencia de entrada.

Para encontrar la nica secuencia de estados ptima secuencia de observaciones

para la se necesita definir la cantidad: (3.13)

Esta cantidad representa la ms alta probabilidad a travs de un solo camino, en el instante que considera las primeras que: observaciones y termina en el estado

. Por induccin se tiene (3.14)

Para poder tener la secuencia de estados se debe llevar la cuenta de los argumentos que maximizan a 3.14 para cada y . Esto se hace a travs del vector procedimiento recursivo descrito a continuacin. , siguiendo el

Descripcin del algoritmo de Viterbi: - Paso 1: en el nivel j, calcular la distancia de Hamming de cada camino entrante en cada nodo (estado) desde el nodo del nivel j-1 hasta el nodo del nivel j a travs del camino superviviente. - Paso 2: para cada nodo (estado) del diagrama de Trellis en el nivel j, descartar todos los caminos que entran en el nodo, excepto el de distancia mnima. Cuando a un nodo llegan dos caminos con la misma distancia se toma el superior. - Paso 3: pasar al nivel j+1 y repetir los pasos 1 y 2. Estos pasos se aplican para j mayor o igual que 2. Hasta ese valor se expanden los caminos.

A continuacin mostraremos un ejemplo de aplicacin de este algoritmo sobre una cadena codificada con el codificador (2,1,3) del ejemplo de codificacin. El codificador enva la secuencia: 11 01 10 11 10 00 11 correspondiente a la codificacin de la cadena 1 0 0 1 1 1 0 El receptor recibe la secuencia: 11 01 00 11 11 00 11 Vemos que se han producido dos errores (posiciones 5 y 10).

Paso 1

d(11,00) = 2 , d(11,11) = 0

Paso 2

2 + d(01,00) = 2 + 1 = 3 , 0 + d(01,01) = 0 + 0 = 0 2 + d(01,11) = 2 + 1 = 3 , 0 + d(01,10) = 0 + 2 = 2 En este momento nos encontramos en el nivel 2. A partir de ahora comenzamos a aplicar el algoritmo. Vemos que a cada estado del nivel 2 llega un nico camino, por lo tanto nos quedamos con todos los caminos hasta el momento.

Paso 3

3 + d(00,00) = 3 + 0 = 3 0 + d(00,10) = 0 + 1 = 1 3 + d(00,11) = 3 + 2 = 5 .............. Para cada estado del nivel 3 nos quedamos con el camino de menor peso que llegue a l. Los caminos que hemos seleccionado hasta el momento aparecen marcados con un color azul.

Paso 4

Paso 5

Paso 6

Paso 7

Una vez hemos llegado al final, escogemos el camino que nos da la distancia ms corta en el ltimo nivel. Una vez seleccionado el camino, elegimos el bit que provoca la transicin de estado entre dos niveles comenzando desde el primer nivel hasta el ltimo. La secuencia de bits obtenida es la cadena decodificada.

Para nuestro ejemplo, tenemos que la distancia ms corta en el ltimo nivel es 2 y viene dado por:

Ahora seleccionamos en cada nivel el bit de entrada que provoca la transicin de estados que se refleja segn el camino obtenido.

Nivel 1 2 3 4 5

bit 1 0 0 1 1

6 7

1 0

Por lo tanto, la secuencia decodificada obtenida es 1 0 0 1 1 1 0.


BIBLIOGRAFIA: http://www.asiat.com.mx/tomas/tesismaestria/micrositio/node54.html http://ma.alvarez0005.eresmas.net/trabajos/ccvsatelite/teoria.html http://www.isa.cie.uva.es/proyectos/codec/teoria4.html http://es.scribd.com/doc/43692634/Codigos-Ciclicos