• No se han encontrado resultados

Estrategias de la Codificación de Fuente Distribuida en Redes de Sensores

N/A
N/A
Protected

Academic year: 2020

Share "Estrategias de la Codificación de Fuente Distribuida en Redes de Sensores"

Copied!
60
0
0

Texto completo

(1)Facultad de Ingeniería Eléctrica Departamento de Telecomunicaciones y Electrónica. TRABAJO DE DIPLOMA. Estrategias de la Codificación de Fuente Distribuida en Redes de Sensores. Autor: Glenda Beatriz Guzmán Paz Tutor: Ing. Judiel Reyes Aguilar Consultante: Dr. C. Vitalio Alfonso Reguera. Santa Clara 2015 "Año 57 de la Revolución".

(2) Universidad Central “Marta Abreu” de Las Villas Facultad de Ingeniería Eléctrica Departamento de Telecomunicaciones y Electrónica. TRABAJO DE DIPLOMA. Autor: Glenda Beatriz Guzmán Paz E – mail: gguzman@uclv.edu.cu Tutor: Ing. Judiel Reyes Aguilar E – mail: judielra@uclv.cu Consultante: Dr. C. Vitalio Alfonso Reguera E – mail: vitalio@uclv.edu.cu. Santa Clara 2015 "Año 57 de la Revolución".

(3) Hago constar que el presente trabajo de diploma fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de estudios de la especialidad de Ingeniería en Telecomunicaciones y Electrónica, autorizando a que el mismo sea utilizado por la Institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos, ni publicados sin autorización de la Universidad.. Firma del Autor. Los abajo firmantes certificamos que el presente trabajo ha sido realizado según acuerdo de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. Firma del Tutor. Firma del Jefe de Departamento donde se defiende el trabajo. Firma del Responsable de Información Científico-Técnica.

(4) PENSAMIENTO. No es la altura, ni el peso, ni la belleza, ni un título, o mucho menos el dinero lo que convierte a una persona en grande. Es su honestidad, su humildad, su decencia, su amabilidad y respeto por los sentimientos e intereses de los demás. Madre Teresa de Calcuta.. I.

(5) DEDICATORIA. A mi madre, por su entrega, por su amor, por ser la mejor de las madres.. II.

(6) AGRADECIMIENTOS. Primeramente a Dios, por haberme acompañado y sostenido durante toda mi vida. A mi familia, por acompañarme durante la carrera, por su apoyo y comprensión. A Israel, por su preocupación, su dedicación, su tiempo y sus ideas. A mi tutor Judiel porque sin él esta tesis no hubiese sido posible. A Tere, por su preocupación, su ayuda y cariño incondicional durante estos cinco años. Al Piti, por su tiempo, su paciencia y su amistad. A mis amigas Aleanis, Yadalis y Rosmely, por su alegría, por los buenos ratos, por estar siempre para mí. A mis amigas Rosi y Lety por estar conmigo en todo momento. A mi ahijada Amanda Beatriz, por ser la niña de mis ojos y por darme tantas alegrías. A Juanita la secretaria, por ayudarme tantas veces. Y a todos aquellos que han contribuido en mi formación profesional y personal durante estos cinco años.. III.

(7) Tarea Técnica Para confeccionar el presente trabajo y alcanzar los resultados esperados fue necesario seguir algunas tareas técnicas que constituyen una guía poder realizar el informe final. Estas tareas técnicas fueron: 1.. Revisión bibliográfica sobre las características principales de las redes de sensores inalámbricos y de la codificación de fuente distribuida haciendo énfasis en el estudio teórico de las estrategias simétricas y asimétricas.. 2.. Descripción de los bloques esenciales utilizados en los sistemas de transmisión en las redes de sensores inalámbricos.. 3.. Identificación de los algoritmos que permiten la implementación en Matlab de las estrategias simétricas y asimétricas de codificación.. 4.. Análisis de los parámetros fundamentales a evaluar para realizar una adecuada caracterización de las estrategias de codificación diseñadas.. 5.. Elaboración del informe final que contenga los resultados de la investigación.. ______________________ Firma del Autor. _______________________ Firma del Tutor.

(8) Resumen Las Redes de Sensores Inalámbricos son un conjunto de pequeños nodos interconectados entre sí de forma inalámbrica que presentan una amplia aplicación en sectores militares, civiles y ambientales. La principal limitante que presentan estas redes es el uso eficiente de la energía teniendo que mantener sus nodos trabajando por largos períodos de tiempo con pequeñas baterías. Con el objetivo de conseguir un menor gasto energético en estas redes es conveniente aplicar la codificación de fuente distribuida para reducir la cantidad de información a transmitir. Para implementar la codificación de fuente distribuida existen dos estrategias fundamentales. recomendadas por la. literatura: la simétrica y la asimétrica. En este trabajo se analiza el desempeño de ambas estrategias ante la variación de parámetros como la cantidad de nodos, el grado de corrección entre los nodos y las condiciones del canal de comunicaciones, a través de simulación usando Matlab. En términos del comportamiento de la probabilidad de error bits ante variaciones del grado de correlación y de la relación señal a ruido, en esta investigación se demuestra que es más conveniente utilizar una estrategia asimétrica..

(9) Tabla de contenido Introducción .......................................................................................................................1 Capítulo I. Fundamentos teóricos de la codificación de fuente distribuida .........................4 1.1 Componentes básicos del sistema de transmisión en las WSN ...................................4 1.2 Codificación de fuente distribuida .............................................................................6 1.3. Esquema Slepian-Wolf .............................................................................................9 1.4 Esquema Wyner-Ziv ............................................................................................... 10 1.5 Diseño del esquema Slepian-Wolf usando Códigos de Bloque Lineales.................... 12 1.5.1 Caso Asimétrico ................................................................................................ 14 1.5.2 Caso Simétrico .................................................................................................. 15 1.6 Aplicaciones de la DSC en las WSN......................................................................... 17 1.7 Conclusiones parciales ............................................................................................ 21 Capítulo II. Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales .................................................................................................................. 22 2.1 Modelación de correlación utilizando BSC .............................................................. 22 2.2 Esquema de DSC usando códigos de bloque lineales para el caso asimétrico ........... 23 2.2.1 Codificador ....................................................................................................... 23 2.2.2 Decodificador para el caso asimétrico ............................................................... 24 2.3 Esquema de DSC usando códigos de bloque lineales para el caso simétrico............. 25 2.3.1 Codificador ....................................................................................................... 25 2.3.2 Decodificador.................................................................................................... 27 2.4 Implementación de un sistema de transmisión ........................................................ 28 2.4.1 Sistema de transmisión asimétrico .................................................................... 29 2.4.2 Sistema de transmisión simétrico ...................................................................... 30 2.5 Conclusiones parciales ............................................................................................ 30 Capítulo III. Análisis de resultados .................................................................................. 32 3.1 Desempeño de la Probabilidad de Error.................................................................. 32.

(10) 3.2 Desempeño de una red WSN ................................................................................... 36 3.3 Sistema de Transmisión .......................................................................................... 38 3.4 Conclusiones parciales ............................................................................................ 41 Conclusiones..................................................................................................................... 42 Recomendaciones ............................................................................................................. 43 Referencias Bibliográficas ................................................................................................ 44 Anexos .............................................................................................................................. 46 Anexo 1. Comportamiento de la probabilidad de error de bits contrala correlación ..... 46 Anexo 2. Comportamiento de la probabilidad de error de bits ante la relación señal a ruido ............................................................................................................................. 47 Anexo 3. Comportamiento de la probabilidad de error de bits promedio en una red asimétrica. .................................................................................................................... 48 Anexo 4. Comportamiento de la probabilidad de error de bits promedio en una red simétrica. ...................................................................................................................... 49.

