Codigos de Correccion y Detencion de Errores

71
REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO POPULAR DE EDUCACIÓN SUPERIOR UNIVERSIDAD FERMÍN TORO SEDE CABUDARE – EDO. LARA DECANATO DE INGENIERÍA COMUNICACIONES DIGITALES Cabudare, Agosto de 2012

Transcript of Codigos de Correccion y Detencion de Errores

Page 1: Codigos de Correccion y Detencion de Errores

REPÚBLICA BOLIVARIANA DE VENEZUELAMINISTERIO POPULAR DE EDUCACIÓN SUPERIOR

UNIVERSIDAD FERMÍN TOROSEDE CABUDARE – EDO. LARA

DECANATO DE INGENIERÍA

COMUNICACIONES DIGITALES

Cabudare, Agosto de 2012

Page 2: Codigos de Correccion y Detencion de Errores

TEMA: CODIGOS DE CORRECCION Y DETECCION DE ERRORES

ASIGNATURA: COMUNICACIONES DIGITALES

Prof.: Ing. Juan MolinaIntegrantes:

Alejandro AdamesMaille Altuve

Milagros ÁlvarezYenny Navarro

Page 3: Codigos de Correccion y Detencion de Errores

CODIGOS DE CORRECCION Y DETECCION DE ERRORES

Código Gray. Código Hamming.

Código de Redundancia Cíclica Código Lineal de Bloques

COMUNICACIONES DIGITALES

Page 4: Codigos de Correccion y Detencion de Errores

INTRODUCCIÓN

Page 5: Codigos de Correccion y Detencion de Errores

INTRODUCCIÓN

El desarrollo de la electrónica, se ha constituido en uno de los más grandes sucesos de la época moderna y ha sido

fundamental para los grandes adelantos tecnológicos, en casi todos los campos del saber.

Las herramientas y conocimientos de electrónica digital son necesarios para el análisis, diseño e implementación de

circuitos y sistemas digitales, en especial con el almacenamiento, transformación y comunicación de la

información en forma digital. El hombre en su vida cotidiana trabaja desde el punto de

vista numérico con el sistema decimal y desde el punto de vista alfabético con un determinado idioma. Asimismo, la

computadora debido a su construcción, lo hace desde ambos puntos de vista con el sistema binario, utilizando una serie de

códigos que permiten su perfecto funcionamiento.

Page 6: Codigos de Correccion y Detencion de Errores

CODIGOS DE CORRECCION Y

DETECCION DE ERRORES

Page 7: Codigos de Correccion y Detencion de Errores

CÓDIGOS DE CORRECCIÓN DE ERRORES 

Códigos de Corrección de errores: Se incluye suficiente información redundante en cada bloque de datos transmitido para que el receptor pueda

deducir lo que debió ser el carácter transmitido. Es mas utilizado en canales que causan muchos

errores, tales como enlaces inalámbricos, ya que una retransmisión pudiera presentar nuevamente

errores.

Page 8: Codigos de Correccion y Detencion de Errores

CÓDIGOS DE CORRECCIÓN DE ERRORES 

La codificación para corregir errores es mas sofisticada que la codificación para detectar

errores.Su objetivo es descubrir y localizar los errores en la

transmisión. Una vez localizado, la correcciónes trivial: Se invierte el valor del bit. La

codificación de corrección de errores requiere una menor proporción de codificación que la detección del error. Se puede demostrar que para corregir

hasta n bits erróneos un esquema de codificación requiere el uso de frases codificadas preasignadas con una distancia Hamming de por lo menos 2n +

1.

Page 9: Codigos de Correccion y Detencion de Errores

CÓDIGOS DE CORRECCIÓN DE ERRORES 

La función principal de las técnicas de control de errores es introducir redundancia controlada

permitiendo que los mensajes transmitidos que hayan sido corrompidos sean corregidos antes de ser procesados. Con esta redundancia controlada

sólo un subconjunto de todos los posibles mensajes (secuencias de bits) contiene mensajes válidos.

Esto quiere decir que si formamos secuencias de 7 bits, podremos recibir 27=128 secuencias distintas, pero los posibles mensajes transmitidos no serán

128 sino un subconjunto de ellos, luego si no hemos recibido una secuencia de 7 bits que coincida con uno de los posibles mensajes

transmitidos, habremos recibido una secuencia con errores.

