No puedo entender la atenuación en la señal de la PC al microcontrolador (NI myRIO)

Estoy trabajando en el proyecto de cancelación activa de ruido. Encontré un problema, donde la señal se atenúa a medida que la profundidad de bits de audio cambia de datos de PC a microcontrolador y no puedo entenderlo.
Mi circuito: conecté la salida de audio (auriculares) de la PC [que se supone que es una señal analógica] a la ENTRADA de audio del dispositivo NI myRIO 1900 usando un cable AUX (cable jack de 3,5 mm de dos vías). Tengo una señal pregrabada (.wav) de forma de onda sinusoidal con Amplitud 1, Frecuencia 2kHz, Frecuencia de muestreo 40000, Número de muestras 80, Profundidad de bits (bits por muestra) = 16.
Ahora, acabo de reproducir el archivo .wav usando Windows Media Player y traté de grabar la forma de onda en el módulo NI myRIO. Sorprendentemente, obtengo una atenuación de la señal correspondiente a la reducción de volumen en PC (¡¡no lineal!!). Solo puedo ver la forma de onda en el microcontrolador cerca de la amplitud 1, cuando aumenté el volumen del sistema al 100%. Por favor explique esto!!

El ADC de NI myRIO tiene una resolución de 12 bits, pero la salida de audio (archivo .wav) son datos de 16 bits. Espero que no tenga que importar excepto en los errores de cuantización, ya que en la salida de audio de la PC, los datos de audio deben convertirse a analógicos y nuevamente en 'NI myRIO Audio In', ¡esta señal analógica será muestreada! (¡corríjame si me equivoco!)
Otra pregunta es, he intentado lo mismo con un sonido sinusoidal de Amplitud 2.5, ahora la señal de audio se corta a 1V por encima y por debajo de -1V. ¡El rango nominal de ADC (NI myRIO) es de 2,499 V a -2,5 V! ¿Es por la conversión de profundidad de bits? ¡Por favor explique estas cosas! TQingrese la descripción de la imagen aquí


EDITAR: ¡No estoy convirtiendo datos digitales de 16 bits a datos digitales de 12 bits ni 12 a 16! Resulta que tengo datos de audio de 16 bits, cuando los reproduje a través de Windows Media Player se convertirán a una señal analógica en la terminal de auriculares, y estoy alimentando esta señal ANALÓGICA a un ADC de NI myRIO, que tiene una resolución de 12 bits.

Me costó entender tu pregunta. Pero cuando aumenta la profundidad de bit, debe alinear el bit más significativo. ¿Probablemente está copiando datos de 12 bits en palabras de 16 bits y alineando el bit menos significativo?
Creo que la salida de su PC se está recortando. Su intuición acerca de que la profundidad de bits no es un factor es correcta, por lo que puedo decir.
@mkeith Disculpas por 'pregunta confusa'. He vuelto a enmarcar la pregunta un poco para una mejor comprensión. ¡No estoy copiando datos de 12 bits a palabras de 16 bits!

Respuestas (3)

Después de haber agregado más información a su pregunta, parecería que la causa tiene menos que ver con la profundidad de muestreo (bit) y más con la conexión analógica entre dos sistemas.

Parece que está llegando al límite de la salida de audio de la PC. Las PC usan salida de nivel de línea, que varía de +1V a -1Volt. Eso se alinea con el nivel que está viendo en myRUI 1900: tiene un gráfico que muestra la señal en un rango de 1V a -1V, lo cual es de esperar.

La señal está recortada porque la PC está recortando su señal. Si intenta enviar una señal fuera de la PC con una amplitud demasiado alta, se recortará.

Podría estar recortando el software antes de que llegue al hardware, o podría estar recortando el hardware. Algunas partes de los controles de volumen están en el hardware, algunas partes están en el software.

Las partes del control de volumen en el software pueden amplificar una señal hasta el punto de que ya no se puede representar en 16 bits y se recorta.

Las partes del control de volumen en el hardware pueden amplificar la señal hasta el punto de que el propio amplificador de salida se corta.