(11) Introducción. Introducción Las Redes de Sensores Inalámbricos (WSN, por sus siglas en inglés) son un conjunto de pequeños dispositivos llamados nodos interconectados entre sí de forma inalámbrica. Estos nodos son capaces de captar, procesar y transmitir información extraída de áreas físicas de observación al resto de los nodos de la red. En la actualidad estas redes de sensores tienen disímiles aplicaciones en campos militares, civiles, ambientales, industriales, médicos, entre otros [1]. Estas aplicaciones requieren que los nodos operen de manera autónoma durante largos períodos de tiempo alimentados por baterías o algún otro medio de obtención de energía, lo cual implica que el requerimiento principal en el diseño de protocolos para estas redes sea la eficiencia energética de los nodos. En términos de consumo de energía las operaciones de un nodo sensor inalámbrico pueden dividirse en tres partes: el proceso de captar la información, el procesamiento y la transmisión. Entre estas tres operaciones es conocido que la que más energía consume es la transmisión de los datos. Aproximadamente el 80% del consumo de energía de cada nodo sensor es usado para la transmisión de los datos. De manera que si se puede minimizar el tamaño de los datos por la compresión entonces se reducirá la energía consumida en el proceso de transmisión. Sin embargo, debido a la aplicación de la compresión de datos más energía para el procesamiento puede ser requerida para realizar un algoritmo de compresión. Con el objetivo de reducir el consumo de energía total, tiene que reducirse la suma del consumo de energía en la transmisión y el procesamiento. Es sabido que las restricciones de la energía en los nodos sensores, limitan la capacidad de procesamiento y la potencia de transmisión. Hasta la actualidad la mayoría de las soluciones propuestas para el ahorro de energía en WSN se han basado en protocolos de control de acceso al medio, sin embargo, debido a que en el proceso de transmisión se consume la mayor parte de la energía se requiere reducir los datos a transmitir. Una alternativa para lograr tal reducción de los datos a transmitir es el empleo de la codificación de fuente distribuida, la cual permite reducir la razón de codificación y simplificar el proceso de decodificación de los datos correlacionados de varias fuentes [2].. 1.

(12) Introducción Los fundamentos de la Codificación de Fuente Distribuida (DSC, por sus siglas en inglés) fueron dados por Slepian y Wolf en su estudio de 1973 [3] que consideró la codificación de forma separada de dos fuentes correlacionadas. Aunque las investigaciones sobre la codificación de fuente distribuida han estado en curso durante más de 30 años, su teoría todavía está incompleta. Con el surgimiento de nuevas aplicaciones, especialmente en las redes de sensores distribuidos, que requieren que múltiples fuentes correlacionadas compriman los datos de forma separada en estaciones distribuidas antes de ser transmitidos a la estación base, se ha impulsado en los últimos años los estudios sobre esta técnica de codificación. Siendo actualmente una potente línea de investigación que busca ampliar su campo teórico y desarrollar diseños prácticos. La codificación de fuente distribuida presenta dos estrategias fundamentales: la asimétrica donde una de las fuentes no va a ser codificada y la simétrica donde se codifican todas las fuentes antes de ser enviadas al decodificador. Un aspecto importante para el diseño de la red de sensores es determinar cual de estos modelos es más viable para la aplicación que se desee de la red. Por lo que se requiere evaluar el comportamiento de estas estrategias para diferentes parámetros. Por lo antes expuesto surge como problema científico: ¿Cómo se comportan las estrategias simétricas y asimétricas en diferentes escenarios de las redes de sensores, ante la variación de parámetros como la cantidad de nodos, el grado de corrección entre los nodos y las condiciones del canal de comunicaciones? Para dar solución al problema científico se plantea como objetivo general de esta investigación: Evaluar el desempeño de las estrategias simétricas y asimétricas de codificación de fuente distribuida en las redes de sensores inalámbricos. Para dar cumplimiento al objetivo general se derivan los siguientes objetivos específicos: . Caracterizar el sistema de transmisión de información y la codificación de fuente distribuida en las redes de sensores inalámbricos.. . Implementar algoritmos y funciones de la codificación de fuente distribuida en Matlab utilizando códigos de bloque lineales. 2.

(13) Introducción . Analizar mediante simulación de eventos discretos el comportamiento de las estrategias de la codificación de fuente distribuida implementadas.. Estos objetivos específicos están destinados a dar respuesta a las siguientes preguntas científicas: 1. ¿Cuáles son las características del sistema de transmisión de información en las WSN y de la codificación de fuente distribuida? 2. ¿Cómo implementar algoritmos y funciones de la codificación de fuente distribuida en Matlab utilizando códigos de bloque lineal? 3. ¿Cómo es el comportamiento de las estrategias de la codificación de fuente distribuida implementadas Matlab? El informe de la investigación se estructurará en introducción, capitulario, conclusiones, referencias bibliográficas y anexos. Introducción: Definirá la importancia, actualidad y necesidad de la implementación de la codificación de fuente distribuida en las redes de sensores inalámbricos; y se dejarán explícitos los elementos del diseño teórico. Desarrollo En el Capítulo 1 se caracteriza el sistema de trasmisión en las WSN y se describe el fundamento teórico de la codificación de fuente distribuida y su aplicación en las WSN. El Capítulo 2 se dedica a la descripción e implementación en Matlab de algoritmos y funciones de un esquema de codificación de fuente distribuida usando los códigos de bloque lineales para los casos simétrico y asimétrico. El Capítulo 3 resume los resultados de la experimentación de las funciones creadas como parte del Capítulo 2 y el análisis de los resultados obtenidos en este proceso.. 3.

(14) Fundamentos teóricos de la codificación de fuente distribuida. Capítulo I. Fundamentos teóricos de la codificación de fuente distribuida En el presente capítulo se describen los componentes del sistema de transmisión de las redes inalámbricas de sensores (WSN) y se determinan las características fundamentales de la codificación de fuente distribuida. Se realiza también un análisis del teorema de Slepian-Wolf explicando los casos simétricos y asimétricos descritos en dicho teorema así como también se explica el teorema de Wyner – Ziv y se ejemplifican algunas de las aplicaciones de la codificación de fuente distribuida en las redes de sensores inalámbricos. 1.1 Componentes básicos del sistema de transmisión en las WSN Uno de los aspectos deseables en los nodos de sensores inalámbricos es su habilidad de comunicarse sobre un enlace inalámbrico. Debido a esto, es posible el despliegue de nodos de forma flexible; instalándose en áreas que son inaccesibles para otros tipos de conexiones de nodos. Sin embargo, la comunicación inalámbrica plantea algunos desafíos, como lo son: el limitado ancho de banda, el poco alcance de la transmisión, y el pobre rendimiento en la entrega de los paquetes debido a la interferencia, la atenuación, y el esparcimiento cuando se utilizan múltiples saltos para transmitir los datos. Para enfrentar estos desafíos, es esencial comprender sus propiedades. Los componentes básicos de un sistema digital de comunicaciones son el transmisor, el canal y el receptor. Debido que a cada nodo de la red de sensores es puesto en un lugar cercano a otro nodo de la red de sensor, el rango de comunicación de interés es corto. La figura 1.1 ilustra un diagrama de bloques del sistema de comunicación digital en las WSN. La fuente de comunicación en este contexto representa uno o más nodos sensores que generan una señal de mensaje transmitido en un medio analógico. La señal es una señal banda-base que tiene componentes de frecuencia dominante cercana a cero. La señal de mensaje es convertida a una señal discreta (tanto en el tiempo como en la amplitud) para poder ser procesada por el subsistema del procesador. La conversión requiere muestrear la señal por lo menos a la razón de Nyquist, para que no se pierda la información. Después del muestreo, la señal discreta es convertida a un flujo binario, este proceso es llamado la codificación de fuente. Es esencial implementar una técnica eficiente de codificación de la fuente con el propósito de satisfacer los requerimientos 4.

