¿Cómo mido el volumen?

Estaba jugando con una idea para un instrumento musical digital con control de la respiración. Experimenté con éxito con sensores de presión y probablemente sean el camino correcto, pero mi primera idea fue simplemente usar un micrófono sellado de plástico. Nunca llegué muy lejos con eso, pero creo que todavía tiene potencial para el tipo de respuesta que quiero.

La idea era que una corriente de aire dirigida al golpe del micrófono generaría un ruido blanquecino (solo pensando en soplar un micrófono) y podría usar el volumen de este ruido para crear la envolvente ADSR para mi sonido. Cubrir el micrófono con láminas de plástico todavía permite que esto funcione y lo protege de la humedad de tu aliento.

Sin embargo, la mayor parte de mi experiencia en electrónica es digital (desde digital discreto en la universidad hasta microcontroladores ahora) y soy más un programador. Llegué a mirar la señal de ruido en mi osciloscopio y verificar que tenía las características que quería (usar la magnitud positiva suavizada del ruido como el volumen de los tonos sintetizados) y sé que si puedo obtener a un rango analógico lo suficientemente amplio, puedo usar un ADC para obtener una magnitud digital. Lo que me falta es el conocimiento analógico para tomar la forma de onda del ruido y transformarla en una señal analógica variable que represente la magnitud positiva promedio a una frecuencia de muestreo bastante alta.

¿Alguna idea o enlace para ayudarme a empezar?

PD
: Realmente no sabré qué respuesta es totalmente correcta hasta que haga un poco de experimentación, pero las respuestas han sido excelentes hasta ahora. El medidor VU está bastante cerca de lo que necesito y el recordatorio de que el volumen es logarítmico también es útil.

Puede haber sido más fácil plantear mi problema de esta manera: quiero controlar un tono digital (ya sea generado o vía MIDI) donde el "volumen" del tono es proporcional a la intensidad del sonido generado al soplar el micrófono si eso tiene más sentido.

¿Puede publicar una captura de pantalla (o un dibujo) de la traza de su alcance? Esta es una pregunta muy diferente si está trabajando con casi sinusoides o señales con picos altos. Si es solo una sinusoide, simplemente amplícela y pásela a través de un puente rectificador, dando salida a una tapa pequeña y una resistencia de drenaje para obtener una señal casi de CC.

Respuestas (3)

El volumen se correlaciona aproximadamente con la amplitud RMS , no con la amplitud máxima, por lo que debe

  1. muestree la entrada regularmente, grabando las muestras en la memoria
  2. tomar un trozo de muestras y cuadrar cada
  3. tomar el promedio de todos los valores resultantes
  4. raíz cuadrada

Probablemente pueda simplificar esto dependiendo de la precisión que necesite.


Oh, espera, quieres una salida analógica. Puede pasar la onda a través de un rectificador de precisión ( esquemas ) para obtener el valor absoluto y luego filtrar con un filtro RC para obtener su envolvente, como en el circuito que conduce al pin 5 de este esquema . En lugar de ese IC, el pin 5 sería el ADC de tu micro. No es RMS, pero le mostrará el volumen aproximado. Así es como funcionan la mayoría de los medidores VU .

Bueno, en última instancia, quiero una salida digital, por lo que podría funcionar. Solo me preocupaba la tasa de muestreo requerida.
Si muestrea a una frecuencia más baja, solo capturará frecuencias más bajas (desde CC hasta la mitad de la frecuencia de muestreo). Sin embargo, si solo quieres capturar a alguien soplando en un micrófono, eso probablemente sea lo suficientemente bueno.

Querrás un amplificador logarítmico o amplificador de registro.

El volumen se mide en decibelios; lo que suena como un aumento/disminución lineal del volumen para un ser humano, en realidad corresponde a cambios exponenciales en la energía acústica.

Puede hacer esto comprando circuitos integrados estándar (por ejemplo, LT5537 de Linear Tech ). O puede hacerlo usted mismo con amplificadores operacionales, resistencias, diodos y transistores. Los transistores tienen una relación logarítmica muy agradable entre la corriente del colector y el voltaje base durante 5 o 6 décadas de corriente (generalmente de 10 a 100 de nA a 1-10 mA) y se pueden combinar con amplificadores operacionales para convertir una corriente o un voltaje en un voltaje de salida logarítmico (consulte este sitio web para ver un circuito junto con gráficos de forma de onda spiffy). Primero deberá tener su propio detector de forma de onda a RMS, luego alimentar el resultado a un amplificador de registro.

Si no usa un amplificador logarítmico, su rango dinámico está limitado por la resolución + linealidad + compensación cero del ADC que usa, que puede ser solo de 20 a 30 dB.

Le recomiendo que amplifique la señal a algún nivel en el rango de 0V a 3.3V, y alimente esto al ADC de su microcontrolador. Será necesario utilizar un procesador de señal digital bastante rápido. Recomiendo algo como un dsPIC33F. Una vez que tenga la señal analógica funcionando, el lado digital no debería ser demasiado difícil, dado su conocimiento digital.

Entonces, ¿simplemente recorte el lado negativo de la señal y luego promedie los máximos a medida que se muestrean, o procese la señal antes del paso ADC? Supongo que lo que realmente estoy buscando es tratar el ruido como una señal modulada en amplitud e intentar extraer la señal. ¿Tiene sentido?
Depende de la velocidad que necesites. Si muestrea directamente la señal de volumen, puede hacer cosas sofisticadas como cálculos RMS, FFT y tiene un ancho de banda de señal más alto, por lo que puede responder a los cambios rápidamente. Si filtra la señal (como detectar los picos), puede usar un micro más pequeño.