Page 10: Codigos de Correccion y Detencion de Errores

CÓDIGOS DE DETECCIÓN DE ERRORES 

Debido a los numerosos problemas a la hora de realizar la transmisión, es necesario utilizar

técnicas que permitan detectar y corregir los errores que se hayan producido. Estas técnicas se

basan siempre en la idea de añadir cierta información redundante a la información que desee

enviarse. A partir de ella el receptor puede determinar, de forma bastante fiable, si los bits recibidos corresponden realmente a los enviado.

Page 11: Codigos de Correccion y Detencion de Errores

CÓDIGOS DE DETECCIÓN DE ERRORES 

Códigos de Detección de errores: Se incluye suficiente redundancia para permitir que el

receptor sepa que ha ocurrido un error (pero no qué error) y entonces solicite una retransmisión. Es

mas factible utilizarlo en canales que son altamente confiables, como los de fibra, ya que

simplemente se retransmiten los bloques defectuosos que surgen ocasionalmente.

Page 12: Codigos de Correccion y Detencion de Errores

CODIGO GRAY

Page 13: Codigos de Correccion y Detencion de Errores

CODIGO GRAY 

El código Gray es un sistema de numeración binario en el que dos valores sucesivos difieren solamente en uno de sus dígitos, es por ello que este sistema fue diseñado originalmente para prevenir señales

ilegítimas de los switches electromecánicos. En el presente es usado para facilitar la corrección de errores en los sistemas de comunicaciones, tales como algunos

sistemas de televisión por cable y la televisión digital terrestre, también se sigue empleando para el diseño los mapas de Karnaugh, los cuales son, a

su vez, utilizados en la implementación de circuitos combinacionales y circuitos

secuenciales.

Page 14: Codigos de Correccion y Detencion de Errores

CODIGO GRAYResulta oportuno señalar que utilizando el código Gray es posible resolver el problema de las Torres de Hanói, además puede incluso formar un ciclo

hamiltoniano o un hipercubo, en el que cada bit se puede ver como una

dimensión. Convenientemente gracias a las propiedades de distancia de Hamming de los

códigos de Gray, es usado en ocasiones en algoritmos genéticos. Es por ello que las

computadoras antiguas indicaban posiciones abriendo y cerrando interruptores. Utilizando tres interruptores como entradas usando Base 2, estas

dos posiciones estarían una después de la otra:

... 011 100

Page 15: Codigos de Correccion y Detencion de Errores

CODIGO GRAY

Ahora bien, el problema con el código binario en base 2 es que con interruptores mecánicos, es

realmente difícil que todos los interruptores cambien al mismo tiempo. En la transición de los dos estados mostrados arriba, tres interruptores

cambian de sitio. En el lapso en el que los interruptores están cambiando, se pueden

presentar salidas de información espurias. Si las salidas mencionadas alimentan un circuito

secuencial, probablemente el sistema presentará un error en

entrada de datos. En consecuencia, el código gray resuelve este problema cambiando solamente un dígito a la vez, así que no existe este problema.

Page 16: Codigos de Correccion y Detencion de Errores

CODIGO GRAY 

Su característica es que entre una combinación de dígitos y la siguiente, sea ésta anterior o posterior,

sólo hay una diferencia de un dígito.

Page 17: Codigos de Correccion y Detencion de Errores

CODIGO GRAY 

Utilizando el código Gray es posible resolver el problema de las Torres de Hanói. Puede incluso formar un ciclo hamiltoniano o un hipercubo, en el que cada bit se puede ver como una dimensión.

Las Torres de Hanói es un rompecabezas o juego matemático inventado en 1883 por el matemático francés Éduard Lucas.1 Este solitario se trata de un juego de ocho discos de radio creciente que se apilan insertándose en una de las tres estacas de un tablero. El objetivo del juego es crear la pila en otra de las estacas siguiendo

unas ciertas reglas. El problema es muy conocido en la ciencia de la computación y aparece en muchos libros de texto como introducción

a la teoría de algoritmos.

Page 18: Codigos de Correccion y Detencion de Errores

CODIGO GRAY 

Se sigue empleando para el diseño los mapas de Karnaugh, los cuales son, a su vez, utilizados en la

implementación de circuitos combinacionales y circuitos secuenciales.

Page 19: Codigos de Correccion y Detencion de Errores

CODIGO GRAY

