17
TRANSMISIÓN DE MENSAJES ESCRITOS A TRAVÉS DE LA TARJETA DE SONIDO UTILIZANDO INTERFAZ EN MATLAB Presentado por: JESSICA MARCELA CARDONA REINOSO JHOAN ESTIVINSON LAGAREJO RIVAS MANUEL ALEJANDRO MUÑOZ DAIRÓN FERNANDO OSORIO FRANCO CAMILO PIZA TRUJILLO Área: COMUNICACIONES DIGITALES Director: Ing. Oscar Gabriel Espejo Mojica PROYECTO DE AULA

Proyecto de Aula - Digitales

Embed Size (px)

DESCRIPTION

ccccccccccssssdddcccccc

Citation preview

Page 1: Proyecto de Aula - Digitales

TRANSMISIÓN DE MENSAJES ESCRITOS A TRAVÉS DE LA TARJETA DE SONIDO UTILIZANDO INTERFAZ EN MATLAB

Presentado por:

JESSICA MARCELA CARDONA REINOSO

JHOAN ESTIVINSON LAGAREJO RIVAS

MANUEL ALEJANDRO MUÑOZ

DAIRÓN FERNANDO OSORIO FRANCO

CAMILO PIZA TRUJILLO

Área:

COMUNICACIONES DIGITALES

Director:

Ing. Oscar Gabriel Espejo Mojica

PROYECTO DE AULA

UNIVERIDAD DE CUNDINAMARCAFACULTAD DE INGENIERÍA

PROGRAMA DE INGENIERÍA ELECTRÓNICAFUSAGASUGÁ

2008

Page 2: Proyecto de Aula - Digitales

JUSTIFICACIÓN

La naturaleza de las fuentes de información es muy variada, se puede tener señales de audio o video análogas como también discretas y la necesidad que se presenta de compartir esta información por distintos motivos obliga a utilizar sistemas de comunicaciones, pero en cualquier caso un sistema de comunicación digital debe transmitir la señal que se genere en la fuente de una forma digital. La importancia de los sistemas de comunicaciones digitales radica en transmitir la información generada por una fuente hacia un destinatario, de una forma más confiable que los sistemas análogos gracias a los bloques funcionales que los constituyen, los cuales cumplen específicas tareas que garantizan dicha confiabilidad.

Page 3: Proyecto de Aula - Digitales

OBJETIVOS

Principal.

Transmitir mensajes escritos a través de la tarjeta de sonido del ordenador, utilizando la herramienta de software Matlab.

Específicos.

Aplicar los conocimientos adquiridos durante el curso de comunicaciones digitales para dar solución al proyecto.

Utilizar cifrado de datos con el fin de salvaguardar la información al momento de transmitirla.

Lograr que la interfaz grafica del software sea lo más amigable posible, para obtener una buena aceptación por parte del usuario.

MARCO TEÓRICO

Page 4: Proyecto de Aula - Digitales

Codificación.

La codificación consiste en establecer una correspondencia entre cada uno de los símbolos de un alfabeto fuente y una secuencia de símbolos de un alfabeto destino. Al alfabeto destino se le denomina alfabeto código y a cada una de las secuencias de símbolos de este alfabeto que se corresponda con un símbolo del alfabeto fuente se denomina palabra de código.

Figura 1. Alfabeto fuente y alfabeto código.

El alfabeto fuente contiene los símbolos originales que se quieren codificar. El alfabeto código contiene las palabras de código equivalentes en que se codificarán los símbolos originales. Estas palabras de código son aptas para ser transmitidas por un sistema de comunicaciones.

Tendremos 3 tipos de codificación: codificación en la fuente, codificación de compresión y codificación del canal.

Clasificación de los códigos.

- Código bloque: es aquel código en el que todas las palabras de código correspondientes a cada símbolo del alfabeto fuente tienen la misma longitud. Dentro de estos códigos podemos distinguir:

Código singular: a cada símbolo del alfabeto fuente le corresponde una única palabra de código.

Código no singular: a cada símbolo del alfabeto fuente le corresponde dos o más palabras de código.

- Código compacto o de longitud variable: se busca que a cada símbolo del alfabeto fuente le corresponda una palabra de código de longitud mínima según algún criterio de minimización dado.

Propiedades de los códigos

Page 5: Proyecto de Aula - Digitales

