Convierte valores digitales y analógicos a dB SPL

Estoy tratando de crear un medidor de nivel de sonido. Quiero usar un micrófono MEMS analógico ( INMP510 ) y un micrófono digital con salida I2S ( SPH0645LM4H ). La sensibilidad del INMP510 es de -38 dBV y la del SPH0645LM4H es de -26 dBFS. Estoy usando un PIC32MZ2048EFG100. El módulo ADC tiene 12 bits y el voltaje para el ADC es de 0 y 3,3 V.

He leído este post ( How to convert Volts in dB SPL ) pero no encuentro las especificaciones de la ganancia del micrófono analógico, así que no sé si estoy calculando correctamente los dB SPL.

También para el micrófono digital, no tengo idea de cómo convertir los valores digitales a dB SPL.

¿Alguien puede ayudarme con fórmulas matemáticas?

gracias de antemano

Bueno, siempre puedes medir algunas fuentes conocidas y caracterizar tu micrófono de esa manera.

Respuestas (1)

La sensibilidad del micrófono INMP510 es de -38 dBV con un nivel de presión sonora de 94 dB a 1 kHz. -38 dBV es 12,6 mV RMS. Entonces, si mide 12,6 mV RMS, entonces su SPL es 94 dB. Si midió el doble de ese voltaje, entonces su SPL será 6 dB más alto. Si midiera la mitad del voltaje, su SPL sería 6 dB más bajo.

¿Sabes cómo funciona el decibelio con señales ascendentes y descendentes?

Para el micrófono digital, tiene una especificación de -26 dBFS para los mismos 94 dB SPL. FS se refiere a escala completa y la escala completa parece ser de 18 bits si lee la letra pequeña. Entonces, el valor RMS que produciría es 26 dB por debajo en una escala completa de 18 bits, pero recuerde que es probable que sea de pico a pico. En otras palabras, una señal de escala completa sería +/- 131072 conteos.

Entonces, ¿qué haces con el flujo de números digitales después de la conversión? Primero, resta el punto medio porque ese es el valor numérico medio y representa un gran desplazamiento de CC que arruina el cálculo. Así que ahora estás tratando con números enteros con signo. Para calcular RMS (porque eso es lo que necesita hacer), eleve al cuadrado cada valor, acumule muchos valores y luego divida por la cantidad de valores que acumuló. Finalmente tome la raíz cuadrada y eso le da RMS.

Sin embargo, asegúrese de acumular suficientes muestras o habrá un término de error. La alternativa es tratar de ser inteligente y calcular tantas muestras como necesite para cubrir un período de la frecuencia de la fuente de sonido.

Tome nota: una vez que haya firmado números enteros, el signo deja de ser importante debido a la operación de elevar al cuadrado.

¿Puedes tomarlo desde aquí?

Lo siento pero no lo entiendo muy bien. Por ejemplo, si mi micrófono analógico después de la conversión da un valor digital de 2048 (el ADC tiene 12 bits, por lo que tiene que ser 0-4096). Volví a convertir a Analógico ((3.3-0/2^12)*2048= 1.65 V). Este valor es 1,65/0,0126 = 131 veces mayor que 0,0126, por lo que sería 131*6 +94 dB SPL. Eso no puede ser posible. Y para el digital no entiendo tu explicación. La salida digital será 0-262144 (0-2^18), así que tengo que restar 131072 al valor digital y luego cómo los convierto a dB SPL. ¿Necesito tomar más de 1 valor para calcular el SPL?
Su micrófono produce una serie digital de valores que representan los cambios de presión analógicos en el diafragma del micrófono; no produce valores de CC a menos que no haya sonido presente. Tiene que hacer una gran cantidad de cálculos y procesamiento de números para obtener números digitales en un valor RMS O simplemente puede detectar el valor máximo y asumir que esto representa el RMS a través de algún factor fijo pero que es propenso a errores masivos dada la naturaleza del sonido .
Ok, lo siento, no sé cómo borrar la respuesta. Y no hay fórmula para convertir los valores. Lo siento pero es la primera vez que trabajo con audio y no sé interpretar las salidas de los micrófonos.
Vuelve cuando puedas comprender la naturaleza de la señal que produce un micrófono analógico cuando se estimula con audio. Luego, dé un paso más hacia el ámbito digital.