(15) Fundamentos teóricos de la codificación de fuente distribuida del ancho de banda del canal y de potencia de la señal. Una manera de conseguirlo es estableciendo un modelo de probabilidad de la fuente de la información, para que la longitud de cada símbolo de información dependa de su probabilidad de ocurrencia.. Figura 1.1. Componentes del sistema de comunicación digital en las WSN. Tomado de [4]. El siguiente paso es la codificación de canal, su objetivo es hacer robusta la señal transmitida ante el ruido y las interferencias y hacer posible la detección de errores y la recuperación de la información. Hay dos enfoques esenciales: transmitir símbolos de un libro de código predeterminado, y transmitir símbolos redundantes. Después de la codificación de canal, tiene lugar la modulación. Este es un proceso por el cual la señal banda-base es transformada en una señal pasa-banda. La modulación es útil por varias razones, pero principalmente para transmitir y recibir señales con antenas pequeñas. En general, mientras más corta es la longitud de onda de la señal transmitida, más corta es la longitud de la antena. Finalmente, la señal modulada tiene que ser amplificada y la energía eléctrica es convertida en energía electromagnética (radiación electromagnética) por la antena del transmisor, y la señal es propagada sobre un enlace inalámbrico al destino deseado. Los componentes del bloque receptor realizan el proceso inverso para recuperar la señal de mensaje de las ondas electromagnéticas. La antena del receptor produce un voltaje que es, idealmente, similar en la forma, la frecuencia, y la fase con la señal modulada. 5.

(16) Fundamentos teóricos de la codificación de fuente distribuida Debido a varias clases de pérdidas e interferencias, la magnitud y la forma de la señal son cambiadas y tienen que pasar a través de varios procesos de amplificación y de filtros. Entonces se obtiene una señal banda-base a través del proceso de demodulación y detección. Finalmente, la señal de banda-base pasa por un proceso de dos etapas de decodificación (canal y fuente) con el objetivo de extraer la secuencia de símbolos que representan la señal del mensaje original [2]. 1.2 Codificación de fuente distribuida Según la teoría de la codificación de Shannon dos fuentes pueden codificar sus datos de manera independiente, a una razón igual a la entropía de cada fuente y se podrán reconstruir los datos en el decodificador con una razón total igual a la suma de las entropías de cada fuente, como ilustra la figura 1.2. En la codificación distribuida las fuentes pueden ser codificadas a razones iguales que la entropía condicional de las fuentes, siempre que la decodificación se realice de manera conjunta. Esto requiere comunicación entre los nodos, lo cual implica una sobrecarga adicional en la red y el objetivo de la codificación en las redes de sensores es exactamente el contrario, reducir la cantidad de procesamiento de información y por consiguiente el consumo de energía.. X. Codificador. Rx = H(X). ^ ^ X, Y. Decodificador conjunto Y. Codificador. Rt = H(X) + H(Y). Ry = H(Y). Figura 1.2. Esquema de codificación de Shannon. Adaptado de [5]. Sin embargo Slepian y Wolf en [3] prueban que la codificación distribuida se puede lograr sin comunicación entre las fuentes siempre que estas estén correlacionas entre sí, de modo que la razón total de la codificación es igual a la entropía conjunta de las fuentes, como se muestra en la figura 1.3. Este teorema es la bese de la codificación de la fuente distribuida (DSC) que hace referencia a la compresión de salidas de múltiples sensores correlacionados, que no se comunican entre sí. Estos sensores envían sus salidas comprimidas a un punto central (estación base (BS)) para decodificarlas de forma conjunta [1]. 6.

(17) Fundamentos teóricos de la codificación de fuente distribuida X Codificador. Rx=H(X/Y). Decodificador conjunto. ˆ ˆ. (X, Y). Rt=H (X,Y) Y Codificador. Ry=H(Y/X). Figura 1.3. Codificación de Slepian-Wolf para dos fuentes correlacionadas. Adaptado de [5]. Este caso es típico en las redes de sensores donde la correlación es alta entre sensores cercanos. Cada nodo debe comprimir sus datos individualmente sobre la base de las observaciones de los otros nodos y no solo por sus datos captados, de aquí el término distribuido. En su teorema enunciado en 1973, Slepian y Wolf asumen secuencias con una distribución independiente e idéntica de dos variables discretas, correlacionadas y aleatorias X y Y. Estas variables serán codificadas de forma separada pero decodificadas de manera conjunta. Es sabido que para la decodificación independiente de secuencias codificadas, ya sean dos fuentes codificadas independientemente o no, la región de razón admisible está dada por la entropía de las dos fuentes H(X) y H(Y) que son determinadas por la distribución de X y Y respectivamente. Por lo tanto, si se desean decodificar datos sin pérdidas, de acuerdo a la teoría de decodificación clásica se puede codificar una fuente X con una razón R ≥ H(X) y se obtendrá una correcta reconstrucción de X en el decodificador [6]. La figura 1.4 ilustra la región de trabajo admisible enunciada por Slepian-Wolf donde H(X,Y) es la entropía conjunta de ambas fuentes la cual puede ser vista como el mínimo número de bits necesarios para codificar ambas secuencias conjuntamente y las variables X y Y pueden ser representadas como dos bloques correspondientes de N caracteres producidos por la correlación de dos fuentes de información [7]. La razón mínima teórica para codificar dos fuentes correlacionadas es mostrada en la figura 1.4 con la recta que está delimitada por los puntos A y B. Dichos puntos A y B corresponden a las siguientes razones:. 7.

(18) Fundamentos teóricos de la codificación de fuente distribuida. Figura 1.4. Región de razón para la codificación Slepian-Wolf. Adaptado de [5]. Una forma de explotar este concepto es el esquema mostrado en la figura 1.5, en el cual la secuencia de la fuente del sensor X entra al codificador, y este se encarga de comprimir X basado en la correlación existente entre las fuentes X y Y mientras que la fuente Y es enviada sin comprimir al decodificador como una información lateral. Entonces el proceso de decodificación tiene como objetivo estimar la secuencia X basado en los datos recibidos y la información lateral Y. x. X Codificador. Decodificador. Y. Figura 1.5. Proceso de decodificación conjunta para estimar X basado en Y. Adaptado de [8]. El diseño de la figura 1.5 corresponde al caso asimétrico planteado en el teorema de Slepian – Wolf donde una de las fuentes envía su información sin comprimir y la otra envía los datos comprimidos. Este caso asimétrico se ejemplifica en los puntos A y B de 8.

(19) Fundamentos teóricos de la codificación de fuente distribuida la figura 1.4, mientras que el punto C hace referencia a un caso simétrico donde las dos fuentes deben ser capaces de enviar solo la información parcial sin comprometer la calidad de la señal reconstruida en el decodificador. 1.3. Esquema Slepian-Wolf Para ejemplificar el teorema de Slepian-Wolf, se toma como referencia el punto B de la figura 1.4 (caso asimétrico), donde X puede ser codificado con verdadera se realizará en Y para distribuir. . La codificación. palabras de código entre la secuencia. típica Y distinguible si X está adicionalmente disponible en el decodificador. El codificador va a descomponer la secuencia Y en el par con. bits descartando. y va a codificar solo. . Luego el decodificador debe determinar. , con una. pequeña probabilidad de error, utilizando la correlación entre X y Y2. La correlación entre dos fuentes puede ser modelada como un canal de correlación virtual donde X es la entrada y Y es la salida del canal (como se muestra en la figura 1.6). El canal es descrito como la probabilidad de error. , la cual se define como la. probabilidad de que Y sea diferente de X. De esta manera una probabilidad. está dada. por una alta correlación, lo que hace posible la codificación con una razón baja. La correlación es por lo general modelada, en la literatura, como un canal virtual simétrico binario (BSC) o un canal con ruido gaussiano blanco (AWGN).. X. ^. Y. X. Canal Virtual. Decodificador. Z. Figura 1.6. Canal de correlación virtual entre X y Y. Adaptado de [9]. Debido a esto en la literatura se sugiere usar los principios de codificación de canal para implementar la codificación de la fuente. Esto fue sugerido por primera vez por Wyner en [10, 11]. La idea general es que de la misma forma que la codificación del canal expande la razón para proteger la señal de los ruidos del canal, se puede usar de forma opuesta para reducir la razón de forma controlada. La técnica se basa en un proceso 9.