El problema con el código binario en base 2 es que con interruptores mecánicos, es realmente difícil

que todos los interruptores cambien al mismo tiempo. En la transición de los dos estados

mostrados arriba, tres interruptores cambian de sitio.

Page 20: Codigos de Correccion y Detencion de Errores

CODIGO GRAY

En el lapso en el que los interruptores están cambiando, se pueden presentar salidas de información espurias. Si las salidas mencionadas alimentan un circuito secuencial,

probablemente el sistema presentará un error en entrada de datos. En consecuencia, el código gray resuelve este

problema cambiando solamente un dígito a la vez, así que no existe este problema:

Page 21: Codigos de Correccion y Detencion de Errores

CODIGO GRAY  º BINARIO GRAY

0 0000 00001 0001 00012 0010 00113 0011 00104 0100 01105 0101 01116 0110 01017 0111 01008 1000 11009 1001 110110 1010 111111 1011 111012 1100 101013 1101 101114 1110 100115 1111 1000

La tabla siguiente es una lista del código Gray de cuatro bits para números decimales del 0 al 15.Los números binarios se muestran en la tabla como una referencia. Como los números binarios, el código Gray puede tener cualquier número de bits Note el cambio de bit único entre los números sucesivos del código Gray. Por ejemplo, yendo del decimal 3 al 4, el código Gray cambia de 0010 a 0110, mientras que el binario cambio de 0011 a 0100, un cambio de tres bits. El único cambio de bit se origina en el tercer bit de la derecha en el código Gray; los otros permanecen iguales.

Page 22: Codigos de Correccion y Detencion de Errores

CODIGO GRAY

  CONVERSIÓN DE BINARIO A CÓDIGO GRAY

La conversión entre el código binario y el código Gray a veces es muy útil. Primeramente, mostraremos cómo convertir un número binario a un número de código Gray. Se aplican las

siguientes reglas: El bit más significativo (el más a la izquierda) en el código Gray es el mismo que el MSB correspondiente en el número

binario, Lleno de izquierda a derecha, sume cada par adyacente de

bits del código binario, para obtener el siguiente bit del código Gray. Descarte acarreos.

Page 23: Codigos de Correccion y Detencion de Errores

CODIGO GRAY

Ejemplo:   Paso 1. El digito del código Gray más a la izquierda es el mismo

que el digito del código binario más a la izquierda.

Paso 2. Sume el bit de código binario más a la izquierda al bit adyacente.

Paso 3. Sume el siguiente par adyacente.

1 + 0 1 1 0 Binario

1 1 Gray

1 0 + 1 1 0 Binario1 1 1 Gray

1 0 1 1 0 Binario1 Gray

Page 24: Codigos de Correccion y Detencion de Errores

CODIGO GRAY

Ejemplo:

  Paso 4. Sume el siguiente par adyacente y descarte el acarreo.

Paso 5. Sume el último par adyacente.

La conversión ha sido completada; el codeo Gray es 11101.

1 0 1 + 1 0 Binario1 1 1 0 Gray

1 0 1 1 +0 Binario1 1 1 0 1 Gray

Page 25: Codigos de Correccion y Detencion de Errores

CODIGO GRAY

  CONVERSIÓN DE GRAY A BINARIOPara convertir de código Gray a Binario, se utiliza un método similar,

pero con algunas diferencias. Se aplican las siguientes reglas:· El bit más significativo (el más a la izquierda) es el código binario

es el mismo que el bit correspondiente en el código Gray.· Sume cada bit generado del código binario al bit del código Gray

en la siguiente posición adyacente. Descarte acarreos.

Ejemplo:   Paso 1. El digito del código binario más a la izquierda es el mismo

que el digito del código Gray más a la izquierda.

1 1 0 1 1 Gray1 Binario

Page 26: Codigos de Correccion y Detencion de Errores

CODIGO GRAY

Ejemplo: Paso 2. Sume el último bit del código binario que se acaba de

generar al bit del código Gray en la siguiente posición. Descarte acarreos. (En negrilla bit que se suman).

Paso 3. Sume el último bit del código binario que se acaba de generar al bit del código Gray en la siguiente posición.

1 1 0 1 1 Gray1 0 Binario

1 1 0 1 1 Gray1 0 0 Binario

Page 27: Codigos de Correccion y Detencion de Errores

CODIGO GRAY

 Ejemplo: Paso 4. Sume el último bit del código binario que se acaba de

