Cómo demodular radio FM estéreo

En el artículo anterior hablé de cómo demodular una señal de radio AM o FM, y en este artículo voy a hablar de lo que os encontraréis después de la demodulación (lo que di en llamar "el programa"). Tal vez os sorprenda que vaya a dedicar un artículo completo al asunto, pero, como podéis imaginar por su longitud, puede tener bastante tela. Al menos, para nuestro alivio, el asunto es muy sencillo en AM y en FM "mono": después de demodular la señal de radio, lo que tenemos es una onda sonora. Sin embargo, la cosa se complica cuando se trata de FM estéreo.

En un sistema de sonido monofónico sólo hay un altavoz, o hay varios altavoces pero todos reproducen la misma señal sonora. En un sistema de sonido estereofónico, en cambio, hay dos juegos de altavoces; uno que reproduce sonidos destinados al oído derecho y otros que reproducen sonidos destinados al oído izquierdo. Esto permite realizar efectos como hacer aparentar que un sonido procede de una determinada dirección (el sonido estereofónico se inventó para el cine en los años 30; la palabra "estéreo" viene de la palabra griega στερεός, que significa "sólido").

Cuando quisieron inventar un sistema para transmitir sonido estéreo por la radio, decidieron añadir esta capacidad a la radio FM. El objetivo era que una emisora FM pudiese transmitir sonido estéreo por el mismo canal que venía usando para el sonido mono de manera que las radios monofónicas que ya estaban en el mercado pudiesen recibir correctamente esas transmisiones estéreo, aunque (por supuesto) se escuchasen en mono. Para ello, las frecuencias audibles del programa demodulado deben contener una señal monofónica de manera que una radio FM mono pueda tratar el programa estéreo como si fuera un programa mono y que se oiga igual la música o las noticias o lo que sea. Sin embargo, no había nada que impidiese añadir más información en frecuencias superiores a estas frecuencias audibles. Lo que hicieron fue precisamente eso: generar una onda con toda la información necesaria para reconstruir la señal estereofónica y desplazarla en frecuencia hasta una frecuencia inaudible, y luego hacer que el receptor la vuelva a trasladar hasta las frecuencias audibles.

Espectro de una señal FM estéreo demodulada

A la derecha véis qué hay dentro del programa de una radio FM moderna. Entre 0 y 15 kHz está la señal monofónica, que no es más que la suma de las señales sonoras correspondientes a los oídos derecho e izquierdo. Entre 23 y 53 kHz (centrada en 38 kHz) está la señal "diferencia", que es la diferencia entre la señal del oído izquierdo y la señal del oído derecho.

Veamos cómo se generan estas señales estereofónicas. Si [$L$] y [$R$] son las ondas correspondientes a los oídos izquierdo y derecho, respectivamente, resulta que la señal mono es [$M=L+R$] y la señal diferencia es [$D=L-R$]. Para reconstruir la señal del oído izquierdo, la radio no tiene más que sumar las dos señales, [$M+D=L+R+L-R=2L$] y para reconstruir la del oído derecho sólo tiene que restarlas, [$M-D=L+R-(L-R)=2R$].

Para poder sumar y restar las señales mono y diferencia hay que desplazar primero la señal diferencia para que esté centrada en 0 Hz en lugar de 38 kHz. En teoría podríamos hacerlo multiplicándola por la senoidal [$\cos(2\pi 38000 t)$] y aplicándole un filtro paso bajo que sólo deje pasar las frecuencias inferiores a 15 kHz. Este plan tiene dos problemas. El primero es que sería difícil generar una senoidal que tuviese exactamente la misma frecuencia que el oscilador que desplazó la señal diferencia en primer lugar. El segundo problema es que el oscilador del receptor de radio y el de la emisora estarían fuera de fase, con lo que la señal diferencia desplazada tendría la fase cambiada y el sistema para generar las señales estereofónicas no funcionaría bien.

Para solucionar este problema, el programa incluye un "tono piloto", que es una senoidal de frecuencia 19 kHz. Esta senoidal proporciona una referencia de frecuencia y fase que sirve para generar la senoidal de 38 kHz necesaria para desplazar la señal diferencia. Esto se hace utilizando un componente de las radios FM llamado "bucle enganchado en fase" (PLL). Este componente es capaz de detectar una senoidal de una frecuencia determinada y producir otra senoidal con la misma fase y cuya frecuencia es un múltiplo de la frecuencia original. En las radios FM, este PLL está preparado para detectar y engancharse al tono de 19 kHz y generar una oscilación en fase de 38 kHz, y esta oscilación es la que se usa para desplazar la señal de diferencia.

Diagrama de un PLL

