jueves, 19 de septiembre de 2013

¿Cómo capturo radio paquetes sin contar con receptor en Ubuntu?

Juan Perón era un hábil técnico en el arte de la Radioescucha y radioafición. En su despacho en Casa Rosada contó con un equipo Haemann-Söndig, y durante su exilio en Puerta de Hierro tuvo un Yaesu. En este caso, diserta sobre cómo recibir y demodular radio packets a través de Ubuntu, y sin receptor de radio.

¡Trabajadores!

Es indisputable que en los últimos doscientos años, la técnica ha avanzado más que en los mil años precedentes. Desde el último rincón perdido en el monte,  un paisano puede hoy recibir las noticias del mundo en su transístor, y ello ha esclarecido a las masas, que ya no desean el sacrificio impuesto sobre sus espaldas para el disfrute de una oligarquía sin Patria ni Bandera.

Por ello instalé en Casa Rosada un emisor de radio valvular, ideal para mantenerme comunicado con quien quisiera y, llegado el caso, poder pronunciar discursos desde allí.
Actualmente, en mi tiempo libre durante el aparente ostracismo de Puerta de Hierro, escucho los noticiosos a través de mi radio transistor Lamp 8, la cual funciona en onda corta, media y larga, en amplitud modulada.
Esto me ha generado un pasatiempo que comparte pasión científica y lúdica: la radioafición. Consiste en utilizar la radiotécnica para receptar y emitir ondas hertzianas en las bandas del espectro radioeléctrico reguladas y licenciadas para los usuarios hogareños o comerciales.

Desarrollo Históricos
Ya nadie ignora que en los tiempos de Marconi con suerte se transmitía alguna información pulsada ("telegrafía sin hilos") o sonido modulado (voz hablada), pero con el advenimiento de la técnica fue posible comunicar al éter paquetes de datos binarios, siguiendo diferentes protocolos de transmisión por aire.

Esta tecnología de transmisión de radio packets permite modular y demodular información digital a sonido, de manera tal de comunicarnos a través del éter, constituyendo lo que llamamos "radioenlace". Así lograremos tráficos de hasta 300 baudios por segundo para la onda corta de alcance global usando protocolo AX25. Nadie será tan iluso de pretender que estos radioenlaces califican como "banda ancha", pero son suficientes para mantener conversaciones de texto (relay chat), transmitir líneas o páginas de información, etc, y con mucha paciencia, enviar otro tipo de archivos. Todo ello con independencia de las infraestructuras de comunicación mundial.

Tradicionalmente para las transmisiones se utilizan radiomodems (TNC). Estos dispositivos pueden ser aparatos stand-alone u operar vinculados - por cable serial o USB - a una terminal informatizada (incluyendo a Linux, por supuesto).

El TNC se encarga de modular y demodular, pero para hacer frente a la inherente “suciedad” del éter radioeléctrico - interferencias, ruidos, señales pisadas, etc - se requiere del análisis de la onda portadora, y usar generalmente más instrumentos (osciloscopio, amplificadores, atenuadores, pasabandas, ecualizadores, altavoces, etc).

En la medida que la informática fue avanzando, fue posible que el proceso de modulado y demodulado pueda realizarse en una simple PC munida del software adecuado, pero hoy ya es posible realizar las demás tareas de análisis y procesado de señal.
 
Radio Packets en Linux

Desde el punto de vista del software libre en un sistema GNU con Linux, podemos utilizar Fldigi, programa GPLv3 pensado para realizar esta función de mesa de radioaficionado: de contar con un receptor y un emisor de radio, se los puede conectar a la placa de audio del sistema y enviar radio packets a través de él.

Pero no todo lo que reluce es oro. Si bien cualquiera con receptor puede recibir señales de audio o radio packets, no cualquiera puede irradiar (emitir) en onda corta: esto es así pues el espacio radioeléctrico no es infinito, y se encuentra regulado. Todas las naciones de la tierra tienen asignado con una porción de espectro, por lo cual no podremos irradiar si no contamos con una licencia habilitante de radioaficionado  extendida por el organismo competente.