(20) Fundamentos teóricos de la codificación de fuente distribuida llamado binning donde todas las posibles salidas de una señal de entrada son colocadas en cosets separados, o bins. Esta teoría fue luego llamada “codificación de fuente distribuida usando síndromes" (DISCUS) en [8, 12]. El proceso de codificación utilizando síndromes es mostrado en la figura 1.7.. Figura 1.7. Proceso de codificación y decodificación usando cosets. Tomado de [13]. Es fácil relacionar esta forma de codificación con un código de bloque binario lineal , el cual tendría. síndromes distintos, cada uno indicando un bin de. palabras binarias de longitud. . Cada bin es un código coset del código de bloque. binario lineal, preservando las propiedades de distancia Hamming del código lineal original en cada bin. De esta manera, una secuencia de. bits de entrada es mapeado. dentro de sus correspondientes bits síndrome, logrando una razón de compresión de . Esta aproximación es conocida como “esquema Slepian-Wolf” (aunque a menudo también se conoce como “esquema Wyner’s”) [5]. La codificación de fuente distribuida usando síndromes puede implementarse de varias formas dependiendo de la técnica de codificación del canal escogida. Las técnicas más comúnmente usadas en la codificación de fuente distribuida son los códigos de bloque lineales, los códigos convolucionales y los códigos concatenados. Sin embargo las investigaciones para la implementación de la codificación distribuida en las redes de sensores se han enfocado en la codificación LDPC y la codificación Turbo [14-20]. 1.4 Esquema Wyner-Ziv A pesar de que el teorema de Slepian-Wolf [3] resultó un increíble aporte en la teoría de la codificación de fuente, tiene como limitante que solo puede aplicarse en fuentes discretas. Wyner y Ziv en 1976 en [11] ampliaron esta teoría para fuentes de valores continuos (este es el caso típico de las redes de sensores), e introdujeron la distorsión 10.

(21) Fundamentos teóricos de la codificación de fuente distribuida para lograr entropía finitas. La idea principal es la introducción de un paso de cuantificación antes de la codificación de Slepian-Wolf, como se ilustra en el esquema representado en la figura 1.8. El paso de la cuantificación forma parte de la teoría de la razón-distorsión y puede realizarse de varias formas dependiendo de la distorsión y la memoria de la entrada. De esta manera se enuncia la codificación de fuente distribuida como un problema de codificación de fuente (codificación Wyner-Ziv) y codificación de canal (codificación Slepian-Wolf). La cuantificación es el proceso de mapear una secuencia vectorial o escalar de valores discretos o continuos, producidos por una fuente, a un set de símbolos digitales que pueden ser trasmitidos o almacenados usando un número finito. En el caso de fuentes continuas (con valores en. o. ) la cuantificación debe necesariamente usarse si la. salida de la fuente es transmitida sobre un canal digital. En este caso en general, es imposible reproducir exactamente la salida de la fuente original, por lo que se habla entonces de la codificación/compresión con pérdida [21, 22]. X. I. Fuente Codificadora. Codificador Slepian-Wolf. Síndrome. Decodificación conjunta de fuente-canal. ~ X. ^ Estimación. X. Y. Figura 1.8. Diagrama de bloques de un codificador Wyner-Ziv genérico. Adaptado de [5]. Básicamente existen dos tipos de cuantificación: la escalar y la vectorial. La cuantificación escalar codifica puntos de los datos de forma individual, mientras que la cuantificación vectorial agrupa los datos de entrada en vectores, cada uno codificados como un todo [23]. En [8, 12, 24] Pradhan y Ramchandran proponen un esquema Wyner-Ziv aplicable a redes de sensores mediante el uso de la cuantificación escalar (como códigos de fuente) y códigos trellis (como códigos de canal). Este esquema fue la base de estudios de diseños. más. complejos. buscando. mejores. rendimientos.. Sin. embargo,. las. investigaciones posteriores proponen esquemas basados en cuantificación vectorial Lattice, principalmente la cuantificación de códigos Trellis (TCQ).. 11.

(22) Fundamentos teóricos de la codificación de fuente distribuida Zamir en [24] fue el primero en obtener algún mecanismo constructivo para la estructura Wyner-Ziv usando un par de códigos Lattice anidados. Posteriormente Servetto en [25] propuso explotar construcciones de Lattice anidados basado en sublattices similares para el caso de la DSC con fuentes de alta correlación. Las investigaciones más recientes se enfocan en códigos anidados basados en trellis como una forma de realizar códigos Lattice anidados de alta dimensión. Siendo hasta ahora la cuantificación de código Trellis (TCQ) la técnica más práctica de implementar los códigos Lattice anidados en DSC [16, 26, 27]. 1.5 Diseño del esquema Slepian-Wolf usando Códigos de Bloque Lineales Los códigos de bloque son técnicas de codificación del canal utilizados para transformar un mensaje entrado de longitud “ ” en otro de longitud “ ” (donde pudiéndose formar. ),. palabras de código.. El principio que se utiliza en los códigos de bloque en la codificación de canal, 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. A la hora de obtener el bloque original en el receptor, los bits de redundancia pueden ser utilizados para corregir los errores que el canal haya podido introducir. La característica más destacada de los códigos bloque es que cada bloque de. bits o. palabra de código generada en el codificador depende solamente del correspondiente bloque de. bits generado por la fuente de información, siendo por lo tanto una. codificación sin memoria. Los códigos de bloque pueden ser lineales o no lineales. Un código lineal se define mediante una asignación lineal del espacio de mensajes de entrada al espacio de palabras de código, y puede representarse como un producto de matrices. Los códigos lineales se denominan también códigos de chequeo de paridad, pues la palabra código se obtiene a partir de sumas módulo dos de subconjuntos de los bits de entrada. Un código de este tipo queda completamente caracterizado por una matriz generadora G [28]. Dado que un código de bloque lineal vectorial. , es posible encontrar. es un sub-espacio vectorial del espacio. vectores linealmente independientes que son a su. 12.

(23) Fundamentos teóricos de la codificación de fuente distribuida vez palabras del código. . Estos vectores linealmente independientes se. pueden organizar en la forma de una matriz, llamada matriz generadora:. Si el vector de mensaje se expresa como. , entonces la palabra. o vector de código se obtiene como:. De esta forma se establece un mecanismo matricial para la generación de las palabras del código. La matriz generadora tiene la forma:. Donde. es la matriz identidad de dimensión. dimensión. y. .. La matriz generadora. contiene. vectores que son las filas linealmente. independientes, que generan el sub-espacio vectorial vectorial. es la matriz paridad de. . También. el cual pertenece al espacio. tiene a su vez asociado un sub-espacio vectorial dual. es generado por las filas de una matriz de chequeo de paridad. Cada vector del espacio fila de la matriz. , que. , definida como:. es ortogonal a las filas de la matriz. y. viceversa. De manera que, la matriz H está construida de forma que el producto interno entre un vector fila. de. y un vector fila. . Esto tiene como consecuencia que:. 13. de. sean ortogonales, es decir.

(24) Fundamentos teóricos de la codificación de fuente distribuida En la codificación de fuente distribuida los códigos de bloque lineales se emplean usando un proceso inverso, en donde a una secuencia de longitud n se le aplica un proceso de “codificación” en el cual se eliminan los m bits redundantes [29]. 1.5.1 Caso Asimétrico Asumiendo el punto A de la figura 1.4 (caso asimétrico), donde X y Y son fuentes binarias equiprobables con una longitud dada por la ecuación (1.1) donde el tamaño del código una vez comprimido y. es. son los bits redundantes. Por tanto si. bits está disponible en el decodificador, para poder estimar X sin pérdidas se debe codificar en una secuencia menor o igual que. . (1.1). Según el concepto de binning, el libro de código usado en el diseño es particionado en cosets que contienen las diferentes combinaciones posibles de la secuencia a codificar. Usando el concepto de código de bloque lineal, se considera C como un bloque binario lineal (n,k) con una matriz generadora G de tamaño [k, n] y una matriz de chequeo de paridad H de tamaño [m, n] donde GHT = 0. La codificación se logra, determinando el síndrome del código, multiplicando X por la matriz de chequeo de paridad. De esta manera para cada n bits de X se hace corresponder un síndrome dado por la ecuación (1.2) usado como código de una razón de compresión de. bits, logrando el límite de Slepian-Wolf con . El valor del síndrome identifica el coset al que. pertenece la secuencia codificada. (1.2) Al decodificador llega el síndrome de longitud longitud. y la información lateral Y de. como se ilustra en la figura 1.5, con una razón de trasmisión mostrada en la. ecuación (1.3). El decodificador estima X, localizando en el coset (al que pertenece el síndrome. ) el valor más probable de X a partir del valor de Y, explotando de este. modo la correlación entre ambas fuentes. bits/muestras. 14. (1.3).