En resumen:

  1. No puede generar una señal con una PC que provoque una entrada de escala completa en myRUI 1900. La PC simplemente no puede generar una señal con el rango de voltaje necesario.
  2. Subir el volumen en la PC para intentar forzar un nivel más alto solo causará recorte, lo que da como resultado la señal que capturó con myRUI 1900.
¡Es verdad! Creo que el recorte está ocurriendo a nivel de software, porque cualquiera que sea el volumen del sistema, si la amplitud de sin está por encima de 1V, entonces se está recortando (incluso con los volúmenes más bajos también). ¡También estos voltajes de entrada/salida de línea variarán dependiendo de las tarjetas de sonido que estemos usando! La tarjeta de sonido integrada de la PC proporciona una amplitud de 1,6 V para una onda sinusoidal de 1 V de amplitud con un aumento de volumen del 100 %, mientras que si utilizo una tarjeta de sonido externa, obtengo una amplitud de 1 V igual a la de la onda sinusoidal. Gracias !
Sorprendentemente, obtengo una atenuación de la señal correspondiente a la reducción de volumen en PC (¡¡no lineal!!). Solo puedo ver la forma de onda en el microcontrolador cerca de la amplitud 1, cuando aumenté el volumen del sistema al 100%. Por favor explique esto!!

Los humanos no perciben la intensidad del sonido linealmente, sino logarítmicamente. Porque una serie de duplicaciones en la potencia del sonido se percibe como una serie de volumen lineal. Esto ha sido bien conocido durante más de un siglo, por lo que las personas que diseñaron el control de volumen en el software de su PC también lo saben. Darle lo que percibirá como un control de volumen lineal significa variar el voltaje exponencialmente. Esta es la razón por la cual el voltaje cae rápidamente desde el máximo cuando el volumen se baja solo un poco.

Me encontré con este extraño problema, donde la señal se atenúa a medida que cambia la profundidad de bits de audio y no puedo entenderlo.

Tiene una señal de resolución de 12 bits y la convierte a 16 bits. Ocurre una de dos cosas. Cualquiera: -

  1. Los 12 bits originales se asignan a los 12 bits superiores del número de 16 bits y los 4 bits inferiores del nuevo número de 16 bits se establecen en 0 o,
  2. Los 12 bits originales se asignan a los 12 bits inferiores del número de 16 bits y los 4 bits superiores se establecen en cero.

El número 1 no hará ninguna diferencia en el volumen de su señal y el n. ° 2 reducirá significativamente la amplitud en 16: 1 mientras conserva la misma relación señal / ruido (no es algo malo).

Entonces, ¿por qué se prefiere el número 2? Un ejemplo sería al mezclar sonidos digitalmente. Ahora puede agregar 16 de estas formas de onda convertidas y evitar el recorte. Realmente no puedes hacer nada con el n. ° 1 que ya no podías hacer cuando tenía un formato de 12 bits.

Lo siento, ¿puedes responder a mi pregunta básica? Si tenemos un archivo de audio .wav (codificado con datos de 16 bits), ¿la salida de la PC a través de los auriculares es una señal analógica o aún datos digitales de 16 bits? Simplemente, ¿mi PC tendrá DAC en el terminal de salida de auriculares? Parece que el marco de mi pregunta no es bueno, todos lo malinterpretaron (¡creo!). No estoy haciendo una conversión de datos de 12 bits a 16 bits. ¡Tengo un ADC de resolución de 12 bits en el microcontrolador (myRIO) y solo puedo reproducir archivos .wav en cualquier reproductor multimedia cuando están codificados con 8 bits o 16 bits!
Los auriculares son analógicos y habrá un DAC en su tarjeta de sonido: un altavoz no sabe qué es una señal digital, por lo que la conversión a analógica es IMPRESCINDIBLE. Por cierto, copié tu primera consulta en mi respuesta justo en la parte superior. ¿Quizás eres tú quien ha olvidado cuál es la pregunta?
Hmm k, pensé que estabas respondiendo toda la pregunta :)
Bueno, tal vez necesites reformularlo; por lo que sospecho, hay una versión mucho más simple de tu pregunta esperando a ser resuelta. Ahora respondí su primera pregunta y lo que parece ser una pregunta complementaria sobre dónde está el DAC al conectar los auriculares. Pruebe un enfoque más simple.