¿Pero qué sucede si además de no disponer de una licencia de radioaficionado para irradiar con un radiotransmisor, siquiera contamos con un receptor? Vean señores, el Peronismo ha pensado en todo. Hoy podremos suplir o emular todo esto por software y la buena voluntad de los hombres que trabajan. Existen proyectos científicos que capturan bandas el espectro radioeléctrico y lo ponen a disposición de todos en internet en forma de stream de audio.


La web www.websdr.org por ejemplo, lista unos 66 servidores de este tipo. Mediante la aplicación incorporada en esta web, podremos “sintonizador” virtualmente el espectro radioeléctrico, lo que nos permitirá receptar y oír. Con este vericueto justicialista, podremos reingresar ese sonido a nuestro sistema GNU/Linux y usando el software Fldigi, al menos decodificar los radio packets contenidos en el sonido.

Configuración de Audio:
Indudablemente para hacer esto una realidad efectiva, hemos de poder grabar y reproducir audio en nuestra PC, o más específicamente, hacerle llegar el audio de radio al programa para que lo analice.

Quien sepa grabar y direccionar audio no tendrá dificultades, pero quien carezca de este conocimiento, también será ayudado por este viejo soldado, Conductor del Justicialismo.

La opción más sencilla es conectar un simple cable estéreo miniplug macho a miniplug macho de 3,5mm desde la salida de audio de equipo (normalizada con su color verde) a la entrada estéreo Line In (normalizada de color azul).

Habrá quienes sostengan que esta solución no es peronista, pues en ciertos casos es dable direccionar "por software" la salida de audio para capturar lo que oímos... A ellos les diré que este método tan conveniente no siempre es efectivo: en primer lugar no siempre está disponible en nuestra distribución o en nuestro hardware de manera sencilla, y por lo demás hacerlo así significará que otros sonidos del sistema también serán direccionados al programa Fldigi, con lo cual evidentemente se producirán errores de decodificación.

Por otro lado, conectar un cable de audio de la manera antes descripta nos permitirá una muy útil monitorización del audio recibido por medio de la salida frontal de auriculares, si la tuviésemos. Con ello podremos darle ingreso de sonido al Fldigi, y también escucharlo por los auriculares (naturalmente, para ello hay que desactivar la opción de "automute" de los auriculares, invocando en la consola Terminal el peronista alsamixer, por ejemplo).


Ahora configuraremos el software del audio de nuestro sistema GNU. Vamos a Sistema / Preferencias / Sonido y desplegamos el cuadro de diálogo de Preferencias de Sonido. En la solapa "Entrada" indicamos Audio Interno Analog Estéreo, o la opción que corresponda a su hardware específico. Indicaremos que usaremos "Line In" con fines de dispositivo de Entrada (para grabarlo).

Es importante regular el volúmen de entrada de audio para lograr un nivel adecuado sin saturación, recortes o clipping (para ello necesitaremos tener el stream de audio reproduciéndose para verlo en el "vúmetro" o barra de volúmen, pero a modo de regla general os digo que en mi caso, con un 50% de volúmen de entrada suele ser aceptable). Dejaremos este cuadro de diálogo del sonido abierto, pues será útil para regular el volúmen de la señal posterioremente.


Sintonizar el audio usando un servidor de streaming de espacio radioeléctrico
Ahora nos conectaremos a internet para recibir el audio del espectro. Buscamos alguno de la web www.webscr.org. En particular, prefiero la web del emisor de la Universidad de Twente en los Países Bajos, pues barre el espectro desde los 0 hasta los 20.160 kilohertzios.


