ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA



Documentos relacionados
Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i.

TRANSMISION DIGITAL. PCM, Modulación por Codificación de Pulsos

MACROS. Automatizar tareas a través del uso de las macros.

Capitulo 3. Protocolo y grabaciones

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

Cálculo Simbólico también es posible con GeoGebra

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Capitulo I. Introducción

Resumen ÁREA DE FACTURACIÓN::INFORMES::Pedidos Detalle Resumen ÁREA DE

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

LiLa Portal Guía para profesores

Tema 2. Espacios Vectoriales Introducción

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Capítulo 6. Desarrollo del Software

AHORRACOM SOLUCIONES AVANZADAS S.L. Avda. de la Industria 13, Oficina Alcobendas, Madrid.

CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

Última modificación: 1 de agosto de

CENTENARIA Y BENEMÈRITA ESCUELA NORMAL DEL ESTADO DE QUERETARO ANDRES BALVANERA UNIDAD JALPAN SEMINARIO DE ANALISIS Y TRABAJO DOCENTE

Accesibilidad web GUÍA FUNCIONAL

Base de datos en Excel

MANUAL DE AYUDA MODULO TALLAS Y COLORES

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

Aproximación local. Plano tangente. Derivadas parciales.

Características de funciones que son inversas de otras

DEDICATORIA. Edda Almeida Bonilla


Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

4 Pruebas y análisis del software

TRABAJO PRACTICO No 7. MEDICION de DISTORSION EN AMPLIFICADORES DE AUDIO ANALIZADORES DE ESPECTRO DE AUDIO

La afinación correcta de los sonidos en el violín

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

CAPÍTULO 7 7. CONCLUSIONES

Servicio de Informática

Introducción a los sistemas de control

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Elementos requeridos para crearlos (ejemplo: el compilador)

MANUAL PARA EMPRESAS PRÁCTICAS CURRICULARES

❷ Aritmética Binaria Entera

Subespacios vectoriales en R n

Curso Excel Básico - Intermedio

Servicios Educativos Del Estado De Chihuahua Sistema Integral de Presupuestos y Materiales. Indice. Introducción Barra de Herramientas...

Capítulo 3. Análisis y Diseño

La explicación la haré con un ejemplo de cobro por $ más el I.V.A. $16.00

MANUAL DE USUARIO DEL MÓDULO TPV

ANALIZANDO GRAFICADORES

RELACIONES DE RECURRENCIA

CAPÍTULO IV METODOLOGÍA PARA EL CONTROL DE INVENTARIOS. En este capítulo se presenta los pasos que se siguieron para la elaboración de un sistema de

CRM para ipad Manual para Usuario

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

UNIDADES DE ALMACENAMIENTO DE DATOS

Capítulo 5. Cliente-Servidor.

Manual de Introducción a SIMULINK

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

by Tim Tran:

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP

CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO

Comenzando con MATLAB

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

UNIDAD 1. LOS NÚMEROS ENTEROS.

ANÁLISIS DE DATOS NO NUMERICOS

6. DESCRIPCIÓN DEL SOFTWARE

La ventana de Microsoft Excel

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

TEMA 2: Representación de la Información en las computadoras

UNIVERSIDAD DE SALAMANCA

CRM para ipad Manual para Usuario

Tipos de instalaciones

IV. Implantación del sistema.

Cifras significativas e incertidumbre en las mediciones

Plan de mejora de las competencias lectoras en la ESO. PERFECTOS, AMIGOS Y GEMELOS

Introducción a la Teoría del Procesamiento Digital de Señales de Audio

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Tutorial de Subneteo Clase A, B, C - Ejercicios de Subnetting CCNA 1

Guía de uso del Cloud Datacenter de acens

Comparadores UNIDAD V

Reporte inicial. Metodología

Nociones básicas sobre adquisición de señales

Manual del Alumno de la plataforma de e-learning.

Ahorro de energía visualizando páginas Web en dispositivos móviles heterogéneos

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

UNIVERSIDAD TECNICA DEL NORTE

Dale Impulso. Dos) Proyecto Crowd-Funding.

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Segmentación de redes. CCNA 1: módulo 10.

Introducción a la Teoría del Procesamiento Digital de Señales de Audio

Dispositivos de Interacción Mediante Reconocimiento de Voz

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

2) Se ha considerado únicamente la mano de obra, teniéndose en cuenta las horas utilizadas en cada actividad por unidad de página.

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Por otro lado podemos enunciar los objetivos más específicos de nuestro estudio:

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Transcripción:

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA DEPARTAMENTO DE INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE ACÚSTICA SINTETIZADOR DIGITAL PARA LAS NOTAS DE UN VIOLÍN CON BASE EN FILTROS CELOSÍA TESIS Que para obtener el Título de Ingeniero en Comunicaciones y Electrónica Presentan: Ana Karen Calderón Rodríguez José Alberto Mejía Gómez Asesores: Dr. Maximino Peña Guerrero Ing. José de Jesús Negrete Redondo México D.F. MARZO 2012

Resumen Actualmente la información para construir un sintetizador de audio no es de fácil acceso. Programar la entrada y salida de audio de una máquina virtual es dependiente de los fabricantes, rara vez proporcionan información relevante para permitir que personas capaces de comprender estos temas desarrollen aplicaciones y proyectos. Por otra parte la complejidad de los algoritmos para hacer síntesis requiere del dominio de los lenguajes de programación y el procesamiento digital de señales de audio. En este trabajo de tesis se presenta una metodología para la construcción de un sintetizador de las notas de un violín utilizando: grabación en archivo WAV, los algoritmos de coeficientes de predicción lineal LPC (Linear Prediction Code), filtros digitales Celosía (lattice) y generadores de pulsos. Los resultados que se obtienen son: Un sintetizador digital programado en lenguaje C y en MATLAB, se presentan pantallas gráficas con las formas de onda obtenidas durante el desarrollo de las experimentaciones con la señal senoidal y señal de tren de pulsos, la señal final y el archivo WAV resultante. Además se describen los alcances, limitaciones de nuestro sistema y se proponen trabajos futuros. 2

Objetivo Sintetizar las notas de un violín mediante coeficientes de predicción lineal y filtros celosía Justificación Los sintetizadores digitales actuales tienen una programación definida e inalterable. Por lo que cualquier persona con conocimientos básicos en computación y en procesamiento digital de señales no es capaz de entender cómo funcionan, consecuentemente no es capaz de manipular al cien por ciento estos dispositivos o de tomar estos como base para crear su propio sintetizador. Hipótesis Mediante una nota grabada se obtendrá un numero de coeficientes LPC y a partir de estos se realizará la sintetización de dicha nota, obteniendo de un filtro inverso, una nota que sea aproximadamente igual a la original, creando así un sintetizador sencillo en su funcionamiento y capaz de ser manipulable, por cualquier usuario con conocimientos básicos de programación y procesamiento digital de señales. 3

