Está en la página 1de 13

UNIVERSIDAD DON BOSCO

FACULTAD DE INGENIERÍA
Escuela de Electrónica
Ciclo 02 – 2013

Cátedra:Teoría de la información

Docente:Ing. Ricardo Marcel Martínez

“Código de Golay”

Elaborado por:
o Calderón Quijano, Lisandro Ernesto CQ110242
o De Paz Muñoz, Karen Yesenia DM110334
o Flores Villalobos, Douglas Alonso FV110209
o Hernández Palacios, Tania del Carmen HP110134

Ciudadela Don Bosco, miércoles 2 de septiembre de 2013


Diferencias, ventajas y desventajas
Algunas diferencias entre el código lineal de bloques y el código de Golay son:

 El código lineal de bloques permite la transmisión de una cantidad de bits variada, es decir,
dependiendo del número de bits de información que se quiere enviar, así será el código
definido. Mientras que, el código binario de Golay está definido únicamente para la
transmisión de 12 bits de información.
 El número de mensajes transmitido por códigos lineales de bloque está definido por , donde
k es el número de bits de información; mientras que en el código de Golay, la cantidad de
mensajes está limitada a mensajes.
 En el código lineal de bloques la distancia de Hamming mínima entre dos palabras de código
es la cantidad de unos que resulta de sumar cualesquiera dos palabras código no iguales a cero,
en cambio en código de Golay la distancia mínima es 8.
 El número de errores que puede corregir el código lineal está dado por el numero entero
positivo t que cumpla con ; mientras que el código de Golay, está
limitado a corregir tres errores como máximo.
 Todas las palabras código provenientes del código de Golay tienen un peso de 0, 8, 12, 16 o
24; mientras que las palabras del código lineal poseen pesos variados, sin ninguna restricción.
 El proceso de decodificación del código de Golay se realiza con más rapidez que la
decodificación del código lineal de bloques.

Las ventajas que presenta el código de Golay son:

 El código G24permite recuperar una palabra código completa y con exactitud, siempre y
cuando no se hayan cometido más de tres errores.
 Permite una mayor velocidad de decodificación de datos.
 El código binario de Golay da lugar a la detección de sietes errores y la corrección de tres
de los errores detectados.
 La codificación es relativamente facil

Las desventajas del código de Golay son:

 Al extender el código al , se pierden las características de un código perfecto.


 El código binario de Golay solo permite la transmisión de 12 bits de información.
 Este tipo de código solo permite transmitir mensajes.
 La máxima cantidad de errores que puede corregir este tipo de código es tres.
 No puede detectar errores de mas de 4bits

El código (24,12) de Golay.


El código de Golay es el código más ampliamente estudiado, sus campos de aplicación son muy
importantes, entre ellos se encuentra desde el programa espacial de Estados Unidos en donde este
código ha sido utilizado en muchos sistemas de comunicación real para el control de errores, hasta
como sistema de control de error en imágenes a color enviadas desde júpiter y Saturno. De manera
que se puede inferir (como una primera aproximación) que este código es utilizado tanto para
detección como para corrección de errores.

Códigos de Golay binarios


Este código posee una distancia mínima de 7 capaz de corregir cualquier combinación de 3 o menos
errores aleatorios en un bloque de 23 dígitos. Este código puede ser extendido en su totalidad para
agregar los bits de verificación de paridad para cada palabra código, cuya extensión resulta en un
código (24,12) con una distancia mínima de 8, este código es capaz de corregir todos los patrones
de error de 3 o menos errores y de detectar todos los patrones de error de 4.

Ahora se dará a conocer una matriz generadora en forma sistemática que contiene (12, 23,23)
:

Donde I12 es una matriz identidad de dimensiones 12*12 teniendo como P la matriz que deberá
poseer las siguientes propiedades:
 Es simétrica con respecto a la diagonal
 La i-esima columna se transpone en la i-esima fila
 El producto de la matriz con su transpuesta en la matriz identidad P.PT = I12
 La sub-matriz obtenida por la eliminación de la última fila y la última columna es formada
por un desplazamiento cíclico de la primera fila en 11 desplazamientos a la izquierda ( o
desplazamientos cíclicos de la primera columna en 11 desplazamiento hacia arriba),
cumpliendo de esta manera la segunda propiedad que PT=P