generar al bit del código Gray en la siguiente posición.

Paso 5. Sume el último bit del código binario que se acaba de generar al bit del código Gray en la siguiente posición. Descarte

acarreos.

1 1 0 1 1 Gray1 0 0 1 Binario

1 1 0 1 1 Gray1 0 0 1 0 Binario

Page 28: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING

Page 29: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

Es un algoritmo,(código de bloques) para detectar y corregir un bit erróneo dentro de una palabra binaria de datos.

Códigos Hamming están diseñados para tener una dmín=3, se pueden detectar errores en uno o en dos bits corregirlos, y

también corregir errores en un solo bit. Antes de comenzar el razonamiento para describir los códigos de Hamming es

necesario tener presente las siguientes definiciones:

Código binario: Es una representación unívoca de las cantidades, de tal forma que a cada una de éstas se le asigna

una combinación de símbolos binarios

Distancia entre dos representaciones válidas: cantidad de bits para pasar de una representación a otra.

Page 30: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

Distancia mínima de un código: mínima cantidad de bits que se debe cambiar para pasar de una representación válida a

otra. Bit de paridad El bit de paridad es aquel que hace que el dato tenga una paridad par ó impar. Ya que la paridad se

toma como:

Existen dos variantes del bit de paridad: el bit de paridad par y el bit de paridad impar.

Nro. de 1’s del dato + Bit de paridad

Page 31: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

El bit de paridad par es puesto como"1" si la cantidad de "unos" en un conjunto dado de bits es impar, haciendo de

este modo a la cantidad total de "unos" par.

El bit de paridad impar es puesto e n "1" si la cantidad de "unos" en un subconjunto dado de bits es par, haciendo de

este modo al total de "unos" impar

En base a estas definiciones se concluye que un código binario debe tener al menos la distancia mínima igual a 1

para garantizar que una combinación no represente a varias cantidades o valores

Page 32: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

Los códigos de Hamming usan puertas XOR para tres tareas diferentes: generador de paridad par, inversor programable y

detector de paridad par.

La puerta lógica OR-exclusiva, más conocida por su nombre en inglés XOR, realiza la función booleana A'B+AB'. Por su Tabla de Verdad, sabemos que un OR-EXCLUSIVO de dos entradas  A  y  B da un" 1 " cuando ambas entradas son

iguales, y dá un "0" cuando ambas entradas son diferentes. Pero ahora veremos al OR-EXCLUSIVO desde otra perspectiva.

Page 33: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

Cuando ambas dos entradas A  y B son iguales, la salida del OR-EXCLUSIVO es" 1 ", o sea cuando las dos entradas son

ambas “ 0" ó cuando las dos entradas son ambas " 1 ", o sea cuando la paridad de la palaba de entrada AB es par .

El OR-EXCLUSIVO es capaz de detectar la paridad en una palabra de dos bits, o sea un número par de "unos" cuando

hay "unos" en la palabra. ¿Podemos extender este concepto a una palabra binaria de tres bits? La respuesta es afirmativa, y para ello podemos seguir utilizando el mismo OR-EXCLUSIVO

de la siguiente manera

Page 34: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

Las entradas combinadas A y B cuando ambas solo están produciendo un "1" a la salida del OR-EXCLUSIVO del cual son entradas (o sea, cuando ambas A y B Son iguales).

Page 35: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

Esta salida de "1" del OR-EXCLUSIVO de arriba es la entrada al OR-EXCLUSIVO de abajo. Y cuando ambas entradas al OR-EXCLUSIVO inferior son iguales, la salida del OR-EXCLUSIVO que es a su vez la salida del circuito será "1", y en caso contrario la salida será "0". Un efecto curioso es que este circuito, el cual tiene una cantidad impar de entradas (tres entradas: A , B y C ), produce un "1" a su salida cuando la palabra binaria de entrada ABC es impar (o sea, cuando hay un número impar de "unos" a la entrada), y produce un "0" cuando la palabra binaria de entrada ABC es par. :Contrástese esto con el funcionamiento del OR-EXCLUSIVO de dos entradas, cuyo comportamiento es el reverso de esto. Si queremos que se produzca un "1" cuando la paridad de la palabra de entrada sea par (como ocurre con el OR-EXCLUSIVO de dos entradas), todo lo que tenemos que hacer es agregar un inversor lógico NOT a la salida del circuito. Así como construimos el circuito anterior usando tres bloques OR-EXCLUSIVO, podemos construir otro circuito que incorporando cuatro bloques OR-EXCLUSIVO

