Las muestras de audio del archivo wav están firmadas, ¿cómo trata DAC los números firmados cuando no tiene un suministro negativo?

2

Estaba estudiando la especificación del archivo de audio wav, pueden contener los datos de modulación codificados por pulsos como nuestros enteros sin signo firmados, así como los valores de punto flotante.

¿Cómo maneja un DAC los números firmados? ¿Necesitan un suministro doble para generar números firmados?

¿Cuál sería una forma adecuada de convertir los números de punto flotante en números enteros al enviarlos a DAC? Supongo que, por ejemplo, la conversión a 8 bits sería simplemente multiplicar por 255, pero no estoy seguro ya que los números de punto flotante están firmados.

Sí, me doy cuenta de que hay varios tipos de ADC.

    
pregunta quantum231

3 respuestas

1

El audio es inherentemente AC. Eso significa que el nivel de DC no importa y se puede sustraer arbitrariamente y agregar algo más. De hecho, las frecuencias por debajo de 20 Hz pueden eliminarse arbitrariamente incluso en el audio "HiFi".

El archivo WAV está especificando los valores de la señal de audio como si la señal tuviera cero DC offset. Eso tiene sentido cuando lo piensas, ya que es la opción lógica para comunicar señales de audio arbitrarias.

Sin embargo, eso no significa que su convertidor D / A necesite producir voltajes negativos. Si el convertidor D / A tiene un rango de salida de 0-5 V, por ejemplo, simplemente declara que el punto medio de 2.5 V es el nivel cero del archivo WAV.

Tenga en cuenta que esto es un poco diferente de la escala arbitraria que debe aplicar y que no parece tener ningún problema. Puede escalar los valores de archivo WAV de mínimo a máximo para cualquier representación que use el archivo WAV, para asignarlo linealmente al rango de salida D / A. No hay ningún caso especial porque uno o ambos de estos rangos incluyen valores negativos. De cualquier manera, es solo una simple escala lineal con desplazamiento.

En el caso de un 0-5 V A / D, el punto medio es de 2,5 V, que representa el nivel de audio cero. Si al A / D le sigue un amplificador, cambiará este rango nuevamente. Eventualmente, un amplificador de potencia que controla los altavoces eliminará el nivel promedio de CC, por lo que no habrá una red DC que vaya a los altavoces.

Eléctricamente, la CC se elimina fácilmente de una señal de audio mediante un filtro de paso alto , que puede ser tan simple como un condensador en serie seguido de una resistencia a tierra.

    
respondido por el Olin Lathrop
3

Supongamos que tiene un DAC con una referencia de 2.5V operando desde una sola fuente (es decir, la salida de rango completo es 2.5V) que acepta valores codificados de complemento 2s en la entrada digital.

El punto cero en dicho dispositivo se encuentra en \ $ \ frac {V_ {span}} 2 \ $ o 1.25V en esta aplicación en particular.

Si un dispositivo toma el complemento 2s como entrada, los valores por debajo de 0 se codifican como menos que el voltaje de la mitad del rango; específicamente, \ $ V_ {out} = V_ {midspan} + Code_ {in} * V_ {bit} \ $ donde \ $ V_ {bit} \ $ es la resolución; \ $ V_ {bit} = \ frac {V_ {span}} {2 ^ n} \ $ donde n es el número de bits para el convertidor.

\ $ V_ {código} \ $ es el valor firmado de la entrada.

Tenga en cuenta que en una fuente dividida (+/- 2.5V, por ejemplo), midspan es 0V.

Hay una excelente nota de aplicación que explica los distintos tipos de formatos de datos utilizados por los DAC y ADCs.

Los números de punto flotante normalmente se convertirían en números enteros dentro del rango del convertidor para un DAC. Los ADC universalmente (todos los que he visto) emiten valores de puntos fijos.

Hay dispositivos complejos que tienen DSP adentro que pueden realizar la conversión de punto flotante a punto fijo a bordo.

    
respondido por el Peter Smith
1

Simplemente:

  1. convierte float en entero, multiplicando el número de float. (el multiplicador debe ser lo suficientemente alto para obtener la resolución completa del flotador.

  2. agregue el valor promedio de la señal entera a la señal (o al valor absoluto más alto)

  3. use solo los bits más altos del entero para satisfacer el DAC

El DAC no necesita valores negativos. El componente alternativo todavía se almacena en la señal, pero ahora solo con números positivos.

    
respondido por el BastiStephan

Lea otras preguntas en las etiquetas