- Longitud media: Cada palabra de código asignada a cada símbolo del alfabeto fuente tiene una longitud lk. A partir de aquí se define la longitud media de un código como:

La longitud media representa el número medio de bits por símbolo del alfabeto fuente que se utilizan en el proceso de codificación.

- Eficiencia: A partir del concepto de longitud media la eficiencia de un código se define como:

      Siendo:

Para calcular Lmin es necesario tener en cuenta el primer teorema de Shanon o teorema de la codificación de la fuente: Dada una fuente discreta de entropía H, la longitud media de la palabra de código está acotada inferiormente por H. Teniendo esto en cuenta Lmin se fija como el valor de la entropía con lo que la eficiencia puede escribirse como:

- Redundancia: Se denomina redundancia de un código a la información superflua o innecesaria para interpretar el significado de los datos originales. Se define como:

Codificación en la fuente.

El objetivo de la codificación es obtener una representación eficiente de los símbolos del alfabeto fuente. Para que la codificación sea eficiente es necesario tener un conocimiento de las probabilidades de cada uno de los símbolos del alfabeto fuente. El dispositivo que realiza esta tarea es el codificador de la fuente. Este codificador debe cumplir el requisito de que cada palabra de código debe decodificarse de forma única, de forma que la secuencia original sea reconstruida perfectamente a partir de la secuencia codificada.

Algunos Códigos de codificación de fuente:

Código BCD: (Binary Coded Decimal). Esta técnica de codificación permite que un conjunto de caracteres alfanuméricos pueda ser representado mediante 6 bits.

Page 6: Proyecto de Aula - Digitales

Código EBCDIC: Este código surge como una ampliación del código BCD. En las transmisiones de datos es necesario utilizar un gran número de caracteres de control para la manipulación de los mensajes y realización de otras funciones. De ahí que el código BCD se extendiera a una representación utilizando 8 bits dando origen al código EBCDIC (Extended Binary Coded Decimal Interchange Code).

Código FIELDATA: Es un código utilizado en transmisiones de datos de algunos sistemas militares y está orientado al lenguaje máquina.

Código ASCII: (American Standar Code for Information Interchange). Su uso primordial es facilitar el intercambio de información entre sistemas de procesamiento de datos y equipos asociados y dentro de sistemas de comunicación de datos. En un principio cada carácter se codificaba mediante 7 dígitos binarios y fue creado para el juego de caracteres ingleses más corrientes, por lo que no contemplaba ni caracteres especiales ni caracteres específicos de otras lenguas. Esto hizo que posteriormente se extendiera a 8 dígitos binarios.

Técnicas de compresión estadísticas.

La compresión estadística no es una técnica de compresión propiamente dicha. Se trata de una técnica en la que se realiza la codificación en la fuente y la compresión simultáneamente. De ahí que esta técnica sea también conocida con el nombre de codificación estadística.

Su objetivo consiste en realizar una codificación en la fuente para obtener códigos tales que la longitud media de los datos codificados sea menor que la obtenida con códigos de longitud fija. Por este motivo, para la construcción de estos códigos es necesario tener un conocimiento previo de la frecuencia de ocurrencia de cada uno de los caracteres del código original. Se usarán codificaciones más cortas para representar los caracteres con mayor frecuencia de aparición.

La construcción de este tipo de códigos se basa en la propiedad del prefijo, según la cual, ninguna secuencia de bits que represente a un carácter del código podrá aparecer como subsecuencia inicial de otra secuencia de longitud mayor que represente a otro carácter del código. Con esta propiedad se asegura que estos códigos sólo admiten una única posibilidad para ser desconfiados.

Algunos códigos estadísticos son:

Código de Huffman Código de Shannon-Fano Códigos Coma Codificación aritmética Compresión adaptativa

Códigos Huffman n-arios.

Page 7: Proyecto de Aula - Digitales

Este código es un código óptimo dentro de los códigos de codificación estadística, ya que es el código de menor longitud media. La construcción de este código se fundamenta en asignar a cada símbolo del alfabeto fuente una secuencia de bits cuya longitud esté relacionada de forma directa con la probabilidad de aparición de ese símbolo. De esta forma, a los símbolos con mayor frecuencia de aparición se les asignarán las palabras de código de menor longitud.

