La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Códigos Detectores y Correctores de Errores

Presentaciones similares


Presentación del tema: "Códigos Detectores y Correctores de Errores"— Transcripción de la presentación:

1 Códigos Detectores y Correctores de Errores
Práctico 2 Códigos Detectores y Correctores de Errores

2 Introducción Una comunicación de datos consiste en la transmisión de una secuencia de caracteres de algún alfabeto finito A, desde una fuente a un receptor a través de un canal de comunicación. Imperfecciones del canal, provocan que algunos caracteres transmitidos sean incorrectamente recibidos por el receptor. Por ello se introduce redundancia en la información, las cuales permite detectar, e incluso corregir los errores cuando el mensaje recibido es descodificado.

3 Códigos Sea un alfabeto binario A = {a1, a2, … ,aq}; Cada uno de los elementos de A se denominan símbolos del canal o del código. El emisor compone los mensajes que se desea enviar a partir de un conjunto finito de símbolos, S = {s1, s2, … ,sM}, denominado alfabeto fuente, a cada uno de los elementos si se denomina símbolo fuente. La tarea del codificador es transformar o codificar el mensaje a símbolos del canal.

4 Códigos Definición: Un código C para un alfabeto fuente S y un alfabeto del canal A es una aplicación inyectiva, C: S Aⁿ. La imagen de la aplicación C se denomina conjunto de palabras código, y sus elementos son las palabras código. Un código sobre el alfabeto A = {0,1} se llama código binario, si el alfabeto es A = {0,1,2} se llama código ternario.

5 Códigos Ejemplos: El alfabeto fuente está formado por las cadenas binarias de longitud siete. A cada símbolo fuente la hacemos corresponder una palabra binaria de longitud ocho donde los siete primeros dígitos son los mismos que los del símbolo fuente y el último es un cero o un uno de forma que el número total de dígitos uno en la palabra sea par. Este código se denomina código control de paridad.

6 Códigos Ejemplos: El alfabeto fuente es {0,1} y a cada símbolo fuente le asociamos la terna que consiste en repetir dicho símbolo ( ; ). Este código se denomina código de triple repetición.

7 Código y Palabras del código
El subconjunto de posibles mensajes transmitidos se llama código y a los mensajes válidos que lo forman los llamamos palabras del código o códigos del vector. Ejercicio a: Los símbolos fuente son ternas de ceros y unos, abc, y se codifican en cadenas binarias de longitud seis, abcxyz, en la forma siguiente: el número de unos en abx es par, el número de unos en acy es par y el número de unos en bcz es par. ¿Cuáles son las palabras del código?

8 Distancia Hamming Es el número de posiciones en las que difieren dos palabras. La distancia Hamming nos dice el número de cambios necesarios para convertir la palabra código enviada en la palabra efectivamente recibida. Sea c una palabra código de longitud n transmitida a través del canal y sea r la palabra recibida; si d(c,r) = λ, diremos que se han producido λ errores. Ejercicio b: Calcular la distancia; i- Si se transmite la palabra c=0001 y se recibe la palabra r=0011. ii- Si se transmite la palabra c= y se recibe la palabra r=

9 Detección y Corrección de Errores
El criterio para determinar si una palabra recibida es correcta o no, es simple: si la palabra recibida pertenece al conjunto de palabras código se considera que es la palabra enviada “y”, en caso contrario, que se ha producido un error durante la transmisión. Si el error producido en la transmisión transforma una palabra código en otra palabra código, el decodificador supondrá que la palabra recibida es correcta y el error pasará desapercibido.

10 Detección y Corrección de Errores
Se debe establecer un criterio para sustituir las palabras incorrectas recibidas por palabras código, este proceso se denomina descodificación. El criterio utilizado en el proceso de descodificación se denomina descodificación por distancia mínima. Consiste: Sustituir la palabra recibida r por la palabra código c’, siendo ésta la palabra código cuya distancia Hamming a la palabra r sea lo mas pequeña posible. Si para alguna palabra r hubiese dos o más palabras código con la misma distancia: Asignar a la palabra r una de las posibles palabras código de forma arbitraria (descodificación completa). No asignarle ninguna y notificar que se ha producido un error no corregible (descodificación incompleta).

11 Detección y Corrección de Errores
Ejercicio c: Utilizando el código de triple repetición se recibe la palabra r=101 que no es correcta, ¿cómo se descodifica r? Además de la longitud y el tamaño de un código bloque C hay un tercer parámetro de gran importancia, la distancia mínima, que nos permite conocer el número de errores que el código puede detectar o corregir. Se denota d(C), es la menor de las distancias entre dos palabras código distintas cualesquiera.

12 Detección y Corrección de Errores
Un código bloque C detecta λ errores si, y sólo si, su distancia mínima es mayor que λ. Un código bloque C corrige λ errores si, y sólo si, su distancia mínima es mayor que 2λ.

13 Códigos Lineales

14 Códigos Lineales Un (n,k) código lineal sobre un alfabeto del canal, con n≥k, es una aplicación lineal inyectiva. La imagen de la aplicación C es un subespacio vectorial de dimensión k, denominado subespacio código. Sus elementos se denominan palabras o vectores códigos.

15 Codificación en códigos lineales
La Matriz generadora de un (n,k) código lineal C, G, es la matriz asociada a la aplicación lineal C respecto a las bases canónicas de ambos espacios. Es una matriz de n filas y k columnas, cuyas columnas son las palabras código correspondientes a los k vectores de la base canónica.

