Un módem jack de audio

Estoy buscando controlar Arduino leyendo los comandos de audio enviados desde una frambuesa pi (a través de javascript). Encontré el código de SoftModem y me pregunto cómo funciona. Afirma que "Utiliza el conector de audio del teléfono y la codificación FSK similar a un módem Bell 202", pero me pregunto cómo se hace. ¿No necesita probar el ADC y aplicar algún filtrado como FFT? Parece que no puedo encontrar dónde se hace todo esto.

Cualquier pensamiento apreciado.

"SoftModem usa Timer2" Tal vez solo un análisis de tiempo antiguo. Para obtener más información, puede consultar la biblioteca Arduino SoftModem.h.

Respuestas (1)

Un sistema de comunicación por radio que tuviera que funcionar en condiciones marginales de relación señal/ruido necesitaría digitalizar la señal, filtrar, posiblemente FFT (generalmente no), rastrear la fase del reloj, corregir errores, todas esas cosas tediosas.

Sin embargo, con una conexión por cable de alta relación señal/ruido, esta biblioteca barata y alegre utiliza el comparador analógico para detectar cuándo la señal cruza un umbral y, en su lugar, el temporizador para medir la duración de los períodos alto/bajo. El muestreo ocurre implícitamente en las funciones de espera de bit de inicio, espera de bits de datos, espera de bits de parada que comprenden una máquina de estado de obtención de bytes de datos, por ejemplo. ¿Filtración? ¡No necesitamos ningún filtro de Steenkin!

Lea el código fuente, todo está en SoftModem.cpp al que se vinculó.

No necesariamente necesita una FFT y mucho procesamiento complicado. Utilicé módulos de señalización que podían captar una señal PSK de tanto ruido que no podías decir con tus oídos si había o no una señal para decodificar. También tuve la oportunidad de observar el código. No era mucho más sofisticado que este software "barato y alegre". No podía ser, porque se ejecutaba en un procesador 6502 con solo unos pocos k de ROM y unos pocos cientos de bytes de RAM.
Solo por curiosidad, ¿debería haber un opamp en ese circuito? ¿No debería haber algún tipo de "acondicionamiento de señal" allí?
@Kar: el que mencioné usaba una especie de disparador schmitt para traducir la señal de audio a una serie de pulsos. También había un filtro de paso de banda débil.