Códigos Detectores y Correctores de Errores

Slides:



Advertisements
Presentaciones similares
Enlace de Datos: Introducción
Advertisements

Valores y vectores propios
Control del Enlace de Datos
Control de Enlace De Datos
CRIPTOGRAFÍA MEDIANTE MATRICES INVERTIBLES
Apuntes 2º Bachillerato C.T.
Valores y Vectores Propios
MATRIZ DE CHEQUEO DE PARIDAD
Resolución de Problemas Algoritmos y Programación
Término independiente
Unidad 4 Transmisión Digital.
Teoría de la Información y Codificación
KRIGING.
MATRICES.
Unidad aritmético-lógica
Sistema de tres ecuaciones con tres incógnitas
MATRICES Concepto Se llama matriz de orden m x n a todo conjunto de elementos aij dispuestos en m líneas horizontales (filas) y n verticales (columnas)
Álgebra Lineal – Escuela Superior de Ingeniería de Bilbao – UPV/EHU
Detección y corrección de errores
Técnicas de Detección y Corrección de Errores
Codificación Distribuida
Tema 3: Técnicas de contar
Álgebra Lineal – Escuela Superior de Ingeniería de Bilbao – UPV/EHU
GRAFOS HUGO ARAYA CARRASCO.
Profesor: Julio Canales
EXPONENTES Y RADICALES
Ventajas de la señal digital Inconvenientes de la señal digital
Distinguir y realizar los cálculos con las operaciones matriciales básicas. Las operaciones matriciales permiten el abordaje de los métodos del álgebra.
Deteccion y Correccion
GEOMETRÍA ANALÍTICA ESPACIO RECTAS Y PLANOS
HAMING ALVARO CISNEROS.
GEOMETRÍA ANALÍTICA ESPACIO RECTAS Y PLANOS
Teoría de lenguajes y compiladores
CAPA DE ENLACE DE DATOS El nivel de enlace de datos (en inglés data link level) o capa de enlace de datos es la segunda capa del modelo OSI, la cual es.
Códigos IRA Máster en Multimedia y Comunicaciones
2º Bachillerato de Ciencias y Tecnología BC2A – BC2B Curso
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
Capa de enlace de datos.
Programación Lineal ANÁLISIS DE SENSIBILIDAD en Programación Lineal.
Matrices Conceptos generales
Unidad aritmético-lógica
Matrices – Determinantes Sistemas de Ecuaciones lineales
Capa de enlace.
CODIFICACIÓN DE LA INFORMACIÓN. INTRODUCCIÓN Como un ordenador en su fase más elemental, está formados por circuitos eléctricos, sólo entiende dos estados:
Sistemas de Comunicación de Datos II. Héctor Abarca A. Corrección de Errores Profesor: Héctor Abarca A.
Matrices Prof. Flor Narciso Departamento de Computación
TEMA 5: El problema del flujo con costo mínimo
GEOMETRÍA ANALÍTICA ESPACIO RECTAS Y PLANOS
Br. Hugo Volcanes Br. Katiusca Díaz.  Control de Enlace de Datos  Control de Flujo  Detección de Errores  Comprobación de Paridad  Código Hamming.
MATRICES.
Telecomunicaciones II
SISTEMA DE ECUACIONES LINEALES
Sistemas de Comunicación Avanzados Profesor: Héctor Abarca A. Sistemas de Comunicación de Datos II. Héctor Abarca A.
MATRIZ INVERSA.
Ecuaciones y Sistemas de Ecuaciones Lineales
Matrices Pág. 1. Matrices Pág. 2 Se llama matriz traspuesta de A, y se representa por A t a la matriz que resulta de intercambiar las filas y las columnas.
MATRICES.
Unidad 2 Matrices.
6. Sistemas de ecuaciones diferenciales lineales
Conversiones Sistemas decimal - binario - octal - hexadecimal
DETECCION DE SEÑALES BINARIAS EN RUIDO GAUSSIANO El criterio de toma de decisión fue descrito por la ecuación Un criterio muy usado para escoger el nivel.
UNSa Sede Regional Oran TEU - TUP. Un espacio vectorial (o espacio lineal) es el objeto básico de estudio del álgebra lineal.álgebra lineal A los elementos.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
OPTIMIZACION DEL DESEMPEÑO DE ERROR
ESPACIOS Y SUBESPACIOS LINEALES, COMBINACIÓN LINEAL, BASE Y DIMENSIÓN ELABORADO POR: DR. CARLOS RAÚL SANDOVAL ALVARADO AGOSTO/2015 ESPACIOS Y SUBESPACIOS.
TEMA 2 : ALGEBRA DE MATRICES.
Conferencia Dependencia lineal. Generador de un espacio. Base y dimensión. 1.
UNIVERSIDAD NACIONAL EXPERIMENTAL DEL TACHIRA UNIDAD DE ADMISION CURSO PROPEDEUTICO ASIGNATURA FISICA Prof. Juan Retamal G.
MENSAJES CONFIABLES EN CANALES NO CONFIABLES NOMBRE: CÉSAR GRANIZO FECHA: 08/06/2016.
Sistema Numérico Binario Prof. Carlos Ortiz Muñoz.
Transcripción de la presentación:

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

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.

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.

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.

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.

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 (0 000; 1 111). Este código se denomina código de triple repetición.

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?

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=100110 y se recibe la palabra r=110100.

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.

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).

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.

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λ.

Códigos Lineales

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.

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.

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.

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 .

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

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.

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.

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. 1 0 1 0 1 0 0 0 0 1 0 0 G = 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1

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.

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.

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: 1 1 0 1 0 0 H= 1 0 1 0 1 0 0 1 1 0 0 1 A- obtener la tabla de síndromes. B- decodificar el vector recibido r= 101000. C- obtener el vector código transmitido c.

Decodificación en códigos lineales Ejercicio h: Dada la matriz de control 1 0 1 0 0 H = 1 0 0 1 0 1 1 0 0 1  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 = 0 1 0 1 1; y = 1 0 1 1 0; y = 1 1 1 0 0 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.

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.

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. 0 0 0 1 1 1 1 H = 0 1 1 0 0 1 1 1 0 1 0 1 0 1

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.

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=0110001. B- Corregir el error para obtener el vector código c.

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