AGRADECIMIENTOS Gracias a Dios por prestarme la hermosa vida que tengo, por darme lo necesario para cumplir esta meta, colocarme en el lugar y en la fecha adecuada para realizarme como profesionista... muchas gracias por todo padre mío. Gracias a mi madre Josefina Rodríguez Magaña, a mi padre Rafael Raúl Calderón Crispín, a mis hermanos Diana, Rafa y Brenda, a toda mi familia, por haber cuidado de mi, enseñarme tantas cosas, por apoyarme en este camino y que gracias a ellos llegue a completar este logro que no es solo por mi esfuerzo, si no también es por el de ellos... los amo profundamente y siempre estaré agradecida con ustedes. Gracias a mi amigo y compañero de tesis Beto, que creyó en mí para realizar este proyecto, y que a lo largo de todo el tiempo que hemos estado juntos me ha dado su amistad incondicional, su paciencia, su apoyo y comprensión... te quiero mucho y de nuevo muchas gracias por todo. Gracias a todos mis amigos, que me ayudaron con sus consejos a llegar hasta donde estoy, que fueron mis maestros, que compartieron conmigo muchos momentos que me hicieron madurar como ser humano, y también que me ayudaron a afrontar días arduos de estudio... los quiero mucho, siempre estarán en mi corazón. 4

Gracias a todos mis maestros, que cada uno de ellos me dejo enseñanzas, que me regalaron su valioso conocimiento y muchos de ellos experiencias de vida, los respeto y admiro profundamente. Gracias en especial a los profesores Maximino Peña Guerrero y José de Jesús Negrete Redondo, por apoyarnos a mi amigo Beto y a mi a completar este proyecto. Gracias por su paciencia y tiempo. Gracias al hombre que ha estado junto a mi muchos años, a mi mejor amigo y novio Tony, que con su apoyo, con su fe en mi todo este tiempo, me dio la fuerza para luchar todos los días, y así poder completar esta meta y muchas otras...muchas gracias amor, tú eres mi mayor fuerza y apoyo. A todos los antes mencionados de nuevo muchas gracias por todo, jamás habría llegado hasta aquí si no fuera por ustedes. Muchas gracias. Atte: Ana Karen Calderón Rodríguez 5

AGRADECIMIENTOS Agradezco infinitamente a mis padres y a mi hermano, que me han apoyado y ayudado durante toda mi vida, que me hayan enseñado que el que persevera alcanza y que siempre hay que mantener los pies en la tierra inclusive si se llega muy alto, que me han inculcado valores que me han ayudado a alcanzar este punto, a su paciencia a lo largo de todos estos años. A mi hermano que siempre tiene un buen consejo de vida y me brinda su apoyo en todo momento, que siempre se preocupa por mi y está atento a todo lo que me pasa, así como yo con él. Muchas gracias a Karen, me siento muy feliz por tener tu amistad, apoyo y paciencia incluso en estos momentos, ya que tuviste que aguantarme durante toda la carrera y en especial al momento de realizar la tesis, gracias por pasar conmigo momentos buenos y malos, y saber que podía contar contigo, que no esperaba llegar hasta aquí contigo pero me alegro mucho de habernos encontrado hasta el final. A mis compañeros y amigos de la escuela ya que pude contar con su amistad durante toda la carrera y me mostraron cosas nuevas y nuevas experiencias con las que pude madurar poco a poco. A mis amigos de toda la vida Cesar, Andrés, Arturo y Álvaro que sin ellos no hubiera podido llegar a ser la persona que soy ahora, con ellos he madurado y enfrentado lo que la vida me ha deparado en estos últimos años y espero que esté con ellos durante muchos años más. 6

A mis profesores que día a día dan lo mejor de sí en el salón de clases y que siempre nos instruyeron y estuvieron al tanto de nuestra formación profesional, mostrándonos su sabiduría y dejándonos experiencias de vida. Sobre todo a mis profesores Maximino Peña Guerrero y José de Jesús Negrete Redondo con su apoyo a realizar este trabajo y por su tiempo y paciencia. Gracias! Atte: José Alberto Mejía Gómez 7

8

Índice general 1. Introducción 13 1.1. Problemática................................... 13 1.2. Propuesta..................................... 15 1.3. Resultados de la propuesta............................ 17 2. Filtros 19 2.1. Filtros Digitales.................................. 20 2.2. Filtros digitales FIR e IIR............................ 21 2.2.1. Filtros de Respuesta finita al Impulso (FIR).............. 21 2.2.2. Filtros de Respuesta Infinita al Impulso (IIR)............. 23 2.3. Ecuación de diferencias.............................. 23 3. Estructuras en Celosía 25 3.1. Estructura..................................... 25 4. Coeficientes de Predicción Lineal (LPC) 29 4.1. Método de autocorrelación y Algoritmo Levinson-Durbin........... 33 9

5. Desarrollo 35 5.1. Programa principal................................ 40 5.2. Programa de vocales en MATLAB........................ 41 6. Pruebas y resultados 45 7. Conclusiones y trabajos futuros 51 7.1. Conclusiones.................................... 51 7.2. Trabajos futuros................................. 53 A. Desarrollo matemático de las fórmulas para los filtros FIR de celosía 55 B. Programa en Matlab vocales 61 C. Funciones del programa en C 67 10

Índice de figuras 2.1. Estructura básica de un filtro de respuesta finita al impulso (FIR)...... 22 2.2. Estructura básica de un filtro de respuesta infinita al impulso (IIR)..... 24 3.1. Estructura de un filtro FIR Celosía....................... 26 3.2. Estructura básica de un filtro FIR Celosía................... 28 4.1. Estructura básica de un predictor lineal hacia delante............. 30 5.1. Violín utilizado en la grabación......................... 36 5.2. Afinador virtual AP Tuner........................... 36 5.3. Ambiente de trabajo de Adobe Audition 3.0.................. 37 5.4. Estructura del programa para el sintetizador de las notas de un violín... 38 5.5. Archivo sintetizado................................ 40 5.6. Vocal A grabada por una mujer......................... 42 5.7. Vocal E grabada por una mujer......................... 43 5.8. Vocal A grabada por un hombre........................ 43 5.9. Vocal E grabada por un hombre........................ 44 11

6.1. Nota grabada................................... 46 6.2. Seno propuesto para la convolución....................... 47 6.3. Resultado del filtro de celosía usando el seno de 440 Hz............ 47 6.4. Señal de tren de pulsos propuesta para la convolución............ 48 6.5. Resultado del filtro de celosía usando el tren de pulsos de 440 Hz...... 48 6.6. Comparación entre la señal de entrada y la señal sintetizada......... 49 6.7. Comparación entre la señal de entrada y la señal sintetizada de la nota Re. 50 A.1. Estructura de celosía............................... 55 12

