Estoy trabajando en mi proyecto de diseño senior. Es un robot controlado por Arduino. Estoy tratando de descubrir la mejor manera de implementar la localización de sonido. Parece sencillo, al menos dos micrófonos, transforma la señal de Fourier, calcula la diferencia de fase.
Mi problema es que me gustaría poder concentrarme en una frecuencia en particular, por lo que no se trata solo de encontrar la fuente con la mayor amplitud. ¿Alguien tiene alguna recomendación sobre cómo hacer algo como esto. No he usado micrófonos nunca, ¿alguien puede recomendarme uno bueno?
Me gustaría que tuviera un rango bastante decente, como una pequeña sala de estar o dormitorio. Estoy pensando en usar una frecuencia muy baja para no tener que preocuparme por una tasa de muestreo tan alta.
Estoy usando un Arduino Uno para cualquiera que esté familiarizado con él. Estoy haciendo ingeniería informática, por lo que estoy bastante familiarizado con los términos de EE, pero todavía estoy aprendiendo sobre el procesamiento de señales este semestre, sé que debería usar algún tipo de filtrado de paso de banda, pero ¿cuál sería la mejor manera de hacerlo?
Si conoce algún ejemplo que hayan hecho otras personas, o esquemas, sería muy útil.
El " algoritmo de Goertzel " requiere menos recursos (RAM, espacio de código) y menos ciclos de CPU para una sola frecuencia específica.
Wiki tiene un buen conjunto de enlaces para profundizar.
He usado Goertzel en ATMega328P y P8X32A con excelentes resultados. Buena suerte con tu proyecto.
La mejor solución es utilizar formación de haces acústicos. Sugeriría publicar en DSP stackexchange, pero puedo darle algunos consejos.
La teoría básica es tener una matriz de micrófonos que separe los micrófonos 1/2 longitud de onda entre sí (obviamente, la longitud de onda depende de la frecuencia de interés).
Esta matriz de micrófonos se puede utilizar para crear un filtro espacial. Luego es posible escanear digitalmente buscando la dirección con la intensidad máxima de la señal. El algoritmo más simple se llama el método de retraso y suma. Matlab tiene una práctica caja de herramientas de matriz en fase para ayudar con la implementación.
Todavía hay algunos trucos de los que debe preocuparse, como el ancho de banda de la señal de entrada. Para la formación de haces, generalmente necesita una banda estrecha para calcular, por lo que es posible que deba implementar un filtro de paso de banda en la señal acústica de entrada porque las señales acústicas son de banda ancha (20 Hz - 20 kHz).
Un buen recurso para comenzar: http://research.ijcaonline.org/volume61/number11/pxc3884758.pdf
Gustavo Litovsky
tholzer
Puntilla
Kaz