Después de haber trabajado extensamente en la formación de haces adaptativos, realmente evitaría hackear algo para esto hasta que tenga algo de experiencia. (Nota: las soluciones profesionales con aproximadamente 60 canales cuestan aproximadamente 100k €. Con muchos canales, su resolución espacial mejora mucho, pero solo obtiene una cantidad limitada de información a través de un puerto USB ...)
Para una formación de haz confiable, es esencial que todos los micrófonos utilicen la misma base de tiempo. La forma más fácil de lograr esto es con una tarjeta de sonido USB externa con múltiples canales de entrada. Sin embargo, esos no son realmente baratos. ¿Has echado un vistazo a lo que se puede encontrar en eBay?
Una alternativa es sacrificar la base de tiempo común utilizando varias tarjetas de sonido USB con, por ejemplo, dos canales cada una. Sin embargo, deberá calibrar su sistema de adquisición. Esto realmente no es tan difícil como parece:
Para calibrar, configura su matriz y produce un sonido corto (por ejemplo, un crack / clap / etc.) A una distancia de su matriz que es del orden de la extensión de su matriz. Luego graba este sonido y usa Matlab o similar para calcular la correlación cruzada entre el aplauso / crack / etc. en los diferentes canales Esto le dará una lista de las compensaciones de tiempo que necesita aplicar a sus canales para alinearlos antes de alimentar los datos a su algoritmo de formación de haces.
Para explorar la formación de haces adaptativa, este es probablemente el camino a seguir, a menos que pueda hacer una ganga en una tarjeta de sonido multicanal.
Editar 1
Esta edición es para responder las preguntas planteadas en los comentarios.
La idea básica de la demora y la suma de la formación de haces es aplicar demoras a diferentes canales de adquisición de manera que los sonidos que se originan desde un punto en el espacio se alineen y "amplifiquen" cuando se agreguen señales de los diferentes canales. Los sonidos que se originan en otras regiones del espacio no se alinean y, por lo tanto, no se "amplifican".
El punto en el espacio para el que los sonidos se alinean usando un cierto conjunto de retrasos se llama foco de la matriz de micrófonos (o punto focal). Sin embargo, en realidad, el foco no es un punto ideal, sino más bien una pequeña región de espacio (ish) (dependiendo de la matriz) para la cual los sonidos se alinean bien. El tamaño de esta región se llama el tamaño del punto focal.
La geometría (tamaño, forma, etc.) depende de los detalles exactos de la matriz: número de micrófonos, espacio entre micrófonos, contenido de frecuencia de las señales de interés. Ver, por ejemplo, este artículo .
Para obtener más información, busque textos sobre el enfoque de "matrices en fase" o "matrices lineales" en ultrasonidos. Beamforming se puede utilizar en recepción (para amplificar señales de un cierto punto en el espacio) o en emisión (para crear un punto "ruidoso" en una habitación). Los principios son idénticos: simplemente reemplace "micrófono" por "altavoz" en su pensamiento.
En cuanto al procedimiento de calibración: tienes razón. El procedimiento que describí es demasiado simplista. Solo funciona bien si puede crear el aplauso de calibración desde una distancia mucho más larga que la región del espacio que le interesa (es decir, para garantizar una onda simple).
Si esto no es posible, debe tener en cuenta la posición del aplauso. En este caso, el procedimiento más simple es corregir los retrasos mediante correlación cruzada como se describe, pero luego agregar la curvatura del frente de onda de nuevo a la señal mediante la aplicación de un conjunto de retardos de "formación de haz inverso" calculado con la posición del origen del aplaudir. (Es decir, si usa una variable de profundidad + t0 (o + z0) en su algoritmo de formación de haz "normal", debe usar -t0 (o -z0) para el algoritmo de formación de haz inverso.)
Cuál es el punto de esta calibración: elimina cualquier error debido a que las diferentes tarjetas de sonido comienzan a grabar en momentos ligeramente diferentes. Esto normalmente evitaría que las señales se alineen correctamente incluso con los retrasos correctos y, por lo tanto, evitaría el efecto de amplificación que está buscando.