Page 36: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

Page 37: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

Usa distancia mínima m. Por cada entero m existe un código Hamming de 2m-1 bits que contiene m bits de paridad y 2m-1-m bits de información. Si se numeran las posiciones de los bits desde 1 hasta 2m-1, los bits en la posición 2k (0 ≤k≤m-

1), son los bits de paridad y los bits restantes son bits de información.

Page 38: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

Ejemplo Para una cadena de m=3 la palabra sería:

2m-1 = 23-1=8-1=7 Entonces:

La palabra consta de 7 bits.M=3 tiene 3 bits de paridad

Los 4 bits restantes son de informaciónTomando en cuenta que las posiciones de los bits se numeran

del 1 al 7 en este caso las potencias de 2 son los bits de paridad o chequeo.

Page 39: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

EJEMPLO: Supóngase que se transmite una palabra de código y se recibe una palabra y se recibe una palabra que no pertenece

al código y que es 1110101 ¿Cuál fue la palabra correcta transmitida?

Se chequea:C1 P3 P5 P71 1 1 Paridad ParC2 P3 P6 P70 1 1 1 Paridad ImparC4 P5 P6 P70 1 1 1 Paridad ImparPosición con error: C2+C4 = 2+4=6; “El error está en la posición 6 (P6).LA PALABRA CORRECTA ES: 1010101

Page 40: Codigos de Correccion y Detencion de Errores

CODIGO HAMMING 

Usa distancia mínima m. Por cada entero m existe un código Hamming de 2m-1 bits

que contiene m bits de paridad y 2m-1-m bits de información. Si se numeran las posiciones de los bits desde 1 hasta 2m-1, los bits en la posición 2k (0 ≤k≤m-1), son los bits de paridad

y los bits restantes son bits de información.

Ejemplo Para una cadena de m=3 la palabra sería:

2m-1 = 23-1=8-1=7 Entonces:

La palabra consta de 7 bits.M=3 tiene 3 bits de paridad

Los 4 bits restantes son de informaciónTomando en cuenta que las posiciones de los bits se numeran

del 1 al 7 en este caso las potencias de 2 son los bits de paridad o chequeo.

Page 41: Codigos de Correccion y Detencion de Errores

CÓDIGO DE REDUNDANCIA CÍCLICA

Page 42: Codigos de Correccion y Detencion de Errores

CÓDIGO DE REDUNDANCIA CÍCLICA (CRC) 

Mensajes de n bits se tratan como polinomios de grado n-1: 101 = x2 + 1.

El código de comprobación se obtiene dividiendo el polinomio del mensaje por un polinomio generador G => se halla el

resto y se le añade al mensaje. El mensaje recibido es correcto si el divisible por G. No se detecta el error cuando es

divisible por G.CRC-CCITT detecta:

Cualquier número impar de errores simplesTodos los errores dobles

Todas las ráfagas de 16 o menos bitsEl 99’997% de las ráfagas de 17 bits

El 99’998% de las ráfagas de 18 o más bits

Page 43: Codigos de Correccion y Detencion de Errores

CÓDIGO DE REDUNDANCIA CÍCLICA (CRC) 

CODIFICACIÓN:

Las operaciones que realiza el equipo transmisor para calcular su CRC son:

• Añade tantos ceros por la derecha al mensaje original como el grado del polinomio generador.

• Divide el mensaje con los ceros incluidos entre el polinomio generador

• El resto que se obtiene de la división se suma al mensaje con los ceros incluidos

• Se envía el resultado obtenido• Estas operaciones generalmente son incorporadas en el hardware para que pueda ser calculado con mayor rapidez, pero en la teoría se utilizan los polinomios para facilitar los

cálculos.

Page 44: Codigos de Correccion y Detencion de Errores

CÓDIGO DE REDUNDANCIA CÍCLICA (CRC) 

DECODIFICACIÓN:

La decodificación en los CRC se realiza dividiendo la palabra recibida (X(p)) entre el polinomio generador (G(p)).

• Se recibe la palabra.• Se calcula el residuo C(p).

• Si C(p)=0 No se detectan errores.• Si C(p) ≠0 La palabra recibida tiene errores detectables.

