IC de control de ganancia de audio automático para audio normalizado desde la entrada de nivel de línea

0

El problema que tengo es así: Estoy utilizando una salida de nivel de línea de cable auxiliar de un teléfono inteligente a un chip MSGEQ7 que muestrea las frecuencias y las divide en 7 canales que pueden verse como una tensión analógica de 0 V a Vin en función de la intensidad de las frecuencias. 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz y 16kHz. (información de Sparkfun) Estoy usando un Arduino para tomar la salida y mostrarla en gráficos de 7 barras.

Ahora el problema ... A menos que la salida tenga un volumen de alrededor del 80%, cualquier canción que se reproduzca no será lo suficientemente fuerte como para mostrarla, o estará demasiado lejos y estará saturando la parte superior de cada gráfico de barras. Desafortunadamente, no tengo un osciloscopio, así que no puedo dar el pico al voltaje máximo. Esto estaría bien si siempre pudiera dejar el volumen al 80%, pero en este caso es mucho más fácil bajar el voltaje de mi teléfono en lugar de pasar por los altavoces y bajar o subir la perilla del preamplificador. Idealmente, en cualquier volumen de entrada, la señal sería aumentada o disminuida al punto dulce.

He investigado un montón de soluciones diferentes desde circuitos de diodo / npn a circuitos de múltiples amplificadores operacionales, hasta chips Compandor (compresor / expansor) como el NE570 (pero demasiado caro), pero no estoy seguro de qué Realmente funciona para mi solución. No necesito alta fidelidad, pero tampoco quiero perder sensibilidad para frecuencias altas y bajas. (¿Es esta normalización o compresión de rango dinámico?) He usado el micrófono de ganancia automática Adafruit que usa un MAX9814 que ofrece un La salida de 2V pico a pico y una compensación de CC de 1.25V funciona muy bien, pero también me gustaría poder usar un cable auxiliar.

Gracias por tu respuesta

    
pregunta Mariano Elia

1 respuesta

1

Creo que tienes un problema XY aquí, en el que sospecho que estás mostrando tus barras como datos lineales, ya que has descubierto que no funciona tan bien.

Intente leer desde el ADC, luego, tomando el registro de la medición de adc y manejando sus gráficos de barras, probablemente encontrará que tal escala es mucho más útil.

Otra posibilidad, generar PWM a partir del micro, usarlo para controlar la compuerta de un jfet como una resistencia variable, o incluso un OTA LM13700.

    
respondido por el Dan Mills

Lea otras preguntas en las etiquetas