(25) Fundamentos teóricos de la codificación de fuente distribuida El caso asimétrico en la DSC no es muy flexible en cuanto a la asignación de la razón si se quiere variar la razón de fuentes diferentes, producto de que se hace necesario utilizar compartición del tiempo en el cual los sensores tienen que sincronizarse para comunicarse entre sí y precisamente esto es lo que se trata de evitar en las WSN [2]. En la práctica el caso asimétrico es usado para simplificar la implementación y las razones utilizadas. 1.5.2 Caso Simétrico El diseño del esquema Slepian-Wolf con códigos de bloque lineales para el caso simétrico es una variación del esquema para el caso asimétrico (explicado en el epígrafe 1.5.1). En el caso de que se tengan dos fuentes. estas deben comprimir sus datos. de modo que el decodificador sea capaz de estimar las secuencias originales a partir de los valores codificados. Si ambas fuentes (X y Y) tienen que ser codificadas por separado como se muestra en la figura 1.3 se puede entonces asumir un punto intermedio entre los puntos A y B (punto C) en la figura 1.4 para el cual se cumpla la ecuación (1.4) de modo que se comprima cada fuente con una razón comprendida entre y. y. , para la fuente X, y entre. para la fuente Y, de forma que la suma entre ambas razones siga siendo. igual a la entropía conjunta de las fuentes. (1.4) Siguiendo la estrategia presentada en el epígrafe 1.5.1, el código de bloque lineal para este esquema se diseña buscando dos matrices generadoras 𝐺𝑋 y 𝐺𝑌 que contengan 𝑛(1 – 𝐻(𝑋/𝑌)) y 𝑛(1 – 𝐻(𝑌/𝑋)) filas, respectivamente.. de tamaño [𝑛(1 – 𝐻(𝑌)) 𝑥 𝑛] con filas. Considerando una matriz generadora linealmente intendentes, donde. es la longitud del bloque usado en la codificación.. Esta matriz generadora puede ser usada para particionar el espacio de la secuencia Y de longitud. . De manera que. y el codificador de Y envíe los síndromes. asociados con 𝐺𝑌 . Luego el decodificador va a poder recuperar la secuencia Y basado en esta información y el conocimiento de las estadísticas de Y. Para codificar X se requiere encontrar una matriz generadora 𝐺𝑋 Considerando una matriz generadora 𝐺𝑎 de tamaño [𝑛 (𝐻(𝑌) – 𝐻(𝑋)) × 𝑛] Una matriz formada de la 15.

(26) Fundamentos teóricos de la codificación de fuente distribuida combinación de longitud. y 𝐺𝑎 puede ser usada para particionar el espacio de la secuencia de. con. cosets.. Para reducir la razón inducida por esta matriz combinada, de construye una matriz. con. Ahora 𝐺𝑋 está formada por. , 𝐺𝑎 y. a. se. filas linealmente independientes. .. Figura 1.9. Construcción de matrices generadoras para el caso simétrico. Tomado de [2]. El codificador de. envía al decodificador el síndrome obtenido de GX . Luego el. decodificador reconstruye respecto a la secuencia. a partir del síndrome y la probabilidad de ocurrencia. , también decodificada.. Para cambiar la razón de codificación entre. y. , un número de filas de. ser movidas de 𝐺𝑋 a 𝐺𝑌 y viceversa. Finalmente cuando 𝐺𝑋 consta solo de codificadores estarán transmitiendo a una razón de. y. pueden y 𝐺𝑎 , los. (punto B de la figura. 1.4, caso asimétrico). Este proceso puede ser visto como la división de la matriz generadora G en dos matrices (𝐺𝑋 , 𝐺𝑌 ) como ilustra la figura 1.9 [2]. El proceso de codificación y decodificación en este caso es muy similar al del esquema asimétrico (del epígrafe 1.5.1). A partir de las matrices generadoras determinadas se formula una matriz de chequeo de paridad con la cual el codificador determina el síndrome del código para ambas fuentes (𝑠𝑥 = 𝑥𝐻𝑥 𝑇 y 𝑠𝑦 = 𝑦𝐻𝑦 𝑇 ). Ambos síndromes. 16.

(27) Fundamentos teóricos de la codificación de fuente distribuida son transmitidos al decodificador, el cual determina las secuencias. y. alternativas más probables de correlación dentro de los cosets. .. y. buscando las. La necesidad de codificar los datos de las fuentes que se encuentran correlacionadas antes de transmitirlas produce una mejora en el ancho de banda necesario para la transmisión pero a la vez supone un aumento de la probabilidad de error de bits. 1.6 Aplicaciones de la DSC en las WSN En la actualidad existen tres patrones de configuración que se emplean en las redes de sensores, dichos patrones son los siguientes:  Detección de eventos: cuando los nodos sensores detectan la ocurrencia de un evento deben informar al sink1. Si ocurren algunos eventos diferentes al mismo tiempo, entonces se hace necesario la clasificación del evento. En este patrón los nodos pueden estar invernando la mayor parte del tiempo y despertar ocasionalmente.  Seguimiento de objetivos: en el caso de que la fuente del evento sea movible, el nodo sensor que detecta la ocurrencia de la fuente reporta y actualiza la posición de la fuente al sink. En este patrón de aplicación el comportamiento del nodo sensor no varía aunque no se detecte ninguna fuente de evento. En este caso cada fuente de evento detectada se comporta de manera diferente y el número de sensores activos alrededor de la fuente detectada y del muestreo de frecuencia, puede ser incrementado para seguir la trayectoria de la fuente móvil con una resolución satisfactoria.  Mediciones periódicas: las WSN pueden diseñarse para repetir valores de mediciones periódicas. Estas mediciones pueden ocurrir periódicamente o pueden ser provocadas por algún evento específico [13]. Dentro de la gran diversidad de escenarios que se utilizan en las WSN existe una similitud que se manifiesta en el sistema de adquisición de datos, el cual está basado en una topología de ´´muchos a uno´´ (many to one). Este sistema recolecta los datos de muchos nodos sensores (fuentes) a un nodo Gateway el cual tiene usualmente mayor capacidad de procesamiento para después procesar los datos o distribuirlos a una red externa.. 1. Se define como sink el nodo sensor encargado de recopilar la información de los otros nodos próximos a él.. 17.

