Señal de audio niveles de dB Matlab

0

Estoy intentando desarrollar una GUI en MATLAB para permitir la presentación de un tono.

Uno de los parámetros de entrada es el dB que desea el usuario.

Entonces, la forma en que intenté hacer esto es:

y = factor * sin (2*pi*500*t);

El parámetro "factor" es: 10^(x/20) .

Intenté usar los valores de y y hago una conversión de mag2db en matlab para ver si estoy recuperando la db. Y lo hago!

Sin embargo, si pongo 0dB, todavía estoy obteniendo un tono. Tengo que bajar tan bajo como -50dB para no obtener un tono.

Entonces, mi pregunta es: ¿hay algún tipo de manera de hacerlo de tal manera que no haya tono en 0dB y abajo?

Muchas gracias por tu ayuda.

Lo aprecio!

Nota: los altavoces de mi PC están en el nivel MAX.

    
pregunta Ali P

3 respuestas

4

No es correcto que 0dB represente "off". dB es una escala relativa y 0 dB, efectivamente, significa "lo mismo que un valor de referencia", y su valor de referencia no puede ser silencio.

Una implementación más común de dicho control sería que 0dB represente el volumen máximo y los valores negativos representen una salida más baja. Esto es lo que se ve en todos los equipos de audio profesional analógico y digital. Entonces usaría -Infinity para ninguna salida. Muchas aplicaciones se aproximan a esto haciendo que el control deslizante pase de 0 en la parte superior a -96 [1] dB o más abajo. Cuando el usuario deslice el control deslizante hacia abajo por completo, la aplicación desactivará la salida.

Se elige

[1] 96 porque es el rango dinámico aproximado del audio de 16 bits. Sin embargo, en presencia de interpolación, este valor no tiene un significado especial real, por lo que algunas aplicaciones utilizan un valor aún mayor.

    
respondido por el Bjorn Roche
0

0dB es el nivel de referencia a en el que se establecen todos los demás niveles de dB. Una configuración de + dB significa que la amplitud es mayor y los niveles de -dB significan que la amplitud es menor.

Piénsalo: si x = 0, ¿a qué es igual 10 ^ (x / 20)? Bueno, es igual a 10 ^ 0 = 1

¿Qué pasa si x = -50dB, entonces "factor" es igual a 10 ^ (- 2.5) = 0.00316 y por debajo (posiblemente) la resolución que tiene para producir una onda sinusoidal?

Esto es lo que dice la wiki y tenga en cuenta la siguiente tabla: -

    
respondido por el Andy aka
0
  

Hola; Entiendo esa parte. Sin embargo, ahora estoy tratando de realidad   mida el tono en un medidor de nivel de sonido que utiliza dBSPL. Entonces el valor   La entrada i está en dB a escala completa y el sonido que recupero está en dBSPL. Ellos   No parecen relacionarse entre sí. Por ejemplo, si paso por   6dBFS Tengo -10dBSPL abajo. Cualquier idea sobre cómo obtener -6dBFS = nivel dBSPL   abajo por 6?

Con respecto a lo anterior, dBSPL es una unidad analógica, mientras que dBFs es una unidad digital. Entonces, no es una pregunta directa. Como han mencionado otros, el 'dBXX' usa un valor de potencia / voltaje / muestra de referencia para medir el nivel de señal en relación con esa referencia. En el caso de dBSPL, es la presión del sonido en relación con 20microPascales que es el umbral de la audición humana.

Para llegar a dBSPL, primero, debe convertir sus dBF digitales a un nivel de voltaje analógico que será generado por el convertidor D / A en su tarjeta de sonido. Luego, ese voltaje se alimentará a los altavoces en los que lo reproduzcas. El altavoz convierte el voltaje a un nivel de presión de sonido equivalente en función de la función de transferencia del altavoz. Diferentes frecuencias pueden tener diferentes presiones, ya que los altavoces generalmente no tienen una respuesta de frecuencia plana.

Por lo tanto, no hay una conversión fija de dBF a dBSPL, ya que se encuentran en dominios diferentes (digital frente a analógico). Será diferente para cada par de altavoces / DAC.

    
respondido por el proton22

Lea otras preguntas en las etiquetas