Capítulo 1 Introducción 1.1. Problemática El sintetizador es un instrumento musical capaz de generar una gran variedad de sonidos complejos. Específicamente el sintetizador está diseñado para generar sonidos, muchos de los cuales no pueden ser creados por ningún otro método. Puede utilizarse como pseudoinstrumento, es decir, como simulador del sonido de determinados instrumentos convencionales o modernos. En el sintetizador se disponen de medios flexibles para controlar los parámetros que definen las características de cualquier sonido que son: tono, timbre e intensidad. Existen dos tipos de sintetizadores, analógicos y digitales; estos pueden utilizar diferentes técnicas de síntesis, la mayoría de sintetizadores comerciales analógicos son muy similares en sus conceptos básicos y difieren solamente por el método mecánico en que se programan para determinar su producción sonora, por sus específicas unidades de procesado, por sus accesorios y por los detalles exactos de sus características. Una propiedad común de todos ellos es que sus uni- 13

dades fundamentales de generación y proceso, son controlables por tensión. La mayoría de estos dispositivos utilizan técnicas de sintetización que pueden variar dependiendo cómo cada fabricante realice el diseño de su producto: síntesis aditiva, substractiva, de modulación de frecuencia, de modelado físico o modulación de fase, son algunas de ellas. La simplificación de los sistemas de cómputo, ha hecho que el hardware sea desplazado poco a poco por el software, en cuanto a los sintetizadores se refiere, es más práctico, eficaz y económico utilizar programas de sintetización, debido a que estos han ido igualando la eficiencia de los sintetizadores tradicionales e incluso la han superado, esto hace que su uso y aplicación sea de fácil acceso a un usuario convencional y pueda realizar proyectos, pero también es una complicación debido a que los sintetizadores no tienen un estándar definido en cuanto a programación se refiere. Las personas con conocimientos básicos en programación tal como estudiantes entre otros, no tienen las bases necesarias para realizar sintetización de audio, no cuentan con el conocimiento que se requiere para crear la estructura básica de un sintetizador que les permita manipular las propiedades del sonido con el que estén trabajando y así poder crear su propio sintetizador o bien, aplicaciones que esten enfocadas al audio digital, o a cualquier área en que se necesite sintetizar audio, ya sea música o voz. Este problema se debe al alto nivel de conocimientos en programación que se requiere para poder entender cómo funcionan los sintetizadores actuales. 14

1.2. Propuesta Los coeficientes de predicción lineal (LPC) son ampliamente utilizados en el procesamiento digital de las señales incluyendo señales de audio, por lo que se utilizarán en la sintetización de una nota de un violín. Un violín es un instrumento musical de cuerda frotada, que pertenece a un grupo de instrumentos del mismo tipo (violín, chelo y viola), tiene su origen aproximadamente en el siglo XV. Todos los miembros de la familia del violín se afinan en quintas; la afinación del violín se realiza: comenzando con la cuerda más delgada, conocida como la primera cuerda del violín, la nota de afinación es Mi 5, la cuerda siguiente se afina en La 4, la tercera cuerda debe estar en Re 4 y la última cuerda, la más gruesa de todas se afina en Sol 3. El violín es un instrumento no temperado, es decir, que a diferencia del piano y la guitarra no cuenta con una guía que indique la posición de las notas musicales en él, en el caso del piano las teclas tienen un color y forma definida, por otra parte, la guitarra tiene los trastes que permiten identificar con rapidez y facilidad las notas. La tesitura del violín va desde Sol 3 hasta Do 8, por lo que todas las partituras del violín se escriben en clave de sol. Si bien cada laudero tiene su estilo distintivo, todos los violines comparten rasgos básicos, en la actualidad se fabrican violines de tamaños diferentes y con la afinación normal se denomina entero y, en talla decreciente, reciben los nombres de 3/4, 1/2 y 1/4. En un principio los violines se apoyaban contra el pecho o el hombro del ejecutante, sin embargo se introdujo el aditamento de la barbada que permite sostener el instrumento con la barbilla sin afectar las vibraciones del violín, ofreciendo al ejecutante mayor libertad de movimiento del brazo y la mano izquierda, facilitando los cambios de posiciones a lo largo del mástil. La 15

nota seleccionada para realizar la sintetización es La 4, y se eligió debido a que es la nota con la que la mayoría de los instrumentos hacen referencia al afinarse. La frecuencia de esta nota es de 440 Hz, y está dentro de la tesitura con la que cuenta el violín. Todos los valores en frecuencia de las notas musicales pueden ser obtenidos mediante la fórmula 12 2 f. El rango de las notas musicales es de diez octavas, cada octava tiene cinco tonos y dos semitonos. El violín tiene un rango de poco más de cuatro octavas. Cada nota es diferente, sin embargo se utilizaran diez coeficientes de predicción lineal tomados de la nota La 4 para mediante un filtro digital, realizar la sintetización de todas las notas que se encuentran en el rango del violín, es decir, mediante los coeficientes de predicción lineal de una sola nota se pretende reproducir cualquier nota del violín. Los filtros digitales que se utilizarán se llaman filtros de celosía (o filtro lattice) y son ampliamente utilizados en muchas aplicaciones de procesamiento de señales digitales. Para obtener las notas musicales sintetizadas, se hará la convolución de la señal resultante del filtro de celosía con un tren de pulsos que tendrá una frecuencia igual a la nota que se desea obtener, es decir para obtener un Sol 3 el tren de pulsos deberá tener una frecuencia igual a 196 Hz. También se hará la convolución de la señal filtrada con un seno de la misma magnitud, esto se efectuará para comparar las señales resultantes y definir cuál de las dos es más parecida a la nota que queremos obtener. Por último, los datos de la señal resultante de la convolución se guardaran en un archivo creado en extensión.wav, para poder ser reproducidos y escuchar la nota sintetizada. 16

1.3. Resultados de la propuesta El resultado de las experimentaciones realizadas llevó al desarrollo de un sintetizador muy básico para computadora enfocado al violín, el cual se basa en el filtrado de una señal analógica, es decir, la nota emitida por el instrumento es procesada mediante la utilización de los filtros celosía, los cuales, utilizan los coeficientes de predicción lineal para dicho propósito. Se realizó la grabación de la nota deseada preferentemente en un lugar apto, tal es el caso del estudio de grabación de la academia de acústica, esto con el propósito de obtener una grabación lo más limpia posible y sin ruido que pudiera afectar los resultados de los experimentos, la grabación que se realizó esta en extensión WAV. Los archivos de extensión WAV son un formato de audio digital que normalmente no comprime datos, desarrollado por Microsoft para almacenar sonidos en una computadora, los archivos en este tipo de formato se graban a 44000 Hz a 16 bits, esto hace que los archivos en este tipo de formato sean muy grandes y provoca que no sean muy famosos en internet, ya que los usuarios prefieren los archivos que sean comprimidos y que pierdan calidad para que ahorren espacio en el almacenamiento de la computadora. El formato fue aceptado como un medio de intercambio por otras plataformas de ordenadores como Macintosh, esto permite a los programadores tener libertad trabajando con archivos de audio modificándolos en diferentes plataformas. Una vez que se obtuvo la grabación de la nota del violín, se utilizó dicho archivo para poder realizar la obtención de los coeficientes de predicción lineal. Básicamente se obtuvieron diez coeficientes de predicción lineal a partir de la nota grabada, para este caso en particular la nota utilizada es La 4 (con frecuencia de 440 Hz). Se pueden obtener más para una mayor precisión en cuanto al 17