16 Codificación en códigos lineales
Ejercicio d: considerando el código lineal binario C: (Z2)4 → (Z2)7 definido por C(u1, u2, u3, u4) = (u1 + u3,u1,u2,u2 + u3,u2 + u3 + u4,u4,u1 + u2 + u4). Determinar los parámetros del código y calcular su matriz generadora.

17 Codificación en códigos lineales
Los códigos lineales utilizan la matriz generadora para la codificación. De esta manera no es necesario mantener en memoria todas las correspondencias entre símbolo fuente y palabra código, es suficiente tener la matriz generadora del código. Si G es dicha matriz y u = (u1,u2,u3,…,uk), es un símbolo fuente, para calcular la palabra código correspondiente basta calcular G*utranspuesto .

18 Codificación en códigos lineales
Ejercicio e: Considerando el (7,4) código lineal binario C con matriz generadora, G = Calcular la palabra código correspondiente al símbolo fuente u= 1010.

19 Decodificación en códigos lineales
Estudiaremos a continuación cómo aprovechar la estructura lineal de los códigos para corregir los errores producidos en la transmisión. Para ello introducimos una nueva matriz asociada a un código lineal, la matriz control de paridad. Sea C un (n,k) código lineal. Una matriz H, es matriz control de paridad para el código C si H*vлt =(0), para todo vector código v de C. La matriz control de paridad nos ayuda a detectar si una palabra recibida pertenece al código o no.

20 Decodificación en códigos lineales
Para calcular la matriz control de paridad de un (n,k) código lineal C con matriz generadora G podemos seguir el siguiente método: Calcular una matriz H de (n-k)x n y rango (n-k) tal que H*G=(0). Lo que supone resolver un sistema de k ecuaciones lineales homogéneas con n incógnitas y tomar (n-k) soluciones linealmente independientes.

21 Decodificación en códigos lineales
Ejercicio f: Calcular una matriz de control de paridad para el (7,4) código lineal binario C cuya matriz generadora es G G =

22 Decodificación en códigos lineales
Síndrome: Se define el síndrome de un vector v como el vector sin(v) = v*Hлt Un vector v es un vector código si, y sólo si, su síndrome es el vector cero, en consecuencia el proceso de detección de errores en los códigos lineales se simplifica, recibido un vector r se calcula su síndrome, sin(r); si es nulo, la transmisión se considera correcta; caso contrario, se ha producido un error en la transmisión. Se elimina de esta forma la necesidad de comparar la palabra recibida con cada una de las palabras código.

23 Decodificación en códigos lineales
Síndrome: El número de posibles síndromes es p n-k. El proceso de descodificación mediante la tabla de síndrome es el siguiente. Recibido el vector r, se calcula su síndrome, sin(r) = r*Hлt. Si no es nulo, se localiza dicho vector en la segunda columna de la tabla. Se considera que el representante a dicho síndrome, es el error cometido. Se descodifica el vector r como el vector código c = r+representante.

24 Decodificación en códigos lineales
Ejercicio g: sea C el código lineal binario de triple paridad. Una matriz control de paridad H para C es: H= A- obtener la tabla de síndromes. B- decodificar el vector recibido r= C- obtener el vector código transmitido c.

25 Decodificación en códigos lineales
Ejercicio h: Dada la matriz de control H =   Mediante lenguaje natural: Determinar la matriz generatriz G. Determinar el código C. Descodificar las palabras “y” recibidas para determinar las palabras “x” originales. y = ; y = ; y = Con distancia d=3, calcular el máximo número de errores que el código puede detectar, y el máximo número de errores que el código puede corregir.

26 Códigos Hamming Los códigos Hamming son una familia de códigos lineales correctores de errores simples y con un sencillo algoritmo de descodificación. Un código lineal binario que tenga a H como matriz control de paridad se denomina código de Hamming binario, denotado por H(m,2). La longitud de un código de Hamming binario H(m,2) es n = (2 elevado a la m) – 1, su dimensión es k = (2 elevado a la m) – m – 1. Los representantes de la tabla de síndromes son exactamente los n+1 vectores de peso menor o igual a 1.

27 Códigos Hamming El código de Hamming H(3,2) es un (7,4) código lineal binario que tiene por matriz control de parida la matriz. H =

28 Códigos Hamming Algoritmo de Descodificación: Recibido un vector r, se calcula su síndrome, sin (r)= rHt. Si sin(r) = 0, el vector r se considera el vector código transmitido. Si sin(r)≠0, se supone que se ha producido un error simple; sin(r) indica en binario, la posición errónea. Se corrige el error sin más que modificar el valor del dígito en dicha posición.

29 Códigos Hamming Ejercicio a: Utilizando el código de Hamming H(3,2). A- realizar el proceso de descodificación sabiendo que se ha recibido el vector r= B- Corregir el error para obtener el vector código c.

30 Códigos Hamming Ejercicio b: Dada la matriz generadora:
G = |g3| = | | |g4| | | Codifique las siguientes palabras: 1101 y 1000. Determinar la matriz de control H. Determinar si la palabra recibida , es válida.


Descargar ppt "Códigos Detectores y Correctores de Errores"

Presentaciones similares


Anuncios Google