Presión de sonido a db analog

1

Estoy tratando de convertir una salida de micrófono amplificada (es de 0-5v, sesgada en 2.5v) a una respuesta lineal que se correlaciona con SPL de db.

De mi investigación, la salida del micrófono se correlaciona directamente con la presión del sonido, lo cual está bien, pero necesito representarlo en db. Estoy leyendo valores del micrófono con un arduino, que solo tiene 10 bits de precisión, lo que significa que no puedo confiar en convertir los valores a db en el lado digital debido al enorme rango dinámico que cubre db, lo que significaría muy poco del rango db se representaría dentro de los 10 bits ya que db es logarítmica a la presión del sonido.

Entonces, ¿cómo voy a modificar la señal analógica para que la salida represente db SPL? He leído sobre los amplificadores operacionales logarítmicos, pero aún no entiendo completamente cómo se podrían usar en esta situación, o si son lo que estoy buscando.

    
pregunta Warrick

2 respuestas

0

El uso de un amplificador de registro es el enfoque correcto. Introduzca la salida de su micrófono en el amplificador de registro. Luego alimente el amplificador de registro en su ADC.

Un ejemplo es el TL-441 de Texas Instruments, aproximadamente $ 10 de Mouser.

enlace

video Si $ 10 es demasiado, puede crear un amplificador de registro barato a partir de dos diodos: una resistencia y un amplificador operacional. Cablee los diodos en paralelo, cada uno de los cuales mira hacia la salida op-amp y el pin de entrada negativo. Conecte la resistencia entre el voltaje de entrada y el pin de entrada negativo. Adjunte la entrada no inversora del amplificador operacional a su referencia central (2.5V en su caso)

Recuerde que la corriente a través de un diodo ideal es ...

Id = Is * (e ^ (Vd / n / Vt) - 1)

Vd es el voltaje a través del diodo
Vt es el voltaje térmico (26mV a 25C)
n es el factor de idealidad del diodo, típicamente en algún lugar entre 1 y 2.
e es 2.71828 ...
Es la corriente de saturación inversa del diodo.
Id es la corriente a través del diodo.

Resolviendo para Vd da ...
Vd = n * Vt * ln (Id / Is + 1)

Debido a la retroalimentación, la entrada inversora del amplificador operacional se mantiene al mismo voltaje que la entrada no inversora, que es de 2.5V. Con R cableado entre la señal de entrada y la entrada de inversión del amplificador operacional, tenemos ...

Id = (Vin - 2.5V) / R luego ...

Así que ...

Vd = n * Vt * ln ((Vin-2.5V) / R / Is + 1)

Así que la salida del amplificador es ...

Para Vin > 2.5 V ...
Vout = 2.5V - Vd = 2.5V - n * Vt * ln (| Vin-2.5V | / R / Is + 1)

Para Vin < 2.5 V ...
Vout = 2.5V + Vd = 2.5V + n * Vt * ln (| Vin-2.5V | / R / Is + 1)

    
respondido por el user4574
0

Primero, puede rectificar y hacer referencia cero a su señal de audio con un circuito externo ANTES de alimentar la "envolvente" de voltaje de señal de CC a su Arduino. Eso duplicaría su rango de medición efectivo porque no está desperdiciando la mitad del rango dinámico que se adapta al desplazamiento de 2.5V.

10 bits le darán alrededor de 60dB de rango dinámico si usa la escala completa. Convertir la medida de voltaje lineal a logarítmica (para deciBels) es una función matemática simple.

    
respondido por el Richard Crowley

Lea otras preguntas en las etiquetas