Está en la página 1de 11

CODIFICADOR FM

1. Introducción

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.

A continuación, vemos ve qué hay dentro del programa de una radio FM moderna.

1
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.

Generación de señales estereofónicas. Si LL y RR son las ondas correspondientes a los


oídos izquierdo y derecho, respectivamente, resulta que la señal mono es:

M=L+RM=L+R y la señal diferencia es D=L−RD=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=2LM+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)= 2RM−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π38000t) 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.

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

2
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.

RDS, que es el sistema que hace que la radio del coche sepa el nombre de la emisora
que se quiera sintonizar. 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.

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 se puede ver 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.

3
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.

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.

4
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.

Codificación RDS

Los datos del sistema RDS se codifican en dos etapas, primero por un codificador
diferencial y luego por un codificador bifase. Tal y como se mencionó con anterioridad,
los datos se codifican a una velocidad de 1187.5 bps.

El codificador diferencial tiene como objetivo la recuperación de los ceros y unos en el


decodificador aun cuando la señal llegue invertida al receptor. Los datos se codifican
según la expresión:

Lo podemos ver en la tabla de verdad:

El codificador bifase tiene como objetivo incorporar la información del reloj de


sincronismo de datos. En esta codificación se envía un positivo seguido de negativo
para indicar un “uno” y un negativo seguido de un positivo para indicar un “cero”.
Podemos ver las formas de señal en la figura.

Para esta operación el codificador requiere un reloj de sincronismo de 2 veces el reloj


de transmisión, es decir, 2375 Hz.

5
Antes de alimentar el modulador FSK, la salida del codificador bifase se hace pasar
por un filtro que conforma la señal. En la figura podemos ver las transformaciones
que sufre la señal.

Capa Física (Capa1)

Capa física (Capa 1) El decodificador RDS / RBDS PHY recibe la señal capturada de un archivo
o la señal en vivo de la radio y realiza los siguientes pasos: Desmodulación FM: una vez que
la señal FM se demodula, la señal RDS / RBDS reside en la banda de 57 kHz +/- 2.4 kHz:

Tenga en cuenta que las señales RDS y RBDS se transmiten con una potencia relativamente
baja, por lo que no siempre es visible en el espectro FM como en la figura anterior.

Las señales FM contienen un tono piloto a 19 kHz, que puede utilizarse como referencia de
fase y frecuencia para la demodulación coherente de la señal RDS / RBDS a 57 kHz y el audio
estéreo a 38 kHz. Los tonos piloto a 38 kHz y 57 kHz pueden generarse al duplicar y triplicar
la frecuencia del tono piloto de 19 kHz [2].

6
Los pasos de procesamiento para la demodulación coherente de la señal RDS / RBDS son:

 Filtrado de paso de banda: el receptor PHY realiza el filtrado de paso de banda a 19


kHz y 57 kHz, para aislar el tono piloto y la señal RDS / RBDS, respectivamente.
 Triplicado de frecuencia: aumenta la representación compleja del tono piloto de 19
kHz a la 3ª potencia para triplicar su frecuencia y obtener un tono piloto de 57 kHz.

 Demodulación AM: los símbolos RDS y RBDS se generan a una frecuencia de 1187,5
Hz y están modulados en AM a una portadora de 57 kHz. La señal RDS / RBDS de 57
kHz se puede demodular de forma coherente con una portadora de 57 kHz que está
bloqueada en frecuencia y fase. Típicamente, el tono piloto de 19 kHz triplicado en
frecuencia es suficiente para la demodulación coherente. Las siguientes figuras
muestran los tonos piloto de 19 kHz y 57 kHz, la señal RDS / RBDS de 57 kHz y la
señal RDS / RBDS de banda base demodulada AM

 Bucle Costas: El bucle Costas realiza 2 demodulaciones de AM ortogonales, una


demodulación con un seno de 57 kHz y otra con un coseno de 57 kHz. La frecuencia
de muestreo de la señal recibida se elige cuidadosamente como 228 kHz, que
proporciona 4 muestras por ciclo de 57 kHz. Por lo tanto, un retraso de una muestra
del tono piloto de 57 kHz da como resultado un desplazamiento de fase de un cuarto
de longitud de onda, y nos permite generar una onda de coseno a partir de una onda
sinusoidal. La señal sinusoidal corresponde a la salida de demodulación coherente.
La señal demodulada por coseno se usa para la detección de error de fase. Los
productos de la señal RDS / RBDS de 57 kHz con las ondas seno / coseno se filtran
en paso bajo con el filtro especificado en la Sec. 1.7 de [1]. El producto de las dos
salidas de filtro es una señal de error. Cuanto más grande sea, más demorará el tono
piloto de 19 kHz para comportarse más como el demodulador basado en coseno.

 Extracción del reloj: para realizar la decodificación de símbolos bifásicos, se extrae


