La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Robot Bailón Desarrollado por: Jesús López Méndez Valerio Rodríguez Robledo.

Presentaciones similares


Presentación del tema: "Robot Bailón Desarrollado por: Jesús López Méndez Valerio Rodríguez Robledo."— Transcripción de la presentación:

1 Robot Bailón Desarrollado por: Jesús López Méndez Valerio Rodríguez Robledo

2 Objetivos El propósito de esta práctica es desarrollar un sistema capaz de interpretar una melodía y tomar decisiones de acuerdo a sus características (ritmo, notas,...).El propósito de esta práctica es desarrollar un sistema capaz de interpretar una melodía y tomar decisiones de acuerdo a sus características (ritmo, notas,...). Dicho sistema será desarrollado en tres módulos o partes:Dicho sistema será desarrollado en tres módulos o partes:

3 Primer módulo Un primer módulo que se encarga de procesar la melodía. Detecta cuándo comienza la melodía y la muestrea en ventanas temporales, decidiendo en cada una de ellas de que nota se trata mediante una correlación con un seno y coseno de cada frecuencia que se espera. Esto da lugar a una secuencia de notas que serán interpretadas por el siguiente módulo.Un primer módulo que se encarga de procesar la melodía. Detecta cuándo comienza la melodía y la muestrea en ventanas temporales, decidiendo en cada una de ellas de que nota se trata mediante una correlación con un seno y coseno de cada frecuencia que se espera. Esto da lugar a una secuencia de notas que serán interpretadas por el siguiente módulo.

4 Segundo Módulo Un segundo módulo que sirve de interfaz y dará unos parámetros en función de dicha melodía. Se trata de, mediante software, parametrizar la melodía en función del ritmo, nota instantánea, conjunto de notas... (aún por determinar), pasando estos valores al siguiente módulo.Un segundo módulo que sirve de interfaz y dará unos parámetros en función de dicha melodía. Se trata de, mediante software, parametrizar la melodía en función del ritmo, nota instantánea, conjunto de notas... (aún por determinar), pasando estos valores al siguiente módulo.

5 Tercer módulo Un tercer módulo que comunica con el robot, indicándole los movimientos que debe hacer en función de los parámetros obtenidos. Este último módulo deberá ser diseñado de acuerdo al robot utilizado, teniendo en cuenta las posibilidades de movimiento de este.Un tercer módulo que comunica con el robot, indicándole los movimientos que debe hacer en función de los parámetros obtenidos. Este último módulo deberá ser diseñado de acuerdo al robot utilizado, teniendo en cuenta las posibilidades de movimiento de este.

6 Desarrollo del primer módulo Hemos simulado el algoritmo de detección de notas mediante MATLAB a fin de dimensionar los parámetros necesarios para su correcta realización (fs, tamaño de ventana…)Hemos simulado el algoritmo de detección de notas mediante MATLAB a fin de dimensionar los parámetros necesarios para su correcta realización (fs, tamaño de ventana…) Posteriormente adaptaremos a ColdFire dicho algoritmo (en progreso).Posteriormente adaptaremos a ColdFire dicho algoritmo (en progreso).

7 Detección: teoría La detección se basa en correlaciones con senos de las frecuencias que queremos detectar (desde Sol3 al Do5 del violín), obteniendo un conjunto de valores proporcionales a la potencia del sonido escuchado a dichas frecuencias.La detección se basa en correlaciones con senos de las frecuencias que queremos detectar (desde Sol3 al Do5 del violín), obteniendo un conjunto de valores proporcionales a la potencia del sonido escuchado a dichas frecuencias. De acuerdo con la teoría de la DFT:De acuerdo con la teoría de la DFT:

8 Detección: teoría Cada muestra debe ser multiplicada por la muestra equivalente de un seno y un coseno a cada frecuencia y cada uno de estos valores es sumado al acumulador del seno y del coseno respectivos de esta ventana temporal y esta frecuencia. Al final de la ventana, se suman los cuadrados de el acumulador del seno y del coseno a cada frecuencia, obteniendo una magnitud proporcional a la potencia de la señal en dicha ventana, a la frecuencia del seno y el coseno utilizados.Cada muestra debe ser multiplicada por la muestra equivalente de un seno y un coseno a cada frecuencia y cada uno de estos valores es sumado al acumulador del seno y del coseno respectivos de esta ventana temporal y esta frecuencia. Al final de la ventana, se suman los cuadrados de el acumulador del seno y del coseno a cada frecuencia, obteniendo una magnitud proporcional a la potencia de la señal en dicha ventana, a la frecuencia del seno y el coseno utilizados.

9 Detección: ventanas temporales En nuestra detección, la forma de determinar la nota que está sonando, es decidir en cada ventana temporal, cual es la frecuencia predominante.En nuestra detección, la forma de determinar la nota que está sonando, es decidir en cada ventana temporal, cual es la frecuencia predominante. Las ventanas tendrán un número de muestras fijo (que determinaremos en la simulación) y estarán solapadas con el fin de dar la resolución temporal que necesitemos (el margen de solapamiento será determinado en simulación), reaprovechando cálculos ya que las ventanas solapadas tienen muestras en común.Las ventanas tendrán un número de muestras fijo (que determinaremos en la simulación) y estarán solapadas con el fin de dar la resolución temporal que necesitemos (el margen de solapamiento será determinado en simulación), reaprovechando cálculos ya que las ventanas solapadas tienen muestras en común.