El residuo es distintivo de la posición del error.

PROPIEDADES DE G(p):

• G(p) no puede tener a p como factor común. ¿Por qué? • Porque de ser así, todas las palabras de código terminarían

en uno y ese bit no tendría valor.

Page 45: Codigos de Correccion y Detencion de Errores

CÓDIGO DE REDUNDANCIA CÍCLICA (CRC) 

TEOREMA DE G(p):

Cualquier G(p) con más de un término detecta cualquier error simple.

Un error simple se representaría por 1 o por pi que evidentemente no es divisible entre cualquier polinomio de

más de un término. No existe polinomio con un número impar de términos que sea divisible entre (p + 1). Por lo tanto con

un G(p) que tenga a (p + 1) como factor común se pueden detectar la ocurrencia de cualquier combinación de errores

impares. Cualquier código cíclico generado por un polinomio de grado b, es capaz de detectar todas las ráfagas de

longitud b o menor L q.

Page 46: Codigos de Correccion y Detencion de Errores

CÓDIGO DE REDUNDANCIA CÍCLICA (CRC) 

TEOREMA DE G(p):

Una ráfaga de largo q se representaría por E(p) = pi (pq-1 + pq-2+ ….+1) G(p) no tiene a p como factor común y además el segundo término es de grado q-1, no divisible entre G(p). Se dice que un polinomio G(p) pertenece un exponente “e”,

si “e” es el menor entero positivo para el cual (pe + 1) es divisible por G(p). Ahora, un código cíclico generado por G(p) es capaz de detectar errores simples y dobles si la longitud n

de las palabras codificadas es igual o menor que el exponente e al cual pertenece G(p), es decir, si n e.

Page 47: Codigos de Correccion y Detencion de Errores

CÓDIGO DE REDUNDANCIA CÍCLICA (CRC) 

EJEMPLOS:

Se requiere transmitir 10011011. Polinomio generador G(x) = x3 + 1

Mensaje: 10011011Polinomio generador: 1001 (r=3)

Se añaden 3 bits 0 al final del mensaje: 10011011000Se divide x3 • M(x) entre G(x):

Se transmite 10011011010 (4DA16)

Page 48: Codigos de Correccion y Detencion de Errores

CÓDIGO DE REDUNDANCIA CÍCLICA (CRC) 

EJEMPLOS:

Un ejemplo de polinomio generador usado normalmente en las redes WAN es:

g(x) = x16 + x12 + x5 + 1

Page 49: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUES

Page 50: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUES

Los códigos de bloque son técnicas utilizadas para transformar un conjunto de datos binarios “N” en otro un

poco más largo “K” donde se agregan unos bits de más para dar redundancia al código saliente K, donde (K>N). El número

de dígitos de comprobación o redundancia será M=K-N; donde M son la cantidad dígitos adicionados.

Page 51: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUES

El principio que se utiliza en los códigos de bloque consiste en estructurar los datos en bloques de longitud fija y añadir a

cada bloque un cierto número de bits llamados bits de redundancia.

Sólo ciertas combinaciones de bits son aceptables y forman una colección de palabras de código válidas.

Page 52: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUES

Cuando los datos se transmiten y llegan al receptor hay dos posibilidades:

• Que la palabra que se recibe sea una palabra de código válido.

• Que la palabra que se recibe no sea un código válido, en cuyo caso hay dos posibilidades:

• El receptor puede recrear el bloque original FEC (código auto corrector).

• El receptor puede pedir que se retransmita el bloque ARQ(código de auto chequeo)

A un código bloque de longitud n y 2k palabras código se le llama código lineal (n,k) si y sólo si sus 2k palabras código

forman un subespacio k-dimensional.. El bloque código dado en la siguiente tabla es un código lineal (7,4). Se puede

comprobar fácilmente que la suma de dos palabras código en este código es también otra palabra código.

Page 53: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUES

Page 54: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUES

Page 55: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUES

La idea general de estos bloques es:

• Sustituir a los caracteres por un código binario (por ejemplo el código ASCII basa 2). él obtiene así una larga

cadena de 0 y de 1.• Recortar esta cadena en bloques de longitud dada, por

ejemplo 64 bites.• Calcular un bloque el “añadiendo” bit por bit a una clave.

• Desplazar algunos bites del bloque.• Reiniciar eventualmente una serie de veces la operación 3.

