Estudio del fax meteorológico en HF

El boletín de Otoño de 2015 de la asociación EA-QRP incluye un breve artículo que escribí sobre el fax meteorológico en HF, conocido como «wefax«, que amplío en esta entrada. Se encuentra abundante información en internet sobre el sistema wefax así que yo voy a recopilar aquí los datos que me han parecido más prácticos en mi experiencia recibiendo estas señales.

Este sistema permite transmitir imágenes monocromo a través de un canal de audio, ya sea de cable telefónico o de radio. Históricamente ha sido muy utilizado y ahora lo es menos aunque todavía lo emplean algunas estaciones. Su contenido es fundamentalmente información meteorológica dirigida a barcos en alta mar.

Fundamentos

El wefax de HF tiene unas características que lo diferencian de, por ejemplo, la televisión analógica. Dos de las más esenciales son que no tiene sincronismos en cada línea y que la información que queremos transmitir (es decir, el brillo de una imagen) modula la frecuencia de la portadora. La televisión analógica clásica tiene sincronismos de línea y de cuadro y la luminancia modula la portadora en amplitud.

En las transmisiones wefax se suele indicar como frecuencia de referencia la del centro de la transmisión. Los puntos de la imagen de color blanco se corresponden con un desplazamiento positivo de la frecuencia y los puntos negros, con un tono de frecuencia menor. Esa desviación de frecuencia suele ser de 400 o de 425 Hz en cada sentido. La forma habitual de demodularlo es mediante un receptor de SSB y una tarjeta de sonido. Normalmente sintonizaremos la emisora para que la frecuencia central se desplace a una frecuencia de audio de 1900 Hz. En consecuencia, los tonos blanco y negro se recibirían como 2300 y 1500 Hz o bien 2325 y 1475 Hz. Las estaciones emisoras suelen publicar la frecuencia central de la emisión. Por ejemplo, la estación británica Northwood dice emitir en 8.040 kHz. Debemos sintonizar nuestro equipo en modo USB en 8.038,1 kHz para recibir así los tonos:

Si configuramos el waterfall para mostrar frecuencias de RF en lugar de audibles vemos esto:

Otros parámetros importantes para la recepción son el número de líneas por minuto, habitualmente 120, y el IOC (index of cooperation), que indica la relación de aspecto de la imagen, es decir, la relación entre longitud y anchura de cada línea. Sin un ajuste adecuado del IOC tendríamos imágenes demasiado comprimidas o estiradas. Hoy en día sería más sencillo indicar los píxeles de anchura de la imagen pero se utiliza el número IOC, heredado de los tiempos en que las imágenes se imprimían directamente con una impresora de aguja sobre papel continuo. Se calcula como el producto de la anchura de la línea multiplicada el número de líneas por unidad de longitud y dividido entre π. Si pensamos en píxeles, una línea tiene 1 píxel de alto. Por lo tanto el IOC es igual a los píxeles de anchura dividido entre π. El valor habitual de IOC es 576, y precisamente los programas generan imágenes de 576*π=1809 px de anchura.

En la siguiente imagen se observa una transmisión completa. En reposo, sin transmitir ninguna imagen, se envía un tono constante de la frecuencia más alta, correspondiente al color blanco. Después se aprecia una estrecha línea punteada que avisa del comienzo de una imagen. Más abajo, una banda más ancha de color negro ocupa la mayor parte la anchura de la imagen: es el sincronismo de línea que permite ajustar horizontalmente la imagen. Para indicar al programa que la imagen ha terminado se envía otra línea punteada al final. Después viene una franja negra y vuelta al estado de reposo en color blanco.

El inicio y fin de la transmisión se indica con unas señales específicas que son interpretadas por el software receptor para saber cuándo tiene que empezar a procesar una imagen. El inicio se codifica como una secuencia que alterna blanco y negro a ritmo de 300 Hz durante 5 segundos. Si la miramos en detalle:

Hasta el píxel 796 contamos 66 marcas. Si la línea tiene 1809 píxeles de anchura correspondientes a una duración de 500 ms (120 líneas por minuto) eso nos da:

66 · 1809 / (796 · 0.5) = 299,98 marcas por segundo

Si miramos el espectro de los primeros segundos:

