Grupo 5 - Codigo Golay -Revisado
Short Description
Download Grupo 5 - Codigo Golay -Revisado...
Description
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 o o o
Calderón Quijano, Lisandro Ernesto De Paz Muñoz, Karen Yesenia Flores Villalobos, Douglas Alonso Hernández Palacios, Tania del Carmen
CQ110242 DM110334 FV110209 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
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
al
, se pierden las características de un código perfecto.
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 submatriz.
[
]
[
]
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)
View more...
Comments