Una pregunta muy básica sobre la conversión de DAC en una tarjeta de sonido

0

Esta es una pregunta conceptual sobre cómo una tarjeta de sonido convierte los datos digitales a analógicos.

Para ilustrar esto, digamos que hemos construido datos discretos que representan una sinusoide con un número particular de puntos por período.

Por ejemplo, el gráfico de tallo sinusoidal discreto que se muestra a continuación se compone de 48 puntos por período de seno:

Imagine que ahora estos datos digitales se envían a una tarjeta de sonido que tiene una frecuencia de muestreo de 48 kHz.

¿Oiríamos f = 1 / [48 * 1 / (48000)] = 1kHz de vibración?

En realidad quería estar seguro de esto. Quiero intentar esto usando un programa como Python o MATLAB ect. ¿Sabes cómo enviar esos datos digitales a la tarjeta de sonido? En segundo lugar, el seno en mi pregunta tiene un rango de -1 a +1. ¿Cuál es la relación entre el volumen y esta amplitud para una tarjeta de sonido de 24 bits?

    
pregunta user16307

1 respuesta

4
  

Por ejemplo, el gráfico de tallo sinusoidal discreto que se muestra a continuación se compone de 48 puntos por período de seno:

¡No, no lo es!

  

¿Oiríamos f = 1 / [48 * 1 / (48000)] = 1kHz de vibración?

Para la forma de onda particular que has trazado, escucharías f = 1 / [47 * 1 / (48000)] = 1021Hz vibración.

Si pretendía representar una forma de onda de 1 kHz, ha desactivado el clásico apagado por un error de poste de cerca error al pensar que el número de puntos era igual al número de intervalos. Necesita 48 intervalos en la forma de onda, lo que significa que cuando la curva comienza y termina en cero, necesita un punto adicional, para que 49 puntos hagan 48 intervalos.

Con Python, incluye la biblioteca de PyAudio, que es un enlace de Python para PortAudio v19, que controlará la mayoría de las tarjetas en la mayoría de los sistemas operativos. Genere la forma de onda como una matriz de Numpy y siga la documentación con la biblioteca. IIRC, si usa flotadores, entonces +/- 1 corresponde a escala completa en el DAC, pero si usa números enteros, entonces + 127 / -128 o + 32767 / -32768 corresponden a escala completa dependiendo del modo de 8/16 bits . RTFM y todo será revelado.

Es posible que prefieras usar Audacity para construir, reproducir y almacenar formas de onda. Obviamente no es una solución programable, pero tiene una interfaz gráfica de usuario agradable y te hace experimentar más rápido.

    
respondido por el Neil_UK

Lea otras preguntas en las etiquetas