Durante el primer segundo y medio (no grabé toda la secuencia de inicio, sólo esta parte) vemos unos tonos en 1300, 1600, 1900, 2200 y 2500 Hz, y más tenues de 1000 y 2800 Hz. Esto es el espectro que corresponde a modular en frecuencia una portadora de 1900 Hz con una moduladora de 300 Hz y una desviación de 425 Hz. Si se permitiese más desviación que 425 Hz veríamos más bandas laterales, siempre separadas múltiplos de 300 Hz de la portadora de 1900 Hz. Hay un tono espurio en 2,4 kHz que no debe tenerse en cuenta.

Desde la posición 1,5 s y hasta el final vemos un tono de 1500 Hz muy marcado, con unos breves pulsos en 2300 Hz. Es la banda de sincronismo, de color negro con breve presencia de blanco.

Éste es el final de la imagen, con el patrón de la secuencia de parada consistente en las líneas paralelas pegadas:

Contamos 99 marcas en 800 píxeles, correspondiente a 450 Hz.

El espectro de la parte final:

De nuevo, despreciar la interferencia de 2,4 kHz. Se aprecia el final del tono blanco en 2325 Hz (frecuencia central de 1900 + desviación de 425 Hz) hasta el segundo 2, seguido por exactamente 5 segundos de secuencia de parada, y después el tono negro en 1475 Hz. Si miramos con detalle el espectro de la secuencia de parada:

Vemos componentes en 1900 Hz más y menos 450 Hz, incluso una segunda banda lateral inferior en 1000 Hz.

Estas secuencias de inicio y fin coinciden con lo que explican aquí.

Software

Existen bastantes programas para recibir estas señales.Yo utilizo sobre todo Hamfax y ocasionalmente fldigi, siempre en Linux. Algunas personas tienen dificultades para configurar el dispositivo de entrada de audio. Yo tengo instalado Pulse Audio y me funciona poniendo «ALSA:default» en Options -> Device settings -> dsp device:

La configuración normal para recibir wefax será:

Solamente habría que modificar el valor de desviación, que puede ser de 400 o 425 Hz, y el de líneas por minuto, que puede ser 60 o 120.

La detección de inicio y fin de una imagen no siempre funciona bien pero podemos activarlo manualmente. Una vez parado el receptor y si tenemos una imagen que nos guste deberíamos seleccionar «slant correction» bajo el menú «Image» y trazar una línea oblicua siguiendo alguna línea de la imagen recibida que debiera ser vertical pero aparezca oblicua. Esto sucede casi siempre debido a pequeñas diferencias entre la velocidad del transmisor y del receptor. Si la duración de las líneas no es exactamente igual para ambos se tuerce la imagen, pero se corrige perfectamente con Hamfax. Después de enderezarla puede ser necesario centrarla horizontalmente. Esto se hace con «set beggining of line», también bajo «Image». Ten en cuenta que la opción «slant correction» queda inhabilitada después de corregir el inicio de línea.

Estaciones activas

Este documento recoge las estaciones activas y sus horarios y modos. Está un poco desactualizado y no se cumple a rajatabla. Aquí está la programación de la estación alemana de Hamburgo. Las estaciones que yo escucho mejor desde España son:

Bracknell. Fleet weather and oceanographic center, Northwood (Reino Unido): 2616,6 4608,1 8038,1 11.084,6 kHz.
Hamburgo / Pinneberg (Alemania): 3.853,1 7.878,1 13.880,6 kHz. Indicativos DDH3, DDK3 y DDK6. Desviación ±425 Hz.
Kyodo (Japón): 8.465,6 12.743,6 kHz. Habitualmente 60 lpm.
Boston (EEUU): 9.108,1 12.748,1 kHz.
Nueva Orleans (EEUU): 8,502 12.788,1 kHz.
Atenas (Grecia): 8.105 kHz. Solamente por las mañanas.

En todos los casos la frecuencia indicada es la de sintonía del receptor USB para que la emisión quede centrada en 1900 Hz. La desviación es de ±400 Hz excepto en Hamburgo. La velocidad es de 120 lpm excepto en Kyodo. Todas éstas son estaciones gubernamentales que transmiten mapas con información meteorológica, excepto la japonesa Kyodo, que es una agencia de noticias. Suelen transmitir páginas de periódico con noticias de actualidad y en ocasiones algún mapa.

Propagación multitrayecto

La propagación ionosférica puede componerse de varios caminos con diferente retardo, o de un camino que dispersa la potencia en un intervalo de tiempo porque la reflexión o refracción del frente de ondas se produce gradualmente. Este efecto pasa inadvertido en comunicaciones de voz pero, en el caso de comunicaciones digitales, origina interferencia entre símbolos y, en transmisión de imagen analógica, ensanchamiento de las líneas verticales o imagen fantasma. Se aprecia claramente en el wefax gracias a que las líneas verticales son muy estrechas. Esta imagen fue transmitida desde Hamburgo el 15 de Abril de 2015. Durante su recepción fui cambiando la frecuencia:

Se advierte que la frecuencia más alta, 13.880, tiene un camino directo con un retardo constante. En 7.878 las líneas están más emborronadas, corridas a la derecha. El efecto se acentúa en 3.853 kHz y las letras resultan completamente ilegibles.

Esta otra imagen muestra un eco desplazado a la derecha con bastante claridad. Eso significa que había dos caminos de propagación bien diferenciados, con retardos ligeramente distintos. En algunas partes parece que se anula uno de los dos caminos y las líneas se perfilan mejor, sin eco.

El canal de propagación no sólo tiene dos caminos, sino que estos no son estables a lo largo de la transmisión de la imagen. Vemos zonas donde se ven dos trazos paralelos, otras donde predomina el de la izquierda (el camino más corto) y otras donde el corto se anula y sólo se ve el largo, a la derecha. Con un sencillo script de octave se pueden analizar dos líneas, la 566 con multitrayecto y la 361 sin él. Octave puede importar una imagen bmp en una matriz con un sólo comando (imread).

 

% Autocorrelación de una imagen wefax
pkg load signal
wefax=imread("2016-06-21-23-34-55_multi.bmp");

lin_a=wefax(566,:); % línea con mucho eco.
lin_a=256.-lin_a;
lin_b=wefax(361,:); % línea muy limpia, sin eco
lin_b=256.-lin_b;
%plot(lin290);

corre_a=xcorr(lin_a);
corre_b=xcorr(lin_b);
[max_a,centro_a]=max(corre_a);
[max_b,centro_b]=max(corre_b);
corre_a=corre_a/max_a;
corre_b=corre_b/max_b;
ventana=20;
Tp=500/1809; % Duración de un píxel
eje=[-ventana*Tp:Tp:ventana*Tp];
plot(eje,corre_a(centro_a-ventana:centro_a+ventana));
hold
plot(eje,corre_b(centro_b-ventana:centro_b+ventana),'r');
axis([-Inf Inf 0 1]);
grid;
legend("Linea con multitrayecto","Linea sin multitrayecto");
xlabel("t [ms]");
ylabel("Autocorrelacion normalizada");
hold off;
figure(2);
stem([-ventana:ventana],corre_a(centro_a-ventana:centro_a+ventana));
grid;

 

El script genera esta figura. La gráfica roja corresponde a la línea sin multitrayecto. Tiene un máximo para desplazamiento 0, es decir cuando la imagen coincide consigo misma; conforme se desplaza, la correlación vale cada vez menos. Sin embargo la gráfica azul tiene un claro repunte para un desplazamiento algo superior a 2 ms. Esto significa que la imagen desplazada ese tiempo vuelve a parecerse a la original.

Autocorrelación de las dos líneas
Autocorrelación de las dos líneas

En la siguiente figura vemos la misma gráfica azul pero en valores discretos. El eje horizontal corresponde a muestras.

Valores discretos de la autocorrelación.
Valores discretos de la autocorrelación.

El máximo local correspondiente al eco está desplazado 9 muestras respecto al centro. Para mayor precisión deberíamos interpolar la gráfica con una ecuación adecuada y hallar la posición del máximo, que estaría entre las muestras 9 y 10 porque tienen un valor muy parecido. Tomaré la 9 por simplicidad. Como el periodo de muestreo es la duración de un píxel (500 ms/línea / 1809 píxeles/línea = 0.2764 ms), podemos calcular que el eco llega con un retraso de 9 * 0.2764 ms que es aproximadamente 2,5 ms. En ese tiempo el frente de onda recorre 2,5 ms * 3e8m/s = 746 km. Es decir, hay un camino alternativo que es 746 km más largo que el principal. La distancia ortodrómica o de círculo máximo entre el transmisor y el receptor es de 1.250 km.

La propagación ionosférica puede seguir cualquier ruta, no necesariamente la de círculo máximo, sino desviarse al este o al oeste. Sólo sabemos que un día a una hora entre Londres y Madrid en la frecuencia de 8.040 kHz había dos caminos de propagación que diferían 746 km: llegar a saber en qué puntos geográficos y a qué altura tenían lugar las dos reflexiones del frente de ondas es un problema que queda fuera de mi aptitudes.