La modulación de PSK31 y cómo generarla

En esta entrada explicaré algunas cuestiones sobre el modo PSK31 a modo de introducción para, en otra entrada posterior, presentar un proyecto de transmisor en el que he estado trabajando.

PSK31 es un modo de comunicación digital «de teclado a teclado» ideado por el radioaficionado británico Peter Martinez G3PLX (de antepasados españoles), basado en trabajos anteriores sobre modulación PSK de Pawel Jalocha SP9VRC.

Desde su desarrollo a finales de los años 90 el PSK31 ha sido uno de los modos más populares en HF. Hasta entonces casi la única la forma de hacer QSOs cuando las condiciones no eran propicias para la voz, era el CW. Existían otros modos digitales, como el RTTY o el AMTOR, que por lo general requerían módems con un hardware específico y que tampoco mejoraban notablemente la comunicación en condiciones de señal débil. El PSK31 se podía demodular aun recibiendo señales muy débiles y desde el principio estuvieron disponibles programas que empleaban la tarjeta de sonido.

Cascada espectral. Señales PSK31 en 40 metros.

En ocasiones se habla de que PSK31 se puede demodular con valores de relación señal / ruido (SNR) negativos, o con señales «hundidas en el ruido». Estrictamente no es así. PSK31 siempre necesita varios dB positivos de SNR, lo que ocurre es que sólo ocupa unos 60 Hz de ancho de banda. Como indican KB9II y PA3FWM, requiere una SNR de aproximadamente -10dB en el ancho de banda típico de SSB (2500 Hz) pero si sumamos 10·log10(2500/60) = 17 tenemos una SNR de +7 dB en 60 Hz. Tampoco es correcto hablar de que otros modos digitales son mucho más eficientes. La comparación justa se debe hacer en términos de SNR frente a velocidad de la comunicación o equivalentemente Eb/N0 o sea energía por bit dividida entre densidad espectral de potencia de ruido. La tabla de PA3FWM muestra que PSK31 es unos 10 dB menos eficiente que el límite teórico pero tampoco es fácil bajar mucho más. WSPR o WSJT lo mejoran en algún decibelio. PSK31 tiene ventajas prácticas innegables como facilidad de uso y de implementación.

Estamos acostumbrados a pensar en PSK31 como una modulación en un tono de audio que luego se traslada a RF mediante una emisora de SSB. Sin embargo, también podemos considerarla en una forma de AM generada mediante una moduladora en banda base (de 0 a 15,625 Hz) que multiplica a una portadora de RF. La moduladora de PSK31 es tan simple como un valor constante para transmitir el bit ‘1’ y un semiciclo de sinusoide para el bit ‘0’, lo cual invierte la polaridad de forma suavizada. La duración de cada símbolo es de 32 ms, por lo que hay 31,25 símbolos cada segundo, y la envolvente del ‘0’ es un semiciclo de coseno de 31,25 / 2 = 15,625 Hz.

Pasar de audio a RF mediante SSB es el camino más cómodo partiendo de las tarjetas de sonido y transceptores que tenemos la mayoría. Generar la modulación en RF mezclando directamente la moduladora en banda base con el oscilador local exige poder generar señales sin frecuencia de corte inferior y acoplarlas en DC al modulador, cosas que ni las tarjetas de sonido ni las emisoras permiten.

Moduladora en banda base

Podemos pensar que emitir CW es multiplicar una portadora por 0 o 1. PSK es multiplicar por +1 y -1 con transiciones suaves que son medio ciclo de un coseno. Esto es lo que hace KA7OEI mediante un microcontrolador PIC, un oscilador a cristal y un mezclador para transmitir una baliza fija.

Como ejercicio de teoría de señales aquí proponen y demuestran que es equivalente a combinar dos osciladores de igual frecuencia y fase para transmitir el símbolo ‘1’ y aumentar la frecuencia de uno en 1/2 de la tasa de símbolo y reducir la del otro para transmitir el ‘0’.

Aquí G4JNT sintetiza la forma de onda con un DDS escogiendo directamente la muestra en cada instante.

Aquí KO7M sintetiza la forma de onda en audio (no en banda base) con Arduino  y aquí lo mismo con un PIC.

En cuanto a la codificación de fuente, PSK31 es bastante sencillo. Los caracteres de texto transmisibles se traducen a secuencias binarias de longitud variable según el alfabeto Varicode (mostrado de nuevo aquí). Los caracteres se separan mediante el envío de dos ‘0’s seguidos, secuencia que nunca sucede dentro de un carácter. No parece complicado elaborar un programa sea en ‘C’, octave, python, ensamblador, etc, para convertir un texto en la secuencia binaria de ‘0’ y ‘1’ de PSK31. Y más arriba hemos visto cómo esos ‘0’ y ‘1’ se modulan sobre la portadora de RF. No he encontrado ningún programa que, a partir de un fichero de texto, haga esa conversión, o , mejor aún, genere un fichero de audio wav con el tono de audio de psk31. Esto permitiría ejecutar scripts para enviar automáticamente mensajes o telemetría. Sí existen programas análogos que generan el audio de packet afsk de 1200 baudios o sstv a partir de un texto o imagen.

Partiendo de un texto podríamos obtener la secuencia binaria, también la modulación en banda base si podemos sintetizar formas de onda sin el problema de la frecuencia de corte inferior y, si tenemos un oscilador, podríamos modularlo con la señal anterior y enviar nuestro mensaje al aire. Un microordenador Rasperry Pi es capaz de hacer todo esto con mínimo hardware adicional como mostraré próximamente en otra entrada.

 

Rasperry Pi modelo B

 

Actualización [3-12-2016]

El PSK31 tiene esta página oficial en la Universidad del País Vasco. No está muy actualizada pero contiene documentos de G3PLX de la época, sobre todo explicando las ventajas del modo más que las especificaciones técnicas detalladas. En este documento, Peter G3PLX dice algo similar a lo que yo explicaba más arriba:

«To generate BPSK in it’s simplest form we could convert our data-stream to levels of +/- 1 volt for example, take it through a low-pass filter, and feed it into a balanced modulator into which we also feed the desired carrier frequency. When sending continuous reversals, this looks like a 1 volt pk-pk sinewave going into a DSB modulator, so the output is a pure two-tone. In practice we use a standard SSB transceiver and perform the modulation at audio frequency»