Un algoritmo de decodificación simple para el código (24,12) de Golay puede ser ideado
usando las propiedades de la matriz P. Para 0 ≤ i ≤ 11, suponiendo que pi es la i-esima fila
de P y u(i) un conjunto de 12 elementos que solo la i-esima componente es 1. Por ejemplo

u(5) = (0 0 0 0 0 1 0 0 0 0 0 0).

Facilmente se ve que pi= u(i).P .


Ahora haciendo e= (x,y) un vector de error, donde “x” y “y” son un conjunto binario de 12
elementos, suponiendo que una palabra código es transmitida (v: palabra código
transmitida) y ocurre correctamente un patrón de error e = (x,y). Entonces el vector recibido
es r=v+e. El síndrome para r es:

( )

En consecuencia, se muestra primero que el patrón de error corregible para el código golay
(24,12) puede ser expresado correctamente en términos de P, pi,u(i) y s. Tal que se presenta
algoritmo de decodificación para este código.
Para muchos patrones de error corregibles con un peso (cantidad de errores) ω(e) ≤ 3, se
tienen las siguientes 4 posibilidades
(1) ω(x) ≤ 3 y ω(y)=0
(2) ω(x) ≤ 2 y ω(y)=1
(3) ω(x) ≤ 1 y ω(y)=2
(4) ω(x) ≤ 0 y ω(y)=3

Finalmente: El algoritmo de decodificación puede ser ideado para el código extendido de


golay (24,12) basados en los procedimientos del análisis y las expresiones para la
corrección de los patrones de error. La codificación consiste en los siguientes pasos
Paso 1: Calcular el síndrome (s) de la secuencia recibida (r)
Paso 2: Si ω(s)≤3, entonces e=(s,0) e ir al paso 8
Paso 3: si ω(s+pi)≤2 para alguna de las filas pi en P, entonces e=(s+pi, u(i)) e ir al paso 8
Paso 4: Calcular s.P
Paso 5: si ω(s.P)=2 o 3, entonces e=(0,s,P) e ir al paso 8
Paso 6: si ω(s.P+pi) = 2 para algunos de las filas de pi en P, entonces e=(u(i), s.P+pi,) e ir al
paso 8
Paso 7: Si el síndrome no corresponde a las correcciones para los patrones de error, el
proceso de decodificación se detiene, o se solicita una retransmisión (Esto representa que la
decodificación falló)
Paso 8: Definir el código de palabra decodificada a partir de v*=r+e

Generación de las matrices P, G y H


Generación de la matriz P
Para generar la matriz P se debe tomar en cuenta que debe poder contar con las siguientes
propiedades:

 Es simétrica con respecto a la diagonal.


 Debe ser auto-dual siendo (PT=P), para lo cual la i-ésima columna se transpone en la i-
ésima fila.
 El producto de la matriz con su transpuesta es la matriz identidad (P.PT = I12).
 La sub-matriz obtenida por la eliminación de la última fila y la última columna es formada
por un desplazamiento cíclico de la primera fila en 11 desplazamientos a la izquierda (o
desplazamientos cíclicos de la primera columna en 11 desplazamiento hacia arriba),
cumpliendo de esta manera la segunda propiedad que PT=P.

La generación de esta matriz se realiza los siguientes pasos:

1. Se Genera una sub-matriz de 11 x 11.


2. se coloca en la primera fila o columna, la siguiente secuencia [1 0 0 0 1 1 1 0 1 1 0].
3. Se realiza un desplazamiento cíclico hacia la izquierda, si la secuencia fue colocada en la
primera fila, o un desplazamiento cíclico hacia arriba, si la secuencia fue colocada en la
primera columna.
4. se crea la última fila y columna compuesta por unos, exceptuando el último elemento que es
0.

Demostración de cómo se genera la matriz P


Paso 1: Generando una sub-matriz de 11x11.

[ ]
Paso 2: Se coloca la secuencia [1 0 0 0 1 1 1 0 1 1 0] en la primera fila.

[ ]

Paso 3: Se desplaza la secuencia de la fila hacia la izquierda en la nueva fila, hasta completar la sub-
matriz.

[ ]

[ ]

Paso 4: Se crea la última fila y columna compuesta por unos, exceptuando el último elemento que
es 0.
[ ]

Nota: como se puede observar la matriz cumples con las propiedades antes propuestas, siendo
simétrica con la diagonal y al ser simétrica por la diagonal también su transpuesta es igual y se
obtiene a partir de desplazamientos cíclicos.