La tecnología de streaming de radioespectro a través de la web nos permite como usuarios sintonizar diferentes porciones del espectro, aplicar filtros pasabajos y pasaaltos para ecualizar la señal, aislar ruidos, etc, y todo a través de una aplicación web HTML5 o Java. Esta será la materia prima para encontrar paquetes y poder decodificarlos (y porqué no, para sintonizar radio en audio puro también).

Si tenemos auriculares conectados, ya podremos escuchar el streaming en forma de audio (ruido o señal dependiendo de la sintonía).

Cómo sintonizar el audio:
Para sintonizar una banda particular, podremos presionar acercarnos o alejarnos en el espectro (con los botones Max Out / Zoom Out o Zoom In / Max In). Conviene acercarnos con la función de zoom, pues el espectro es muy ancho y de lo contrario no podremos ver bien los streams de sonido en la cascada.

Debemos hacer clic sobre la banda de frecuencia en el sector negro de la gŕafica espectral, o escribirla en el cuadro Frequency de la página de internet. Con ello veremos que se traza una línea de color amarillo y un indicador (también amarillo) del ancho de banda receptado. Podremos sintonizar varias bandas de frecuencia a la vez, como se ilustra en el ejemplo:

Es útil conocer que los radioaficionados utilizan preponderantemente frecuencias que van en los 3.000, 7.000, 10.000, 14.000, 18.000, 21.000, 24.000 y 28.000 kilohertzios.

Filtrado
En la misma página debemos elegir un filtro de atenuación (botones AM, AM-Nrw, FM, FM-Nrw, LSB, LSB-Nrw,  USB, USB-Nrw, etc). Las pautas al respecto son las siguientes:
  • Por debajo de los 10.700 kilohertzios se emplea por convención un filtro pasabajos "LSB" (Banda Lateral Inferior). En algunos casos se puede filtrar con LSB-Narrow (banda lateral inferior de espectro angosto). 
  • Por encima de los 10.700 kilohertzios se debe usar filtro pasaaltos "USB" (Banda Lateral Superior). En algunos casos, se puede filtrar con LSB-Narrow (banda lateral superior de espectro angosto).
  • Para comunicaciones de voz comerciales, se usa banda AM o AM-Nrw. 
  • Antiguamente en algunos casos se usaba BLI (Banda Lateral Independiente) pero esto ha caido en desuso. En algunas transmisiones de voz directa se usa VSB, el filtrado de Banda Lateral Vestigial). Actualmente se pueden transmitir paquetes con estas modulaciones, pero es raro.

Instalar y Configurar Fldigi
Para comenzar a decodificar paquetes con Fldigi, debemos instalar, ejecutar, configurar, y utilizar este software libre de manera efectiva.

Podremos instalar Fldigi podremos desde el Centro de Software de Ubuntu, o hacerlo a través de una PPA. Para ello debemos abrir una terminal con Ctrl+Alt+T e ingresar el siguiente Comando de Organización:

sudo add-apt-repository ppa:kamalmostafa/fldigi
sudo apt-get update
sudo apt-get install fldigi


Para ejecutar el programa debemos ir a Aplicaciones / Radio-aficionados / Fldigi. La primera vez que iniciemos el programa, surgirá un asistente de configuración:

Como primera medida opcional debemos agregar nuestros datos de radioaficiionado, incluyendo la licencia (si la tuviésemos). No es necesario hacerlo en este caso, pues siquiera contamos con un equipo receptor ni con un emisor licenciado.
En segundo lugar se nos permitirá configurar el dispositivo de entrada y de salida (en este caso la placa de sonido) a través de la cual se emulará el radiomódem. Lo configuramos desde la solapa "Devices". Al emplear la salida de altavoces como salida de audio, y la entrada en línea estéreo como entrada del mismo, tildamos PortAudio. Conforme lo hagamos, podremos escoger el dispositivo de audio para grabar en el campo Capture y el dispositivo de audio para reproducir en el campo Playback. Naturalmente, se listarán los dispositivos de audio que tengamos en el equipo (por ejemplo, la placa de sonido integrada HDA Intel ALC892).