(28) Fundamentos teóricos de la codificación de fuente distribuida En un ambiente lentamente cambiable los datos tienen una alta redundancia temporal que puede ser removida usando técnicas de compresión convencional. En una red de sensores los datos recolectados por sensores próximos están también especialmente correlacionados y la eliminación de esta redundancia espacial es importante para la eficiencia de la energía. Una forma convencional para efectuar esto es tener comunicación entre los nodos vecinos para permitir que algunos de los nodos envíen su información diferencialmente con respecto al nodo de referencia apropiado para mover esta redundancia espacial. Sin embargo la comunicación entre nodos es en sí misma ineficiente en el uso de la energía. Por esto se definen los cluster2de nodos correlacionados, donde cada cluster tiene un solo nodo padre y muchos nodos hijos y los nodos hijos envían la información reducida para el observador como muestra la figura 1.10. Los datos de un nodo padre constituyen la información lateral para reconstruir los datos de los nodos hijos. La relación que existe entre la lectura del sensor X y la información lateral S está modelada por la ecuación (1.5) donde N es la diferencia o ruido entre X y S. La única información requerida en un nodo es el libro de código que se debe usar para comprimir sus datos. (1.5) En una red de múltiples saltos el beneficio de la compresión distribuida es evidenciado en el ahorro de energía. Por otra parte aplicar la DSC globalmente en una red entera es muy complejo debido a que cada nodo necesitará conocer la estructura de la correlación global para codificar sus propios datos y más energía para transmitirlos. Además la DSC no es tolerante a relevos y fallos del nodo porque los datos de un nodo podrían afectar la decodificación de los datos de otro nodo. Por tal razón es inadecuado aplicar globalmente la DSC en una red grande. En redes basadas en cluster, sin embargo, cada cluster cubre una pequeña zona de sensores dentro de un rango local pequeño de la red. Esto hace factible aplicar la DSC localmente dentro de cada cluster porque en este caso un nodo solo necesita de la estructura de correlación local para realizar la codificación mientras que no comprometerá obviamente el rendimiento de la compresión porque la correlación decrece con la distancia [30]. 2. Un cluster es un conjunto de nodos con un sink que envía la información captada hacia la estación base. Los clústeres se usan en redes de gran tamaño donde se hace difícil la correlación entre todos los nodos de la red y por tanto, lo más conveniente es en ese caso fragmentar la red en varios clústeres para facilitar la comunicación.. 18.