timbre y tono al momento de reproducir el sonido que resulte del filtro. Para realizar un filtro celosía es necesario (aparte de contar con los coeficientes de predicción lineal), tener una señal que mediante los procesos matemáticos que utiliza el filtro, formará una nueva señal con las características en este caso en particular, de la nota grabada, es decir la nota La 4. Se realizó la primera prueba con una señal senoidal de amplitud muy pequeña, pero el resultado no fue el deseado debido a que se obtenían variaciones en cuanto a la frecuencia de la nota, que no eran las adecuadas para el resultado esperado, además, la forma de onda de la señal resultante no era parecida a la original, por lo que se propuso un tren de pulsos con frecuencia igual a la nota que se deseaba tener, obteniendo un resultado óptimo y una señal lo suficientemente parecida a la original. Este trabajo se divide de la siguiente manera: en el capítulo dos hablamos acerca de las generalidades de los filtros haciendo hincapié en los filtros digitales FIR e IIR, también se hace mención de la ecuación de diferencias. En el capítulo tres se hace mención de las estructuras de celosía, sus características y la estructura del filtro FIR celosía. En el capítulo cuatro hacemos referencia a los coeficientes de predicción lineal LPC, al método de auto correlación y al algoritmo de Levinson-Durbin. En el capítulo cinco se muestran los pasos que se siguieron para realizar el sintetizador y las herramientas que se utilizaron. El capítulo seis contiene las pruebas que se realizaron con la señal senoidal y la señal de tren de pulsos, junto con los diferentes resultados que se obtuvieron. Para terminar, el capítulo siete presenta las conclusiones a las que se llegó, así como propuestas de mejora del proyecto. 18

Capítulo 2 Filtros Un filtro es un dispositivo capaz de seleccionar una gama de frecuencias que pasan a través de él, son importantes en sistemas de comunicaciones, sistemas de reconocimiento de voz, entre algunas aplicaciones. Estos filtros pueden realizarse de manera analógica o digital. Los filtros analógicos son más baratos y tienen un gran rango dinámico tanto en amplitud como en frecuencia. Son clasificados usualmente dependiendo de las características en dominio de la frecuencia que tengan, como son: pasa-bajos, pasa-altos, pasa-banda, elimina-banda y pasa-todo. En cambio, los filtros digitales son superiores en el nivel de cumplimiento que los analógicos. Se hablará en especial de los filtros digitales y las estructuras que se pueden elaborar con ellos. 19

2.1. Filtros Digitales Los filtros digitales toman en cuenta las propiedades de la señal en tiempo y amplitud, generalmente se utiliza la transformada de Fourier para poder obtener el resultado del proceso o una señal de salida. Los filtros digitales son programables, pueden tener tanto señales analógicas como digitales en la entrada y el mismo tipo de señal en la salida, pero puede variar cualquiera de las características de la señal de acuerdo a las propiedades del filtro. La parte analógica de la señal debe ser previamente muestreada y digitalizada por un convertidor AD (analógico-digital). Los números binarios resultantes de la conversión anterior, que representan valores sucesivos muestreados de la señal de entrada, son transferidos al procesador, que realiza unos cálculos numéricos sobre ellos. Estos cálculos suelen ser multiplicaciones de los valores de entrada por unas constantes y suma de las anteriores multiplicaciones. Si es necesario, los resultados de los cálculos, que representan los valores de una señal filtrada, son obtenidos a través de un convertidor DA (digital-analógico) para convertir la señal a su forma analógica. En general los filtros digitales se expresan de varias formas, dependiendo del parámetro con el que se vaya a trabajar, se puede tomar en función de la frecuencia ω, en base al dominio de z o por el número de muestras de la señal, representado por n. En forma general se expresan de la siguiente manera: Al expresarse en dominio de Z: H(z) = M k=0 b k z k N k=0 a k z k (2.1) 20

Donde: H(z) :Función de transferencia que relaciona la respuesta de la señal de salida con respecto a la de entrada. a k y b k : Son coeficientes que definen al filtro y deben ser calculados para su diseño. Al expresarse con n: Donde: y(n) = N M b k x(n k) a k y(n k) (2.2) k=0 k=1 y(n): Valor de la señal de salida del filtro. a k y b k : Son coeficientes que definen al filtro y deben ser calculados para su diseño. x(n k) y y(n k): Valores anteriores de la señal de entrada y de la señal de salida 2.2. Filtros digitales FIR e IIR Al diseñar filtros de selección de frecuencias, las características de ellos están especificadas en el dominio de la frecuencia en términos de la respuesta de la fase y la magnitud requeridas. En el proceso de diseñado de filtros se determinan los valores causales de filtros FIR o IIR que sean aproximadas a las especificaciones de las frecuencias deseadas 2.2.1. Filtros de Respuesta finita al Impulso (FIR) Los filtros de respuesta finita al impulso (Finite Impulse Response), pertenecen a los sistemas lineales invariantes en el tiempo los cuales al reaccionar ante una señal de un impulso o una señal de longitud finita, tiene una respuesta de términos finitos no nulos, también se 21

les puede llamar filtros no recursivos. Teniendo su estructura como en la Figura 2.1 Figura 2.1: Estructura básica de un filtro de respuesta finita al impulso (FIR) La forma general de un filtro FIR se escribe como sigue: y(n) = M 1 k=0 b k x(n k) (2.3) y(n) = b 0 x(n) + b 1 x(n 1) + b 2 x(n 2) +... + b M 1 x(n M 1) Donde: b k : Son los coeficientes del filtro. M: Es el orden del filtro; en el cual se requieren M-1 lugares de memoria para almacenar las M-1 entradas. Al analizar y aplicar la transformada Z en ambos lados de la ecuación obtenemos: Y (z) = b 0 X(z) + b 1 z 1 X(z) +... + b M 1 z (M 1) X(z) Factorizando X(z) en el lado derecho de la ecuación y diviendo ambos lados entre X(z), se obtiene la ecuación de transferencia que describe a un filtro FIR: H(z) = Y (z) X(z) = b 0 + b 1 z 1 +... + b M 1 z (M 1) (2.4) 22

Este tipo de filtros presentan tres tipos de estructuras que son: estructura de forma directa, estructura de cascada y estructura de celosía (lattice).de las cuales la que utilizaremos sera las estructura de celosía. 2.2.2. Filtros de Respuesta Infinita al Impulso (IIR) Como los filtros FIR, los filtros IIR también pertenecen a los sistemas lineales invariantes en el tiempo, los cuales al interactuar con una señal de entrada de pulso unitario, la señal tendrá un número infinito de términos no nulos, esto quiere decir que no vuelve al estado de reposo. Para la salida se obtienen valores actuales y anteriores de la señal, además, valores de salida anteriores que se almacenan en la memoria, realimentados a la entrada. También se les llama filtros digitales recursivos, y pueden tener el orden máximo de los valores de P y Q, su expresión es: P Q y(n) = b i x(n i) a j y(n j) (2.5) i=0 j=1 La estructura básica de los filtros IIR es como se muestra en la Figura 2.2. Estos filtros poseen ciertas características, como por ejemplo, tienen mejor atenuación que los filtros FIR, con una respuesta de fase no lineal pero posee una inestabilidad 2.3. Ecuación de diferencias Un sistema lineal invariante en el tiempo puede ser descrito mediante una ecuación de diferencias, la cual tiene una estructura general de la siguiente manera: y(n) + a 1 y(n 1) + + a N y(n N) = b 0 x(n) + b 1 x(n 1) + + b M x(n M) 23

