FECHA 28 de Noviembre NÚMERO RA PROGRAMA...

93
1 FECHA 28 de Noviembre NÚMERO RA PROGRAMA Ingeniería de Sonido AUTOR (ES) GARCÍA MARTÍNEZ, Mauricio Alberto y RODRÍGUEZ GUEVARA, Juan Pablo. TÍTULO Diseño e implementación de un vocoder hardware digital. PALABRAS CLAVES Vocoder de canal, DSP, software, hardware, señal, síntesis, sistema, algoritmo, canal de análisis, banco de filtros, ventaneo, FFT, STFFT, IFFT, magnitud, frecuencia, fase, convolución, resintesis. DESCRIPCIÓN El desarrollo de herramientas tipo hardware y software para el procesamiento de señal, representa una de las áreas más importante en el ámbito de ingeniería de sonido y la música, con múltiples propósitos tanto de análisis, detección, control, optimización y modificación de señales musicales. Dichas funciones son efectuadas a través del uso de sistemas especializados en el procesamiento de señal de audio sobre medios digitales. Estos dispositivos son las herramientas funcionales en el trabajo y ejercicio de las facultades laborales de un ingeniero de sonido. FUENTES BIBLIOGRÁFICAS 1. Oppenheim, Alan V; Willsky, Alan S; Nawab, Hamid. 1998. Señales y Sistemas. México: Pearson Prentice Hall. 2. Floyd, Thomas L. 2000. Fundamentos de Sistemas Digitales. España: Pearson Prentice Hall. 3. Owens, F. J. 1993. Signal Processing of Speech. New York: McGraw Hill. 4. Saito, Chuzo. 1985. Fundamentals of

