¿Cómo mido la sonoridad?

7

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 usar un micrófono de plástico sellado. 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 blanco (solo pensé en un micrófono) y podría usar la intensidad de este ruido para crear la envolvente ADSR para mi sonido. Cubrir el micrófono con láminas de plástico aún permite que esto funcione y lo protege de la humedad en su respiración.

Sin embargo, la mayor parte de mi experiencia en electrónica es digital (desde digital discreta en la universidad hasta microcontroladores ahora) y soy más un programador. Llegué a mirar la señal de ruido en mi alcance y verificar que tenía las características que deseaba (usar la magnitud suavizada y positiva del ruido como la intensidad de los tonos sintetizados) y sé que si puedo obtener En 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 de ruido y transformarla en una señal analógica variable que represente la magnitud positiva promedio a una tasa de muestreo bastante alta.

¿Alguna idea o enlace para que empiece?

P.S.
Realmente no sabré qué respuesta es totalmente correcta hasta que haga algo de experimentación, pero las respuestas han sido excelentes hasta ahora. El medidor VU está bastante cerca de que lo que necesito y el recordatorio de que la sonoridad es logarítmica 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 mediante MIDI) donde la "sonoridad" del tono es proporcional a la intensidad del sonido generado al soplar en el micrófono si eso tiene más sentido.

    
pregunta cmpalmer

3 respuestas

7

Loudness está más o menos relacionado con amplitud RMS , no con la amplitud máxima, por lo que debe

  1. muestrea la entrada regularmente, grabando las muestras en la memoria
  2. tomar un trozo de muestras y cuadrar cada una
  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 poner la wave a través de un rectificador de precisión (schematics ) para obtener el valor absoluto, y luego filtre 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á una intensidad aproximada. Así es como funciona la mayoría de los medidores de VU .

    
respondido por el endolith
3

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

La sonoridad se mide en decibelios; lo que suena como una sonoridad linealmente creciente / decreciente para un ser humano, en realidad corresponde a cambios exponenciales en la energía acústica.

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

Si no usas un amplificador de registro, estás limitado en el rango dinámico por la resolución + linealidad + cero desplazamiento del ADC que usas, que puede ser solo de 20-30 dB.

    
respondido por el Jason S
1

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

    
respondido por el Thomas O

Lea otras preguntas en las etiquetas