Generación de la matriz G
La matriz G se obtiene a partir de la siguiente forma G = [P|I], donde I es una matriz identidad 12 x
12.

Siendo así:

[ ]

|
[ ]
Generación de la matriz H
La matriz H se obtiene a partir de la siguiente forma H = [I|PT] = [I|P], donde I es una matriz
identidad 12 x 12.

Siendo así:

|
[ ]

Codificación y decodificación con detección y corrección de errores


Codificación
Para poder realizar una codificación con G24, lo que se realiza es la suma combinada del producto
del mensaje con la matriz generadora (G), C=v.G; para lo cual se deben seguir los siguientes pasos.

1) Cada i-ésimo elemento del mensaje se multiplica por la i-ésima fila correspondiente de G
2) Se suma cada producto de las i-ésima filas resultantes, realizando la suma sin acarreo
3) La sumatoria resultante es nuestra palabra código C

Decodificación con detección y corrección de errores

Debido al ruido que se puede encontrar C en el canal, puede sufrir cambio siendo modificados
algunos de sus bits, para lo cual se necesita realizar operaciones que permitan detectar y de ser
posible corregir errores, para lograr correctamente la decodificación.

Para poder realizar la decodificación se toma en cuenta que C=v*=r + e, donde r es el código
recibido y e es el error detectado; y, se debe de seguir los siguientes pasos:

1. Calcular el síndrome (s) de la secuencia recibida (r); siendo s=r.HT, donde la operación “.”
Es la suma combinadas de productos que se realiza en el proceso de codificación.
2. Si ω(s)≤3, entonces e=(s,0) e ir al paso 8.
3. si ω(s+pi)≤2 para alguna de las filas pi en P, entonces e=(s+pi, u(i)) e ir al paso 8.
4. Calcular s.P.
5. Si ω(s.P)=2 o 3, entonces e=(0,s,P) e ir al paso 8.
6. Si ω(s.P+pi) = 2 para algunos de las filas de pi en P, entonces e=(u(i), s.P+pi,) e ir al paso 8.
7. Si el síndrome no corresponde a las correcciones para los patrones de error, el proceso de
decodificación se detiene, o se solicita una retransmisión (Esto representa que la
decodificación falló).
8. Definir el código de palabra decodificada a partir de v*=r+e.

Ejemplo Y Ejercicio de Codificación y decodificación


Ejemplo

Demostración de la utilización del G24, como control de error (siguiendo el ejemplo 4.7); v = [1 1
0 0 0 0 0 0 0 0 0 0] es la secuencia del mensaje enviado y r = [1 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0
0 0 0 1] es la secuencia recibida.

Para poder demostrar el control del error, primero es necesario determinar la secuencia C que ha
sido enviada a través del canal.

Paso 1: Multiplicación de cada i-ésimo elemento del mensaje por la i-ésima fila correspondiente de
G

|
[ ]
|

|
[ ]

Paso 2: Sumando cada fila

|
[ ]

Paso 3: Por tanto, C = [1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0]

Ahora se procede a verificar el control de errores.

Paso 1: Se Calcula el síndrome

S=r.HT
|

|
[ ]

Paso 2: ω(s)=9, como ω(s)>3, se procede a determinar ω(s+pi)

Paso 3: Determinando ω(s+pi)

1) Determinando s+pi

[ ] [ ]
[ ]

Los pesos de s+pi, 0≤i≤11, son: 4,8 6,6,4,8,8,6,6,6,6,2

Como se puede observar ω(s+p11)= 2; por tanto, e=(s+p11, u(11)) y se procede al procedimiento del
paso 8

Si u(11))=[0 0 0 0 0 0 0 0 0 0 0 1]

e=[00010000001000000000001]

Paso 4: Se procede a determinar v*, procedimiento del paso 8, v*= r + e

Si, C = [1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0] se observa claramente que la detección y


corrección del error ha tenido un excelente resultado, demostrando que se puede corregir hasta 3
errores.

Ejercicio
Se está utilizando G24 como detector de errores, decodificar la siguiente secuencia recibida [0 1 0 0
0 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1]

Paso 1: Se Calcula el síndrome

S=r.HT
|

|
[ ]

Paso 2: ω(s)=1, como ω(s)<3, e=(s,0)

e=[0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0]

Paso 3: Se procede a determinar v*, procedimiento del paso 8, v*= r + e

Bibliografia:

[1] http://www.uam.es/personal_pdi/ciencias/gallardo/codigos.pdf

También podría gustarte