Figura 2.2: Estructura básica de un filtro de respuesta infinita al impulso (IIR) Donde: a 1... a n y b 0, b 1... b M : son los coeficientes de la ecuación de diferencias. La ecuación también puede escribirse como a continuación se presenta: y(n) = a 1 y(n 1) a N y(n N) + b 0 x(n) + b 1 x(n 1) + + b M x(n M) y(n) = Dónde: N M a i y(n i) + b j x(n j) (2.6) i=1 y(n): Salida que depende de las muestras de salida anteriores y(n-1),...,y(n-n) x(n): Señal de entrada. x(n-1),...,x(n-n): Muestras pasadas de la señal de entrada. j=0 24

Capítulo 3 Estructuras en Celosía En el ámbito del procesado digital de señales, es común utilizar un tipo de estructura de filtro que pueda analizar y modelar la señal digital, en base a sus características anteriores o a la retroalimentación de su salida, estas ventajas en el manejo de las señales se dan en los filtros celosía o lattice. Este filtro utiliza los coeficientes de reflexión y el análisis de predicción hacia adelante y hacia atrás para analizar la señal que pasa a través de él. Estas estructuras son difíciles de discutir debido al extenso antecedente necesario para entender su motivación y sus propiedades. 3.1. Estructura Todas las estructuras básicas de los sistemas FIR e IIR se han desarrollado, ya sea directamente desde la función del sistema o desde la ecuación de diferencias de la entrada/salida. Una aproximación útil es el desarrollo de estructuras de filtros digitales, que son análogos 25

a las estructuras de filtros analógicos que tienen ciertas propiedades deseables. Una clase de estructura interesante es la llamada estructura de celosía o lattice, la cual está motivada por la teoría del modelo auto regresivo de la señal. Nuestra aproximación, será describir la estructura como una gráfica de flujo, después manipularla y analizarla con la transformada Z para observar las propiedades de la estructura. En la Figura 3.1 se muestra la gráfica de flujo de N-ésimo orden de un sistema lattice FIR. Figura 3.1: Estructura de un filtro FIR Celosía Las ecuaciones de diferencias representadas por esta conexión son: e 0 = ẽ 0 [n] = x [n] e i [n] = e i 1 [n] k i ẽ i 1 [n 1] i = 1, 2,..., N ẽ i [n] = k i e i 1 [n 1] + ẽ i 1 [n] i = 1, 2,..., N y [n] = e N [n] Para ver que ésta es una útil e interesante estructura, debemos entender sus propiedades. Primero, reconocer que este es un sistema de filtro FIR, específicamente en la Figura 3.1, el flujo de la señal es de izquierda a derecha, dado que no hay curvas, la respuesta al impulso tiene longitud finita, si la entrada es x [n] = δ [n], este impulso se propagará inmediatamente 26

a la salida a lo largo de la línea superior con ganancia unitaria. Todos los otros caminos de la entrada a la salida pasan a través de al menos un elemento de retardo, por lo tanto h [0] = 1. Un impulso en la entrada también se propaga a la salida a través de la línea inferior, encontrando N elementos de retardo y una ganancia final de k N, por lo tanto h [N] = k N. Todos los demás caminos desde la entrada a la salida viajan en zig-zag entre las líneas superior e inferior. Por lo tanto, cada uno de estos caminos pasa a través de al menos un elemento de retardo y a lo mucho (N 1) elementos de retardo. Por consiguiente, los valores de la respuesta al impulso para 0 < n < N, son determinados por la sumatoria de productos de las ki s. De esta manera, concluimos que la función del sistema que relaciona Y (z) y X(z) es de la forma: H(z) = Y (z) [ X(z) = A(z) = 1 n ] a m z m m=1 (3.1) H(z) es un polinomio de orden N. El primer coeficiente es uno porque el único camino de la entrada a la salida que no tiene retardo alguno es la línea de la parte superior de la estructura, y la ganancia a lo largo de toda la línea es la unidad. La estructura de la Figura 3.1 es llamada red lattice o red celosía, debido a su ordenada estructura formada por secciones elementales en cascada de la forma general que se muestra en la Figura 3.2. Los coeficientes ki son referidos a los parámetros k o coeficientes de reflexión. El método normal para definir los sistemas FIR es por los coeficientes de respuesta al impulso, que por la ecuación H(z) son: 1 para n = 0 h[n] = a n para n = 1, 2,..., N, 0 de otra forma 27

Figura 3.2: Estructura básica de un filtro FIR Celosía Si esta estructura va a ser útil, se debe de obtener la relación entre los parámetros k y los coeficientes de la respuesta al impulso. Equivalentemente si podemos encontrar la función del sistema de la red lattice, también encontramos la respuesta al impulso. Esto se puede hacer mediante la explotación de la naturaleza repetitiva de las ecuaciones de diferencia, que definen la red para expresar A(z) en términos de las funciones de sistema. y A i (z) = E [ i(z) E 0 (z) = 1 n m=1 a (i) m z m ] Ã i (z) = E i(z) Ẽ 0 (z) Con esto comienza el análisis de la red lattice en el dominio de Z, el desarrollo matemático para encontrar la ecuación característica del filtro se encuentra en el Apéndice A de este trabajo. 28

Capítulo 4 Coeficientes de Predicción Lineal (LPC) La codificación de predicción lineal (Linear Prediction Coding), es un método ampliamente usado en el procesamiento digital de las señales, especialmente en la implementación del audio digital. Al modelar la voz en base a un modelo matemático se llega a una ecuación de diferencias, también llamado Modelo Auto-Regresivo, que se obtiene asumiendo que cada muestra de la señal de voz está estrechamente relacionada con las muestras anteriores, de manera que el valor presente de la señal se puede obtener como una combinación lineal de, por ejemplo, p muestras anteriores, es decir: p x(n) = a p (k) x(n k) (4.1) k=1 29

Donde: x: Valor lineal predicho. Esto es un paso hacia adelante de predicción lineal, que forma la predicción del valor x por la combinación lineal de sus valores pasados x(n-1),x(n-2),...,x(np). a p (k): Valores de la combinación lineal también llamados coeficientes de predicción del predictor lineal de un paso hacia delante de orden p. Figura 4.1: Estructura básica de un predictor lineal hacia delante El signo negativo en la definición de x(n) es una conveniencia matemática y está de acuerdo con la práctica habitual en la literatura técnica. La diferencia entre el valor x(n) y el valor predicho x(n) es llamada la función del error de predicción f p (n) = x(n) x(n) p f p (n) = x(n) + a p (k)x(n k) k=1 Las ventajas que presenta dicho método son las siguientes: los coeficientes presentan un modelo adecuado de la señal de voz y sus parámetros se ajustan a las características 30

