8~16 Micrófono digital PDM + ¿qué procesamiento? = formador de haz!

Estoy investigando en un proyecto sobre la formación de haces de fuentes de sonido.

Me gustaría construir: 8 ~ 16 micrófonos digitales en un PCB 2D (círculo)/3D (esfera) para formar una matriz con una separación igual de cada micrófono de 3 cm a 5 cm de distancia. Después de un poco de procesamiento y poder ubicar con precisión la dirección de una fuente de sonido.

Mi cálculo sobre la frecuencia de muestreo mínima según la velocidad del sonido. Los micrófonos de muestreo simultáneo por encima de > 96 kHz y > 8 bits en una forma de sincronización precisa deben ser obligatorios.

Debido a que soy más un tipo de software de Linux que una persona de EE, tengo menos conocimiento + experiencia para elegir un diseño correcto entre MPU / DSP / FPGA.

Puedo recopilar todos los datos a través de Ethernet y procesarlos en una PC o procesarlos en la unidad. PERO:

Tengo algunas preocupaciones de muestreo:

  1. Los códecs de auido existentes no podrán usar micrófonos PDM digitales de 8 a 16 canales en un solo chip.
  2. Traer más de un códec de audio con múltiples buses I2S puede introducir retrasos de tiempo de audio no uniformes, lo que genera un gran error en el cálculo final.
  3. No sé cómo otro dispositivo puede medir con precisión PDM que no sea un códec de audio.

Cualquiera puede discutir algunas ideas de diseño y lo investigaré y lo implementaré lo antes posible.

Los micrófonos PDM que usaré: Dispositivo analógico ADMP521 65dB SNR

Me parece que necesita algo así como una grabadora de instrumentación digital multicanal, en lugar de electrónica de fabricación propia. Teac y Sony solían fabricar este tipo de dispositivos, pero eso fue hace años. No estoy seguro de dónde encontrar dispositivos como ese hoy.

Respuestas (1)

Si necesita una sincronización / cronometraje muy ajustado, creo que optaría por un FPGA con microcontrolador (ya sea con, por ejemplo, ARM + FPGA en un chip, núcleo suave o externo) y USB (o ethernet si lo desea)

Un FPGA de tamaño mediano debería poder manejar fácilmente 16 canales en paralelo, procesar en un bus de 8 o 16 bits, almacenar en búfer y enviar al micro utilizando un puerto paralelo (o tal vez SPI de alta velocidad) Puede usar un protocolo simple
entre el FGPA y el micro (si es externo), que envía, por ejemplo, 8 palabras de 16 bits a la vez que se capturaron todas simultáneamente. También puede agregar marcas de tiempo al final de cada fragmento.
Luego envíelo todo a la PC a través de USB/Ethernet para su procesamiento.

Vería qué lugares como Digilent tienen para ofrecer en cuanto a placas de desarrollo, tal vez una placa Spartan-6 con un ARM Cortex-M3 o algo así.