Sobre Codificación Conjunta Fuente-Canal

Documentos relacionados
Códigos IRA. Máster en Multimedia y Comunicaciones Comunicaciones Digitales. Luca Martino

Tema: Codificación de canal

UNIVERSIDAD CARLOS III DE MADRID ESCUELA POLITÉCNICA SUPERIOR MÁSTER EN MULTIMEDIA Y COMUNICACIONES. Códigos IRA. Luca Martino

En cada pregunta, elija una de las 4 opciones.

EXPERTO EN TEORÍA DE LA INFORMACIÓN Y LA CODIFICACIÓN TRABAJO FINAL CÓDIGOS CONVOLUCIONALES

Última modificación: 1 de julio de

ESTRATEGIAS DE DECODIFICACIÓN

En la codificación bloque la fuente de información como una secuencia binaria ("0" o "1 ) es segmentada en bloques u de longitud fija de largo k bits

2 de mar de 2004 Codificación de imágenes y v ideo

CAPA 2, Control de Errores y Control de Flujo

Redes de Computadores

Señales y Sistemas. Señales y Clasificación Sistemas y Clasificación Respuesta al impulso de los sistemas. 5º Curso-Tratamiento Digital de Señal

F. Javier Gil Chica 2010

EL4005 Principios de Comunicaciones Clase No.22: Señalización Ortogonal

Práctica 6: Codificación Convolucional

Evaluación del desempeño de los códigos de comprobación de paridad de baja densidad en transmisión de imágenes

GUÍA DIDÁCTICA DE LA ASIGNATURA: TRANSMISIÓN DE DATOS

Tema 4: Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

COMUNICACIONES DIGITALES. El CONTROL DE ERROR

Tema: Modulación QAM.

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

Ejercicios sobre probabilidades y entropías

Introducción a los códigos lineales 11

Sistemas de Comunicaciones

COMUNICACIÓN DE DATOS

Compresión de imágenes

Codificación de Fuente y de Canal

Tema / La capa de enlace de datos: entramado y detección de errores

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Búsqueda exhaustiva

Implementación en FPGA de un Codificador/Decodificador de Viterbi para Hiperlan/2

Comunicaciones Digitales - Ejercicios Tema 3

Clase 4: Cuantificación. Eytan Modiano Departamento de astronáutica y aeronáutica. Eytan Modiano Slide 1

Análisis de Fourier: efectos de un medio físico ideal en la transmisión de una señal digital

Transmisión de Paquetes. Redes de Computadores 2001 Agustín J. González

Expresión decimal. Aproximación y estimación. Notación científica. Polinomios. Divisibilidad de polinomios. Regla de Ruffini.

Formulación del problema de la ruta más corta en programación lineal

Compresión de Datos. Método de Huffman. Dpto. Informática

MATEMATICA DISCRETA II-2007 Códigos (matriz de chequeo)

banda, mayor es la distorsión, y mayor es la probabilidad de que se cometan errores en el receptor.

ESOA Sistemas de Transmisión de Datos

Detección y Corrección de Errores

Curso Completo de Electrónica Digital

Simulación y Análisis del Algoritmo de Codificación Turbo en Sistemas de Comunicaciones Móviles: Un Estudio Comparativo

Redes y Comunicaciones

Redes y Comunicaciones

SISTEMA DE TRANSPORTE EN TELEVISION DIGITAL

MODULARIDAD Y ESTRUCTURA DE COMUNIDADES EN REDES MATI

MULTIPLEX PCM DE 4 CANALES CON CODIFICACION DE LINEA AMI/HDB3/CMI Módulo T20F-E/EV

EL4005 Principios de Comunicaciones Clase No.24: Demodulación Binaria

I.E.S. DE INGENIO Avda. de los Artesanos, INGENIO POC-PC EVALUACIÓN CONTENIDOS MÍNIMOS CURSO CURSO: 1º BACH.

CC40A Complejidad de Kolmogorov

EL4005 Principios de Comunicaciones Clase No.20: Señalización Digital en Banda Base

Departamento de Tecnologías de la Información. Tema 2. Circuitos lógicos. Ciencias de la Computación e Inteligencia Artificial

Taller de Matlab: Codificación de canal. Introducción. Descripción. Consideraciones generales. Consideraciones sobre Matlab

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Transmisión. Transmision de Datos

Algoritmos genéticos

MatemáticaDiscreta&Lógica 1

CONTENIDOS MÍNIMOS PARA LA PRUEBA EXTRAORDINARIA DE SEPTIEMBRE DE 2016 MATEMÁTICAS 1º BACHILLERATO HHCCSS IES DOMINGO PÉREZ MINIK

Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande

Grafos aplicados a códigos

La transformada rápida de Fourier (FFT) y otros algoritmos para la implementación de la DFT

Realizar las siguientes operaciones en c-a-2 utilizando el número mínimo de bits necesario para que no haya desbordamiento: 3 + 7, 5 7, 13 8, 10 6.

Circuitos combinacionales. Funciones integradas

Características y uso. Recordando. La criptografia define una función de

TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN

EL4005 Principios de Comunicaciones Clase No.30: Códigos Lineales de Bloque

Tipos de Datos y Representaciones. Circuitos Digitales, 2º de Ingeniero de Telecomunicación. EITE ULPGC.

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez

Convertidores analógicos-digitales

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I CAPÍTULO III ARITMÉTICA Y CODIFICACIÓN

Cálculo científico y técnico con HP49g/49g+/48gII/50g Módulo 3: Aplicaciones Tema 3.4 Grafos

UNIDAD 1 NUMEROS COMPLEJOS

Introducción a la Teoría de la Información

Imagen = Histograma. Modificaciones del Histograma

MATEMÁTICAS 1º ESO. INSTRUMENTOS DE CALIFICACIÓN PRUEBAS ESCRITAS 60 % OBSERVACIÓN EN CLASE (comportamiento,

Capítulo 12: Indexación y asociación

INTRODUCCIÓN A LA LÓGICA DIGITAL

Facultad de Ingeniería - IIE Modelado y análisis de redes de telecomunicaciones Práctico 2. Cadenas de Markov en Tiempo Discreto

La eficiencia de los programas

1 Control Óptimo. 1.1 Introducción Problema típico de control óptimo

CONTENIDOS MÍNIMOS SEPTIEMBRE. DEPARTAMENTO DE MATEMÁTICAS

EL4005 Principios de Comunicaciones Clase No.10: Repaso de Probabilidades

FUNDAMENTOS DE TELECOMUNICACIONES MULTIPLEXACIÓN. Marco Tulio Cerón López

Aprendizaje Automatizado

Conceptos Básicos sobre Modulación y Codicación de Canal en Comunicaciones Móviles

Estudio y simulación de turbo códigos utilizando el algoritmo MAP y SOVA

APUNTES DE CATEDRA: SISTEMAS DE NUMERACION - REPRESENTACION INTERNA DE NUMEROS Y CARACTERES

Se desea estudiar el comportamiento de una función a medida independiente x se aproxima a un valor específico.

Capítulo 3: Grafos Clase 1: Grafos: Modelos, tipos, representación e isomorfismo

TEOREMAS DE FUNCIONES DERIVABLES 1. Teorema de Rolle

Tema 4. Teoría de códigos Introducción. Álgebra. Área de Álgebra Universidade da Coruña

Problemas: formulación, ejemplos, representación de soluciones y estructuras de entorno

Almacenamiento de imágenes digitales. Primera parte

Comunicación de Datos Escuela Superior de Informática. Tema 1 Fundamentos de la Comunicación de Datos

18 Experimentos aleatorios. Sucesos y espacio muestral. Frecuencia y probabilidad de un suceso.

Real Academia de Ciencias

Comparación entre la Aplicación de la DCT y la KLT a la Compresión de Imágenes Digitales (Diciembre 2011)

TEMA V SISTEMAS DE NUMERACIÓN

Simulación e Implementación de un esquema de Modulación Trellis-Coded y de un decodificador de Viterbi en un DSP

Transcripción:

UNIVERSIDAD CARLOS III DE MADRID ESCUELA POLITECNICA SUPERIOR MASTER EN MULTIMEDIA Y COMUNICACIONES Sobre Codificación Conjunta Fuente-Canal Luca Martino FEBRERO DE 2008 FEBRERO DE 2008

1 Introducción: Teoría Básica La codificación es, sin duda, una función esencial de cualquier sistema de comunicación. En general, lsa caracteristicas básica de una transmisión digital tendrían que ser: eficiencia fiabilidad privacidad Dejando de lado el problema de la privacidad, podemos notar como los dos restante objetivos requieren enfoques exactamente opuestos. De hecho, la eficiencia, medida como la proporción entre la cantidad de información transmitida y la energía necesaria para transmitirla, exige quitar toda la redundancia en los datos antes del envío. Esta operación se suele llamar Codificación de fuente. Por otra parte, la fiabilidad requiere añadir redundancia para asegurar una correcta interpretación de los datos transmitidos. De esto se ocupa la Codificación de canal. Los dos principales resultados de la Teoria de la Información, nos proporcionan una cota inferior para la compresión de datos sin perdidas (R > H) y una cota superior para la velocidad de trasmisión de datos por un canal (R < C). El primer resultado nos dice que la longitud media por simbolo de una palabra código no puede ser menor de la Entropia de la fuente; por otra parte, el teorema de codificación afirma que, en un canal discreto sin memoria, la máxima tasa a la que se puede trasmitir sin error es el máximo de la infomación mutua (Capacidad) entre entrada y salida del sistema de comunicaciones. Se puede demostrar, que el hecho de dividir la codificación en dos paso, de fuente y de canal, no afecta del punto de vista de la trasmisión en un canal ruidoso. Por estas razones, casi siempre el diseño de un sistema de comunicación ha sido la combinación de estas dos partes, analizadas separadamente. Además se demuestra que optimizando los dos bloques de modo indepedientes se podrían alcanzar los resultados limites dados pro los teoremas de Shannon. De todas formas, por razones practicas relacionadas con complejidad y retardo, se han propuestos esquemas de codificación conjunta de fuente y canal. Además, desde el punto de vista teórica y no solo, surge automaticamente la pregunta si la condición H < C sea una condición necesaria y 1

suficiente para enviar información de una fuente por un canal. Se ha demostrado que si H < C existe un método de codificación conjunta fuente-canal con probabilidad de error tan baja como se quiera. Dicho de otra forma: Teorema: Sea H (bit/símbolo) la entropia de la fuente y C (bit/segundo) la capacidad de canal. Es posible codificar los símbolos emitidos por la fuente, transmitiendo en media C H ɛ símbolos por segundo, donde 0 < ɛ < C H. No es posible transmitir a una velocidad superior a C H. 2 Codificación conjunta: por qué? El Teorema de Separación de la Teoría de la Información afirma la posibilidad de dividir en dos partes separadas la tareas de codificación; esta separeción no es justificable desde el punto de vista practico, por las siguintes razones: longitud de bloques limitada por codificacíon de fuente y canal puede reslutar un problema. los bits a la salida del codificador de fuente suelen tener una redundancia residual, que en cierto modo, podría ser aprovechada por el codificador de canal. Se nececitan bloques de longitud infinita para lograr un perfecto código de canal. aún no se ha conseguido que la probabilidad de equivocarse en decodificación sea exactamente nula. El objetivo es mejorar las prestaciones de los sistemas de comunicación, sin explotar más los recursos disponible. Con este fín, se han estudiado algoritmos conjuntos de codificacíon. La idea básica consiste en tratar de aprovechar la redundancia residual de los bits para mejorar la calidad de la transmisión. 3 Códigos Huffman Un código de Huffman es un código de longitud variable, en el que la longitud de cada código depende de la frecuencia relativa de aparición de cada símbolo: 2

cuanto más frecuente sea un símbolo, su código asociado será más corto. Además, un código Huffman es un código libre de prefijos: es decir, ningún código forma la primera parte de otro código; esto permite que los mensajes codificados sean no ambiguos. El algoritmo consiste en la creación de un árbol binario que tiene cada uno de los símbolos por hoja, y construido de tal forma que siguiéndolo desde la raíz a cada una de sus hojas se obtiene el código Huffman asociado. Para derivar el código Huffman se hacen las siguientes operaciones: Escoger los dos símbolos c i, c j (que serán todo colocados en las hojas N 4,N 5,N 6,N 7 ) con probabilidades más pequeñas p i y p j. Se sustituyen c i, c j con un nodo superior de probabilidad p i + p j. se considera el nuovo nodo como una nuova hoja, es decir, como otro simbolo (no considerando los dos anteriores), y se repite desde el primer punto. El código queda definido por el camino desde la raíz N 1 hasta cada hoja. Figure 1: Ejemplo Código Huffman. Para poder utilizar el algoritmo de Huffman es necesario conocer de antemano las frecuencias de aparición de cada símbolo, y su eficiencia depende de lo próximas a las frecuencias reales que sean las estimadas. La eficiencia de 3

la codificación de Huffman también depende del balance que exista entre los hijos de cada nodo del árbol, siendo más eficiente conforme menor sea la diferencia de frecuencias entre los dos hijos de cada nodo. Este es el codificador estadístico más popular, y erróneamente se tiende a pensar que su funcionamiento es óptimo. Este algoritmo es capaz de producir un código óptimo en el sentido de Mínima Redundancia para el código de entrada. Esta compresión sólo será óptima si las probabilidades de todos los símbolos de entrada son potencias enteras de 1/2. Y el peor de todos los casos se presentará cuando alguno de los símbolos posean una probabilidad cercana a 1. 4 Código Convolucionales y Turbo La codificación del canal añade redundancia a los datos generados por la codificación de la fuente, de forma que se detectan e incluso se corrigen algunos errores introducidos por el canal. Los códigos de canal más comunes son los códigos bloques: reciben este nombre en virtud que estan constituidos pos bloques de longitud fija. Es decir, el codificador recibe k bits y entrega n bits a la salida, existiendo una relación biunívoca entre la secuencia de k de mensaje y la secuencia final de n bits. Además, en el caso de los códigos sistemáticos, también qeuda bien definida dentro del bloque, cúal es la parte de mensaje y cúal es la parte redundante o de bits de paridad. La caracteristicas distintivas de los código convolucionales es que no tienen un formato de bloque y por lo tanto no tiene una longitud de bloque. La caracteristica fundamental de los convolucionales es aprovechar la correlaciones entre los bits transmitidos, es decir, codificador introduce una cierta memoria. Los n bits de salida de un convolucional no depiende solo de los k bits en entrada, sino también de los K 1 nits precedentes (la tasa de código sería k/n ). El funcionamiento del convolucional está basado en K registros de desplazamiento ( memoria de capacidad un bit) y n sumas módulo dos. La codificación de los bits se realiza a partir del valor del bit presente a la entrada y los valores de los m bits anteriores que están guardados en los registros. La descripción de un código convolucional puede hacerse de varias maneras: conexión de vectores o polinomios, diagrama de estado, diagrama de árbol y diagrama trellis son los esquemas más utilizados. En figura (2) se muestra el esquema en registros de despazamiento de un código convolucional, donde 4

por cada bit de información, m i, se trasmiten 2 bits, h 1 i y h 2 i. Los convolu- Figure 2: Ejemplo secuencia para un convolucional. cionales codifican la secuencia con una operación de convolución,porque son códigos tempo invariantes en el tiempo, y por lo tanto se pueden representar con una respuesta impulsiva (proporciona la salida cuando la secuencia de entrada es una delta de kornecker). Para la fig.2 las respuestas impulsivas de las dos salidas serían: g 1 = (1101) (1) g 2 = (1111) (2) La respuesta impulsiva es un vector binario de longitud el numero de memorias más uno. Existe un 1, si hay conección con la salida. Otra forma interesante de ver los conlucionales es la representacíon polinomica a través de la Trasformada-D; esta transformada convierte nua secuencia en un polinomio en D donde a cada potencia D j esta asociado un retardo j. Por ultimo, hay que decri que los convolucionales se podrian expresar a través de una matriz generadora G con si fueran códigos bloque lineales de longitud variable. Los Turbos Códigos se construyen concatenando 2 codificadores convolucionales a través de un barajador de bits. Si para los convolucionales la decodificación se basa en el algoritmo de Viterbi, para los código Turbo se utiliza una generalización llamada algoritmo BCJR. 5 Ejemplo JSCD Vamos a estudiar un ejemplo de Joint Source Channel Decoder. Sea C = {c 1, c 2,..., c C } el conjunto de las C palabras códigos de la fuente. Cada 5

simbolo c j C se puede escribir como: c j = [c j (1), c j (2),... c j (i),...] (3) Donde claramente c j (i) es una variable binaria que puede asumir los valores 0 o 1, y en general las longitudes de las c j son distintas. En figura 3 muestramos el ejemplo con codificación de Huffman; en este caso, C = 5 y c 1 = [0, 0, 0], c 2 = [0, 0, 1], c 3 = [0, 1], c 4 = [1, 0], c 5 = [1, 1]. Indicamos con I j k el conjunto Figure 3: Otro ejemplo de codificación Huffman. de índices de todas las palabras códigos con los primeros k 1 bits iguales a los primeros k 1 bits con la palabra código c j : I j k = {n N i < k, cn (i) = c j (i)} (4) Por convención I j 1 = {1, 2,..., C} para cualquier j (recordemos que se refiere a k 1 bits, que en este caso sería 0). Si indicamos con P (c j ) la probabilidad del símbolo y con P (c j (i)) la probabilidad especifica del bit i-esimo, podemos escribir la relación: P (c j (k) c j (1), c j (2),..., c j (k 1)) = n I j k cn (k)=c j (k) P (cn ) n I j k P (c n ) Esto vale por como hemos asignado los bits en el árbol (según Huffman), y por la definición de I j k. Por k = 1 la expresión de la izquierda se reduce (5) 6

a la probabilidad P (c j (1)). Para entender la (5) podemos notar como la probabilidad de c 1 se pueda escribir como: P (c 1 ) = P (c 1 (1) = 0, c 1 (2) = 0, c 1 (3) = 0) (6) Pero también podemos expresarlo así: P (c 1 ) = P (c 1 (1) = 0) P (c 1 (2) = 0 c 1 (1) = 0) P (c 1 (3) = 0 c 1 (2) = 0, c 1 (1) = 0) (7) Ahora, la probabilidad que le primer bit de la palabra código sea 0, es (por 1 j 5: P (c j (1) = 0) = P (c 1 ) + P (c 2 ) + P (c 3 ) (8) Es decir, todas las palabras código de las ramas de izquierda tienen el primer bit igual a 0. Mirando la fig.3 y razonando de la misma manera, se puede entender que: P (c j (2) = 0 c j (1) = 0) = P (c j (3) = 0 c j (2) = 0, c j (1) = 0) = P (c 1 ) + P (c 2 ) P (c 1 ) + P (c 2 ) + P (c 3 ) P (c 1 ) P (c 1 ) + P (c 2 )) (9) (10) Claramente podemos repetir los calculos para cada bit del árbol. Esta ecuación tiene valor para fuentes con independientes palabras códigos. Para fuentes con memoria, como una relación de Markov entre las palabras códigos, hay que tener en cuenta las palabras códogos precedentes: P (c j (1) = 0 c 2 ) = P (c 1 c 2 ) + P (c 2 c 2 ) + P (c 3 c 2 ) (11) Realmente la ecuación (5) es más general, en el sentido que es valida en ambos casos (para fuentes con o sin memorias). En decodificación se trata de aprovhechar la redundancia residual, que peude ser medida de esta forma: R r = L H (12) Donde L es la longitud media del código de Huffman y H la entropia de la fuente. Si inidcamos con Y la secuencia recibida y con X la enviada, nos gustaría encontrar el máximo de la probabilidad a posteriori (MAP): P (X Y ) = P (Y X) P (X) P (Y ) 7 (13)

Donde se ha utilizado la regla de Bayes. Tomando el logaritmo el criterio de maximización será: max X [log P (Y X) + log P (X)] (14) Donde podemos observar dos partes: la primera log P (Y X) se refiere al canal, y la segunda log P (X) es al información a priori de la fuente. Considerando Figure 4: Esquema general. muestras independientes de ruido gaussiano, podemos escribir: log P (Y X) = i,j log p(y i j c i (j)) (15) y para la información a priori de la fuente: log P (X) = i log p(c i ) (16) y utilizando las relaciones demostrada anteriormente: log P (c i ) = i log p(c i (j) c i (1), c i (2),..., c i (j 1)) (17) Para maximizar la 14 se puede utilizar un algorithmo de Viterbi, como en la decodificación de los convolucionales, utilizando como metrica los dos terminos log p(y i j c i (j)) y log p(c i (j) c i (1), c i (2),..., c i (j 1)). Para utilizar este segundo término, hay que conocer y memorizar en que nodo del árbol nos encontramos. Si consideramos dos posibles secuencias {1, 1, 1, 0} y {0, 0, 1, 1}, podemos ver que en la figura 5 como la probabilidad a priori por la primera secuencia es de estar en nodo N 2 y recibir un bit 0, mientras para segunda es de estar en el nodo N 0 y recibir un bit 1. Claramente este metodo está etricamente relacionado a una decodificación con convolucionales, pero es facil extender al caso de Turbo códigos. 8

Figure 5: Trellis. 6 Bibliografia [1] Comunicaciones Digitales. A. Artés, F. Pérez González, J. Cid, R. López, C. Mosquera, F. Pérez Cruz. [2] Elements of information Theory. Second Edition. Thomas M. Cover, Joy A. Thomas. [3] Joint Source-Channel Soft Decoding of Variable-length Codes for Convolutional Codes with Turbo-Codes. M. Jeanne, J.C. Carlach and P. Siohan. [4] Joint Source-Channel Soft Decoding of Huffman Codes with Turbo- Codes. L. Guivarch, J.C. Carlach and P. Siohan. 9