del tracto vocal, los parámetros que se obtienen mediante la predicción lineal generan un espectro suavizado que proporciona la información más representativa de la voz, presenta sencillez al momento de realizarlo en computadora debido a la rapidez de los algoritmos utilizados. El concepto se basa en la minimización del error producido al extrapolar el valor de una muestra de voz x(n), partiendo de la información proporcionada por las k muestras anteriores x(n 1), x(n 2),... x(n k), para ello se utilizará métodos lineales: x(n) = k a i x(n i) i=1 Para calcular los coeficientes a i minimizando el error, se aplica mínimos cuadrados. En primer lugar se forma el error cuadrático medio en el intervalo de n que se desea considerar (de un máximo de N muestras): L = n e 2 (n) = x(n) k a i x(n i) i=1 Para obtener el valor mínimo de L, se deriva respecto a cada una de las variables a j 1 j k. L a j = 0 1 n k L a j = a j n [ x(n) k 2 a i x(n i)] = 0 i=1 L a j = n a j [ x(n) k 2 a i x(n i)] = 0 i=1 31

L a j = n 2 [ x(n) a j k i=1 ] [ a i x(n i) x(n) k i=1 ] a i x(n i) = 0 L a j = 2 n x(n j) [ x(n) k i=1 ] a i x(n i) = 2 n x(n j) e(n) = 0 L a j = n x(n j) e(n) = 0 1 j k La expresión anterior se puede desarrollar como: x(n j) n [ x(n) k i=1 ] a i x(n i) = x(n j) x(n) n k a i n i=1 x(n j) x(n i) = C j0 k a i C ji i=1 donde se ha definido: C ji = n x(n j) x(n i) 32

4.1. Método de autocorrelación y Algoritmo Levinson- Durbin Una manera sencilla de definir los límites de n en el sumatorio, es suponer que el valor de las muestras de voz se anula fuera del intervalo 0 n N 1. Lo que es equivalente a aplicar una ventana rectangular en el intervalo considerado, esto es: x(n i) x(n j) = n n x(n) x(n + i j ) = r i j (4.2) Por lo que: C ij = C ji = r i j, donde los r i j son los coeficientes de correlación de la matriz de autocorrelación. Las propiedades de la matriz son su simetría y todos los elementos en diagonal son iguales. Esto la convierte en una matriz tipo Toeplitz k ( ) j r n i a i = r n (j), 1 j k i=1 Expresado en forma matricial: r n (0) r n (1) r n (2) r n (k 1) a 1 r n (1) r n (1) r n (0) r n (1) r n (k 2) a 2 r n (2) r n (2) r n (1) r n (0) r n (k 3) a 3 = r n (3)......... r n (k 1) r n (k 2) r n (k 3) r n (0) r n (k) a k 33

Esta matriz puede ser resuelta aplicando diferentes métodos, entre los más conocidos está el algoritmo de Levinson-Durbin, el cual se expresa mediante las siguientes fórmulas: L (0) = r(0) a (i) i = r(i) ( ) M 1 i j=1 a(i 1) j r j, 1 i k E (i 1) a (i) j = a (i 1) j a (i) i a (i 1) (i j) L (i) = (1 ( a i ) 2) L (i 1) En otras palabras se puede decir que es un algoritmo del álgebra lineal con el cual podemos calcular en forma recursiva la solución de una ecuación que involucra una matriz de Toeplitz. Usa el método de autocorrelación para calcular los parametros de predicción lineal para un segmento aleatorio de la señal. Los índices entre paréntesis indican la iteración actual o anterior, los elementos a (i) i se denominan coeficientes de Correlación Parcial o PARCOR. 34

Capítulo 5 Desarrollo Para realizar el sintetizador de las notas de un violín, se necesitó grabar una nota que estuviera dentro de la tesitura del mismo. La nota seleccionada fue La 4 (con un valor en frecuencia de 440 Hz), esto debido a que las orquestas y la mayoría de los músicos toman esta nota como referencia a la hora de afinar sus instrumentos. El violín que se utilizó fue uno comercial de tamaño 4/4 como el de la Figura 5.1. El lugar en el que se efectuó la grabación de la nota fue el estudio de grabación de la academia de Acústica de la E.S.I.M.E. plantel Zacatenco del I.P.N., esto debido a que a diferencia de otros lugares, tiene propiedadesque favorecen a una buena grabación, como el ruido de fondo (48 dba). Se grabó a 16 bits y con una frecuencia de muestreo de 44100 muestras/s en extensión WAV. El ejecutante verificó su afinación mediante el programa Ap Tuner (Figura 5.2), que ayuda a afinar cualquier instrumento analizando las notas provenientes del micrófono de la computadora. 35

Figura 5.1: Violín utilizado en la grabación Figura 5.2: Afinador virtual AP Tuner Así, el ejecutante grabo 10 segundos de la nota y mediante el programa Adobe Audition 3.0 (programa orientado especialmente a la edición profesional de audio, Figura 5.3), se realizó la extracción de un segundo y se guardo en formato WAV también. Una vez guardada la nota de un segundo en extensión WAV, se realizó la programación para procesarla en el lenguaje C y la estructuración del programa es como se muestra en la Figura 5.4: 36

Figura 5.3: Ambiente de trabajo de Adobe Audition 3.0 La función GETDBLW contenida en la librería kwingcc.lib, permitió la extracción de los datos del archivo WAV en donde se encontraba guardada la nota La 4 y los guardo en un espacio de memoria, cada uno de los datos de la nota La 4 se encuentran listos para utilizarse por el programa con esta función. La nota grabada se normalizó mediante la función GETFAC, esta normalización es para que la señal se encuentre en un nivel de amplitud entre 1 y -1, después de la señal normalizada se obtuvieron los coeficientes de predicción lineal (LPC), estos son los que nos mostrarán el formante de la señal de entrada con unos cuantos coeficientes, mediante la fórmula: 37

Figura 5.4: Estructura del programa para el sintetizador de las notas de un violín Donde: a (i) i = a (i) i = Coeficiente de predicción lineal. r=coeficiente de reflexión E=Error [ r(i) M 1 j=1 ] a (i 1) j r( i j ) E (i 1) (5.1) 38

Con la función GETFLPC se obtuvieron diez coeficientes de predicción lineal. Para la realización del filtro de celosía se necesitó una señal que convolucionara con los coeficientes. La primera señal que se propuso fue un seno de 440Hz, sin embargo la señal de salida no fue la esperada por lo que se optó por crear un tren de pulsos con la misma frecuencia, y la función que se encarga de esto se llama pulsos, que se encuentra en el archivo FUNPUL. Esta función permite crear el tren de pulsos mediante un seno bajo ciertas condiciones en las cuales a partir de que la señal de seno pase por cero y se encuentre en su parte positiva, sea un pulso de 0.5, y sea cero en otra situación. Teniendo los coeficientes de predicción lineal y el tren de pulsos, se mandó llamar a la función GETORG, esta función realiza el filtrado mediante la fórmula: y(n) = N N b 0 x(k) a k y(n k) n = 1, 2, 3... N (5.2) k=1 k=2 Donde: y(n) :Valor de la señal de salida del filtro de celosía. a k :Coeficientes de predicción lineal (LPC) x(k):señal tren de pulsos N:Número de datos La función GENWAV, creó un archivo de sonido con los valores resultantes del filtro de celosía con extensión WAV, y con el nombre de sintla4 (Figura 5.5) 39