10 Teoría: Frecuencia de muestreo y Tamaño de ventana Si la máxima frecuencia que detectaremos es f máx, la frecuencia de muestreo de acuerdo al Criterio de Nyquist será: f s =2·f máx.Si la máxima frecuencia que detectaremos es f máx, la frecuencia de muestreo de acuerdo al Criterio de Nyquist será: f s =2·f máx. Si la mínima diferencia de frecuencias a detectar es f dmín, el tamaño de ventana deberá tener N muestras de acuerdo a:Si la mínima diferencia de frecuencias a detectar es f dmín, el tamaño de ventana deberá tener N muestras de acuerdo a:

11 Simulación con MATLAB Según la teoría expuestas, hemos implementado el algoritmo con MATLAB, de forma que detecte las notas de un wav (grabación del violín).Según la teoría expuestas, hemos implementado el algoritmo con MATLAB, de forma que detecte las notas de un wav (grabación del violín). Tomando sólo determinadas muestras de la grabación simulamos la frecuencia de muestreo que utilizaremos con ColdFire.Tomando sólo determinadas muestras de la grabación simulamos la frecuencia de muestreo que utilizaremos con ColdFire. Definiremos dos variables:Definiremos dos variables: k (f s =44100/k)k (f s =44100/k) c (nº muestras/ventana)c (nº muestras/ventana)

12 Nos ayudamos de los armónicos Para conseguir una precisión espectral mayor, tenemos en cuenta los armónicos de cada nota, de modo que sumamos la energía de los armónicos a su nota fundamental. Los armónicos de una nota siguen el siguiente orden (el más a la izquierda tiene más potencia):Para conseguir una precisión espectral mayor, tenemos en cuenta los armónicos de cada nota, de modo que sumamos la energía de los armónicos a su nota fundamental. Los armónicos de una nota siguen el siguiente orden (el más a la izquierda tiene más potencia): La imagen corresponde a los armónicos del La2. En nuestro caso nos limitamos a considerar como la potencia de una nota, la suma de su potencia, la de su octava y la de la quinta de su octava superior (13).En nuestro caso nos limitamos a considerar como la potencia de una nota, la suma de su potencia, la de su octava y la de la quinta de su octava superior (13).

13 Resultados de la simulación con MATLAB A partir de la teoría y la simulación, hemos determinado: k=9 (fs=4900baudios) y c=445.A partir de la teoría y la simulación, hemos determinado: k=9 (fs=4900baudios) y c=445. Al introducir una melodía que es una escala cromática desde el Sol3 hasta el Do5 con 8bits/muestra (mono).Al introducir una melodía que es una escala cromática desde el Sol3 hasta el Do5 con 8bits/muestra (mono). Asignamos el valor 1 a la nota menor (Sol3), 2 a Sol#3… así hasta el 44 que será Re7 (la quinta de la octava del Sol5, la máxima nota que detectamos). El siguiente valor, el 45, representará el silencio, que se asignará cuando la potencia a todas las frecuencias no supera un cierto umbral.Asignamos el valor 1 a la nota menor (Sol3), 2 a Sol#3… así hasta el 44 que será Re7 (la quinta de la octava del Sol5, la máxima nota que detectamos). El siguiente valor, el 45, representará el silencio, que se asignará cuando la potencia a todas las frecuencias no supera un cierto umbral.

14 Representación Notas-Tiempo de una Escala Cromática

15 Problema Como se observa en la figura anterior, se confunden las notas que son la misma pero en distinta octava. Esto es debido a la gran cantidad de armónicos que presenta el violín, que causa que tengan más potencia los armónicos de las notas graves que las propias notas, o que tengan más potencia los subarmónicos de la notas agudas que las propias notas agudas.Como se observa en la figura anterior, se confunden las notas que son la misma pero en distinta octava. Esto es debido a la gran cantidad de armónicos que presenta el violín, que causa que tengan más potencia los armónicos de las notas graves que las propias notas, o que tengan más potencia los subarmónicos de la notas agudas que las propias notas agudas. Solución: Reducimos nuestra detección a una escala, considerando solamente qué nota es, sin considerar a qué escala pertenece. Así, sólo diferenciaremos entre 12 posibles notas, lo que es variedad suficiente.Solución: Reducimos nuestra detección a una escala, considerando solamente qué nota es, sin considerar a qué escala pertenece. Así, sólo diferenciaremos entre 12 posibles notas, lo que es variedad suficiente.

16 Representación Notas-Tiempo de una Escala Cromática Detectando sólo la escala inferior

17 Comienzo de programación en C: ADC Para comenzar, hemos adaptado el programa de manejo del ADC a nuestras necesidades, haciendo que al leer la muestra tomada, podamos encargar la muestra siguiente, y aprovechar el tiempo de espera hasta la muestra siguiente para realizar el proceso de la muestra anterior.Para comenzar, hemos adaptado el programa de manejo del ADC a nuestras necesidades, haciendo que al leer la muestra tomada, podamos encargar la muestra siguiente, y aprovechar el tiempo de espera hasta la muestra siguiente para realizar el proceso de la muestra anterior. Debido al error de cuantificación que comete el ADC, reducimos el número de bits por muestra de 12 a 8 (eliminando los 4 menos significativos), lo que además favorece las operaciones, pudiendo utilizar tamaños BYTE.Debido al error de cuantificación que comete el ADC, reducimos el número de bits por muestra de 12 a 8 (eliminando los 4 menos significativos), lo que además favorece las operaciones, pudiendo utilizar tamaños BYTE.

18 Próximos pasos Continuar con el desarrollo del algoritmo en C y mejorar el sistema de detección ya sobre ColdFire.


Descargar ppt "Robot Bailón Desarrollado por: Jesús López Méndez Valerio Rodríguez Robledo."

Presentaciones similares


Anuncios Google