llama eso una ronda.

Page 56: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUES

En un código lineal (n,k) es posible encontrar k palabras de código

linealmente independientes, g0, g1,..., gk-1 tal que cada palabra

código v es una combinación lineal de esas k palabras código indep.:

v = u0g0 + u1g1 + ... + uk-1gk-1con ui= 0 ó 1, i >= 0 e i < k.

Representado matricialmente:

Page 57: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUES

Si u = (u0, u1,..., uk-1) es el mensaje a codificar, el código correspondiente se puede generar entonces como:

Page 58: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUESEjemplo, el código lineal (7,4) de la tabla anterior, tiene la

siguientematriz generadora:

Si el mensaje a codificar es u = (1 1 0 1) , el código resultantes es:

v = 1g0 + 1g1 + 0g2 + 1g3 =(1 1 0 1 0 0 0)+(0 1 1 0 1 0 0)+(1 0 1 0 0 0 1)

= (0 0 0 1 1 0 1)

Page 59: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUESUn codificador lineal sistemático divide la palabra código en

dos partes: la parte del mensaje de k bits de información y la parte de

redundancia de n-k bits de paridad (o comprobación de paridad), como el ejemplo de código (7,4)

Page 60: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUESUn codificador lineal sistemático divide la palabra código en

dos partes: la parte del mensaje de k bits de información y la parte de

redundancia de n-k bits de paridad (o comprobación de paridad), como el ejemplo de código (7,4)

Page 61: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUESUn código lineal (n,k) sistemático queda completamente

definidopor una matriz Gkxn de la siguiente forma:

Con pij = 0 ó 1, Ik matriz identidad de dimensión k,o bien G = [P Ik].

Así, la palabra codificada v = (v0 ,v1 ,v2 , ... ,vn-1) = ( u0, u1, ... , uk-1)G es el mensaje a codificar a la derecha, con vn-k+i = ui (con 0=i<k) y vj = u0p0j + u1p1j + ... + uk-1pk-1j a la

izquierda (con 0 j<n–k). Es decir los k primeros dígitos de código v por la derecha son los de información u0, u1,..., uk-1, y los n–k de redundancia son combinaciones lineales de los

de información.

Page 62: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUESPara el ejemplo:

Multiplicando se obtiene el código v como (también se puede representar

con compuertas lógicas):v0 = u0 + u2 + u3v1 = u0 + u1 + u2v2 = u1 + u2 + u3

v3 = u0v4 = u1v5 = u2v6 = u3

Page 63: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUESDECODIFICACIÓN:

Sea la matriz de comprobación de paridad de la siguiente forma:

H(n-k)xn= [In-k Pkx(n-k)T]Y dado que las filas de Gkxn son independientes u

ortogonales(ninguna se genera a partir de la suma modulo 2 de otras

dos), secumple que

GkxnH(n-k)xnT =0kx(n-k)Luego si el código v1xk se comprueba con HT se obtiene

v1xnH (n-k)xnT =u1xkGHT=01x(n-k) (*)Es decir cualquier palabra de código válida arroja un vector

de n-k0’s como chequeo de los bits de redundancia o paridad,

validandolos k bits de información en v. Si los bits de código son

afectadospor el canal de transmisión, como errores binarios, la

operación (*)no da solo 0’s.

Page 64: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUESDECODIFICACIÓN:

Por otra parte, si s¹0 parece posible resolver e a partir del sistema

de ecuaciones asociado %%", pero dado que hay n-k ecuaciones y n

incógnitas (n componentes de e), hay k grados de libertad para la

soluciones de e, por lo tanto hay 2k patrones de error que dan el

mismo síndrome. Para minimizar la probabilidad de error, se elige

al patrón de error más probable, o emín que en un canal BSC es el

que tiene el menor número de unos y equivale a elegir la menor

distancia de r a algún v. El mensaje decodificado así es v=r+emín

Si se ha producido un error simple, el síndrome corresponde a una

de las filas de HT, y la posición de la fila es la posición del error.

Page 65: Codigos de Correccion y Detencion de Errores

CÓDIGO LINEAL DE BLOQUESDECODIFICACIÓN:

Cálculo de síndrome para el ejemplo anterior:

Page 66: Codigos de Correccion y Detencion de Errores

PROPIEDADES DE DETECCIÓN Y CORRECCIÓN DE ERRORES DE UN

