P1 y P2 Modulador Bloque con modulación ASK/FSK Se debe diseñar un modulador/demodulador bloque (ver apartado teórico del modulador bloque) para transmitir posteriormente los símbolos codificados por el modulador usando una técnica de modulación ASK o FSK. El modulador deberá codificar un mensaje de 24 bits en bloques de 5 bits (3,2), y transmitirlo a una tasa de 10 bits/sec Esta transmisión se realizará de manera cíclica. Las frecuencias de portadora del modulador ASK es 10Khz y las del FSK son de 10Khz y 14 Khz. El demodulador deberá recibir la transmisión, detectar el bit recibido, acumularlo en un array de 5 bits, y cuando dicho array se complete, decodificar los 3 bits a partir del símbolo recibido. El símbolo decodificado (3 bits) deberá ser presentado en 3 leds de la tarjeta, hasta recibir el siguiente símbolo. El cuarto led deberá indicar si está sincronizado (on) o no (off). Si no se recibe correctamente el símbolo, se asumirá que el receptor no está sincronizado (no se intentará recuperar el símbolo erroneo a partir del síndrome). Para sincronizarlo se desechará el siguiente bit recibido y se reinicia el proceso de recepción de 5 bits. Este proceso se repetirá hasta que se sincronize el sistema. Las características eléctricas de la señal recibida por los demoduladores son señales entre 0.5 y 1 V pico, con las frecuencias de portadora especificadas anteriormente. El receptor debe funcionar con moduladores de otros grupos, o con señales moduladas sintetizadas desde MATLAB y convertidas a señales analógicas usando la tapa de LineOut del sistema de audio de los ordenadores. El marco teórico de la codificación/decodificación en bloque está en el anexo a este documento. P3: Codificador / Decodificador de tonos DTMF con Generación de Tonos. Los tonos de marcación telefónica DTMF (siglas en ingles), son usados en los teléfonos para la marcación por tonos. El objetivo de este proyecto es implementar un codificador y decodificador de tonos DTMF que codifique los números almacenados en un array en señales DTMF, una señal compuesta por dos tonos, lo transmita a un segundo DSP y en el segundo DSP decodifique la señal recibida, genere un tono específico a la salida, según la tabla adjunta y presente en los LEDs el número recibido. Como se presenta en la Figura 1, cada número en el teclado es identificado unívocamente por las frecuencias asignadas a su fila y columna. Figure 1. Touch-Tone Telephone Keypad. A row and a column tone is associated with each digit. La especificación de los tonos generados son las siguientes: 10 dígitos/seg máximo. Para una ventana de tiempo de 100 mseg, la duración del tono doble generados será de no menos de 45 mseg y no mayor a 55 mseg. El generador de tonos debe estar en silencio por el tiempo restante de los 100 mseg. Se propone que el generador de tonos DTMF sea una aproximación basada en un buffer , en el cual el resultado de la ejecución consistirá en frames de datos formando un flujo de datos. Cada frame (i.e., 15 mseg) contendrá muestras del tono DTMF, o una pausa de silencio. El flujo de control del programa debe ser controlado por un conjunto de variables que controle el estatus del codificador DTMF (apagado, activo), la duración del tono y del silencio. En el decodificador se debe diseñar un sistema que detecte el número codificado DTMF recibido en ese instante de tiempo. El número detectado indicará una nota músical a ser generada line-­‐out del sistema con la siguiente correspondencia: Frecuencias de Notas Musicales en sus primeros armónicos. Nota Frecuencias Número Musical (Hz) Do 261 0 Do# 277 1 Re 294 2 Re# 311 3 Mi 330 4 Fa 349 5 Fa# 370 6 Sol 392 7 Sol# 415 La 440 8 La# 466 Si 494 9 Si# 523 Adicionalmente, se deberá indicar, usando los leds de la tarjeta y en código binario, el número decodificado. Para detectar el 0 se deberá indicar el número 10 en los leds (101), y para tono no detectado se deberá indicar 0 (000). Las características eléctricas de la señal generada por el codificador son señales entre 0.5 y 1 V pico, con los tonos correspondientes a los dígitos a transmitir. El receptor debe funcionar con codificadores de otros grupos, o con señales codificadas sintetizadas desde MATLAB y convertidas a señales analógicas usando la tapa de LineOut del sistema de audio de los ordenadores. Fundamento Teórico P1 y P2 Supóngase una matriz generadora según: G = [ Ik | P] Siendo Ik la matriz identidad (k*k) y P la paridad con matriz Generadora G de códigos bloque lineales. En este caso el valor de k es 3. Donde se genera un código C que no es otra cosa que la multiplicación del mensaje b por la matriz generadora G así: C = b*G El valor C será enviado a la etapa de demodulación y deberá mostrar una matriz H de chequeo de paridad y sirve para detectar cuando el mensaje esta bien o no dadas sus condiciones de ortogonalidad. La construcción de la matriz H se hace de la siguiente manera: H= [ pT | In-­‐k ] Donde n es la longitud dem mensaje codificado, en este caso 5. El mensaje se decodifica creando unos síndromes que nos permitirán saber cuando el mensaje tiene o no caracteres erróneos, es mejor conocida como síndromes (S). Estos síndromes cumplen que: C*HT = 0 Y cuando el valor sea diferente de cero, la matriz S nos dice donde se encuentra el error. A continuación se mostrara el comportamiento del algoritmo de modo tal que permita entender de mejor forma el funcionamiento del algoritmo. Ejemplo: Sea la matriz generadora G = 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 Donde las 3 primeras filas y columnas conforman una matriz identidad y las siguientes dos filas la paridad entonces: mb = “Mensaje a enviar” 0 1 1 código = “Mensaje código” modulado 0 1 1 0 1 H = 0 1 1 1 0 1 0 1 0 1 Donde al final se puede observar la matriz identidad de n-­‐k =5-­‐3=2 s = 0 0 Mensaje correcto, con lo cual acudo a extraer directamente el mensaje de C (columnas 1, 2, 3). Si se detecta un error entonces en el síndrome se tendrá la correspondiente verificación y posición donde se encuentre el error: Si en lugar de enviarse 0 1 1, se envía un 0 1 0, el mensaje detectara un síndrome diferente de cero, este será: S= 1 1 El cual me indica en que posición esta el error en este caso la 3.