Un PLL tiene dos componentes: un detector de fase y un oscilador de frecuencia variable (VFO). El oscilador de frecuencia variable empieza oscilando a una frecuencia cercana a 19 kHz, y el detector de fase compara esta oscilación con la señal de entrada, produciendo una señal eléctrica correspondiente a la diferencia en fase entre las dos oscilaciones. Esta señal eléctrica controla la frecuencia del VFO, de manera que si el VFO está "adelantado" la diferencia de fase será negativa y el VFO oscilará más despacio, y si el VFO está "retrasado" la diferencia de fase será positiva y el VFO oscilará más rápido. De este modo, este sistema se autorregula y al cabo de una fracción de segundo el VFO está sincronizado con la señal de 19 kHz de la entrada y es capaz de generar una senoidal de 38 kHz en fase. A partir de aquí sólo queda multiplicar el programa demodulado por esta senoidal, aplicar un filtro paso bajo para aislar la señal diferencia, y generar las señales correspondientes a los dos oídos.

Y con esto, me queda una parte del programa FM estéreo por explicar: RDS, que es el sistema que hace que la radio del coche sepa el nombre de la emisora que tenéis sintonizada. Es un sistema digital de transmisión de datos, capaz de transmitir 1187.5 bits por segundo. Este sistema puede transmitir nombres de emisoras, de canciones, frecuencias de emisoras vecinas, informaciones de emergencia, etc. La especificación de RDS ocupa varios cientos de páginas, así que haré un resumen rápido.

Ejemplo de modulación BPSK

Los datos binarios transmitidos por RDS están modulados sobre una senoidal de 57 kHz utilizando un esquema llamado BPSK, que significa "modulación de cambio binario de fase". BPSK permite transmitir símbolos binarios (es decir, que cada símbolo puede adoptar dos posibles valores). Cada símbolo tiene una determinada duración, y uno de los dos valores se representa invirtiendo la fase de la portadora. En el diagrama de la izquierda podéis ver un ejemplo de modulación BPSK. En la parte superior está la portadora sin modular, y debajo véis el resultado de modular la serie de símbolos ABABAB... con una duración de símbolo de 5 ciclos (en RDS los símbolos duran 48 ciclos). Cada vez que se transmite un símbolo B, la fase de la portadora está invertida.

Existen varias maneras de demodular RDS. Una manera es utilizar el mismo PLL que se engancha al tono piloto para generar una senoidal de 57 kHz y luego comparar la fase de esta senoidal con la fase de la señal RDS para extraer los símbolos A y B. Otra posibilidad es utilizar un tipo especial de PLL llamado "recuperador de reloj" que es capaz de engancharse directamente a la señal de 57 kHz de RDS ignorando las inversiones de fase, y luego utilizar la señal procedente del comparador de fase del PLL para extraer los símbolos.

Hablo de "símbolos" y no de "bits" porque BPSK permite distinguir entre dos símbolos, pero no permite saber en cada momento si estamos viendo un símbolo "A" o un símbolo "B". Esto ocurre porque podemos detectar una inversión de fase, pero no podemos saber si antes era normal y ahora está invertida o si antes estaba invertida y ahora es normal. Por lo tanto no se puede simplemente decir que el símbolo A es el bit 0 y el símbolo B es el bit 1, ya que no sabemos cuál de los dos símbolos es A y cuál es B. Para evitar este problema, RDS utiliza un esquema llamado "codificación diferencial", en el que los bits no se transmiten con los símbolos, sino con las diferencias entre símbolos.

Ejemplo de codificación diferencial

Con codificación diferencial, cada vez que recibimos dos símbolos iguales, declaramos que es un bit 0, y cada vez que recibimos dos símbolos distintos, declaramos que es un bit 1. A la derecha hay un ejemplo en el que se recibe la serie de símbolos AABABB. Al descodificarla, comenzamos con dos símbolos A, que son iguales, por lo que tenemos un bit 0; a continuación viene un símbolo B, que es distinto del símbolo A que vimos antes, con lo que tenemos un 1. A continuación viene un símbolo A, que es distinto del B, con lo que tenemos otro 1. Después viene otro B, que es distinto, lo que da otro 1, y terminamos con otro B, que es igual al B, con lo que tenemos un 0. Si al demodular recibiésemos los símbolos cambiados (A en lugar de B y B en lugar de A), al hacer la descodificación tendríamos los mismos bits.

Después de descodificar los símbolos, los bits resultantes forman paquetes de datos, que contienen una cabecera, datos y una suma de comprobación que sirve para detectar y corregir errores de transmisión. Varios paquetes forman un mensaje, que puede contener un fragmento del nombre de la emisora, una o más frecuencias alternativas, información sobre lo que se está emitiendo ahora, información sobre emergencias, etc. El receptor de radio procesa los mensajes que le interesan y descarta los demás, y luego muestra esta información en la pantalla.

Y con esto doy por terminada esta serie sobre procesamiento de señales. En ella habéis tenido ocasión de ver mi admiración por los números complejos, una explicación de cómo funciona un descodificador de TDT, y mi arte a la hora de dibujar diagramas. Espero que la hayáis disfrutado y, si ya teníais conocimientos sobre el asunto, que mis explicaciones no hayan sido tan malas como para que hayáis desaprendido cosas :-D

(Poned vuestros comentarios en la historia en Google+).