5.1. Programa principal Figura 5.5: Archivo sintetizado //++++++++++++++++++++DECLARACION DE LIBRERIAS+++++++++++++++++++++++ #include<stdio.h> #include<conio.h> #include<math.h> #include<dos.h> #include<stdlib.h> #include<malloc.h> //+++++++++++++++++++ DECLARACION DE MACROS++++++++++++++++ #define NDATOS 44100 #define NYQUIST 44100 //+++++++++++++++++++++PROTOTIPOS DE LAS FUNCIONES+++++++++++++++++ double *getdblw(char *); double *getfac(int, double const *, int); double *getflpc(double const*); double *pulsos(int); double *getorg(int, double *, double *); int genwav(double,double, char *,double *); //***********************INICIO DEL PROGRAMA PRINCIPAL(MAIN)************** int main() { //++++++++++++++++++++DECLARACION DE VARIABLES++++++++++++++++++ double *x,*ac,*lpc,*pul,*y; int i; //PASO 1: OBTENCIÓN DE LA NOTA LA4 MEDIANTE LA FUNCIÓN GETDBLW x=getdblw("la4tesis.wav"); 40

//PASO 2: NORMALIZAR Y OBTENER LPC S MEDIANTE FUNCIÓN GETFAC Y GETFLPC ac=getfac(ndatos,x,ndatos-1); lpc=getflpc(ac); //Paso 3: CREACIÓN pul=pulsos(ndatos); DEL TREN DE PULSOS SENOLA //Paso 4.- FILTRADO DE LA SE~NAL Y= getorg(ndatos,lpc,pul); //Paso 5: GENERACIÓN DEL ARCHIVO WAV genwav(ndatos,nyquist, "sintla4.wav",y); return(0); //Liberación de memoria free(x); free(ac); free(lpc); free(pul); free(y); } 5.2. Programa de vocales en MATLAB Para realizar pruebas con señales de voz mas complejas, como por ejemplo el habla humana, se realizó un programa en Matlab para poder sintetizar las vocales con la voz de una mujer y un hombre. Losprocedimientos que se llevan a cabo son los mismos que con la nota de violín. Primero, se realiza el llamado de la nota de la vocal para que Matlab la pueda procesar, despues se realiza el llamado de la función para poder determinar los coeficientesde predicción lineal LPC, de igual manera, se realiza aparte una señal senoidal con la cual se va a realizar la convolución con la señal de entrada en el filtro celosía, el procesado que se realiza para grabarlo en un formato WAV y poder reproducirlo. 41

Figura 5.6: Vocal A grabada por una mujer El resultado se muestra como sigue en las siguientes figuras: La Figura 5.6 muestra la señal de entrada de la vocal A hecha por una mujer y su resultado al ser sintetizada. También se muestra la señal de la vocal E en la Figura 5.7 Así como se hizo grabación de la voz de una mujer también se grabó lavoz de un hombre, la Figura 5.8 y la Figura 5.9 muestra la vocal A original y sintetizada grabada por un hombre. 42

Figura 5.7: Vocal E grabada por una mujer Figura 5.8: Vocal A grabada por un hombre 43

Figura 5.9: Vocal E grabada por un hombre 44

Capítulo 6 Pruebas y resultados Para crear el programa en el lenguaje C, se realizó antes un programa en Matlab, para poder entender mejor como debía ser la estructura del programa en C. Matlab es un software matemático que tiene su propio lenguaje de programación, sin embargo a diferencia de C, en este ambiente es más fácil realizar gráficas. Es por esta razón que se utilizó Matlab para ver si los resultados que se obtenían eran buenos y así empezar la programación en C. Primero se guardó y graficó el archivo de la nota grabada para poder visualizarla (Figura 6.1). [y, Fs] = wavread( la41seg.wav ); Dónde: y: Variable donde quedaron guardados los valores de la grabación de la nota. Fs: Frecuencia de muestreo equivalente a 44100 muestras/seg. Se seleccionó solo 256 muestras para tener una mejor visualización de la señal. 45

Figura 6.1: Nota grabada Una de las ventajas que ofrece Matlab, es la de dar automáticamente los coeficientes de predicción lineal mediante la instrucción: [a1,er]=lpc(y,10); Donde: y: es la señal de entrada, es decir los valores de la nota grabada 10: Número de coeficientes que entregara la instrucción lpc a1: Vector en el que se guardan los coeficientes de predicción lineal er: Señal de error Con estos coeficientes de predicción lineal, se realizó el filtrado, sin embargo se necesitó una señal que es la que se va a convolucionar con estos coeficientes. Por lo que se propuso una señal senoidal con la misma frecuencia que tiene la nota grabada, es decir 440 Hz. Para realizar el filtro de celosía se utilizaron dos funciones dir2ladr y ladrfilt [11] 46

Figura 6.2: Seno propuesto para la convolución Figura 6.3: Resultado del filtro de celosía usando el seno de 440 Hz Con estas funciones se realizó el filtro de celosía usando los LPC y la señal de seno de 440 Hz, la señal de salida que se obtuvo fue la Figura 6.3. Esta señal no cuenta con las características propias de la señal original grabada con el violín, por lo tanto esta señal sintetizada se descartó. Se propuso una señal tren de pulsos que tuviera la frecuencia igual a la de La 4 como se observa en la Figura 6.4 Al igual que con la señal anterior de seno, se realizó el filtro de celosía usando los LPC y la señal de tren de pulsos con frecuencia de 440 Hz, la señal de salida que se obtuvo fue la Figura 6.5. 47

Figura 6.4: Señal de tren de pulsos propuesta para la convolución Figura 6.5: Resultado del filtro de celosía usando el tren de pulsos de 440 Hz La señal de salida si bien no es idéntica a la señal original, las características que tiene si lo son, y se acercan más a comparación de la señal de salida con el seno de 440 Hz (Figura 6.6),por lo tanto podemos decir que esta señal final es una señal sintetizada realizada en el lenguaje Matlab. Para comprobar auditivamente el parecido de la señal sintetizada y la señal original, en Matlab se utilizó la función sound, que nos permite reproducir un archivo de sonido en este caso la señal sintetizada, con una frecuencia de muestreo de 44100 muestras/s. sound(sintetizacion,fs); Al momento de reproducir la señal, se utilizó el afinador Ap Tuner para observar cual fue la nota que daba la señal, y efectivamente la nota que reprodujo la señal sintetizada fue un 48