En el proceso de construcción de este código, lo primero que se hace es ordenar el conjunto de símbolos del alfabeto fuente en orden decreciente de probabilidades de aparición. A continuación se juntan los dos símbolos con menor probabilidad de aparición en un único símbolo cuya probabilidad será la suma de las probabilidades de los símbolos que dieron origen a este nuevo símbolo.

Se repite este proceso hasta que sólo tengamos dos símbolos. A continuación se realiza el proceso de codificación. Primeramente asignamos un 1 a uno de los dos símbolos que tenemos y un 0 al otro. Posteriormente recorreremos la estructura que hemos construido hacia atrás de forma que cuando dos símbolos hayan dado origen a un nuevo símbolo, estos dos símbolos "heredarán" la codificación asignada a este nuevo símbolo y a continuación se le añadirá un 1 a la codificación de uno de los símbolos y un 0 a la del otro símbolo.

Es posible crear códigos de Huffman ternarios, cuaternarios, y, en general, n-arios. Para ello sólo es necesario realizar dos modificaciones al algoritmo:

1. Los árboles a crear tendrán tantos hijos como símbolos posibles puedan aparecer en los códigos Huffman. Por ejemplo, si es ternario se crearán árboles con tres hijos; si es cuaternario, con cuatro.

2. Si se expresa como s el número de símbolos en el alfabeto a codificar, y n el número de símbolos que aparecen en el código Huffman, entonces s-1 debe ser múltiplo de n-1. Es decir, para un código ternario, s debe valer 3, 5, 7, etc. Si esta condición no se cumple, entonces se deben añadir símbolos "nulos" con frecuencia 0, que servirán sólo como relleno a la hora de construir el árbol.

Alfabeto español.

Para designar la serie ordenada de las letras con que se representan los sonidos de una lengua, pueden usarse indistintamente en español los términos abecedario y alfabeto (del lat. abecedarium y alphabetum, respectivamente). El primer término está formado a partir del nombre de las cuatro primeras letras de la serie latina (a, be, ce, de), y el segundo, a partir del nombre de las dos primeras de la serie griega (alfa, beta). Aunque son ambos válidos, el nombre alfabeto es el de uso más general y el que ha dado lugar a derivados: alfabético, alfabetización, analfabeto, etc.

La ortografía del español utiliza una variante modificada del alfabeto latino, que consta de 29 símbolos A, B, C, Ch, D, E, F, G, H, I, J, K, L, Ll, M, N, Ñ, O, P, Q, R, S, T, U, V, W, X, Y y Z. La variante española del alfabeto latino universal ha sido utilizada por la

Page 8: Proyecto de Aula - Digitales

academia desde 1803 (cuarta edición del Diccionario académico) en la confección de todas sus listas alfabéticas. Desde esa fecha, la Ch y la Ll, que en realidad son dígrafos, es decir, signos gráficos compuestos de dos letras, pasaron a considerarse convencionalmente letras del abecedario por el hecho de representar, cada uno de ellos, un sólo sonido. No obstante, en el X Congreso de la Asociación de Academias de la Lengua Española, celebrado en 1994, se acordó adoptar a petición de varios organismos internacionales, el orden alfabético latino universal, en el que la Ch y la Ll no se consideran letras independientes. En consecuencia, las palabras que comienzan por estas dos letras o que las contienen, pasan a alfabetizarse en los lugares que les corresponden dentro de la C y dentro de la L, respectivamente. Esta reforma afecta únicamente al proceso de ordenación alfabética de las palabras, no a la composición del abecedario, del que los dígrafos Ch y Ll siguen formando parte. Las vocales (A, E, I, O y U) aceptan, además, el acento agudo para indicar la sílaba acentuada y la diéresis en la U.

a  a  N  eneb  be  Ñ  eñe c  ce  o  o

 ch  che  p  pe d  de  q  cu e  e r ere ó erre f  efe  s  ese g  ge  t  te h  hache  u  u i  i  v  uve j  jota  w  uve doble k  ka  x  equis l  ele  y  i griega ll  elle  z  zeta m  eme

Tabla 1. Alfabeto español identifica 29 "letras", incluyendo dos que son digráficas.

Frecuencia del uso de las letras:

Cualquier texto en el idioma español se construye con las 27 letras del alfabeto. Algunas letras, como la K o la W se utilizan muy poco, mientras que la A o la E se utilizan mucho. Naturalmente, la frecuencia de uso de cada letra dependerá del texto elegido, pero se tiene la convicción que cuando el texto es muy largo, las frecuencias relativas convergerán a unos valores bien determinados que llamamos probabilidades.Cada uno de estos valores indica la probabilidad de que, una determinada letra resulte elegida cuando en un texto se selecciona una al azar.

La frecuencia de uso de las letras en el castellano, sin incluir los dígrafos Ch y Ll, es la siguiente.

Page 9: Proyecto de Aula - Digitales

Figura 2. Frecuencia de uso de las letras en el castellano.

e: 16,78%a:

11,96%o: 8,69% l: 8,37% s: 7,88% n: 7,01% d: 6,87% r: 4,94% u: 4,80%

i: 4,15% t: 3,31% c: 2,92% p: 2,77% m: 2,12% y: 1,54% q: 1,53% b: 0,92% h: 0,89%

g: 0,73% f: 0,52% v: 0,39% j: 0,30% ñ: 0,29% z: 0,15% x: 0,06% k: 0,01% w: 0,01%Tabla 2. Frecuencia de uso de las letras en el castellano en porcentaje.

Criptografía.

La criptología se compone de dos ciencias contrapuestas, la criptografía y el criptoanálisis. La primera es la encargada de cifrar los mensajes y convertirlos en criptogramas. A la hora de cifrar un mensaje podemos hacerlo mediante un algoritmo de encriptación secreto o de un algoritmo público más una clave secreta. La opción más utilizada es esta última, fundamentalmente porque es más sencillo y seguro transmitir una clave que un algoritmo, al tiempo que en los sistemas abiertos (Internet por ejemplo) los algoritmos no deben ser secretos. Así, la seguridad del criptograma depende fundamentalmente de las claves empleadas.

Frente a los métodos sencillos de encriptación, como son los de sustitución o transposición, se encuentran los cifrados mediante clave, que a su vez se pueden dividir en simétricos, o de clave secreta, y asimétricos, o de clave pública.

La criptografía de clave secreta es la más antigua, y utiliza una misma clave para encriptar y desencriptar, garantizando la confidencialidad pero no la autenticación. Los cifrados simétricos se pueden dividir en dos tipos, los cifrados de flujo y los cifrados en bloque. Los últimos son lo más utilizados, y los más conocidos son:

DES (Data Encryption Standard). El más utilizado desde hace 20 años. Usa una clave de 56 bits. Existe el Triple DES con claves de 128 bits.

IDEA (Internacional Data Encryption Algorithm) de 1990. RC5, empleado por el navegador de Internet Nestcape.

Page 10: Proyecto de Aula - Digitales

En los encriptadores de clave pública o simétrica se utilizan claves distintas para encriptar y desencriptar, mediante una clave pública conocida por todos y una clave privada sólo conocida por cada usuario. Su principal virtud radica en la imposibilidad computacional de obtener la clave privada a partir de la clave pública. Están basados en funciones matemáticas tales como la potencia y el logaritmo. La clave privada y la pública están relacionadas matemáticamente y se generan conjuntamente. En los sistemas de criptografía de clave asimétrica, se define una clave de cifrado (clave pública) K que determina la función TK y una clave de descifrado (clave secreta o privada) que permite el cálculo de la inversa (TK)-1. El conjunto de enteros mod p, siendo p un número primo y sus operaciones aritméticas forman lo que se conoce como Campo de Galois y es de particular interés porque permite la creación de algoritmos de cifrado y descifrado sencillos y eficientes.

Dependiendo de la técnica a utilizar podemos así garantizar:

Confidencialidad: El emisor encripta con la clave pública del receptor y éste lo desencripta con su clave privada.

Autenticación: Se encripta el mensaje, o un resumen del mismo, mediante la clave privada del emisor, por lo que mediante su clave pública es posible comprobar que es el verdadero emisor.

Firma digital: Como el anterior, pero encriptamos el resumen del mensaje, con lo que se garantiza además el contenido del mismo.

Los algoritmos más utilizados para este tipo de sistemas son RSA (Rivest, Shamir y Adleman), El Gamal y DSS (Digital Signature Standard), éste último para la firma digital. Mientras el sistema de El Gamal se basa en el problema del logaritmo discreto, el sistema RSA lo hace en el hecho de que no existe una forma eficiente de factorizar números que sean productos de dos grandes primos; han sido adoptados como estándares de seguridad por organismos internacionales y son de gran difusión. El algoritmo RSA (Rivest, Shamir y Adleman) es usado por el software gratuito PGP (Pretty Good Privacy).

