Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Grupo 5 Codigo Golay Revisado PDF
Grupo 5 Codigo Golay Revisado PDF
FACULTAD DE INGENIERÍA
Escuela de Electrónica
Ciclo 02 – 2013
Cátedra:Teoría de la información
“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
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.
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
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).
( )
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
[ ]
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í:
|
[ ]
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
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.
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
|
[ ]
|
|
[ ]
|
[ ]
S=r.HT
|
|
[ ]
1) Determinando s+pi
[ ] [ ]
[ ]
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]
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]
S=r.HT
|
|
[ ]
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]
Bibliografia:
[1] http://www.uam.es/personal_pdi/ciencias/gallardo/codigos.pdf