Transcript of FECHA 28 de Noviembre NÚMERO RA PROGRAMA...

  • 1

    FECHA 28 de Noviembre NÚMERO RA PROGRAMA Ingeniería de Sonido AUTOR (ES) GARCÍA MARTÍNEZ, Mauricio Alberto y RODRÍGUEZ

    GUEVARA, Juan Pablo. TÍTULO Diseño e implementación de un vocoder hardware

    digital. PALABRAS CLAVES Vocoder de canal, DSP, software, hardware, señal,

    síntesis, sistema, algoritmo, canal de análisis, banco de filtros, ventaneo, FFT, STFFT, IFFT, magnitud, frecuencia, fase, convolución, resintesis.

    DESCRIPCIÓN El desarrollo de herramientas tipo hardware y software

    para el procesamiento de señal, representa una de las áreas más importante en el ámbito de ingeniería de sonido y la música, con múltiples propósitos tanto de análisis, detección, control, optimización y modificación de señales musicales. Dichas funciones son efectuadas a través del uso de sistemas especializados en el procesamiento de señal de audio sobre medios digitales. Estos dispositivos son las herramientas funcionales en el trabajo y ejercicio de las facultades laborales de un ingeniero de sonido.

    FUENTES BIBLIOGRÁFICAS

    1. Oppenheim, Alan V; Willsky, Alan S; Nawab, Hamid. 1998. Señales y Sistemas. México: Pearson Prentice Hall.

    2. Floyd, Thomas L. 2000. Fundamentos de Sistemas Digitales. España: Pearson Prentice Hall.

    3. Owens, F. J. 1993. Signal Processing of Speech. New York: McGraw Hill.

    4. Saito, Chuzo. 1985. Fundamentals of

  • 2

    Speech Signal Processing. Tokyo: Academic.

    5. Zolser, Udo. 1997. DAFX Digital Audio Effects. England: Jhon Wiley & Sons, LTD.

    6. Proakis, Jhon G. 1988. Tratamiento Digital de Señales: Principios, Algoritmos y Aplicaciones. Madrid: Pearson Prentice Hall.

    7. Ashok, Albardar. 2002. Procesamiento de Señales Analógicas y Digitales. México: Thomson Editores.

    8. Gold, Bernard; Rader, Charles M. 1967. The Channel Vocoder. IEEE Transactions on Audio and Electroacoustics, Vol. AU-15, No. 4 December.

    9. Laroche, Jean; Dolson, Mark. 1999. Improved Phase Vocoder Time-Scale Modification of Audio. IEEE Transactions on Speech and Audio Processing, Vol 7, No. 3 May

    10. Bially, Theodore; Anderson, Walter M. 1970. A Digital Channel Vocoder. IEEE Transactions on Communication Technology, Vol. Com-18, No. 4, August.

    11. Griffin, Daniel W. 1988. Multiband Excitation Vocoder. IEEE Transactions on Speech and Audio Processing, Vol. 36, No. 8, August.

  • 3

    DISEÑO E IMPLEMENTACIÓN DE UN VOCODER HARDWARE DIGI TAL

    MAURICIO ALBERTO GARCÍA

    JUAN PABLO RODRÍGUEZ GUEVARA

    UNIVERSIDAD DE SAN BUENAVENTURA

    FACULTAD DE INGENIERÍA

    INGENIERÍA DE SONIDO

    BOGOTÁ 2008

  • 4

    DISEÑO E IMPLEMENTACIÓN DE UN VOCODER HARDWARE DIGI TAL

    MAURICIO ALBERTO GARCÍA

    JUAN PABLO RODRÍGUEZ GUEVARA

    Tesis para optar al título de ingeniero de sonido

    ASESORES:

    MIGUEL PÉREZ

    Ingeniero Electrónico

    RAUL RINCÓN

    Ingeniero de Sonido

    UNIVERSIDAD DE SAN BUENAVENTURA

    FACULTAD DE INGENIERÍA

    INGENIERÍA DE SONIDO

    BOGOTÁ 2008

  • 5

    TABLA DE CONTENIDO

    Pag. 1. PLANTEAMIENTO DEL PROBLEMA 11 1.1 Antecedentes 11 1.2 Descripción y formulación el problema 12 1.3 Justificación 13 1.4 Objetivos de la investigación 14 1.4.1 Objetivo general 14 1.4.2 Objetivos específicos 14 1.5 Alcances y limitaciones del proyecto 15 1.5.1 Alcances 15 1.5.2 Limitaciones 15 2. MARCO DE REFERENCIA 16 2.1 Marco conceptual 16 2.1.1 Representación de sistemas computacionales para

    audio 16

    2.1.2 Lenguajes primitivos para el procesamiento de sonido 16 2.1.3 Introducción a Simulink 17 2.1.4 Simulación 18 2.1.5 Modelado 19 2.1.6 Números complejos 20 2.1.7 Funciones y variables 22 2.1.8 Funciones polinomiales 23 2.1.9 Funciones trigonométricas 24 2.1.10 Transformadas 26 2.1.11 Filtros 28 2.1.12 Interfaz grafica de usuario en Matlab 32 2.1.13 Procesamiento digital de señal (DSP) 38 2.1.14 Vocoder 42 2.1.15 Teoría del vocoder 42 2.1.16 Vocoders basados en predicción lineal 44 2.1.17 Aplicaciones musicales 44 2.2 Marco legal o normativo 46 2.2.1 Legislación internacional: organización mundial de la

    propiedad intelectual (OMPI) 46

    2.2.2 Legislación Nacional: Dirección nacional de derechos de autor

    46

    2.2.3 Licencias de software 47 3. METODOLOGÍA 49 3.1 Enfoque de la investigación 49 3.2 Línea de investigación USB / sub-línea de facultad /

    campo temático del programa 49

    3.3 Técnicas de recolección de información 50

  • 6

    3.4 Hipótesis 50 3.5 Variables 51 3.5.1 Variables independientes 51 3.5.2 Variables dependientes 51 4. DESARROLLO INGENIERIL 52 4.1 Vocoder de canal 52 4.1.1 Filtros 54 4.1.2 Extracción y modificación de parámetros 61 4.1.3 Calculo de la magnitud, frecuencia y fase de la señal 63 4.1.4 Reconstrucción de la señal 64 4.2 Implementación del algoritmo al hardware digital 67 4.3 Implementación de la interfaz gráfica 72 5. PRESENTACIÓN Y ANÁLISIS DE RESULTADOS 77 5.1 Vocoder de canal 77 5.1.1 Vocoder hardware digital 79 5.1.2 Vocoder software 86 6. CONCLUSIONES 89 7. RECOMENDACIONES 91 BIBLIOGRAFÍA 92

  • 7

    LISTA DE FIGURAS

    Pag. Figura 1 Representación de funciones computacionales para audio 16 Figura 2 UG Score 17 Figura 3 Entorno grafico Simulink 18 Figura 4 Bloques de la librería Simulink 20 Figura 5 Módulos de conexión 20 Figura 6 Interpretación geométrica de un número complejo 22 Figura 7 Descripción grafica de funciones trigonométricas 24 Figura 8 Tipos de filtros 29 Figura 9 Estructura filtro FIR 30 Figura 10 Estructura filtro IIR 31 Figura 11 Guide- Matlab 33 Figura 12 Ventana de inicio Guide 33 Figura 13 Entorno de diseño 34 Figura 14 Herramientas de diseño Guide 35 Figura 15 Propiedades de los componentes Guide 37 Figura 16 Herramientas para personalizar componentes 37 Figura 17 Estructura de la tarjeta DSP 40 Figura 18 Periféricos de entrada y salida DSP 41 Figura 19 Transformada rápida de Fourier en tiempo corto 53 Figura 20 Estructura del canal de análisis 54 Figura 21 Banco de filtros Vs FFT 54 Figura 22 Modulo de análisis para cada canal 55 Figura 23 Respuesta en frecuencia 55 Figura 24 Respuesta en frecuencia 56 Figura 25 Respuesta de fase 57 Figura 26 Respuesta al impulso 57 Figura 27 Grafica de polos y ceros 58 Figura 28 Respuesta en frecuencia 58 Figura 29 Componente espectral antes y después del filtro pasa-bajas

    (canal uno) 59

    Figura 30 Componente espectral antes del filtrado (cuatro canales) 60 Figura 31 Componente espectral después del filtrado (cuatro canales) 60 Figura 32 Función de ventaneo Hamming 61 Figura 33 Parámetros de análisis de la función de ventaneo 61 Figura 34 Algoritmo de manipulación y modificación de las señales 63

  • 8

    Figura 35 Algoritmo de manipulación y modificación de las señales 64 Figura 36 Diagrama de bloques del proceso de reconstrucción de

    señal 65

    Figura 37 Algoritmo completo de un canal del Vocoder 65 Figura 38 Diagrama de bloques estructura Vocoder 65 Figura 39 Algoritmo completo de una canal del Vocoder 66 Figura 40 Diagrama de bloques 67 Figura 41 Algoritmo Completo desarrollado en Simulink 67 Figura 42 Test 68 Figura 43 Módulos de soporte tarjeta DSP 69 Figura 44 Programa gestor de descarga del algoritmo 69 Figura 45 Algoritmo para la división de la señal stereo 70 Figura 46 Configuración EMIF clock 71 Figura 47 Carga del algoritmo en DSP 71 Figura 48 Interfaz gráfica 72 Figura 49 Uso de CPU y Memoria 78 Figura 50 Señal pura y la resintetizada con el Vocoder 500 Hz 80 Figura 51 Señal pura y la resintetizada con el Vocoder 1000 Hz 81 Figura 52 Señal pura y la resintetizada con el Vocoder 2000 Hz 82 Figura 53 Señal envolvente de 2000 Hz 83 Figura 54 Señal resintetizada envolvente 2000 Hz con una de 220 Hz 83 Figura 55 Espectro de frecuencia de la señal resintetizada 2000 Hz 84 Figura 56 Señal de voz original y su resintesis con un tono puro de

    220 Hz 84

    Figura 57 Espectro en frecuencia de la señal de voz 85 Figura 58 Espectro en frecuencia de las señales reconstruidas 85 Figura 59 Señal pura de 1000 Hz y su resintesis con un tono puro de

    220 Hz 86

    Figura 60 Resintesis de la señal de 1000 Hz con la de 220 Hz 87 Figura 61 Resintesis de la señal instrumental con la de 500 Hz 87 Figura 62 Espectro en frecuencia del instrumento (Guitarra) 88 Figura 63 Espectro en frecuencia de la señal reconstruida 88

  • 9

    LISTA DE TABLAS

    Tabla 1 Componentes de diseño de Guide. 35

    LISTA DE CUADROS

    Cuadro 1 Valores de las frecuencias de corte de los filtros en Hz 56

    LISTA DE FOTOGRAFÍAS

    Foto 1 Tarjeta DSP 41

    LISTA DE ANEXOS

    Anexo 1 Material multimedia 93

  • 10

    INTRODUCCIÓN

    El desarrollo de herramientas tipo hardware y software para el procesamiento de señal, representa una de las áreas más importante en el ámbito de ingeniería de sonido y la música, con múltiples propósitos tanto de análisis, detección, control, optimización y modificación de señales musicales. Los nuevos e innovadores sistemas tecnológicos forjados en el seno de las ciencias duras como la ingeniería, moldean el escenario sobre el cual se estructura una atmosfera de interacción entre los conceptos, modelos y conocimientos de carácter teórico, práctico, científico y emperico, y la facultad humana de crear dispositivos que son el resultado de la convergencia de dichos recursos en una unidad o punto determinado. De este modo, es como se plantea la importancia que tiene esta área del desarrollo científico y tecnológico para el trabajo y ejercicio de las facultades laborales de un ingeniero de sonido. La creación de recursos electrónicos destinados al procesamiento y manipulación de señales sonoras o musicales, plasma el marco de referencia que acota y suministra los recursos necesarios para llevar a cabo la ejecución de este proyecto. El desglose general del mismo, permite la identificación y posterior trabajo de los recursos antes mencionados, con el fin de articular un plan de desarrollo ingenieril que contiene las características del escenario de trabajo sobre el cual se lleva a cabo el proceso de creación de un Vocoder Hardware Digital. De esta manera se pretende desarrollar un dispositivo electrónico capaz de manipular, procesar y transformar dos señales sonoras; la voz humana y el sonido de un instrumento musical, en una sola señal que conserve las características físicas que modelan los sonidos iníciales, dando como resultado, de esta manera, un efecto de sonido que logra mezclar las propiedades sonoras de los dos sonidos involucrados en el proceso efectuado por el sistema en mención. Un Vocoder es un dispositivo electrónico capaz de transformar dos señales musicales en una nueva. Es comúnmente usado en producción musical de banda sonora para cine y televisión, eventos en vivo como dispositivos que permiten agregar efectos a la voz y en sí, en toda actividad en el ámbito de ingeniería de sonido que requiera de su uso. De esta manera se plantea la importancia de llevar a cabo la realización de este proyecto, como medio a través del cual se impulsa la investigación y generación de trabajos en cuanto a desarrollo de sistemas electrónicos de carácter digital.

  • 11

    1. PLANTEAMIENTO DEL PROBLEMA

    1.1 ANTECEDENTES

    Las herramientas dispuestas en el ámbito de producción musical para el procesamiento de señal digital, son diversas tanto en materia de software como de hardware. Estos sistemas electrónicos en los últimos años han alcanzado un nivel protagónico importante en todos los procesos y actividades inherentes al ejercicio de la producción musical. Cada vez es más frecuencia el uso de dispositivos que desempeñando el trabajo de generación y procesamiento de sonidos mediante una arquitectura constituida básicamente por algoritmos diseñados para el trabajo de los sistemas sobre plataformas digital. Dichas unidades, plantean ventajas en cuanto a nuevas y mejores posibilidades de intercomunicación entre módulos periféricos tipo software y hardware; a través de interfazes de conversión análogo-digital, mediante protocolos de de transmisión de datos y comunicación como MIDI y puertos USB. Sin embargo, el desarrollo de estos instrumentos se remonta al año 1964 cuando Robert Moog hace la presentación de su primer sintetizador llamado “Moog Modular Synthesizer, durante la Convención de la Sociedad de Ingeniería de Audio (Audio Engineering Societen) celebrada en Los Ángeles”1, evento donde Robert hace sus primeros negocios. Esta fue una de las primeras maquinas análogas para el procesamiento de señal sonora, basadas en procesos de síntesis aditiva y sustractiva para la modificación de la misma. De esta forma se inicio el movimiento impulsor del proceso de globalización de los equipos electrónicos de audio, aplicados al campo de la producción musical. En la actualidad existen múltiples sistemas electrónicos para el procesamiento de señal; tanto análogos como digitales, con características mucho más avanzadas y sofisticadas. Encontramos herramientas tipo software como Vokator desarrollado por la casa Native Instruments2 o el FM8 elaborado por la misma empresa. Estos sistemas realizan síntesis por modulación de frecuencia y amplitud; además, permiten la asignación de efectos a los sonidos creados e importados al programa. Por otro lado, también se encuentran Plug-Ins en

    1 http://es.wikipedia.org/wiki/Moog_modular 2 http://www.native-instruments.com/. Visitada el 29 de octubre 2007.

  • 12

    formatos VST, RTAS y otros mas, como el “LADSPA”3 para Linux, el “Orange Vocoder”4 para Windows y Mac y algunos creados por la compañía “Steinberg©”5; creadora de los Plug-Ins de extensión VST. En Colombia el desarrollo de tecnología musical vía hardware es precario ya que no existen muchos antecedentes productivos e investigativos que soporten la evidencia de gestión frente al tema. 1.2 DESCRIPCIÓN Y FORMULACIÓN EL PROBLEMA

    Este proyecto busca implementar un sistema electrónico de audio; que pueda ser útil en el campo de producción musical y banda sonora para cine y televisión, además de todas aquellas áreas de la Ingeniería de Sonido que requieran de su uso, a través del trabajo con dispositivos tipo software y hardware especializados en procesamiento digital de señales. La elaboración de proyectos que estimulen la creación científica y tecnológica de herramientas útiles para el ejercicio de las actividades laborales de los ingenieros de sonido, representa el espacio a través del cual, los estudiantes, docentes y personal agregado al cuerpo universitario, pueden desarrollar, aprender y consolidar, conocimientos de carácter científico, técnico y empírico, en cuanto a procesamiento digital de señales para la producción musical. De esta forma se formula la siguiente pregunta: ¿Cuales son las ventajas y desventajas encontradas en el desarrollo de un sistema hardware para el procesamiento de señal, las posibilidades en su diseño, construcción e implementación del mismo?

    3 http://www.sirlab.de/linux/vocoder.html#vocoder_ladspa. Visitada el 29 de octubre 2007. 4 http://www.prosoniq.com/main/orangevocoder/. Visitada el 29 de octubre 2007. 5 http://www.steinberg.net/. Visitada el 30 de octubre 2007.

  • 13

    1.3 JUSTIFICACIÓN Este proyecto se desarrolla con el fin de impulsar la creación e investigación científica y tecnológica de dispositivos electrónicos especializados en el procesamiento digital de señales sonoras. Además, busca promover el diseño y construcción de dispositivos a nivel teórico y práctico, a través de la creación de algoritmos y sistemas que interactúan entre sí de manera simultánea, sobre plataformas de desarrollo para medios digitales. Lo antes mencionado, adquiere importancia ya que representa una forma adecuada de generar un proceso de consolidación, canalización e interpretación, de las operaciones, conceptos y procesos matemáticos inherentes al trabajo con señales sonoras. Entonces, se busca establecer un método que permita comprender el significado, manejo y utilidad de todos los parámetros físicos como la amplitud, fase y frecuencia, de los eventos sonoros en tiempo discreto. Este dispositivo es diseñado y construido como un sistema apto para el procesamiento de señales musicales cuasi-periódicas como la voz o la onda generada por una guitarra.

  • 14

    1.4 OBJETIVOS DE LA INVESTIGACIÓN

    1.4.1 OBJETIVO GENERAL Diseñar e implementar un vocoder digital, usando técnicas y hardware de procesamiento digital de señales. 1.4.2 OBJETIVOS ESPECIFICOS

    • Desarrollar un algoritmo sobre la plataforma de desarrollo Matlab, a través del gestor de proyectos para medios digitales Simulink.

    • Implementar los algoritmos DSP en el hardware digital. • Crear una interfaz grafica software.

  • 15

    1.5 ALCANCES Y LIMITACIONES DEL PROYECTO 1.5.1 ALCANCES Con este proyecto se pretende generar un pequeño aporte que permita estimular la creación de iniciativas en cuanto a diseño y desarrollo de herramientas útiles de tipo software y hardware, en el campo de la producción de audio profesional. Mostrar las posibilidades en cuanto a diseño y construcción de sistemas para la manipulación de señal, mediante la comparación de conceptos, técnicas y procesos, encontrados en sistemas similares. Además, esta investigación puede suministrar pautas importantes en cuanto a conceptos y procesos inherentes al desarrollo de sistemas electrónicos híbridos (software y hardware), que basan su funcionamiento en el procesamiento de señal en tiempo discreto. 1.5.2 LIMITACIONES El cumplimiento de lo establecido depende del costo de los elementos requeridos para el desarrollo y en especial para el ensamblaje del dispositivo, además, se podrían encontrar eventuales limitaciones en cuanto al completo desconocimiento de la forma de uso, de los posibles instrumentos requeridos para la construcción del proyecto.

  • 16

    2 MARCO DE REFERENCIA

    2.1 MARCO CONCEPTUAL 2.1.1 Representación de sistemas computacionales pa ra audio. La programación mediante diagramación nace como consecuencia de la falta de modelos que permitan la generación de sistemas estandarizados bajo las metodologías para el desarrollo y análisis de entornos gráficos computacionales, de eventos físicos particulares. De este modo se generó un modelo de programación mediante módulos o bloques que poseen una estructura interna programable o programada como elemento para la realización de sistemas modulares constituidos por dichos elementos. Un subsistema o modulo básico posee los elementos de posible entrada, proceso y salida lo que permite ser interconectado para generar un sistema mas complejo. En el procesamiento de señal, esta diagramación podría ejemplarizarse con el desarrollo tecnológico de unidades generadoras de sonido UG, procesadores y generadores de audio. En la figura No.1 se indican distintas funciones usadas en la elaboración de diagramas en bloques.

    Fig.1 Representación de funciones computacionales para audio.

    2.1.2 Lenguajes primitivos para el procesamiento de sonido. Un modulo primitivo para producir, modificar o adquirir audio externo es el lenguaje MUSIC-N creado por Max Mathews en los laboratorios bell a finales de la década de 1950, siendo aplicado en composiciones de 1960-1970, a través de la serie music v, la cual estableció un simbología estándar para el desarrollo de procesos de música computarizada a través de unidades generadoras UG. Estas, proponen la conexión modular entre elementos de manera similar a

  • 17

    como se realiza en sistemas musicales analógicos (ej, moog), el complejo resultante se conoce como instrumento y a su vez orquesta a un numero de instrumentos, para cada instrumento los parámetros de las unidades generadoras pueden ser variados a través de una lista o score en unidades de tiempo (secuencia) musical variando los parámetros de las unidades generadoras. En la actualidad estos scores son conocidos como lista de eventos según el protocolo MIDI. En Music V estos parámetros son invocados secuencialmente generando eventos sonoros conocidos como notas. La figura 2 expone la mecánica de funcionamiento y la interfase grafica del programa MUSIC. Para la generación de señales de audio de una manera primitiva era necesario usar las sentencias (oscil) para la inicialización de un oscilador, (line) para envolventes, filtros digitales a través de (Reson), procesos de retardo (delay), y sonido entrante a la computadora (soundin). Un programa más moderno y funcional fue Nyquist como una modernización de Music-N y aun más en nuestra actualidad CSound sin embargo las UG son más susceptibles en la elaboración de sintetizadores que para la elaboración de procesadores de sonido.

    Fig. 2 UG Score.

    2.1.3 Introducción a Simulink. Simulink es un ambiente interactivo para modelar una amplia variedad de sistemas dinámicos, pudiendo ser estos lineales, no lineales, discretos, de tiempo continuo y sistemas mixtos. Permite realizar diagramas de bloques con operaciones click-and-drag, cambiar parámetros del modelo y visualizar resultados durante una simulación.

  • 18

    Es también un sistema abierto, que permite al usuario escoger, adaptar y crear componentes o subsistemas. Simulink se apoya en el ambiente Técnico Computacional de Matlab. Este programa y su grupo de Toolboxes ofrecen un conjunto amplio de herramientas de ingeniería y matemática para definir algoritmos, analizando datos y visualizando resultados. Juntos, Simulink y Matlab, proveen un entorno integrado para construir modelos versátiles y dinámicos para el diseño, simulación y testeo de nuevos modelos o sistemas.

    Fig. 3 Entorno grafico Simulink.

    • Simulación y análisis. Simulink y los Toolboxes de Matlab permiten moverse sobre varios niveles de modelado diseño y simulación. Se pueden utilizar los modelos Simulink para simulación, linealización del modelo, determinación de los puntos de equilibrio, optimización de parámetros y análisis.

    2.1.4 Simulación. Los diagramas de bloques Simulink facilitan un entorno interactivo para la simulación de sistemas lineales, no lineales y discretos. La simulación se puede realizar desde menús descolgables o desde la línea de comandos de Matlab. Los resultados pueden ser vistos durante la simulación usando osciloscopios (Scopes) o bloques gráficos (Graph blocks); y grabados en un archivo o transferidos al espacio de trabajo de Matlab para su posterior análisis o procesamiento. Simulink permite realizar el análisis de modelos cambiando los parámetros del mismo mientras se lleva a cabo la simulación.6

    6 The Math Works inc. Simulink - Dynamic Simulation for Matlab�‘USING SIMULINK’.

  • 19

    2.1.5 Modelado.

    • Representación de sistemas dinámicos con diagramas de bloque. Simulink permite desarrollar modelos de sistemas dinámicos mediante ecuaciones y diagramas de bloque. Se pueden crear modelos lineales o no lineales, de tiempo discreto o continuo, o modelos híbridos utilizando “drag and drop” (arrastrar y dejar) para mover los componentes desde una biblioteca de bloques y conectándolos entre sí usando el mouse.

    • Librería de bloques. La Librería de Bloques de Simulink contiene centenares de componentes agrupados de la siguiente manera:

    • Sources ( fuentes ), • Sinks ( visualizadores / salidas ), • Discrete ( discreto ), • Linear ( lineal ), • Nonlinear ( no lineales ), • Blocksets & Toolboxes ( herramientas extras ).

    Los bloques de entradas y de salidas se usan para intercambiar vectores entrada-salida de simulación con el entorno Matlab y archivos de datos. Los bloques de tiempo discreto permiten modelar y simular subsistemas con datos muestreados tales como sistemas de control digital y procesamiento de señales. Otros bloques utilizan comandos Matlab por sus posibilidades adicionales de análisis. En la figura No.4 se visualiza la librería de Simulink.

  • 20

    fig.4 Bloques de la librería Simulink.

    En cada una de las librerías, hay procesos asociados a ellas como por ejemplo en la librería Signal Processing Sinks. Se encuentran los módulos que permiten visualizar el flujo de señal e intercomunicar el sistema diseñado con el entorno exterior. La figura No. 5 muestra el entorno de conexión de Simulink.

    Fig.5 módulos de conexión.

    2.1.6 Números complejos. Las señales de sonido discretizadas digitalmente, pueden ser modeladas como señales complejas que contienen información

  • 21

    numérica real e imaginaria. Este modelo es imprescindible para el procesamiento de la señal de sonido ya que mediante interpretaciones de tipo complejo es factible analizar y modificar el espectro de señales de audio. En este proyecto las interpretaciones complejas ayudan a estimar los parámetros que componen el sonido de instrumentos musicales y la voz, modelados como fuentes cuasi-periódicas. La unidad imaginaria i es el número que multiplicándolo por si mismo da -1, siendo i²=i*i=-1. Luego se pueden definir lo números complejos como la pareja x+iy, donde x y y son números reales, llamados respectivamente parte real y parte imaginaria del número complejo.

    Dados dos números complejos, c1=x1+iy1, c2=x2+iy2, c3=x3+iy3, las operaciones son precisadas como: Suma: c1+c2 =(x1+x2)+i (y1+y1) Resta: c1-c2=(x1-x2)+i (y1-y2) Multiplicación: c1*c2 = (x1x2-y1y2) +i (x1y2+x2y1) División: c1/c2= ((x1x2+y1y2)+ (x2y1-x1y2))/ ((x2)*(x2))+ ((y2)*(y2)) La interpretación geométrica de la noción de números complejos se obtiene asumiendo el número geométrico c = x + ij, como un punto en el plano x, permitiendo el paso de coordenadas ortogonales x y y conocidos como eje real y eje imaginario a coordenadas polares en magnitud p (valor absoluto) y fase ө también conocida como argumento. Esta interpretación grafica de una cantidad compleja puede ubicarse en el plano de los reales como se muestra en la figura No. 6. La magnitud de un número complejo puede ser obtenida a través de la aplicación del teorema de Pitágoras7:

    P2 = x2 + y2 = (x +iy ) ( x – iy ) = CĈ

    7 Britton, jack R, matemáticas universitarias, México; CECSA, 1984

  • 22

    Donde C con raya arriba, es el complejo conjugado de C. el argumento de un numero complejo es el Angulo formado por el semieje horizontal positivo, con la línea proyectada desde el punto geométrico al origen del plano complejo, el argumento puede ser negativo o positivo según su sentido en el plano complejo.

    Fig.6 interpretación geométrica de un numero complejo.

    2.1.6 Funciones y variables. El audio puede describirse mediante la teoría de señales y estas a su vez pueden ser modeladas como una función momo dimensional8 en el tiempo. Por tanto una señal puede describirse mediante funciones para su explotación ingenieril. Es factible representar los elementos arbitrarios de una clase de números, por una variable x, definido en un dominio D. cuando el dominio es un intervalo del campo de números reales en los limites a y b, existe una variable continua x del intervalo [a,b] , y existe para a ≤x ≤1. Cuando cada valor de x es asociado solamente con un valor de otra variable y, entonces y es función de x, y(x) = f(x), x se conoce como la variable independiente y Y la dependiente, las funciones pueden tener mas de una variable independiente, obteniendo una relación multi variable como ocurre en un evento físico.

    8 Puercell, Edwin J, Varberg Dale, calculo con geometría analítica, México Prentice Hall, 1987

  • 23

    Las funciones pueden ser representadas gráficamente, en el plano cartesiano, el eje de las abscisas corresponde a la variable independerte y las ordenadas a las dependientes. Si tenemos más de una variable independiente solo una es representada como abscisa y las otras toman valores constantes.9 2.1.8 Funciones polinomiales. Los polinomiales son un tipo de funciones de una variable, que esta conformada por la suma de potencias positivas de la variable independiente. Cada potencia con su coeficiente es llamado un monomial y tiene la forma:

    Y = f(x)= a0 + a1.x + a2.x2+….+ anxn

    Donde los números ai, son llamados coeficientes, la potencia mayor se conoce como el orden del polinomio. Cuando se grafica una función polinomial de segundo orden, obtenemos una curva parábola y una función de tercer orden produce una curva cubica. Las soluciones del polinomio son conocidas como ceros o raíces donde los valores de la variable independiente producen cero en la variable independiente. Los polinimios de n-esimo orden de coeficientes reales tienen exactamente n cantidad de ceros en el campo de los complejos, las raíces que no se prolongan al eje real del plano complejo, son parejas de números complejos conjugados. Para polinomiales de orden mayor que tres, es conveniente usar métodos numéricos para encontrar sus raíces con un método de incremento preciso de aproximaciones. La suma de dos polinomiales es un polinomial, el cual su orden depende del orden mas alto de un operando y tienen coeficientes los cuales son las sumas de los respectivos coeficientes de los sumandos. El producto esta dado por la aplicación de propiedades asociativas.

    9 Rochesso, Davide, introduction to sound processing, http://www.scienze.univr.it

  • 24

    El orden del producto esta dado por la suma de las órdenes de los operando y el k-esimo coeficiente del producto es obtenido por los coeficientes ai y bj sumados mediante la operación:

    La multiplicación polinomial es formalmente idéntica a la convolución de señales discretas, siendo una operación esencial en el procesamiento de señales y en este proyecto. 2.1.9 Funciones trigonométricas. La trigonometría describe la relación entre ángulos y los segmentos contenidos por esos ángulos. Un ángulo corta el circulo en arcos y su gradiente es definido como el tamaño en radianes, siendo un ciclo completo alrededor del circulo 2п, equivalente a 360 grados o gradientes. Para la obtención gráfica de algunas funciones, es posible representar la circunferencia en el plano complejo:

    Sin Φ= (PQ) Cos Φ=(OQ)

    TanΦ = (PQ/OQ)

    En el plano de los complejos se puede describir gráficamente estas funciones trigonometricas, disponiendo del teorema de Pitágoras que para cualquier ángulo ө la siguiente identidad es válida.

    sin² Φ + cos ²Φ = 1

    Fig.7 Descripción grafica de funciones trigonométricas.

  • 25

    Las funciones seno y coseno son funciones periódicas con periodo 2п, mientras la función tangentes periódica con periodo п, el condominio de seno y coseno está limitado en el intervalo [-1,1] , particularmente la tangente toma valores en todo el eje real, aprovechando de forma infinita para todos los valores mediante una interpretación geométrica compleja, podemos incluir una magnitud y un argumento p y Φ y representarlo como:

    C = x + iy = p cosΦ + ip sen Φ

    Otra ecuación relacionar entre complejos y funciones de tipo trigonométrico es la ecuación de Euler, expresada como una cantidad compleja que yace en la circunferencia como una exponencial con exponente imaginario. Cuando el argumento o la fase puede tomar cualquier valor real, la exponencial se torna en una senoide compleja.10 Un numero complejo con magnitud y argumento p y Φ, puede expresarse como:

    ejΦ = cos Φ + isen Φ C = p ejΦ

    Si tomamos la m potencia de la magnitud y multiplicamos por m el argumento, se obtiene un complejo que admite raíces complejas distintas de orden m, la raíz de 1 de orden m, esta distribuida a lo largo de una circunferencia, comenzando desde 1 y separadas por un ángulo constante de 2п/m.

    Cm = pmejmΦ = pm(cosm Φ + isinm Φ)

    10 Sorias, Olivas, Emilio. Tratamiento digital de señales: problemas y ejercicios resueltos, primera

    edición. Madrid; Pearson education 2003

  • 26

    2.1.10 Transformadas. 11 Matemáticamente, existen formas de expresar funciones y operaciones de una forma más sencilla para su análisis y manipulación.

    • La transformada de Laplace. La T. de Laplace de una variable en t. donde t pertenece al dominio real es definida como una función de una variable compleja:

    Siendo la región para la cual la integral no es divergente y esta en el trayecto vertical en el plano complejo, la T de Laplace puede ser invertida a través de:

    Los límites de integración evalúan sobre la línea vertical con abscisa σ. Una transformada básica para el estudio de sistemas y señales es la función causal exponencial que mediante la transformada de Laplace se torna en:

    Y(n) = 1 / S – So

    Esta ecuación converge para los valores de S, teniendo una parte real que es mayor que So. Una propiedad básica de la T de Laplace es la conversión de una expresión de derivación a una multiplicación por S. Siendo y(o) la condición inicial para cualquier t

  • 27

    • La transformada de Fourier. La transformada de Fourier de una función cuyo condominio es real puede ser descrita como una T. de L. pero en una región del eje imaginario.

    Donde jΩ indica un punto arbitrario en el eje imaginario, siendo la base de la operación es la senoide compleja con una frecuencia radial Ω, cada punto de la función transformada como un componente del espectro en frecuencia de la función Y(t), dado un valor Ω = Ωo y

    modelando una señal Y(t) como la integral es maximizada cuando el valor Ω es incrementado. El condominio de la función de transformación Y(Ω), se propaga a lo largo del campo complejo, luego es posible hallar la magnitud y fase espectral a través de una interpretación geométrica compleja.

    • La transformada Z. La operación se realiza en un dominio discreto para cantidades enteras del radio de circunferencia, las operaciones de derivación son remplazadas por sumas y restas.

    La región de convergencia de la señal es un anillo en el plano complejo siendo este la región entre la unión de dos circunferencias. Con este anillo la transformada puede ser invertida. Una transformación típica es

  • 28

    la causal exponencial de variable discreta que converge para valores de z que son mayores que el exponencial de coeficiente real en magnitud.

    Los valores de una variable compleja pueden ser restringidos a una circunferencia.

    Siendo Ω frecuencia angular para tiempo continuo y ω para tiempo discreto.

    2.1.11 Filtros. En general, cualquier algoritmo o sistema de tratamiento puede interpretarse como un filtro. Los filtros son entendidos como aquel sistema lineal e invariante que permite el paso de las componentes de la señal existentes en un determinado intervalo de frecuencias, y elimina las demás. Idealmente, en el margen de las frecuencias que se conservan; denominado banda de paso, el módulo de la respuesta en frecuencia del filtro toma un valor constante (Habitualmente la unidad). Entre tanto, el intervalo de frecuencia complementario es denominado banda atenuada. El modulo de respuesta en frecuencia es nulo, cuando el margen de frecuencia está fragmentado en varios intervalos y, por lo tanto, cada uno de ellos recibe el nombre de banda de paso o atenuada, según sea el comportamiento deseado. Los cuatro filtros básicos desde el punto de vista ideal de comportamiento del modulo de la respuesta en frecuencia, se ilustran en la figura No 8.

  • 29

    Fig. 8 Tipos de filtros.

    La respuesta en frecuencia de un filtro se expresa generalmente en función de su modulo y de su fase.

    H(ejw) = IH(ejw)I ej ψw

    Se considera filtro ideal aquel que, a lo sumo, altera con un retardo constate e independiente de la frecuencia una señal cuyo contenido espectral está en la banda de paso. Además, el filtro ideal elimina completamente una señal cuyo espectro está en la banda atenuada. En resumen, para que un filtro sea ideal, se requiere que su respuesta en frecuencia tenga un módulo constante y fase lineal en la banda de paso, al mismo tiempo que debe presentar un modulo cero en la banda atenuada.

    HI(ejw) = IHI(e

    jw)I ej ψw IHI(e

    jw)I = 1 en las bandas de paso y 0 en las bandas atenuadas ψ(w) = - α w + β + πk(w)

  • 30

    • Filtros digitales . Un filtro digital es un sistema que modifica; por medio de procesamiento matemático, las señales de entrada dependiendo de las variaciones de las mismas en el tiempo y amplitud; esto generalmente se hace con la aplicación de la Transformada rápida de Fourier; dando como resultado una señal de salida modificada en el tiempo. La ventaja de los filtros digitales sobre los analógicos es que presentan una gran estabilidad de funcionamiento a lo largo del tiempo. Por otro lado, los filtros digitales pueden ser de dos clases que responden a métodos de diseño y calculo diferentes. Los filtros FIR (Respuesta finita al impulso) y los IIR (Respuesta infinita al impulso).

    a) Filtros FIR. Se trata de un tipo de filtros digitales en el que, como su nombre indica, si la entrada es una señal impulso, la salida tendrá un número finito de términos no nulos. La estructura básica de un filtro FIR es las siguiente:

    Fig. 9 Estructura filtro FIR.

    Para obtener la salida del filtro, este sólo se basa en entradas actuales y anteriores. Su expresión en el dominio n es: En la expresión anterior N es el orden del filtro, que también coincide con el número de términos no nulos y con el número de coeficientes del filtro. Los coeficientes son bk.

  • 31

    La salida también puede expresarse como la convolución de la señal de entrada x(n) con la respuesta al impulso h(n):

    Aplicando la transformada Z a la expresión anterior se obtiene:

    b) Filtros IIR. Se trata de un tipo de filtros digitales en el que, como su nombre indica, si la entrada es una señal impulso, la salida tendrá un número infinito de términos no nulos, es decir, nunca vuelve al reposo. Existen numerosas formas de implementar los filtros IIR. La estructura afecta las características finales que presenta el filtro como la estabilidad. Otros parámetros a tener en cuenta a la hora de elegir una estructura es el gasto computacional que presentan. De esta forma una de las posibles estructuras de un filtro IIR es la siguiente:

    Fig. 10 Estructura filtro IIR.

  • 32

    La salida de los filtros IIR depende de las entradas actuales y pasadas, y además de las salidas en instantes anteriores. Esto se consigue mediante el uso de realimentación de la salida.

    Yn = b0Xn + b1Xn-1 + …. + bNXn-N –a1Yn-1 –a2Yn-2 - … - aMYn-M Donde los valores de a y b son los coeficientes del filtro. El orden es el máximo entre los valores de M y N. Aplicando la transformada Z a la expresión anterior:

    2.1.12 Interfaz gráfica de usuario en Matlab. GUIDE (Graphical User Interfase Development Environment) es un entorno de programación visual disponible en Matlab para realizar y ejecutar programas que necesiten ingreso continuo de datos. Tiene las características básicas de todos los programas visuales como Visual Basic o Visual C++. También es un juego de herramientas que se extiende por completo en el soporte de Matlab, diseñadas para crear GUIs (Graphical User Interfazes) fácil y rápidamente dando auxiliado en el diseño y presentación de los controles de la interfaz, reduciendo la labor al grado de seleccionar, tirar, arrastrar y personalizar propiedades.

  • 33

    Existen varias maneras de acceder a GUIDE; una de ellas es desde la barra de herramientas como lo indica la figura No. 11:

    Fig. 11 Guide- Matlab.

    Entonces, una vez abierto el asistente aparece la siguiente ventana. Figura No. 12.

    Fig. 12 Ventana de inicio Guide.

    En ella se encuentran las siguientes opciones:

    a) Blank GUI ( Default). La opción de interfaz gráfica de usuario en blanco; viene predeterminada, nos presenta un formulario nuevo en el cual podemos diseñar nuestro programa.

  • 34

    b) GUI with Uicontrols. Esta opción presenta un ejemplo en el cual se calcula la masa, dada la densidad y el volumen, en alguno de los dos sistemas de unidades. Podemos ejecutar este ejemplo y obtener resultados.

    c) GUI with Axes and Menu. Esta opción es otro ejemplo el cual contiene el menú File con las opciones Open, Print y Close. En el formulario tiene un Popup menú, un push button y un objeto Axes, podemos ejecutar el programa eligiendo alguna de las seis opciones que se Encuentran en el menú despegable y haciendo click en el botón de comando.

    d) Modal Question Dialog. Con esta opción se muestra en la pantalla un cuadro de diálogo común, el cual consta de una pequeña imagen, una etiqueta y dos botones Yes y No, dependiendo del botón que se presione, el GUI retorna el texto seleccionado (la cadena de caracteres ‘Yes’ o ‘No’).

    Se elige la primera opción y se obtiene la figura No. 13.

    Fig. 13 Entorno de diseño.

  • 35

    La interfaz gráfica cuenta con las siguientes herramientas.

    Fig. 14 Herramientas de diseño Guide.

    Para obtener la etiqueta de cada elemento de la paleta de componentes, se ejecuta el siguiente comando: Comando: File>>Preferences y se selecciona Show names in component palette. Con esto se ingresa al entorno de diseño de Guide como muestra la figura No.13. La siguiente tabla muestra una descripción de los componentes. Tabla No. 1.

    Tabla. 1 Componentes de diseño de Guide.

  • 36

    • Propiedades de los componentes. Cada uno de los elementos de GUI, tiene un conjunto de opciones a las cuales se puede acceder con click derecho. Figura No. 15.

    Fig. 15 Propiedades de los componentes Guide.

    La opción Property Inspector permite personalizar cada elemento, como se muestra en la Figura No. 16.

    Fig. 16 Herramientas para personalizar componentes.

  • 37

    Al hacer click derecho en el elemento ubicado en el área de diseño, una de las opciones más importantes es View Callbacks, la cual, al ejecutarla, abre el archivo .m asociado a nuestro diseño y nos posiciona en la parte del programa que corresponde a la subrutina que se ejecutará cuando se realice una determinada acción sobre el elemento que estamos editando. Por ejemplo: Al ejecutar View Callbacks>>Callbacks en el Push Button; el programa automáticamente ubica al usuario en segmento del algoritmo concerniente a la función seleccionada. function pushbutton1_Callback(hObject, eventdata, handles) %hObject handle to pushbutton1 (see GCBO) %eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data (see GUIDATA)

    • Funcionamiento de una aplicación Guide. Una aplicación de GUIDE está conformada por dos archivos: un .m y un .Fig. El archivo .m es el que contiene el código con las correspondencias de los botones de control de la interfaz y el archivo .Fig. Contiene los elementos gráficos. Cada vez que se adicione un nuevo elemento en la interfaz gráfica, se genera automáticamente un código en el archivo .m. para controlar tal elemento. Para empezar a programar en nuestro archivo .m debemos primero salvar el archivo con un nombre nuevo y luego de esto aparecerá el editor. m.

    • Manejo entre los elementos de la aplicación y el ar chivo .m. Todos los valores de las propiedades de los elementos (color, valor, posición,string…) y los valores de las variables transitorias del programa se almacenan en una estructura, los cuales son accedidos mediante un único y mismo identificador para todos éstos. Tomando el programa listado anteriormente, el identificador se asigna en: handles.output = hObject;

  • 38

    handles, es nuestro identificador de los datos de la aplicación. Esta definición de identificador es salvada con la siguiente instrucción. guidata(hObject, handles);

    guidata es la función que guarda las variables y propiedades de los elementos en la estructura de datos de la aplicación, por lo tanto, como regla general, en cada subrutina se debe escribir en la última línea lo siguiente:

    guidata(hObject,handles); Esta sentencia garantiza que cualquier cambio o asignación de propiedades o variables quede almacenado.

    • Sentencias get y set. La asignación u obtención de valores de los componentes se realiza mediante las sentencias get y set. Por ejemplo si queremos que la variable HUM tenga el valor del slider escribimos: HUM= get(handles.slider1,'Value'); Notar que siempre se obtienen los datos a través de los identificadores handles. Para asignar el valor a la variable HUM al statictext etiquetada como text1. Se escribe: set(handles.text1,'String',HUM);%Escribe el valor del Slider. %en static-text

    2.1.13 Procesamiento digital de señal (DSP). Se conoce como DSP la manipulación y modificación de las señales en el dominio digital sobre plataformas que trabajan con sistemas discretos, después de convertir una señal análoga en un digital, a través de un conversor análogo digital. Su diseño, arquitectura e instrucciones están hechos con el propósito de ejecutar algoritmos de procesamiento de señal en tiempo real.

  • 39

    Un procesador DSP se caracteriza por el uso de arquitectura Harvard, datos de buses internos, programación assembler, instrucciones paralelas de procesamiento; las cuales reducen el tiempo de operación de los algoritmos, y compiladores de optimización. Los algoritmos de optimización pueden ser de suma, multiplicación y acumulación MAC y el módulo ALU (Unidad Lógica Aritmética). El tiempo discreto y la amplitud discreta en la salida de un conversor análogo digital AD son representadas en una secuencia de valores la cual es exteriorizada mediante aritmética de punto flotante o de punto fijo. Las representaciones fraccionales son implementaciones comunes en algoritmos representados en punto fijo, para la generación de direcciones y operaciones de modulo son usados enteros absolutos. El diseño de un DSP está basado en un esquema constituido por un controlador de programa, una unidad ALU, y un multiplicador acumulador MAC, programas y datos de memoria e interfazes memorias externas y dispositivos periféricos. Para el incremento de memoria, los buses de datos y control pueden estar conectados a una memoria externa ROM y RAM. La conexión de buses externos a buses internos del sistema influye en la ejecución de funciones externas de procesamiento de datos e instrucciones y el control del microprocesador puede ser archivado vía interfaz host con un Word lenght de determinada tasa de bits. La precisión aritmética depende del efecto que la cuantización tenga sobre la estabilidad aplicada al algoritmo. El tiempo de ciclo está relacionada con el tiempo de procesamiento en operaciones cíclicas de comandos de multiplicación y acumulación en un soporte procesador con un grado determinado de potencia. Existen herramientas para el desarrollo de sistemas discretos DSP en diversos soportes como compiladores-ensambladoras (Assembler) sistemas de operación en tiempo real que poseen un motor de manejo de memoria con una interfaz de control multitareas, por otro lado los simuladores software generan módulos virtuales de procesamiento y la ejecución de programas, los emuladores hardware pueden imitar el procesamiento de chips en tarjetas

  • 40

    hardware que pueden ser controladas vía software, como este caso en el que se trabaja con la tarjeta (TMS320C6713 DSK). Para la transferencia de datos han sido establecidos dos estándares conocidos como interfazes AES/EBU. En la Figura No. 17, se tiene una estructura básica de la tarjeta utilizada

    Fig. 17 Estructura de la tarjeta DSP.

  • 41

    La siguiente figura muestra la configuración de los puertos periféricos de entrada y salida con los que cuenta la tarjeta DSP.

    Fig. 18 Periféricos de entrada y salida DSP.

    Foto. 1 Tarjeta DSP.

  • 42

    2.1.14 Vocoder. Un vocoder es un analizador y sintetizador de voz. Fue desarrollado en la década de 1930 como un codificador de voz para telecomunicaciones. Su primer uso fue la seguridad en radiocomunicaciones, donde la voz tiene que ser digitalizada, cifrada y transmitida por un canal de ancho de banda estrecho. El vocoder se ha usado también como instrumento musical. De esta manera es empleada con guitarras y sintetizadores, produciendo un sonido de «guitarra parlante» o «teclado parlante», según el instrumento. Los vocoders son usados con frecuencia para crear el sonido de un robot hablando, como en la canción Mr. Roboto de Styx. También ha sido utilizado con frecuencia en música electrónica, por ejemplo, Eiffel 65 fue su gran precursor en la música dance a finales de los 90, poniendo muy de moda la técnica del vocoder en temas musicales electrónicos, y copiado por multitud de artistas. 2.1.15 Teoría del vocoder. La voz humana consiste en sonidos generados por la apertura y cierre de la glotis (cuerdas vocales), lo que produce una onda periódica con muchos sonidos armónicos. Este sonido básico es entonces filtrado por la nariz y la garganta (un complicado sistema resonante conocido como el tracto vocal) de forma controlada, creando la amplia variedad de sonidos de habla. Hay otro conjunto de sonidos, conocidos como sordos, que no son generados por la vibración de las cuerdas vocales. El vocoder examina el habla encontrando su onda básica, que es la frecuencia fundamental, y midiendo cómo cambian las características espectrales con el tiempo grabando el habla. Esto da como resultado una serie de números representando esas frecuencias modificadas en un tiempo particular a medida que el usuario habla. Al hacer esto, el vocoder reduce en gran medida la cantidad de información necesaria para almacenar el habla. Para recrear el habla, el vocoder simplemente revierte el proceso, creando la frecuencia fundamental en un oscilador electrónico y pasando su resultado por una serie de filtros basado en la secuencia original de símbolos. El Vocoder de canal es un sistema electrónico que permite la manipulación y procesamiento de señal musical digital en tiempo real. Este dispositivo está constituido por dos etapas fundamentales, una de análisis de las señales de

  • 43

    entrada y una de síntesis de las mismas. En la primera, se toma la señal entrante; tanto de la voz humana como la del instrumento, y se descompone en segmentos de frecuencia con el fin de generar un control individual de las componentes de todo el espectro y facilitar la manipulación de ambas señales. El prototipo de análisis y resintesis de la señal de audio esta modelado básicamente mediante una aplicación de la transformada de Fourier en tiempo discreto DFT para su procesamiento en tiempo real, cuyo algoritmo es llamado STFFT o transformada de Fourier en tiempo corto. La implementación de esta, al igual que la manipulación de los parámetros extraídos a través de su aplicación, se conoce como vocoder de fase. Ahora bien, el sistema en su parte inicial está constituido por un conjunto de canales de análisis y descomposición espectral, que dividen la señal en segmentos de frecuencia y extraen los parámetros que permiten la posterior manipulación y modificación de la información obtenido en dicho proceso. La STFFT es una importante herramienta aplicada en el análisis de señales con características de variación en el tiempo; como la voz humana, para sistemas que trabajan en tiempo real. Este algoritmo; a diferencia de la FFT, representa una manera mucho más adecuada para trabajar señales a través de medios computacionales de manera eficiente, ya que actúa sobre ella en espacios temporales dados por la longitud del segmento de la STFFT y no sobre toda la señal como ocurre con la FFT. Es decir, se toma la señal y se aplica la STFFT, para señales variante en el tiempo, en espacios de tiempos determinados, como una representación más aproximada de las características temporales de la voz. Generalmente la DFT y la FFT solo se usan en aplicaciones que requieran el análisis de señales de entrada estacionarias. La voz es una señal que varia constantemente en instantes de tiempos cortos y por tal razón, tiene un comportamiento y parámetros diferentes en cada espacio temporal de análisis. Es por esto que el procesamiento de dicha señal se debe realizar por segmentos temporales de corta duración. Ahora bien, la implementación de la STFFT viene acompañada de un proceso de suavizado que se aplica a través de la multiplicación del segmento de entrada por una función de ventaneo antes de ser calculado su espectro. Esto se hace con el fin de eliminar los efectos espurios que se generan en el filo de cada segmento temporal de la señal.

  • 44

    2.1.16 Vocoders basados en predicción lineal. Desde finales de la década de 1970, muchos vocoders no musicales se han empleado usando predicción lineal, donde la envolvente espectral de la señal se estima por un filtro digital IIR todo polo. En codificación lineal predictiva, el sistema todo-polos reemplaza el filtro de bancos paso-banda de su predecesor y se usa en el encoder para blanquear la señal (aplanar su espectro) y de nuevo en el decodificador para reasignar la envolvente espectral de la señal de voz original. En contraste con los vocoders realizados usando bancos de filtros, la localización de los picos espectrales está determinada totalmente por la señal objetivo y no necesita ser armónica, es decir, un múltiplo de la frecuencia fundamental. 2.1.17 Aplicaciones musicales. Para las aplicaciones musicales, una fuente de sonidos musicales se usa como portadora; en lugar de extraer la frecuencia fundamental. Por ejemplo, se puede usar el sonido de una guitarra como la entrada del banco de filtros, una técnica popular en la década de 1970. En 1970, los pioneros de la música electrónica Wendy Carlos y Robert Moog desarrollaron el primeros vocoder musical. Un dispositivo de diez bandas inspirado por los diseños de vocoder de Homer Dudley, que recibió el nombre de codificador-decodificador de espectro, y más tarde nominado simplemente como vocoder. La señal portadora es un sintetizador modular de Moog, y se modulaba a partir de la entrada de un micrófono. La salida del vocoder de diez bandas era bastante inteligible, pero necesitaba de un habla especialmente articulada. Algunas mejoras posteriores usan un filtro de frecuencias de paso alto para permitir la producción de un sonido sibilante; esto no es conveniente para la aplicación original de codificación del habla, pero hace que la señal sea mucho más inteligible. El vocoder de Carlos y Moog fue usado en muchas grabaciones, incluyendo la banda sonora de la película La naranja mecánica, dirigida por Stanley Kubrick. A finales de la década de 1970, el vocoder empezó a usarse en música pop, especialmente en la llamada música disco. El grupo Alan Parsons Project usó un vocoder en su primer álbum Tales of Mistery and Imagination. El vocoder ha aparecido en grabaciones pop regularmente desde entonces. Artistas electrónicos experimentales (muchos de ellos formaron parte más tarde del género New Age) también utilizaron ocasionalmente el vocoder. Otros artistas que han hecho del vocoder una parte esencial de sus trabajos son el grupo

  • 45

    alemán Kraftwerk, Herbie Hancock, la banda funk Zapp y Phil Collins, que usó el efecto para acentuar ciertas palabras para dar un efecto dramático en su canción In the Air Tonight.

  • 46

    2.2 MARCO LEGAL O NORMATIVO. 2.2.1 Legislación internacional: organización mundi al de la propiedad intelectual (OMPI). Este organismo agregado a las naciones unidas (su sede se encuentra en Ginebra Suiza) está dedicado a desarrollar un sistema de propiedad intelectual internacional que recompense la creatividad, estimule la innovación y contribuya al desarrollo económico defendiendo también el interés público. 12Para la OMPI. la propiedad intelectual es indispensable para el desarrollo económico, social y cultural de todos los países y esta convicción determina su misión de defensa efectiva de la propiedad intelectual. Para definir la propiedad intelectual se debe relacionar esta con la creación mental, dividiéndola en dos categorías: una de propiedad industrial que incluye patentes, marcas dibujos y modelos industriales, y otra categoría es la de derechos de autor que son los derechos de los artistas intérpretes o ejecutantes sobre sus interpretaciones o ejecuciones.

    2.2.2 Legislación Nacional: Dirección nacional de d erechos de autor. Los derechos de autor en la república de Colombia están regulados por las siguientes normas13

    •••• Artículo 61 de la constitución política de Colombia; •••• Decisión andina 351 de 1993; •••• Código civil, articulo 671; •••• Ley 23 de 1982; •••• Ley 44 de 1993; •••• Ley 599 de 2000 (código penal colombiano), título VIII; •••• Ley 603 de 2000 •••• Decreto 1360 de 1989 •••• Decreto 460 de1995 •••• Decreto 162 de 1996

    12 Organización mundial de la propiedad intelectual(OMPI),http://www.wipo.int/about-

    wipo/es/what_is_wipo.html 13

    Dirección nacional de derechos de autor, calle 28 No 13ª-15 piso 17-teléfono(571)3418177-

    telefax(571)2860813, bogota col.,[email protected]: www.derautor.gov.co

  • 47

    Por otro lado, existen convenios internacionales ratificados por Colombia como el tratado OMPI sobre interpretación y ejecución de fonogramas, suscrito en ginebra (suiza), en 1996 y adherido a la legislación de Colombia mediante la ley 545 de 1999. Para la legislación colombiana de acuerdo a la concertación de la OMPI sobre derecho de autor (1996), el derecho de reproducción tal como se establece en el convenio de Berna y las excepciones permitidas son totalmente aplicables en el entorno digital; en particular a la utilización de obras en forma digital. Este almacenamiento digital de un soporte electrónico de una obra protegida, constituye una reproducción en el sentido del artículo 9 del convenio de Berna. El tratado OMPI sobre derecho de autor ha sido aprobado en Colombia mediante la ley 565 de 2000, y el ámbito internacional ha entrado en vigencia el 6 de marzo de 2002. La dirección nacional de derechos de autor busca fortalecer la debida y adecuada protección de los titulares de derecho de autor. La oficina de registro de la dirección nacional de derechos de autor presta el servicio de registro de soporte lógico o software. Este registro otorga seguridad jurídica luego este registro es declarativo y sirve como documento de prueba pero no obligatorio. Según el criterio normativo autoral desde el mismo momento de la creación nace el derecho de autor y no se necesitan formalidades para la constitución del mismo. 2.2.3 Licencias de software. Las licencias dependen básicamente de las propiedades económicas, de modificación y distribución que se le otorga a un producto de soporte lógico software. Según sus características un soporte lógico puede ser14:

    • Software comercial: es desarrollado mediante un proceso industrial y busca ser vendido por una empresa para la obtención de beneficios materiales donde todo el producto posee un propietario.

    14 http://www.juntadeantalucia.es/averroes/manuales/guadaconceptos.html#GlossG

  • 48

    • Software libre: es aquel que puede ser distribuido, modificado, copiado y usado. El soporte lógico de dominio público no está protegido por copyright por tanto podrían generarse versiones no libres del mismo, pero los software protegidos por copyleft impide a los redistribuidores generar restricciones sobre un software concebido originalmente para ser software libre. Por otro lado el software gratuito no tiene precio comercial pero necesariamente libre ya que un software libre no depende específicamente de un pago.

    • Software semi-libre: este funciona como sistema libre para usuarios independientes, educación o usos sin ánimo de lucro, pero está restringido para usos comerciales o empresariales.

    • Software propietario: su modificación, redistribución y copia está

    prohibida o al menos restringida.

    • Licencia freeware: suele usarse en programas que puede redistribuirse libremente pero no modificarse, entre otras cosas, ya que su código de fuente no está disponible.

    • Licencia shareware: permite ser distribuido pero pierde su licencia con el paso del tiempo una vez ha sido instalado en un sistema operativo.

    • Demo: un programa demo es un software comercial que permite la utilización de una cantidad restringida defunciones hasta que el programa sea comprado para ser aprovechado en su totalidad.

    • Trial: esta licencia permite la utilización del soporte lógico por un

    determinado tiempo. Luego de expirar, el programa regularmente no puede ser instalado nuevamente en la misma estación de trabajo de no ser autorizado mediante un pago.

  • 49

    3 METODOLOGÍA

    3.1 ENFOQUE DE LA INVESTIGACIÓN

    El enfoque de la investigación es empírico-analítico ya que por medio de esta, se pretende transformar las señales sonoras mediante la aplicación de algoritmos matemáticos desarrollados en plataformas de programación para procesamiento de señal digital. Esto implica el estudio teórico y practico de los conceptos y procesos que articulan el área de las matemáticas especiales y con ellas el campo de análisis de las señales y sistemas en tiempo discreto. 3.2 LÍNEA DE INVESTIGACIÓN USB / SUB-LÍNEA DE FACUL TAD / CAMPO TEMÁTICO DEL PROGRAMA

    Este proyecto pertenece a la línea de investigación: Tecnologías actuales y sociedad, ya que por medio de la ella, se busca crear un sistema electrónico útil para las personas que trabajan en producción musical, de cine, televisión y en general, para todo individuo dentro de la sociedad que requiera este tipo de herramientas. La sub-línea de investigación de la facultad es: El procesamiento de señales digitales y/o analógicas. Esto como resultado de la aplicación de procesos de manipulación de señal en tiempo discreto como filtrado, codificación, transmisión, síntesis y demás. El campo de investigación de Ingeniería de Sonido es: Diseño de sistemas de sonido, ya que por medio del uso de herramientas teóricas y prácticas, se alcanzo el desarrollo del diseño y construcción de un dispositivo electrónico de tipo hardware.

  • 50

    3.3 TÉCNICAS DE RECOLECCIÓN DE INFORMACIÓN.

    La recolección de información se fundamenta en la búsqueda de conceptos y procesos tanto teóricos como prácticos en medios gestores de la misma como bibliotecas, internet y manuales de operación de los programas y elementos involucrados en el desarrollo del hardware. 3.4 HIPÓTESIS

    Esta investigación se realiza con el fin de mostrar las ventajas y posibilidades existentes en cuanto a diseño, construcción e implementación de un sistema hardware para el procesamiento digital de señal. El desarrollo de un Vocoder hardware digital de canal, está sujeto a las posibilidades técnicas, teóricas y tecnológicas que ofrecen los sistemas sobre los cuales se articula la estructura general del mismo. Las plataformas de desarrollo y procesamiento software y hardware para sistemas digitales, plantean similitudes, ventajas y desventajas en el diseño, construcción e implementación de los sistemas estructurados a través del uso de estos medios.

  • 51

    3.5 VARIABLES

    3.5.1 Variables independientes.

    • Modelos matemáticos aplicados. • Editores para el diseño de algoritmos y esquemas del sistema. • Comprensión de los procesos necesario para el desarrollo del objetivo

    general del proyecto. • Efectividad y estabilidad del sistema construido.

    3.5.2 Variables dependientes.

    • Funcionalidad del producto. • Aceptación del mismo. • Instrumentos previamente desarrollados en este ámbito. • Tecnologías aplicadas como innovación al desarrollo del medio.

  • 52

    4 DESARROLLO INGENIERIL

    Para el desarrollo de este proyecto, se concibieron dos etapas básicas que enmarcan el desglose general del mismo. En primer lugar se estableció una etapa de investigación y consolidación de conceptos teóricos, técnicos, prácticos y empíricos, de los recursos, criterios y elementos inherentes a la tarea de manipular y procesar la señal sonora, a través de medios digitales. En seguida se realizó la implementación práctica de la información recolectada, a través de la plataforma de desarrollo Matlab, constituyendo de este modo la segunda etapa del proceso. En ella, se diseña el software que gobierna todo el sistema y que de igual modo, se implementa en la interfaz física especializada en el procesamiento de señal digital o DSP. El algoritmo diseñado esta constituido por dos bloques básicos que articulan el sistema en su totalidad, el primero de entrada de señal o etapa de análisis; donde se extraen los parámetros de la señal mediante una aplicación de la transformada discreta de Fourier DFT y el segundo de procesamiento de señal o síntesis; donde se manipulan y procesan los datos obtenidos en la etapa anterior. 4.1 VOCODER DE CANAL El Vocoder de canal es un sistema electrónico que permite la manipulación y procesamiento de señal musical digital en tiempo real. Este dispositivo está constituido por dos etapas fundamentales, una de análisis de las señales de entrada y una de síntesis de las mismas. En la primera, se toma la señal entrante; tanto de la voz humana como la del instrumento, y se descompone en segmentos de frecuencia con el fin de generar un control individual de las componentes de todo el espectro y facilitar la manipulación de ambas señales. El prototipo de análisis y resintesis de la señal de audio esta modelado básicamente mediante una aplicación de la transformada de Fourier en tiempo discreto DFT para su procesamiento en tiempo real, cuyo algoritmo es llamado STFFT o transformada de Fourier en tiempo corto. La implementación de esta, al igual que la manipulación de los parámetros extraídos a través de su aplicación, se conoce como vocoder de fase. Ahora bien, el sistema en su parte inicial está constituido por un conjunto de canales de análisis y descomposición espectral, que dividen la señal en segmentos de frecuencia y extraen los parámetros que permiten la posterior manipulación y modificación de la información obtenido en dicho proceso.

  • 53

    La STFFT es una importante herramienta aplicada en el análisis de señales con características de variación en el tiempo; como la voz humana, para sistemas que trabajan en tiempo real. Este algoritmo; a diferencia de la FFT, representa una manera mucho más adecuada para trabajar señales a través de medios computacionales de manera eficiente, ya que actúa sobre ella en espacios temporales dados por la longitud del segmento de la STFFT y no sobre toda la señal como ocurre con la FFT. Es decir, se toma la señal y se aplica la STFFT, para señales variante en el tiempo, en espacios de tiempos determinados, como una representación más aproximada de las características temporales de la voz. Generalmente la DFT y la FFT solo se usan en aplicaciones que requieran el análisis de señales de entrada estacionarias. La voz es una señal que varia constantemente en instantes de tiempos cortos y por tal razón, tiene un comportamiento y parámetros diferentes en cada espacio temporal de análisis. Es por esto que el procesamiento de dicha señal se debe realizar por segmentos temporales de corta duración. Ahora bien, la implementación de la STFFT viene acompañada de un proceso de suavizado que se aplica a través de la multiplicación del segmento de entrada por una función de ventaneo antes de ser calculado su espectro. Esto se hace con el fin de eliminar los efectos espurios que se generan en el filo de cada segmento temporal de la señal. Este proceso se lo muestra en la siguiente figura.

    Fig. 19 Transformada rápida de Fourier en tiempo corto.

  • 54

    La siguiente figura muestra la implementación del algoritmo antes mencionado, en la plataforma de desarrollo Simulink del programa Matlab.

    Fig. 20 Estructura del canal de análisis.

    4.1.1 Filtros. La unidad básica para el análisis de la señal la constituye cada uno de los canales que conforman el sistema. En cada uno de ellos, en principio, se encuentra el elemento funcional que permite el análisis en tiempo de la señal de entrada; filtros digitales. Con la implementación de un banco de filtros a la entrada del sistema, se busca descomponer la señal en bandas espectrales y efectuar un posterior análisis por anchos de banda individuales, las cuales, sumadas, cubren todo el espectro audible de la voz (180Hz-4000Hz). Los filtros cumplen la función de analizar la señal de entrada en función del tiempo para así efectuar el posterior análisis en función de la frecuencia, mediante la aplicación de la FFT. En la siguiente figura se muestra este proceso:

    Fig. 21 Banco de filtros Vs FFT.

  • 55

    Fig. 22 Modulo de análisis para cada canal.

    Ahora bien, los filtros digitales implementados en el sistema responden al método de diseño formulado para la creación de filtros FIR (Finite Impulse Response). La característica fundamental de este tipo de filtros se encuentra en que ellos trabajan en instantes de tiempo finitos; situación que los hace adecuados para trabajar con señales que varían constantemente en el tiempo. Por otro lado, los filtros son diseñados a través del asistente para la creación y diseño de filtros contenido en el programa Matlab, FDAtools. En este caso las especificaciones del diseño fueron las siguientes:

    • Orden: Para efectos de este sistema el orden del filtro es 40, como se indica en la figura No. 23.

    Fig. 23 Respuesta en frecuencia.

  • 56

    • Tipo de respuesta: Cada canal de análisis y síntesis de la señal, está integrado por 3 filtros pasa-banda y un pasa-bajas.

    • Especificaciones de frecuencia: La frecuencia de muestreo bajo la cual trabaja todo el sistema sobre la plataforma de desarrollo Simulink es de 8000 Hz. En el siguiente cuadro se muestran los valores de frecuencia asignados a cada uno de los filtros por canal.

    Cuadro 1. Valores de las frecuencias de corte de los filtros en Hz.

    Este mismo asistente suministra información gráfica, que permite observar las características del filtro en cuanto a respuesta en frecuencia, fase, magnitud, la figura de polos y ceros y la respuesta impulsiva del mismo. Las siguientes figuras muestran lo antes mencionado:

    Fig. 24 Respuesta en frecuencia.

  • 57

    La figura No. 24 corresponde a la respuesta en magnitud de los filtros pasa-banda del primer canal del Vocoder. La caída es de 20 dB en 1365 Hz, a partir de la frecuencia de corte 1180 Hz.

    Fig. 25 Respuesta de fase.

    La figura anterior muestra la respuesta en fase del mismo filtro pasa-banda. Se observa que su respuesta se mantiene lineal hasta los 1500 Hz. Esta característica permite mantener constante las propiedades iníciales de la señal de entrada durante y después del filtrado, lo cual se traduce, en una baja distorsión del sonido.

    Fig. 26 Respuesta al impulso.

  • 58

    La figura No. 26 muestra una respuesta al impulso del filtro pasa-banda de corta duración, en concordancia con las características de la señal vocal e instrumental de entrada, las cuales varían constantemente en el corto tiempo, es decir, son señales no estacionarias; sus características de magnitud, fase y frecuencia cambian constantemente.

    Fig. 27 Grafica de polos y ceros.

    La figura anterior muestra el esquema de polos y ceros correspondiente al filtro pasa bajas del primer canal de entrada del Vocoder. Los polo están representados por una “x” y los ceros por “0”. Esto representa la función de transferencia del filtro H[w] y las características en cuanto a magnitud, frecuencia y estabilidad el sistema. El filtro pasa-bajas implementado a la salida de cada uno de los canales del Vocoder, tiene las siguientes características de diseño.

    Fig. 28 Respuesta en frecuencia.

  • 59

    La figura No. 28 muestra la respuesta en frecuencia del filtro. Este, es implementado con el objeto de eliminar o al menos reducir componentes espurios de alta frecuencia, generados por la transformación y manipulación de la señal en las etapas anteriores. En otras palabras se pretende eliminar ruido de alta frecuencia que afecta la inteligibilidad de la señal. Dichas componentes espectrales, son parciales y armónicos que aparecen periódicamente en proximidad a la frecuencia de corte del filtro pasa-banda dispuesto a la entrada del canal. En este caso la frecuencia de corte del pasa-bajas esta en 1200 Hz. A partir de esta frecuencia el filtro elimina dichas componentes sin afectar las frecuencias más representativas del sonido. Las siguientes figuras muestran lo antes mencionado:

    Fig. 29 Componente espectral antes y después del filtro pasa-bajas (canal uno).

  • 60

    Las figuras anteriores suministran información correspondiente al primer canal del Vocoder. A continuación se muestra el resultado general con los cuatro canales funcionando.

    Fig. 30 Componente espectral antes del filtrado (cuatro canales).

    Fig. 31 Componente espectral después del filtrado (cuatro canales).

    Estos filtros también son FIR de orden 40 con valores de frecuencias diferentes por cada canal. El cuadro No. 1 muestra estos valores. El comportamientos de estos en cuanto ha fase es igual que en los pasa-banda.

  • 61

    De igual forma se implementó para cada uno de los canales, un ventaneo como función de suavizado de la señal de entrada. Esta ventana es de tipo Hamming y actúa en intervalos cortos de tiempo sobre cada frame de muestras.

    Fig. 32 Función de ventaneo Hamming.

    Fig. 33 Parámetros de análisis de la función de ventaneo.

    La función de ventaneo esta implementada en todos los filtros que hacen parte del Vocoder.

    4.1.2 Extracción y modificación de parámetros. En esta etapa se realiza la manipulación y síntesis de las dos señales involucradas en el proceso de análisis y de posterior modificación de las mismas. El resultado esperado que

  • 62

    arrojó dicho procedimiento, fue la unificación o combinación de los dos sonidos en uno solo representativo, el cual, adopta las características de fase, magnitud y frecuencia de las dos señales involucradas. Para efectos de lo antes mencionado, primero se calcula la parte real e imaginaria de la señal, para así, posteriormente, calcular la magnitud, frecuencia y fase de las mismas. El cálculo matemático se efectuó empleado las ecuaciones indicadas a continuación: Forma rectangular:

    ejΦ = cos Φ + isen Φ

    Forma polar:

    C = p ejΦ

    Donde el coseno es la parte real y el seno la imaginaria.

    Φk(n) = arcg Idk(n) / ck(n) I

    ak(n) = ( c²k(n) + d²k(n) )^ ½ Los espectros de fase y frecuencia de la señal de entrada son extraídos mediante la aplicación de la FFT. Con esto, se obtienen los tres parámetros básicos necesarios para implementar la síntesis de la señal.

  • 63

    La siguiente figura muestra el algoritmo desarrollado para efectuar dicho proceso:

    Fig. 34 Algoritmo de manipulación y modificación de las señales.

    4.1.3 Cálculo de la magnitud, frecuencia y fase de la señal. La figura anterior muestra el algoritmo que permite calcular los parámetros antes mencionados. Posterior a esto, se efectúa la reconstrucción de una señal a partir de las dos señales de entrada, las cuales dan origen a un nuevo sonido que representa las propiedades en cuanto a las variaciones de magnitud de la voz y las componentes de fase y frecuencia del instrumento. Para lograr este proceso de unificación de las señales, se efectúa la convolución en el tiempo de ambas señales; es decir se multiplican los espectros en frecuencia obtenidos a través de la FFT, así: Y(t)= señal de salida X1(t) = voz X2(t) = instrumento Y(t) = X1(t) * X2(t) La convolución en el tiempo equivale a multiplicar las señales en el dominio de la frecuencia.

  • 64

    Y(w)= espectro de la señal de salida X1(w) = espectro de la voz X2(w) =espectro del instrumento Y(w) = X1(w) x X2(w) Por tal razón y como se está trabajando con señales que se encuentran en el dominio de la frecuencia, se multiplican las magnitudes de la voz y el instrumento de la siguiente manera:

    Fig. 35 Algoritmo de manipulación y modificación de las señales.

    Finalmente con los datos arrojados por cálculo del espectro de frecuencia y fase, se convierten dichos parámetros en una representación completa de una señal compleja; es decir, la señal imaginaria es reconstruida y transformada en una compleja. De este modo, se obtiene una sola señal que conserva las características de frecuencia y fase del instrumento, variando su magnitud con la envolvente espectral dada por la señal de voz. 4.1.4 Reconstrucción de la señal. Finalmente se efectúa la transformación de la señal modificada en el dominio de la frecuencia, a una señal representada en el dominio del tiempo.

  • 65

    Esto se logra a través de la aplicación de la transformada inversa de Fourier en tiempo corto (ISTFFT) como se muestra a continuación:

    Fig. 36 Diagrama de bloques del proceso de reconstrucción de señal.

    Fig. 37 Algoritmo completo de un canal del Vocoder.

    Lo expuesto anteriormente se sintetiza a través del siguiente diagrama de bloques, que muestra una visión panorámica de la estructura general del Vocoder:

    Fig. 38 Diagrama de bloques estructura Vocoder.

  • 66

    Adicionalmente, se agrego un filtro pasa-banda a la salida de cada canal que conserva las mismas características que los filtros antes mencionados. Con estos filtros se busca reducir aún más cualquier ruido presente en la señal ya combinada. Todo el algoritmo que representa la estructura general del vocoder es el siguiente:

    Fig. 39 Algoritmo completo de una canal del Vocoder.

    La implementación del banco de filtros es adecuada para reducir el ruido y mejorar la calidad del sonido final generado, ya que no se trabaja directamente sobre todo el espectro, si no por bandas especificas de frecuencia. De este modo se descompone el sonido y el efecto del filtrado es más significativo ya que elimina ruido por banda. Si se utiliza un solo canal para la circulación de la señal, no se puede eliminar adecuadamente las componentes especificas de frecuencia que se constituyen en el ruido presentes en todo el espectro, por tal razón es mucho más sencillo y viable, eliminar estas componentes en segmentos determinados de frecuencia. Para el diseño del vocoder se implementaron cuatro canales como se indica en la siguiente figura, donde cada subsistema contiene el algoritmo desarrollado y explicado anteriormente.

  • 67

    Fig. 40 Diagrama de bloques.

    Fig. 41 Algoritmo Completo desarrollado en Simulink.

    4.2 IMPLEMENTACIÓN DEL ALGORITMO AL HARDWARE DIGITA L Una vez finalizada la etapa del diseño y construcción del algoritmo que gobierna todo el sistema, se continúa con la implementación del mismo sobre la interfaz digital especializada en el procesamiento digital de señales o DSP. El proceso a seguir para integrar el algoritmo a la tarjeta DSP (TMS320C6713 DSK) es el siguiente.

  • 68

    a. Testeo del Hardware Digital. Esta tarea se ejecuto a través del programa 6713 DSK Diagnostics Utility v3.1, como se indica en la figura No. 42.

    Fig. 42 Test.

    Este programa verifica que todas las unidades que hacen parte de la tarjeta estén funcionando adecuadamente; si es así, el programa enciende el led ubicado en el lado izquierdo de cada uno de los parámetros de diagnostico.

    b. Conexión de la tarjeta DSP al ordenador. Para integrar el algoritmo diseñado en Simulink a la tarjeta, se debe establecer la conexión entre el programa gestor de descarga que incluye la DSP y la plataforma de desarrollo Matlab, a través de Simulink. El programa 6713 DSK CCStudio v3.1, es el asistente que permite la conexión y la colocación del algoritmo diseñado en Simulink, sobre el hardware digital.

  • 69

    Entonces, en primer lugar, se debe adicionar al entorno de conexión de Simulink los módulos de soporte para el trabajo con la tarjeta DSP como se muestra en la siguiente figura:

    Fig. 43 Módulos de soporte tarjeta DSP.

    Estos; como todos los módulos o bloques de trabajo de Simulink, se encuentran en la librería del mismo asistente. De esta manera se establece la conexión con el programa gestor de descarga de la DSP. La figura No. 44 indica este proceso.

    Fig. 44 Programa gestor de descarga del algoritmo.

  • 70

    Una vez establecida la conexión entre la tarjeta DSP y Simulink, se descarga el algoritmo en la primera. Para esto se debe anexar antes; al entorno de conexión de Simulink, los módulos para la conversión A/D y D/A de las señales de entrada y salida del sistema. Además, se adiciona otro módulo que contiene un algoritmo que toma las señal stereo de entrada y la divide en dos señales mono. Esto se hace por que en primer lugar, la tarjeta DSP no admite la entrada simultánea de dos señales independientes de audio (Línea y Micrófono) y en segundo lugar, porque el algoritmo creado para el Vocoder solo trabaja con dos señales mono por canal. Entonces, como se dispone de solo un puerto de entrada para trabajar en la tarjeta, es necesario implementar un algoritmo en Simulink que permita dividir la única señal de entrada estéreo, en dos señales mono diferentes; una alberga la voz y la otra contiene el sonido del instrumento. El algoritmo diseñado para cumplir con esta tarea es el siguiente:

    Fig. 45 Algoritmo para la división de la señal stereo.

    La implementación de los convertidores A/D y D/A se muestran en la figura No. 43.

    c. Configuración del programa 6713 DSK CCStudio v3.1. Después de configurar el entorno de conexión en Simulink y de establecer la conexión

  • 71

    con la tarjeta, se configura el programa gestor de descarga de la DSP. Aquí se sincronizan los tiempos de entrada y salida de la señal, entre el algoritmo y la tarjeta. Esto se hace a través de EMIF clock, el cual es un driver contenido en los settings de INIT PLL, del menú GEL. La siguiente figura muestra esta configuración:

    Fig. 46 Configuración EMIF clock.

    Finalmente, una vez configurados ambos sistemas, se descarga el programa de Simulink en el gestor de descarga y simultáneamente en la tarjeta DSP. La figura No. 47 indica este proceso.

    Fig. 47 Carga del algoritmo en DSP.

  • 72

    Ya finalizado el proceso de descarga del algoritmo en la tarjeta DSP, se puede trabajar el programa diseñado, a través del sistema hardware especializado en el procesamiento de señales digitales o DSP.

    4.3 IMPLEMENTACIÓN DE LA INTERFAZ GRÁFICA Después de finalizar el desarrollo e implementación del Vocoder Hardware Digital, se ampliaron los alcances del proyecto con el diseño y creación de una interfaz gráfica que permite la manipulación e interacción de los usuarios, con el algoritmo desarrollado a través de una herramienta software. Ahora bien, el desarrollo de esta interfaz se realizo empleando el asistente para la creación de entornos gráficos GUIDE de Matlab. El programa consta de tres módulos básicos y un control master de volumen, como se indica en la siguiente figura.

    Fig. 48 Interfaz grafica.

  • 73

    • Modulo de audios. En este primer modulo se cargan al Vocoder los sonidos tanto de la voz como del instrumento.

    • Modulo de Reproducción. Aquí se controla los parámetros de reproducción del programa.

    • Ecualizador por canal. En este módulo se efectúa el control

    individual por canal de la amplitud de la señal de salida de todo el sistema. Es decir se controla la amplitud de la señal modificada; por anchos de banda determinados.

    Además, a diferencia del algoritmo que trabaja sobre el hardware, este programa está diseñado para funcionar a una frecuencia de muestreo de 44100 Hz y resolución de 16 bits. Esto se hace con el fin de mejorar la calidad del sonido y gracias a las ventajas que ofrece un ordenador en cuanto a capacidad de procesamiento y memoria de sistema. Las demás características en cuanto a estructura y contenido del algoritmo, son iguales a las especificadas en el programa creado para gobernar la tarjeta DSP. El siguiente es el programa desarrollado en Matlab para implementar la interfaz gráfica.

    • Estructura. Aquí se establecen los valores en los sliders de la interfaz gráfica en 0.5, luego se localiza el sistema creado en Simulink y se abre. En seguida, se ponen los valores de inicio para la ganancia de los canales y el volumen master en Simulink.

    Después se asignamos las variables audio1 y audio2 para referenciar los archivos. Todo esto se hace sobre la función que se ejecuta antes de que se haga visible la interfaz GUI.

  • 74

    % --- Executes just before vocoder_guide is made vi sible. function vocoder_guide_OpeningFcn(hObject, eventdata, handl es, varargin) % This function has contin output args, see OutputF cn. % hObject handle to figure % eventdata reserved - to be defined in a future v ersion of MATLAB % handles structure with handles and user data ( see GUIDATA) % varargin command line arguments to vocoder_guid e (see VARARGIN)

    set(handles.volumen, 'Value' ,0.5); set(handles.canal1, 'Value' ,0.5); set(handles.canal2, 'Value' ,0.5); set(handles.canal3, 'Value' ,0.5); set(handles.canal4, 'Value' ,0.5); find_system( 'Name' , 'phase_vocoderfirguide' ); open_system( 'phase_vocoderfirguide' ); set_param( 'phase_vocoderfirguide/volumen' , 'Gain' , '0.5' ); set_param( 'phase_vocoderfirguide/canal1' , 'Gain' , '0.5' ); set_param( 'phase_vocoderfirguide/canal2' , 'Gain' , '0.5' ); set_param( 'phase_vocoderfirguide/canal3' , 'Gain' , '0.5' ); set_param( 'phase_vocoderfirguide/canal4' , 'Gain' , '0.5' ); audio1=get(handles.cancion, 'String' ); audio2=get(handles.cancion2, 'String' );