Criptografía de clave simétrica

Se emplea una sola clave para cifrar y descifrar el mensaje. Su ventaja más significativa es su velocidad, lo cual la hace apropiada para el

cifrado de grandes cantidades de datos. Su inconveniente es la seguridad, ya que la clave debe ser distribuida.

Criptografía de clave asimétrica

Se caracterizan por utilizar una pareja de claves creadas mediante métodos matemáticos complejos.

Clave privada, que será custodiada por su propietario. Clave pública, que será conocida por todos los usuarios. Son complementarias entre sí; lo que cifra una sólo puede descifrarlo la otra y

viceversa.DESARROLLO DEL PROYECTO

Page 11: Proyecto de Aula - Digitales

Figura 3. Esquema físico.

Diagrama de bloques.

Figura 4. Diagrama de bloques modulo de transmisión.

Figura 5. Diagrama de bloques modulo de recepción.

Codificación en la fuente.

La obtención de la probabilidad de ocurrencia de cada letra se realizó por medio del conteo de caracteres con ayuda de Word office, dentro de un texto de 184.712 caracteres.

El código de fuente se obtuvo por código Huffman.

CARÁCTER PROBABILIDAD CÓDIGOESPACIO 0.17821 0 0 0

Page 12: Proyecto de Aula - Digitales

E 0.11203 1 0 0A 0.086843 1 1 1O 0.076032 0 0 1 1S 0.064668 0 1 1 0N 0.053884 1 0 1 0R 0.052942 1 0 1 1I 0.045547 1 1 0 1L 0.040463 0 0 1 0 1U 0.03657 0 1 0 0 0 D 0.035417 0 1 0 0 1T 0.035163 0 1 0 1 0C 0.031189 0 1 1 1 0M 0.027123 0 1 1 1 1P 0.022695 1 1 0 0 1Q 0.013199 1 1 0 0 0 1B 0.01099 0 0 1 0 0 0 1, 0.010411 0 0 1 0 0 1 0 V 0.0083427 0 1 0 1 1 0 0G 0.0081857 0 1 0 1 1 0 1H 0.0078067 0 1 0 1 1 1 1Y 0.0076714 1 1 0 0 0 0 0. 0.005717 0 0 1 0 0 0 0 1F 0.0046288 0 0 1 0 0 1 1 0Í 0.0040929 0 1 0 1 1 1 0 0Á 0.0038763 0 1 0 1 1 1 0 1J 0.0031346 1 1 0 0 0 0 1 0Ó 0.0029451 1 1 0 0 0 0 1 1É 0.0028856 0 0 1 0 0 0 0 0 0Z 0.0024741 0 0 1 0 0 1 1 1 0: 0.0014726 0 0 1 0 0 0 0 0 1 0Ú 0.0012073 0 0 1 0 0 1 1 1 1 0ñ 0.0007417 0 0 1 0 0 0 0 0 1 1 0x 0.00064425 0 0 1 0 0 0 0 0 1 1 1; 0.00044935 0 0 1 0 0 1 1 1 1 1 0k 0.00022738 0 0 1 0 0 1 1 1 1 1 1 0ü 0.000064966 0 0 1 0 0 1 1 1 1 1 1 1 0w 0.0000487245 0 0 1 0 0 1 1 1 1 1 1 1 1

Tabla 3. Probabilidad de cada letra y código a Huffman.

Cifrado.

Ver archivo anexo. (Cifrado.xls)

Programa.

Page 13: Proyecto de Aula - Digitales

Código fuente.

Interfaz grafica.

Ver carpeta anexa. (Programa)

BIBLIOGRAFÍA

FOROUZAN, Behrouz A. Transmisión de datos y redes de comunicaciones. 2da Edición. Ed. MacGraw-Hill. 2001.

Page 14: Proyecto de Aula - Digitales

BATES, Bud. y DONALD, Gregory. Voice and data comunications handbook. Ed. MacGraw-Hill. 1996.

McCLIMANS, Fred J. Comunications Wiring and Interconections. Ed. MacGraw-Hill. 1992.