CÓDIGO BLOQUE.Propiedades detectoras.

La distancia de r a una palabra de código es el peso de e, luego

cuando el número de errores en e es menor que dmín (y el síndrome

no es 0) a partir del síndrome puede detectarse cualquier patrón de

error con dmín-1 o menos errores. También es posible detectar una

parte de los patrones de error con dmín o más errores, en total son 2n- 2k patrones de error detectables (que no dan síndrome 0) por lo tanto hay 2k-1 patrones de error que no

son detectables (que dan otra pal. de cod. – 0).A tasa de código constante rc, la proporción de errores no

detectables disminuye con n, es decir (2k-1)/(2n-2k)»1/2n(1-rc)

La capacidad correctora de un código bloque también es de 2n-2k

patrones de error (palabras no código). Detección, no detección,

corrección y no corrección de errores tienen una probabilidadasociada que depende de las características del código en

particular.

Page 67: Codigos de Correccion y Detencion de Errores

PROPIEDADES DE DETECCIÓN Y CORRECCIÓN DE ERRORES DE UN

CÓDIGO BLOQUE.Si el código se usa solo para detectar errores, no hay

detección si ecoincide con una palabra de código (excepto error 0), luego laprobabilidad de no detectar palabras erradas es la suma de

lasprob. de que esto ocurra, que para BSC es:

Con la prob. de error por bit de canal, y + el número de palabras

de código de peso Si el código tiene dmín, +será 0 para 0 << dmín

Para el ejemplo, los Adel código son (ver tabla, hay 2k-1 con e¹0):

A0=1, A1=A2=0, A3=A4=7, A5=A6=0, A7=1.La probabilidad de no detección de palabras erradas es

entonces:," & $ - "! ' !$ - " ' .

Si p=10-2, ,»7x10-6, es decir en promedio por cada millón depalabras transmitidas apenas hay 7 erradas que no son

detectadas.

Page 68: Codigos de Correccion y Detencion de Errores

PROPIEDADES DE DETECCIÓN Y CORRECCIÓN DE ERRORES DE UN

CÓDIGO BLOQUE.Propiedades correctoras.

Un código bloque con dmín corrige palabras erradas asociando la

secuencia recibida a la palabra de código válida más cercana,esto se puede hacer si el número de errores en e (o su peso)

esmenor que la mitad de dmín, parte entera, es decir cuando

hayt=[(dmín-1)/2] o menos errores. Si el código se usa solo paracorregir, hay error incorregible cuando hay más de t errores,entonces la probabilidad de error de detección es la suma de

lasprobabilidades de que esto ocurra. En un canal BSC con

probabilidad de error por bit de canal , la probabilidad de error

por palabra es:

Para el código de ejemplo, n=7, dmín=3 t=1. Si =10-2," » 2x10-3 (mucho mayor que la prob. de no detección)

Page 69: Codigos de Correccion y Detencion de Errores

PROPIEDADES DE DETECCIÓN Y CORRECCIÓN DE ERRORES DE UN

CÓDIGO BLOQUE.

Page 70: Codigos de Correccion y Detencion de Errores

CONCLUSIONES Como se sabe los factores que más afectan en el rendimiento

de las comunicaciones son los errores y, por supuesto el manejo de información repetida. Es por ello que la meta de la

codificación es producir códigos con propiedades de decodificabilidad única para una fuente dada con alfabeto y

un conjunto de prioridades. Un tratamiento general de códigos detectores y correctores de errores requiere que la

estructura del código sea modelada en una forma matemática relativamente específica. La forma más frecuente es

identificar las letras códigos con los elementos de un campo finito.

Para canales de transmisión existen teoremas de codificación los cuales responde a la existencia de un código que

permitirá la transmisión a cualquier rapidez menor que la capacidad del canal con probabilidad de error injustamente pequeña. Igualmente las propiedades de códigos detectores de errores sencillos, es decir, códigos que pueden ser usados para elevar la fiabilidad de la transmisión, permiten corregir algunos de los errores que ocurren, reduciendo de este modo

la fiabilidad de error.

Page 71: Codigos de Correccion y Detencion de Errores

G R A C I A S00111 10011 00001 00011 01001 00001 10100

P O R S U10001 10000 10011 10100 10110

A T E N C I O N

00001 10101 00101 01110 00011 01001 10000 01110