(29) Fundamentos teóricos de la codificación de fuente distribuida. Figura 1.10. Formación de cluster. Tomado de [30]. Es conocido que la DSC es solo una de las capas de comunicación de una red de sensores y que su interacción con las capas inferiores de la comunicación tales como las capas de transporte, red, acceso al medio (MAC por sus siglas en inglés) y el nivel físico es crucial para explotar las ganancias prometidas de la DSC. Asuntos relacionados con la interacción de las capas (por ejemplo, administración de colas [31], asignación de recursos [11], control de admisión de llamadas [32], y control de acceso al medio [33] son temas actualmente en estudio. Por otra parte hay que tener en cuenta que la DSC no puede ser usada sin una adecuada sincronización entre los nodos de una red de sensores, esto quiere decir que varias suposiciones son hechas por los algoritmos de enrutamiento y cronometraje y sus respectivas concepciones en el diseño para utilizar el esquema DSC. En una red de sensores inalámbricos donde se aplica DSC si no existe una correcta sincronización de los datos se corre el riesgo de que se produzca una decodificación errónea, ya que el decodificador necesita recibir la información de las fuentes que están correlacionadas entre sí de manera simultánea para poder reconstruir los datos de manera correcta [5]. Ahora bien, comparado con un diseño separado, ganancias adicionales pueden ser obtenidas diseñando la codificación distribuida de la fuente con protocolos subyacentes, códigos de canal y esquemas de modulación.. 19.

(30) Fundamentos teóricos de la codificación de fuente distribuida En la mayoría de los trabajos relacionados con la DSC se considera principalmente la codificación de fuente sin pérdidas (teorema de Slepian - Wolf) y con pérdidas (teorema de Wyner - Ziv) con información lateral solo en el decodificador. Para cualquier red, y principalmente para las redes de sensores, esto significa que los nodos transmitiendo la información correlacionada requieren la cooperación en grupos de dos o más nodos para que un nodo provea la información lateral y el otro pueda comprimir su información de acuerdo al límite de Slepian – Wolf y de Wyner – Ziv. Dicha cooperación en grupos de dos o tres nodos sensores significa que algoritmos de decodificación menos complejos deben ser empleados para ahorrar energía en el proceso de decodificación debido a que cada nodo debe decodificar la información para luego transmitirla a un nodo de procesamiento de datos de energía limitada. Esto no se convierte en un tema grave para algunos algoritmos de decodificación de canal de baja complejidad por lo que este problema puede ser minimizado [22]. Una forma de cambiar esta suposición de cooperación en grupos pequeños y lo relacionado con la decodificación de baja complejidad es el empleo de esquemas DSC para múltiples fuentes. Varias aproximaciones de la codificación de Slepian – Wolf para múltiples fuentes (DSC sin pérdidas) han sido evaluadas hasta el momento. Sin embargo, límites de rendimientos teóricos en configuraciones más generales de DSC con pérdidas para múltiples fuentes aún permanecen difíciles de encontrar producto de que la codificación Wyner – Ziv asume información lateral perfecta en el decodificador. Por tanto, existen escasos diseños de código en la literatura para el caso DSC con pérdidas con dos fuentes donde la información lateral es también codificada. El principal tema para el despliegue práctico de la DSC es el modelo de correlación. A pesar de que ha existido un significativo esfuerzo en diseños de DSC para diferentes modelos de correlación, en algunos casos se hace complejo llevar a la práctica algunas de estas aplicaciones específicas [11, 22, 25, 34] y continuar utilizando una probabilidad conjunta masiva o una función de densidad en las redes de sensores especialmente si existen pocas áreas para probar o poca información acerca de la topología de la red. En algunas aplicaciones, como por ejemplo redes de video – vigilancia, las estadísticas de la correlación pueden ser en la mayoría de los casos una función de la localización de los nodos sensores. En el caso de que las redes de sensores tengan un nodo de entrenamiento opcional, entonces van a poder seguir diferentes topologías de red. Tanto la DSC adaptativa como la universal son capaces de lograr ganancias para correlaciones 20.

(31) Fundamentos teóricos de la codificación de fuente distribuida que varían en el tiempo y pueden ser usadas según la correlación. Sin embargo, la DSC universal es capaz de trabajar bien para una cierta variedad de correlaciones por lo que aparentemente es la aproximación más apropiada para las redes de sensores, pero esto es aún un problema abierto y muy desafiante [5]. La medida del ruido es otro tema importante en la red de sensores inalámbricos que puede estar dirigida por la DSC. Siguiendo la codificación de Wyner – Ziv, la existencia de la medida de ruido no toma en cuenta las causas de algunas incongruencias entre la correlación actual y las estadísticas de la correlación sin ruido usadas para la decodificación, lo cual significa que se obtendrá el peor rendimiento. Una forma de resolver este asunto es el diseño de códigos robustos. Pero si las estadísticas de ruido son conocidas aunque sea de forma aproximada, esto puede ser incorporado en el modelo de correlación y de esta manera considerado en el diseño del código. Esto constituye actualmente un problema específico de la DSC conjuntamente con el problema chief executive officer (CEO) el cual es considerado como un escenario. En el problema CEO se emplea un número de agentes determinados para observar un evento y cada agente provee al CEO con su propia versión ruidosa del evento. El objetivo del CEO es recuperar tanta información como le sea posible sobre un evento actual a partir de las observaciones ruidosas recibidas de los agentes, lo cual minimizará la razón total de información de los agentes (suma de razón). El problema CEO por tanto, puede contarse por la medida de ruido en los nodos sensores. Construcciones de códigos prácticos para el problema CEO aparecen en [21, 34] basados en el código Wyner – Ziv pero son limitados para casos especiales. 1.7 Conclusiones parciales En el capítulo 1 de este informe de investigación se han abordado los temas necesarios para establecer el marco teórico en el cual se desarrolla la presente investigación. Con este fin, se han descrito las características fundamentales de las WSN y de la DSC incluyendo la necesidad de implementar la DSC en las WSN. Además, se ha realizado en este capítulo una síntesis de los principales esquemas de codificación propuestos por Slepian – Wolf y Wyner – Ziv. Para finalizar el capítulo se ha llevado a cabo una descripción de las principales implementaciones de la DSC en las WSN destacándose la utilización de los clústeres (que facilitan la aplicación de la DSC localmente), y la necesidad de una adecuada sincronización entre los nodos de una red de sensores. 21.

(32) Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales.. Capítulo II. Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales En este Capítulo se explican las funciones y algoritmos de un esquema de codificación de fuente distribuida usando códigos de bloque lineal para el caso simétrico y asimétrico, desarrollados durante la realización de este trabajo. Se incluye un breve preámbulo teórico al inicio de cada epígrafe que se considera necesario para un mejor entendimiento del funcionamiento del sistema. En cada epígrafe se incluyen las funciones en MATLAB que componen el sistema con el fin de ilustrar mejor los métodos y algoritmos utilizados. Todo el sistema ha sido programado utilizando MATLAB versión 7.10.0.499 (R2010a), por tanto algunas funciones empleadas presentan problemas de compatibilidad con versiones anteriores de este software. Para la implementación de los sistemas de codificación/decodificación con la herramienta Simulink se utilizaron bloques que requieren el empleo del lenguaje de programación C++ por lo que se recomienda el empleo de algún compilador de este lenguaje de programación para su buen funcionamiento. En este Capítulo se explica la implementación de un esquema de codificación de fuente distribuida usando códigos de bloque lineales para los casos simétricos y asimétricos. Finalmente las funciones desarrolladas para este esquema son empleadas en un sistema de comunicación simulado con la herramienta Simulink, para evaluar cuál es el comportamiento de estas técnicas de codificación en un escenario real. Teniendo en cuanta los objetivos de este proyecto, solo se implementa el esquema de Slepian-Wolf, asumiendo que previamente se ha realizado un proceso de cuantificación en el cual se han convertido las fuentes continuas en discretas. 2.1 Modelación de correlación utilizando BSC Como explica el epígrafe 1.3 la correlación entre las fuentes puede modelarse como un canal virtual. En un sistema de dos fuentes (X y Y) la fuente Y puede verse como una versión ruidosa de la fuente X (y viceversa), de manera que la diferencia de valores de X con respecto a Y está dada por los errores inducidos por el canal. Diferentes tipos de canales pueden usarse para modelar la correlación, en el presente trabajo se ha utilizado un Canal Simétrico Binario (BSC), como el que refleja la figura 2.1, donde la probabilidad de los errores introducidos por el canal va a estar dada por el grado de correlación que tengan las fuentes, como refleja la ecuación 2.1. 22.

(33) Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales.. Figura 2.1. Modelado de correlación usando BSC. Tomado de [35].. (2.1) La figura 2.2 muestra las líneas de código utilizadas para generar dos fuentes (X y Y) con un grado de correlación 𝜌 y n bits. Donde 𝜌 es el coeficiente de correlación entre las fuentes X y Y y. es la cantidad de bits de la palabra de código.. [x,y] = source_gen( ,n) p = (1 - )/2; x = randi(2,1,n)-1; y = bsc(x,p);. Figura 2.2. Generación de fuentes aleatorias en Matlab. 2.2 Esquema de DSC usando códigos de bloque lineales para el caso asimétrico En este epígrafe se va a realizar la implementación de un esquema de DSC utilizando códigos de bloque lineales para un caso asimétrico y se explicarán e ilustrarán los algoritmos utilizados en el proceso de codificación/decodificación. 2.2.1 Codificador Como se explica en el epígrafe 1.3 del capítulo anterior la DSC usando códigos de bloque se basa en el principio de síndromes. Para esto una fuente de n bits es codificada en un síndrome de m bits usando la ecuación 1.2, donde H es la matriz de chequeo de paridad del código con un tamaño [m,n] y cumpliéndose la condición de que la cantidad de bits de la palabra codificada debe ser menor que el número de bits contenido en la palabra de código original (m < n).. 23.

(34) Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales. La figura 2.3 muestra el algoritmo en Matlab de un codificador para el esquema propuesto. s = enc(x,H) s = mod(x*H',2);. Figura 2.3. Codificación de la fuente X. 2.2.2 Decodificador para el caso asimétrico Como se ha explicado el caso asimétrico para dos fuentes (X y Y) ocurre cuando una de las fuentes se transmite codificada y la otra es utilizada por el decodificador como información lateral para descifrar la fuente codificada. Para el proceso de decodificación se va a utilizar una tabla como la mostrada en la figura 2.5 (que cumple la función del libro de código), con tantas columnas como posibles síndromes (. ) y tantas filas como posibles valores de la fuente puedan haber. en un síndrome (. ). La figura 2.4 muestra el algoritmo para obtener esta tabla en. Matlab. function table= table_code(H) [m,n] = size(H); table=zeros((2^n/2^m),n*(2^m));%se crea una matriz de tamaño %filas: 2^n/2^m es la cantidad de posibles valores de x % por sindromes %columnas: 2^m es la cantidad de posibles sindromes %multiplicado por la cantidad de bits de x buffer=zeros((2^n/2^m),2^m); % Buffer para llenar la tabla d = (0:2^n-1)'; b = de2bi(d); for i = 1:2^n x = b(i,:); s = mod(x*H',2); sx= (bi2de(s)); for a=1:(2^n/2^m) if buffer(a,sx+1)==0 table(a,(n*sx)+1:(n*sx)+n)=x; buffer (a,sx+1)=1; break else continue end end end. Figura 2.4. Algoritmo para obtener la tabla que utiliza en el proceso de decodificación. La tabla obtenida es utilizada por el decodificador para almacenar todos los posibles valores de la fuente en cada uno de los síndromes. Cuando el síndrome de la fuente X 24.

(35) Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales. llega al decodificador este busca en la columna correspondiente cual es el valor más correlacionado con la información de Y que recibe como información lateral y este debe ser el resultado correcto de la decodificación.. ,. Y. Figura 2.5. Tabla utilizada para el proceso de decodificación en un caso asimétrico. La metodología de decodificación anteriormente explicada puede ser implementada en Matlab utilizando el algoritmo presentado en la figura 2.6. function x1 = decode_asimetrico1(s,H,y,table) %Libro de código [m,n] = size(H); % Decodificador sx= ((bi2de(s))*n)+1; A=zeros(1,2); for i=1:(2^n/2^m) a=table(i,sx:sx+n-1); if sum(a==y)> A(1,1) A(1,1)=sum(a==y); A(1,2)=i; end end x1=table(A(1,2),sx:sx+n-1);. Figura 2.6. Algoritmo de decodificación para una estrategia asimétrica. 2.3 Esquema de DSC usando códigos de bloque lineales para el caso simétrico En este epígrafe se va a realizar la implementación de un esquema de DSC utilizando códigos de bloque lineales para un caso simétrico y de igual manera que en el epígrafe 2.2 se explicarán e ilustrarán los algoritmos utilizados en el proceso de codificación/decodificación. 2.3.1 Codificador El caso simétrico es una extensión del asimétrico explicado en el epígrafe anterior. En esta estrategia simétrica las dos fuentes (X y Y ) son codificadas de manera que la razón total durante el proceso de decodificación siga siendo igual a la entropía conjunta de. 25.

(36) Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales. ambas fuentes (R = H(X,Y)). Por tanto se necesitan dos matrices de chequeo de paridad que respondan a las razones de codificación que se requieren para cada fuente. Por las propiedades de los códigos de bloque lineales es conocido que la matriz generadora (G) y la matriz de chequeo de paridad del código tienen la forma: G = [IkPk x (n-k)] 𝐻 = [𝑃𝐼𝑛−𝑘 ]. Donde P es la matriz de paridad e I la matriz de identidad del código empleado. A partir de la matriz generadora se obtienen dos nuevas matrices de chequeo de paridad H1 y H2 con la siguiente forma: 𝐻1 = [. 0𝑚2,𝑚1 𝑃1. 𝐻2 = [. 𝐼𝑚1 0𝑚1,𝑛−𝑘1. 𝐼𝑚2. 0𝑛−𝑘1,𝑚2. 0𝑚2,𝑛−𝑘1 ] 𝐼𝑛−𝑘−1. 0𝑚1,𝑚2 𝑃2. 0𝑚1,𝑛−𝑘1 ] 𝐼𝑛−𝑘−1. En las matrices de chequeo de paridad H1 y H2 se cumple que m1 son las m1 primeras filas de P y m2 son las m2 últimas filas de P. La forma de obtener los valores numéricos de m1, m2 y k1es mostrada en la ecuación (2.2) y el algoritmo para la obtención en Matlab de las matrices H1 y H2 se ilustra en la figura 2.7. 𝑚1 = 𝑛 − 𝑅𝑥 𝑚2 = 𝑛 − 𝑅𝑦. (2.2). 𝑘1 = 𝑚1 + 𝑚2 [H1,H2]= gen_matrix_simétrica(G,Rx, Ry) [m,n] = size(G); k=n-m; I=G(1:m,1:m); P=G(1:m,m+1:n)'; m1=n-Rx; m2=n-Ry; P1=P(1:k,1:m1); P2=P(1:k,m1+1:m); k1=m1+m2; H1=[zeros(m2,m1),I(1:m2,1:m2),zeros(m2,n-k1);P1,zeros(n-k1,m2),I(1:nk-1, 1:n-k-1)]; H2=[I(1:m1,1:m1), zeros(m1,m2), zeros(m1,n-k1);zeros(n-k1,m1), P2 I(1:n-k-1, 1:n-k-1)];. Figura 2.7. Obtención de las matrices de chequeo de paridad H1 y H2. El proceso de codificación para ambas fuentes es el explicado en el epígrafe 2.2.1 e ilustrado en la figura 2.3 usando las matrices obtenidas para cada fuente. En esta 26.

(37) Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales. estrategia simétrica para codificar la fuente X se utiliza la matriz de chequeo de paridad H1 y para la codificación de la fuente Y se usa la matriz de chequeo de paridad H2. 2.3.2 Decodificador De forma similar que en el caso asimétrico el decodificador para el caso simétrico se basa en el uso de dos tablas, una para cada fuente, que se obtienen de las matrices de chequeo de paridad H1 y H2 generadas en el epígrafe anterior , utilizando el algoritmo presentado en la figura 2.7. Al igual que para una estrategia asimétrica las tablas obtenidas para el proceso de decodificación van a tener. columnas que. representan todos los síndromes multiplicados por la cantidad de bits de la palabra de código; y. filas que representan los posibles valores de X para cada síndrome. dividido la cantidad de síndromes. Una vez ubicado en cada tabla el síndrome obtenido como resultado del proceso de codificación, el decodificador compara cada valor de la columna del síndrome sx en la tabla 1 con los valores de la columna del síndrome s y en la tabla 2, dando como resultado los valores más correlacionados entre ambas tablas como ilustra la figura 2.8. El algoritmo de decodificación implementado en Matlab es ilustrado en la figura 2.9.. Sx. .. Sy. Figura 2.8. Tablas utilizadas en la decodificación para una estrategia simétrica.. 27.

(38) Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales.. function [x,y] = decode_simetrico(s1, s2,H1,H2,table1,table2) [m1,n1] = size(H1); [m2,n2] = size(H2); %Decodificación sx1= ((bi2de(s1))*n1)+1; sx2= ((bi2de(s2))*n1)+1; A=zeros(1,3); for i=1:(2^n1/2^m1) a=table1(i,sx1:sx1+n1-1); for j=1:(2^n2/2^m2) b=table2(j,sx2:sx2+n2-1); if sum(a==b)> A(1,1) A(1,1)=sum(a==b); A(1,2)=i; A(1,3)=j; end end end t=A(1,2); r=A(1,3); x=table1(t,sx1:sx1+n1-1); y=table2(r,sx2:sx2+n2-1);. Figura 2.9. Algoritmo de decodificación para un caso simétrico. 2.4 Implementación de un sistema de transmisión En este epígrafe se desarrolla la implementación de las funciones para la DSC antes explicadas en un sistema de transmisión similar al mostrado en el epígrafe 1.1 usando la herramienta simulink de Matlab. El sistema de transmisión diseñado está compuesto tanto para el caso simétrico como para el asimétrico, por una fuente analógica que genera valores aleatorios, un canal binario simétrico que introduce una pequeña variación a la fuente analógica según la correlación que se desee (para este caso se ha utilizado una correlación de un 98%) obteniéndose como resultado otra fuente con valores muy similares a la original, como los datos serán valores escalares se necesita también de conversores que conviertan la señal de analógica a binaria y viceversa, un codificador y por último un decodificador. Para el diseño del sistema se ha utilizado un código Cíclico (7,4) por lo que las razones de transmisión van a estar dadas por la región ilustrada en la figura 2.10.. 28.

(39) Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales.. Figura 2.10. Región de razón admisible para la codificación según Slepian-Wolf. Adaptado de [5]. 2.4.1 Sistema de transmisión asimétrico La figura 2.11 muestra un sistema de transmisión en el cual se ha implementado un caso asimétrico utilizando un código cíclico (7,4) similar al explicado en el epígrafe 2.2. En este sistema de transmisión existe una fuente original de siete bits sobre la cual se va a obtener una codificación de sus datos obteniéndose como resultado un síndrome de tres bits. Para obtener la segunda fuente basta con hacer pasar la fuente original por un canal binario simétrico el cual va a introducir un ruido determinado lográndose así una segunda fuente con la correlación deseada. Esta segunda fuente va a llegar hasta el decodificador como información lateral con un total de siete bits, por lo que la razón total del sistema va a ser de 10 bits.. Figura 2.11. Sistema de transmisión asimétrico utilizando código cíclico (7,4). Elaboración propia con el software Matlab R2010a. 29.

(40) Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales. 2.4.2 Sistema de transmisión simétrico El caso simétrico para el código cíclico empleado se puede diseñar de dos maneras, la primera variante de diseño es mostrado en la figura 2.12 donde una de las fuentes (en este caso la fuente X) va a ser codificada a una razón igual a 6 bits mientras que la segunda fuente (en este caso la fuente Y) se va a codificar a 4 bits (punto D de la figura 2.10). La otra variante para este caso ilustrada en la figura 2.13 es cuando ambas fuentes son codificadas a una misma razón igual a 5 bits. Para ambos casos la razón total seguirá siendo igual a 10 bits.. Figura 2.12. Sistema de transmisión simétrico utilizando código cíclico (7,4) para Rx = 6 bit y Ry = 4 bit. Elaboración propia con el software Matlab R2010a.. Figura 2.13. Sistema de transmisión simétrico utilizando código cíclico (7,4) para Rx = 5 bit y Ry = 5 bit. Elaboración propia con el software Matlab R2010a. 2.5 Conclusiones parciales En el presente capítulo se ha fundamentado la selección de Matlab como herramienta de simulación para la DSC en las WSN incluyendo una descripción general del software y su funcionamiento. Se ha descrito también la implementación de varios escenarios y esquemas de codificación de fuente y la implementación de dos sistemas de transmisión que corresponden a los esquemas de codificación diseñados. 30.

(41) Implementación de algoritmos y funciones de la DSC utilizando códigos de bloque lineales. Con la implementación de códigos de bloque lineales en las simulaciones descritas en este capítulo se evidencia como los códigos de bloque lineales implementados, disminuyen la complejidad computacional de la simulación en Matlab.. 31.

Figure

Figura 1.1. Componentes del sistema de comunicación digital en las WSN. Tomado de  [4]
Figura 1.2. Esquema de codificación de Shannon. Adaptado de [5].
Figura 1.3. Codificación de Slepian-Wolf para dos fuentes correlacionadas. Adaptado  de  [5]
Figura 1.4. Región de razón para la codificación Slepian-Wolf. Adaptado de [5].
+7

Referencias

Documento similar

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Y tendiendo ellos la vista vieron cuanto en el mundo había y dieron las gracias al Criador diciendo: Repetidas gracias os damos porque nos habéis criado hombres, nos

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

por unidad de tiempo (throughput) en estado estacionario de las transiciones.. de una red de Petri

6 Para la pervivencia de la tradición clásica y la mitología en la poesía machadiana, véase: Lasso de la Vega, José, “El mito clásico en la literatura española

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la