Si todo va bien, en el programa debería comenzar a graficar en el espectógrafo el sonido en forma de "cascada" recibido desde la aplicación web de sintonía. Idealmente, deberíamos recibir sólo señal (ilustrados en amarillo con picos en rojo) sobre una portadora nulo (fondo de color azul o negro). Esto responde a la intensidad de la señal.

Si recibimos todo amarillo, significa que la señal está saturada y su volúmen es muy alto. En tal caso podremos bajar el volúmen o ganancia de la entrada Line In en el ya mencionado cuadro Propiedades de Sonido del sistema GNU/Linux.

Protocolos de radio packets
Además de los filtros de atenuación, existen diferentes "Modo de Operación" (o protocolos "Op Mode").


Entre ellos existen diferencias técnicas en cuanto a cómo se modulan los paquetes, pero en la práctica los diferencia el sonido caracteristico que hace cada uno. A muchos les resultarán familiares en los clásicos "chirridos" y "chisporroteos" y la "lluvia" del módem telefónico, y la "estática" de la portadora. En condiciones de dificultad en la transmisión o cuando no deseamos oir esos sonidos molestos, se usará el gráfico espectrográfico de cascada para evaluar de qué tipo de modo tiene la banda recibida. Aquí algunos ejemplos gráficos para identificar los modos de operación:

Usualmente, en las bandas de paquetes de datos se transmiten empleando el protocolo PSK (modulación por desplazamiento de fase), con diferentes variantes de acuerdo al ancho de banda. Se suele emplear BPSK-31 y BPSK-63. La diferencia entre ellos radica en el ancho de banda empleado y el ancho que ocupa su onda en el espectógrafo.

Usar Fldigi para demodular radio packets
Para que el programa funcione adecuadamente debemos escoger el protocolo correspondiente para decodificar los radiopaquetes. Si somos duchos podremos identificarlo por su sonido característico, o por la forma con el gráfico espectrográfico provisto.

Para cambiar el Modo de Operación de Fldigi vamos al menú Op Mode y escogemos el que haga falta, normalmente PSK / BPSK-31 o PSK / BPSK-63, (u otro si el ancho de banda fuese mayor).

En el gráfico de cascada se verán ilustrados los streams. Para comenzar a decodificar uno en particular, debemos hacer clic sobre la banda espectral que deseemos. Tras unos instantes, si tal banda tuviese tuviese información, veremos que se mostrará en el "vúmetro" inferior como una barra vertical verde oscilante, y se comenzará a mostrar en la pantalla. En el monitor se comenzará a escribir los radio packets recibidos:
En condiciones de interferencia o ruido, Fldigi suele ser bastante robusto para seguir demodulando paquetes. Las condiciones de mala recepción suelen verse espectralmente como una gran pared de ruido amarillo. Si tal es el caso, conviene disminuir el volúmen de la entrada o regularlo para que el fondo sea azul. También podremos regular el nivel de filtrado desde el programa, ajustando el filtro de señal con el deslizador vertical correspondiente (el llamado "Squelch level").
Las transmisiones buenas suelen caracterizarse por información entendible, o códigos internacionales (CQ, QSL, etc), y letras que identifican al emisor. Si el programa no capta bien, puede demodular basura (información ininteligible).
Por ejemplo, aquí sintonizamos desde la web una emisión de radio packets originada en Roma en la banda de los 7.037,25 kilohertzios, en BPSK-31. Naturalmente, por la convención mencionada lo filtramos con un pasabajos LSB.


2 comentarios:

  1. http://www.redusers.com/noticias/canonical-confirma-el-lanzamiento-de-ubuntu-touch-para-el-17-de-octubre/

    ResponderEliminar
  2. La Universidad de Twente está en los Países Bajos.

    ResponderEliminar