un reloj que coincide con la frecuencia de símbolos RDS / RBDS de 1187,5 Hz del
tono piloto de 19 kHz. Nota, 1187.5 Hz x 16 = 19 kHz. Para tener en cuenta los
desplazamientos de frecuencia, la división de frecuencia se usa para extraer el reloj
del tono piloto de 19 kHz. Dado que la operación de división de frecuencia
proporciona múltiples respuestas correctas, la señal RDS / RBDS de banda base sirve
como datos de entrenamiento que ayudan en la determinación de la salida deseada.

7
 Decodificador de símbolos bifásicos: RDS y RBDS usan codificación de nivel bifásico
(bi- -L), que se conoce comúnmente como codificación Manchester. En cada ciclo de
reloj, el símbolo RDS / RBDS toma dos valores de amplitud opuestos, ya sea un
positivo seguido de un negativo, o un negativo seguido de un positivo. El
decodificador de símbolo bifásico niega el segundo nivel de amplitud, de modo que
cada símbolo tenga el mismo nivel de amplitud a lo largo de todo el ciclo de reloj. El
nuevo nivel de amplitud en todo el reloj corresponde a la representación de bits del
símbolo. Las siguientes dos capturas de pantalla corresponden a las formas de onda
# 1-6 en la

2. SIMULACIÓN

3. % Set RDS/RBDS system parameters


4. userInput = get(helperRBDSController);
5. userInput.Duration = 10.8;
6. userInput.SignalSource = 'File';
7. userInput.SignalFilename = 'rbds_capture.bb';
8. % userInput.SignalSource = 'RTL-SDR';
9. % userInput.CenterFrequency = 98.5e6;
10. % userInput.SignalSource = 'ADALM-PLUTO';
11. % userInput.CenterFrequency = 98.5e6;
12.
13.
14. [rbdsParam, sigSrc] = helperRBDSConfig(userInput);
15.
16. % Create FM broadcast receiver object and configure based on RDS/RBDS parameters
17. fmBroadcastDemod = comm.FMBroadcastDemodulator(...
18. 'SampleRate', rbdsParam.FrontEndSampleRate, ...
19. 'FrequencyDeviation', rbdsParam.FrequencyDeviation, ...
20. 'FilterTimeConstant', rbdsParam.FilterTimeConstant, ...
21. 'AudioSampleRate', rbdsParam.AudioSampleRate, ...
22. 'Stereo', true);
23.
24. % Create audio player
25. player = audioDeviceWriter('SampleRate', rbdsParam.AudioSampleRate);
26.
27. % Layer 2 object
28. datalinkDecoder = RBDSDataLinkDecoder();
29.
30. % Layer 3 object
31. sessionDecoder = RBDSSessionDecoder();
32. % register processing implementation for RadioText Plus (RT+) ODA:
33. rtID = '4BD7';
34. registerODA(sessionDecoder, rtID, @RadioTextPlusMainGroup, @RadioTextPlus3A);
35.
36. % Create the data viewer object

8
37. viewer = helperRBDSViewer();
38.
39. % Start the viewer and initialize radio time
40. start(viewer)
41. radioTime = 0;
42.
43. % Main loop
44. while radioTime < rbdsParam.Duration
45. % Receive baseband samples (Signal Source)
46. rcv = sigSrc();
47.
48. % Demodulate FM broadcast signals and play the decoded audio
49. audioSig = fmBroadcastDemod(rcv);
50. player(audioSig);
51.
52. % Process physical layer (Layer 1)
53. bitsPHY = RBDSPhyDecoder(rcv, rbdsParam);
54.
55. % Process data-link layer (Layer 2)
56. [enabled, iw1, iw2, iw3, iw4] = datalinkDecoder(bitsPHY);
57.
58. % Process session and presentation layer (Layer 3)
59. outStruct = sessionDecoder(enabled, iw1, iw2, iw3, iw4);
60.
61. % View results packet contents (Data Viewer)
62. update(viewer, outStruct);
63.
64. % Update radio time
65. radioTime = radioTime + rbdsParam.FrameDuration;
66. end
67.
68. % Stop the viewer and release the signal source and audio writer
69. stop(viewer);
70. release(sigSrc);
71. release(player);

3. RESULTADOS

9
10
BIBLIOGRAFIA:

[1] National Radio Systems Committee, United States RBDS standard, April 1998

[2] Der, Lawrence. "Frequency Modulation (FM) Tutorial". Silicon Laboratories Inc.

[3] National Radio Systems Committee, List of ODA Applications in RDS

[4] RadioText Plus (RT+) Specification

[5] Joseph P. Hoffbeck, "Teaching Communication Systems with Simulink and the USRP",
ASEE Annual Conference, San Antonio, TX, June 2012

[6] https://jacobo.tarrio.org/es/know/como-demodular-radio-fm-estereo

11

También podría gustarte