Figura 6.6: Comparación entre la señal de entrada y la señal sintetizada La 4, sin embargo no sonó idénticamente a la señal de un violín sino más bien era un tono de La 4 con un sonido muy electrónico, esto se le atribuye a la falta de armónicos de la nota, es decir que esta nota no cuenta con los armónicos necesarios para que el oído pudiera reconocer este sonido sintetizado como una nota emitida por un violín, sin embargo el sonido que emite la nota sintetizada no es del todo mala debido a que cuenta con las características de la nota grabada que es lo que se pretendía obtener. No obstante, se necesitó determinar si estos coeficientes de predicción lineal también nos podían crear diferentes notas, es decir, si era posible que con las características de la nota La 4 almacenadas en los coeficientes de predicción lineal se pudiera crear cualquier nota del violín que estuviera dentro de su tesitura. Por lo que se modificó el tren de pulsos, y se 49

Figura 6.7: Comparación entre la señal de entrada y la señal sintetizada de la nota Re seleccionó otra nota al azar, esta nota fue la de Re 5, con una frecuencia de 587,33Hz. Esta nueva frecuencia se colocó en el tren de pulsos y se ejecutó de nuevo el filtro de celosía, obteniendo una nueva señal sintetizada pero ahora para la nota Re 5 (Figura 6.7). Al escuchar la nota sintetizada, y analizarla con el afinador Ap Tuner, se obtuvo la nota Re 5, por lo tanto al modificar la frecuencia del tren de pulsos, se modifica también el valor de la nota sintetizada final, pero teniendo las características de una nota de violín. Ya verificado el programa en Matlab, se realizó el programa en C (véase Desarrollo), sin embargo para verificar que los coeficientes de predicción lineal que se utilizaron en Matlab funcionaran de manera correcta, se efectuó un programa que sintetiza las vocales emitidas por un hombre y una mujer utilizando los mismos principios para sintetizar la nota de un violín (véase apéndice B, Programa en Matlab vocales). 50

Capítulo 7 Conclusiones y trabajos futuros 7.1. Conclusiones El presente trabajo muestra un sintetizador elemental para las notas de un violín, el cual utiliza coeficientes de predicción lineal y filtros celosía. Los coeficientes de predicción lineal son capaces de tomar las características elementales de una señal analógica, de manera digital. Por lo que es posible realizar la reproducción de una nota de violín mediante la utilización de coeficientes de predicción lineal, sin embargo esta sintetización se hace de una manera muy elemental, es decir, solamente nos da la frecuencia fundamental de la nota. Si el número de coeficientes de predicción lineal es mayor a diez se tendrá una mejor precisión, por lo que permite tener una señal sintetizada más parecida a la original. Con este trabajo se logró realizar la sintetización de cualquier nota de violín utilizando los mismos coeficientes de predicción lineal obtenidos de la nota La 4, que era lo que se buscaba, y con esto tener un método sencillo de sintetización digital capaz de ser manipulado y com- 51

prendido por cualquier usuario con conocimientos de programación y procesamiento digital de señales básicos. Este trabajo aporta a todos los interesados en sintetización digital las bases para realizar un sintetizador sencillo, si bien orientado a las notas del violín, tiene la facilidad de ser manipulable para cambiar los parámetros en su programación, algo que no se puede realizar con los sintetizadores comerciales, los cuales ya tienen definida su programación y es inalterable. Una de las desventajas del sintetizador presentado en este trabajo es que solo toma la frecuencia fundamental de la nota, además que se tiene que ir cambiando manualmente la frecuencia cada vez que se quiera obtener una nota nueva, también el timbre de la nota sintetizada es muy digital, es decir no tiene el timbre exacto de un violín, sin embargo aumentando el número de coeficientes de predicción lineal se obtiene un sonido un poco más parecido al original aunque no el mismo. 52

7.2. Trabajos futuros Debido a que los programas utilizados para la sintetización se realizaron en C y Matlab, el usuario tiene la ventaja de manipular si tiene los conocimientos necesarios, todas las variables de los programas, ya sea la frecuencia que desee sintetizar y ponerle el nombre al archivo WAV que resulta del programa. Una mejora a este trabajo, puede ser la introducción de armónicos a la nota sintetizada, se podría realizar otro programa para identificar la nota que el usuario desee y se cambie automáticamente sin necesidad de entrar al entorno en C. En el apéndice se tiene el programa de sintetización de vocales, el cual puede ser referencia para los usuarios en futuras aplicaciones en sintetización de voz, ya sea en aplicaciones en las cuales se necesite la detección de ciertas palabras, o identificar la voz de alguna persona, activar algún sistema de seguridad etc..., el apéndice de programa en Matlab vocales sirve como base para futuros trabajos de sintetización de voz. Una de las ventajas de la programación en C, es que puede servir como base para realizar la programación en otro ambiente de programación, ya sea Java, o lenguaje ensamblador, y se pueden realizar aplicaciones para dispositivos móviles tales como ipod y celulares, con ambientes gráficos sencillos y de fácil entendimiento, o también sirve para programarse en pics y realizar un sintetizador portátil. 53

54

Apéndice A Desarrollo matemático de las fórmulas para los filtros FIR de celosía Figura A.1: Estructura de celosía Teniendo la estructura del filtro de celosía podemos obtener las siguientes ecuaciones: e 0 [n] = ẽ 0 [n] = x [n] (A.1) e 1 [n] = e 0 [n] K 1 ẽ 0 [n 1] e i [n] = e i 1 [n] K i ẽ i 1 [n 1] ẽ 1 [n] = K 1 e 0 [n] + ẽ 0 [n 1] ẽ i [n] = K i e i 1 [n] + ẽ i 1 [n 1] 55

y [n] = e N [n] Si lo pasamos al dominio de z se obtiene: E 0 (z) = Ẽ0(z) = X(z) (A.2) E 1 (z) = E 0 (z) K 1 Ẽ 0 (z)z 1 E i (z) = E i 1 (z) K i Ẽ i 1 (z)z 1 i = 1, 2,..., N Ẽ 1 (z) = K 1 E 0 (z) + Ẽ0(z)z 1 Ẽ i (z) = K i E i 1 (z) + Ẽi 1(z)z 1 i = 1, 2,..., N Se tiene que: A i (z) = E [ i(z) E 0 (z) = 1 i m=1 a (i) m z m ] (A.3) A patir de la ecuación número dos se obtiene que: E 1 (z) = E 0 (z) K 1 Ẽ 0 (z)z 1 = (1 K 1 z 1 )E 0 (z) = (1 K 1 z 1 )X(z) Por lo tanto: A 1 (z) = E 1(z) X(z) = (1 K 1z 1 ) Haciendo lo mismo para Ẽ1(z) se tiene: Ẽ 1 (z) = K 1 E 0 (z) + Ẽ0(z)z 1 = ( K 1 + z 1 )E 0 (z) = ( K 1 + z 1 )X(z) Por lo tanto: Ã 1 (z) = Ẽ1(z) X(z) = ( K 1 + z 1 ) Para poder generalizar los valores de A i y Ãi, obtenemos el valor de E 2 utilizando la fórmula de E i (z). E 2 (z) = E 1 (z) K 2 Ẽ 1 (z)z 1 56