venerdì 20 maggio 2016
RDS: Radio Data System
Il Radio Data System (RDS) è uno standard di radiodiffusione per inviare piccole quantità di dati usando la tradizionale trasmissione radio FM.
La figura 2 ci mostra come è strutturato un segnale radiofonico : nei primi 15 Khz troviamo la combinazione dei due canali L-R che danno origine al segnale monofonico e che garantisce ai ricevitori che non supportano la modalità stereofonica di riprodurre l'audio. Il segnale stereo ( L + R ) viene trasmesso più in alto per non interferire con la prima parte del segnale mono. La portante a 38 Khz è soppressa e vengono trasmesse le sole bande laterali ma per rilevare una trasmissione in AM occorre avere una portante. Per ovviare al problema è stato inserito un tono pilota a 19 Khz che viene utilizzato per ricostruirla. Infine a 57 Khz ( 3 x 19 Khz ), troviamo il segnale RDS.
Con l'utilizzo del software SA ricaviamo lo streaming dati inviato dalla stazione radio.
Video demodulazione con SA
Nelle figure 4 e 5 ho ristretto l'analisi alla parte di segnale che ci interessa: il solo traffico RDS.
Modulazione utilizzata ( physical layer ): La modulazione adottata è la PSK ( Fig. 6 - phase shift keying ) con un bit rate di 1187.5 bit/s.
Codifica dei dati ( data-link layer ): I dati vengono trasmessi in modo sincrono a gruppi di 104 bit ( 86,7 ms ). Ogni gruppo è suddiviso in 4 blocchi da 26 bit e a sua volta ogni blocco è composto da 16 bit d'informazione e 10 di controllo ( Fig. 7 ).
Dopo aver ricavato il flusso di dati ed aver impostato il periodo a 104 bits otteniamo la sequenza di figura 8.
La figura 9 ci mostra nel dettaglio le informazioni che vengono trasmesse per ogni blocco.
Vediamo di analizzarle una ad una:
Blocco 1 - PI code: si tratta del "Programme Identification code" ovvero un codice che identifica la stazione trasmittente. E' costituito da 16 bit come mostrato in figura 10:
Nel caso preso in esame si identifica facilmente la sequenza : 0101 0010 0010 0000 ( che corrisponde ai decimali 5 2 2 0 ).
A seguire troviamo il checkwords per il controllo degli errori : 10 bits ( figura 13 )
Blocco 2 - Group Type code: ... E' composto da 5 bit (4 bit dati + 1 bit di controllo ) e può assumere fino a 16 differenti valori ( elencati nella tabella di figura 15 ) sia per la versione A che per la versione B. La funzione del group type code è quella di specificare quali e con quale formato i dati verranno trasmessi nei blocchi 3 e 4. La scelta della versione A o B è definita grazie al valore del bit di controllo. Il PTY ( Programme Type Codes ) indica quale tipo di trasmissione si sta ricevendo. In questo caso il gruppo è identificato dalla sequenza di bits "01001" corrispondenti al programma "Varied/ Varied Speech" ( ANNEX F Table F.1 ). Il TP ( Traffic programme ) indica al ricevitore se la trasmissione corrente è abilitata all'invio di messaggi sul traffico.
In figura 16 ho isolato la sequenza del Group type code notando che essa si ripete ogni 20 frames. Soffermiamoci quindi sul primo blocco:
Gruppo 0A ( Basic tuning and switching information ): nel gruppo 3 vengono trasmesse le frequenze alternative utilizzate dalla stazione trasmittente e nel blocco 4 il program service (PS):
Le frequenze sono codificate in 8 bit e corrispondono alla portante ( fig. 18 ).
Il Program Service ( PS ) è composto da 8 caratteri che vengono visualizzati sul display del ricevitore. Di solito è inviato il nome della stazione. Con l'aiuto della tabella di figura 19 si decodificano i caratteri che formano la parola : "R ITALIA" ( figura 20 ).
Gruppo 1A ( Programme item number and slow labelling codes ): è composto da 16 bit suddivisi come in figura 21:
Il gruppo è ripetuto 2 volte quindi analizziamo 32 bits ( 2 sequenze da 16 bits ):
1* seq: 0000000011100000
1° bit = 0
2°,3°,4° bit = 0 0 0
Paging - 4 bit: 0000
Extended country code ( ECC ): 8 bit : 11100000 = E0 = ITALIA
2* seq: 0011000000010101
1° bit = 0
2°,3°,4° bit = 0 1 1
Language codes: 00010101 = 21 decimale = 15 hex = italian ( ANNEX J / EN50067 )
Per quanto riguarda il blocco 4 non vengono trasmessi dati, entrambe le sequenze sono a zero.
Gruppo 2A ( Radio text only ):
Questo gruppo assegna posizione e testo fino ad un massimo di 64 caratteri.
Con l'aiuto della tabella di figura 19 otteniamo:
0111-0111 0111-0111 w w
0111-0111 0010-1110 w .
0111-0010 0110-0001 r a
0110-0100 0110-1001 d i
0110-1111 0110-1001 o i
0111-0100 0110-0001 t a
0110-1100 0110-1001 l i
0110-0001 0010-1110 a .
0110-1001 0111-0100 i t
0010-0000 0010-0000 space space
0010-0000 0010-0000 space space
0010-0000 0010-0000 space space
www.radioitalia.it
Gruppo 4A ( Clock-time and date only ): Data e ora vengono trasmessi nei blocchi 3 e 4 come da figura 23:
Cominciamo a ricavare la sequenza di bits relativi alla data:
MJD = 01101100011100001 corrispondente al numero 55521 decimale. Utilizzando le formule di figura 24 risaliamo alla data trasmessa:
Y' = 110
M' = 12
D = 21
K = 0
Y = 110
M = 11
La formula è applicabile nel periodo compreso tra il 1900 ed il 2100. Per calcolare la data corretta è necessario sommare alla data di partenza ( 1900 ) il valore Y : 1900 + 110 = 2010. Quindi la data trasmessa è 21 novembre 2010 ( 21/11/2010 ). Volendo ricavare anche il giorno dobbiamo utilizzare la formula:
[(MJD + 2 ) mod 7] + 1 = 7 = domenica
Passiamo ora ad analizzare la sequenza di bits relativi all'ora:
UTC + Local Time = 10010 010101 0 00010
Ora ( 5 bits ) : 10010 = 18
Minuti ( 6 bits ) : 010101 = 21
Offset = 0 = positive offset ( UTC + 1 ora )
local time offset ( 5 bits ) : 00001 = 1
L'ora trasmessa è 19:21 Local time ( 18:21 UTC ).
Gruppo 14A/B e 15B ( EON - Enhanced other network information only ): La funzione EON è molto utile e consente ad una stazione A di interrompere una stazione B per poter diramare un bollettino od un avviso sul traffico. Terminato l'avviso riprende l'ascolto sulla stazione A. Di solito la stazione A ha carattere nazionale mentre la B locale ed entrambe appartengono allo stesso network ( ad esempio la RAI ). Nei gruppi 14A/B e 15B vengono quindi inviati i dati necessari ad espletare questa funzionalità.
14A:
TP ( network corrente ) = 1
PTY ( network corrente )= 01001
TP ( altro network ) = 0
Variant code = 1101 Gruppo 13
Information block = 0000000000000000
PI ( altro network ) = 0000000000000000 <- nessun identificativo 14B: TP (TN) = 1 PTY (TN)= 01001 TP (ON) = 0 TA = 0 PI ( network corrente ) = 0101001000100000 PI ( altro network ) = 0000000000000000 Nel blocco 14B non è indicato nessun PI quindi la funzione EON non è attiva. Al fine di verificare la correttezza dei dati ottenuti ho decodificato il segnale RDS con RDS Spy ottenendo quanto riportato nelle figure 25, 26 e 27 :
I dati visualizzati da RDS Spy sono gli stessi ottenuti per via "manuale". (VIDEO)
Fonti: European Standard EN 50067
Software: SA + bit editor + RDS Spy
Ricevitore. AOR 5000
Panadapter: Perseus Sdr
Iscriviti a:
Commenti (Atom)



























