Definizione e sviluppo di un software receiver per l`elaborazione dei

Transcript

Definizione e sviluppo di un software receiver per l`elaborazione dei
Giulio Mezzana – Roberto Dell’Ariccia
1. INTRODUZIONE ................................................................................................................................................. 3
2. DESCRIZIONE DEI SISTEMI GPS E GALILEO .............................................................................................. 4
2.1. INTRODUZIONE ................................................................................................................................................. 4
2.2. FONDAMENTI DELLA RADIOLOCALIZZAZIONE SATELLITARE ................................................................................ 4
2.3. DETERMINAZIONE DELLA SOLUZIONE NAVIGAZIONALE ....................................................................................... 7
2.4. IL SISTEMA GPS ...............................................................................................................................................10
2.4.1. Segmento spaziale (space segment)...........................................................................................................10
2.4.2. Segmento di controllo a terra (ground segment)........................................................................................11
2.4.3. Segmento utente (user segment) ................................................................................................................13
2.5. IL SEGNALE GPS ..............................................................................................................................................14
2.6. IL MESSAGGIO DI NAVIGAZIONE ........................................................................................................................16
2.7. IL SISTEMA GALILEO ........................................................................................................................................17
2.8. I SERVIZI ..........................................................................................................................................................19
2.9. L’ARCHITETTURA.............................................................................................................................................23
2.10. IL SEGNALE GALILEO .....................................................................................................................................27
3. SEGNALI DI NAVIGAZIONE GNSS .................................................................................................................33
3.1. INTRODUZIONE ................................................................................................................................................33
3.2. SISTEMI DI ACCESSO MULTIPLO A SPETTRO DISPERSO .........................................................................................33
3.3. STRUTTURA DEL SEGNALE GPS ........................................................................................................................38
3.3.1. Generazione e modulazione del segnale su L1...........................................................................................38
3.3.2. Sequenze PRN ..........................................................................................................................................44
3.3.3. Proprietà di correlazione dei codici C/A ...................................................................................................47
3.3.4. Livelli di potenza e rapporti segnale-rumore del segnale GPS a RF ..........................................................52
3.4. STRUTTURA DEL SEGNALE GALILEO..................................................................................................................55
3.4.1. Modulazione e piano di frequenza.............................................................................................................56
3.4.2. La modulazione BOC (Binary Offset Carrier) ...........................................................................................57
3.4.3. Proprietà di correlazione dei segnali Galileo ............................................................................................62
3.4.4. Il segnale L1 di Galileo ............................................................................................................................64
3.4.5. I codici di spreading .................................................................................................................................68
3.4.6. Livelli di potenza del segnale Galileo a RF ...............................................................................................70
4. CATENA RICEVENTE E SOFTWARE RECEIVER ........................................................................................72
4.1. INTRODUZIONE ................................................................................................................................................72
4.2. STRUTTURA DI UN RICEVITORE GNSS E SOFTWARE RECEIVER ...........................................................................73
4.2.1. Vantaggi dell’approccio software .............................................................................................................75
4.3. LA CATENA RICEVENTE ....................................................................................................................................76
4.3.1. L’antenna.................................................................................................................................................77
4.3.2. Il blocco RF Front End.............................................................................................................................77
4.3.3. Il convertitore Analogico-Digitale (ADC) .................................................................................................80
4.4. CANALI DI RICEZIONE .......................................................................................................................................82
4.4.1. Acquisizione .............................................................................................................................................84
4.4.2. Tracking Loops ........................................................................................................................................88
4.4.3. Estrazione dei dati di navigazione e calcolo degli pseudoranges ...............................................................90
4.4.4. Determinazione della posizione ................................................................................................................91
5. SIMULAZIONE DEI SEGNALI GNSS A FREQUENZA INTERMEDIA ........................................................93
5.1. INTRODUZIONE ................................................................................................................................................93
5.2. SIMULAZIONE DEL SEGNALE DI NAVIGAZIONE: REQUISITI FONDAMENTALI ..........................................................93
5.3. IL SIMULATORE DI SEGNALE GPS ......................................................................................................................94
5.4. IL SIMULATORE DEL SEGNALE DI GIOVE-A SULLA BANDA L1 ......................................................................... 105
5.5. SIMULAZIONE DEL RUMORE TERMICO ............................................................................................................. 119
1
Giulio Mezzana – Roberto Dell’Ariccia
6. ACQUISIZIONE DEI SEGNALI DI RADIONAVIGAZIONE ........................................................................ 126
6.1. INTRODUZIONE .............................................................................................................................................. 126
6.2. ASPETTI TEORICI ............................................................................................................................................ 126
6.2.1. Algoritmi di acquisizione ........................................................................................................................ 126
6.2.2. Acquisizione mediante ricerca seriale ..................................................................................................... 128
6.2.3. Acquisizione mediante ricerca parallela nel dominio della frequenza ...................................................... 130
6.2.4. Acquisizione mediante ricerca parallela nel dominio della fase del codice .............................................. 134
6.2.5. Soglie di acquisizione ............................................................................................................................. 139
6.2.6. Fattori che influenzano le prestazioni dell’acquisizione .......................................................................... 141
6.2.7. Lunghezza del set di dati da acquisire ..................................................................................................... 142
6.2.8. Dimensione delle celle in Doppler .......................................................................................................... 143
6.3. IMPLEMENTAZIONE SOFTWARE ....................................................................................................................... 145
6.3.1. Obiettivi ................................................................................................................................................. 145
6.3.2. Architettura Generale ............................................................................................................................. 145
6.3.3. Descrizione dell’algoritmo di Acquisizione per GPS ............................................................................... 146
6.3.4. Descrizione dell’Algoritmo di Acquisizione per Galileo .......................................................................... 154
6.3.5. Acquisizione su set di dati di lunghezza diversa....................................................................................... 154
6.3.6. Ricerca fine della frequenza ................................................................................................................... 162
6.3.7. Soglia di acquisizione ............................................................................................................................. 162
6.4. TEST E RISULTATI ........................................................................................................................................... 162
7. TRACKING DEI SEGNALI DI RADIONAVIGAZIONE ............................................................................... 163
7.1. INTRODUZIONE .............................................................................................................................................. 163
7.2. ASPETTI TEORICI ............................................................................................................................................ 164
7.2.1. Phase-Locked Loops (PLL)..................................................................................................................... 164
7.2.2. Phase-Locked Loop del primo ordine...................................................................................................... 166
7.2.3. Phase-Locked Loop del secondo ordine .................................................................................................. 168
7.2.4. Trasformazione dai sistemi continui a quelli discreti ............................................................................... 170
7.2.5. Tracking di portante e di codice nel sistema GPS .................................................................................... 172
7.2.6. Tecnica Block Adjustment of Synchronizing Signal (BASS)...................................................................... 174
7.3. IMPLEMENTAZIONE SOFTWARE ....................................................................................................................... 175
7.3.1. Obiettivo ................................................................................................................................................ 175
7.3.2. Architettura............................................................................................................................................ 175
7.3.3. Descrizione dell’algoritmo di tracking per GPS ...................................................................................... 177
7.3.4. Descrizione dell’algoritmo di tracking per GALILEO ............................................................................. 188
7.3.5. Risultati Finali ....................................................................................................................................... 188
7.4. TEST E RISULTATI ........................................................................................................................................... 197
7.4.1. GPS ....................................................................................................................................................... 197
8. ARCHITETTURA FINALE DEL SOFTWARE RECEIVER E GRAPHIC USER INTERFACE ................. 200
9. CONCLUSIONI ................................................................................................................................................. 201
10. ELENCO DELLE FIGURE E TABELLE....................................................................................................... 202
11. ABBREVIAZIONI ........................................................................................................................................... 205
12. APPENDICE .................................................................................................................................................... 206
13. BIBLIOGRAFIA .............................................................................................................................................. 207
2
Giulio Mezzana – Roberto Dell’Ariccia
1. INTRODUZIONE
3
Giulio Mezzana – Roberto Dell’Ariccia
2. DESCRIZIONE DEI SISTEMI GPS E GALILEO
2.1. Introduzione
I sistemi GPS (Global Positioning System) e Galileo sono sistemi di
radioposizionamento, noti più in generale come sistemi GNSS (Global
Navigation Satellite System). Questo primo capitolo è dedicato ad
un’introduzione a livello generale della navigazione satellitare, per
richiamarne i principi fondamentali e per esaminare gli aspetti più
significativi del funzionamento di un moderno sistema di navigazione
satellitare. Verranno inoltre presentati, ad un alto livello di astrazione, i
due sistemi sopra menzionati, per evidenziarne analogie e differenze a
livello generale. Gli aspetti del trattamento dei segnali GPS e Galileo, sul
cui studio si basa il presente lavoro di tesi, saranno in questo capitolo solo
accennati, riservandoci di trattarli con l’adeguato livello di dettaglio nel
secondo capitolo.
Il primo paragrafo (§ 1.2) tratta delle problematiche generali di un
sistema di radioposizionamento satellitare, del principio di funzionamento
e degli algoritmi per il calcolo della posizione dell’utente a partire dalla
stima di misure di distanza da un certo numero minimo di satelliti
(rimandando all’appendice A per l’approfondimento matematico degli
argomenti trattati). I successivi due paragrafi entrano più nel dettaglio dei
due sistemi d’interesse.
2.2. Fondamenti della radiolocalizzazione satellitare
La posizione di un determinato punto nello spazio, può essere
individuata calcolando la distanza di questo punto da un riferimento la cui
posizione sia nota. Per comprendere meglio, la fig. 1.1 mostra un esempio
di questo metodo nel caso più semplice di uno spazio bidimensionale.
4
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 2.1 Posizionamento dell'utente nel caso bidimensionale
Nell’esempio della fig. 1.1 l’utente, al fine di determinare la propria
posizione, ha bisogno di avere in vista almeno tre satelliti (S1, S2 e S3) e di
conoscere la propria distanza da questi tre satelliti (X1, X2, X3). Come si
vede, tre è il numero minimo di satelliti per determinare in maniera
univoca
la
soluzione
navigazionale:
infatti,
le
circonferenze,
che
rappresentano la possibile posizione dell’utente a distanza fissa dal
particolare satellite (o Satellite Vehicle, SV), devono intersecarsi in un
unico punto. Invece, utilizzando solo due SV e le relative distanze
dell’utente da questi, si avrebbero due soluzioni per ogni scelta dei due
satelliti, in quanto le circonferenze s’incontrerebbero in due punti distinti.
Si vede dunque che è necessaria una terza circonferenza per la
determinazione univoca della posizione dell’utente. È facile capire che, nel
caso tridimensionale, bisogna avere almeno quattro satelliti in vista e
conoscere le quattro relative distanze dell’utente da questi. Ovviamente il
luogo dei punti equidistanti dall’utente, che nel caso bidimensionale era
rappresentato dalle circonferenze, sarà in questo caso rappresentato da
delle sfere: due sfere s’intersecano individuando una circonferenza, la
quale interseca un’altra sfera localizzando due punti. Infine, per poter
determinare in quale dei punti si trova effettivamente l’utente, è
necessario avere in vista il quarto satellite. La fig. 1.2 chiarifica quanto
5
Giulio Mezzana – Roberto Dell’Ariccia
appena esposto, mostrando la differenza fra l’uso di tre satelliti in luogo di
quattro.
Fig. 2.2 Localizzazione con tre SV e con quattro SV
La figura sopra permette di notare che, utilizzando tre satelliti, si
ottengono effettivamente due punti d’intersezione: tuttavia tale ambiguità
rimasta tra le due posizioni è facilmente risolvibile notando che uno dei
due punti si trova sulla superficie terrestre, mentre l’altro punto si trova ad
una quota del tutto assurda per la maggior parte delle applicazioni di
utilizzo dei sistemi di radioposizionamento, e per questo da scartare con
sicurezza (è per questo che in molti contesti si assume che, in condizioni
ideali, il numero minimo di satelliti per il calcolo della soluzione sia
limitato a tre).
Nei sistemi come il GPS (vedi più avanti), la posizione del SV è nota
dalle effemeridi trasmesse dal satellite stesso: in questo modo, un generico
utente può allora calcolare la distanza a cui si trova da quel determinato
satellite misurando il tempo di ritardo del segnale ricevuto, calcolare allo
stesso modo la distanza da altri tre SV e determinare univocamente la
propria posizione cercando le coordinate del punto di intersezione delle
quattro sfere. Va rilevato, però, che nella discussione fatta finora si è
sempre supposto che le misure di distanza calcolate dall’utente fossero
molto accurate e che non ci fossero errori di polarizzazione (o bias):
tuttavia la distanza misurata fra il ricevitore ed il satellite è in realtà
affetta da una polarizzazione incognita, a causa del fatto che, in generale,
6
Giulio Mezzana – Roberto Dell’Ariccia
l’orologio dell’utente non sarà sincronizzato con il tempo GPS segnato dai
satelliti. Allora per poter eliminare questo bias, sarebbe necessario un
ulteriore satellite in vista, portando a cinque il numero di satelliti
effettivamente necessari.
L’uso di quattro satelliti e delle relative distanze misurate affette da
bias porta, analogamente a quanto visto prima nel passaggio da due a tre
dimensioni, a trovare due soluzioni di posizionamento: una di queste sarà
vicina alla superficie terrestre, mentre l’altra sarà nello spazio. È dunque
possibile riproporre il ragionamento già presentato in precedenza, secondo
il quale nella maggior parte delle applicazioni si suppone che la posizione
dell’utente sia vicina alla superficie terrestre, il che ci permette in
sostanza di determinarne la posizione in maniera univoca facendo uso di
soli quattro satelliti, nonostante la presenza del bias dovuto alla mancanza
di sincronizzazione fra gli orologi dell’utente e dei satelliti. Quindi si può
concludere affermando che, in generale, si devono avere quattro satelliti in
vista per poter determinare la posizione dell’utente, anche considerando
che la misura di distanza è affetta da una polarizzazione incognita.
L’effettivo algoritmo utilizzato per il
calcolo della posizione
dell’utente è presentato nel prossimo paragrafo: si tratta di un metodo
iterativo, nel quale la posizione iniziale dell’utente è generalmente scelta
in corrispondenza al centro della Terra. Detto metodo iterativo convergerà
alla soluzione corretta, piuttosto che a quella che prevede l’utente
immerso nello spazio, considerando quattro satelliti come requisito minimo
per la determinazione della soluzione.
2.3. Determinazione della soluzione navigazionale
La distanza vera (vale a dire non affetta dal bias, di cui al paragrafo
precedente) fra utente e satellite può essere scritta in termini vettoriali
come segue:

 
r  r  s u 
xs  xu 2  y s  yu 2  z s  zu 2
(1
.1)
7
Giulio Mezzana – Roberto Dell’Ariccia
nella quale il vettore s è il vettore distanza del SV dal centro della
Terra, mentre u è il vettore distanza dell’utente rispetto al centro della
Terra, secondo la schematizzazione di fig. 1.3.
Fig. 2.3 Geometria di riferimento
Come ben sappiamo dalla discussione fatta in precedenza, la distanza
effettivamente misurata dal ricevitore dell’utente, che indicheremo con
 , sarà diversa dalla distanza vera r, perché affetta dalla polarizzazione
temporale. Va sottolineato, però, che questa non è l’unica fonte di errore;
possono essere infatti evidenziate almeno tre fonti di ritardo:
1. Ritardi dovuti al ricevitore e comuni a tutte le distanze
misurate: sono principalmente causati dall’errore dell’orologio
al quarzo del ricevitore, dai ritardi hardware e dal rumore
termico;
2. Ritardi dovuti al satellite: dovuti agli errori dell’orologio
atomico del SV (molto piccoli) e ad imprecisioni nelle
effemeridi;
3. Ritardi dovuti all’osservazione: sono imputabili al ritardo
nell’attraversamento
della
ionosfera
e
della
troposfera
terrestre e alla presenza di eventuale multipath.
8
Giulio Mezzana – Roberto Dell’Ariccia
A causa di questi ritardi, la misura effettuata dal ricevitore è nota col
nome di pseudorange. Alcuni di questi errori possono comunque essere
corretti: il ritardo troposferico può essere modellato e quindi rimosso,
quello ionosferico può essere corretto facendo uso p. es. di un ricevitore
operante con la doppia frequenza. Tuttavia, l’errore dovuto all’orologio
dell’utente non può essere corretto sulla base delle informazioni possedute
dal ricevitore, e rimane dunque come unica incognita nelle formule.
Assumendo dunque di considerare l’errore dell’orologio dell’utente
come contributo dominante rispetto agli altri, lo pseudorange può scriversi
come:
  r (t )  ct u (t R )
(1.2)
dove tu(tR) è l’errore commesso nell’istante di misura tR. Dunque, è
possibile scrivere la distanza vera in funzione dello pseudorange per N
satelliti in vista come segue:
 r  x  x 2  y  y 2  z  z 2    ct
1
u
1
u
1
u
1
u
 1
2
2
2
 r2  x 2  xu   y 2  y u   z 2  z u    2  ct u



r  x  x 2  y  y 2  z  z 2    ct
N
u
N
u
N
u
N
u
N
(1.3)
Poiché si hanno quattro incognite (le tre dimensioni spaziali più la
dimensione temporale), affinché il sistema ammetta una soluzione si
devono avere almeno N≥4 satelliti in vista contemporaneamente (ad
ulteriore conferma del fatto che quattro è il numero minimo di satelliti da
utilizzare per la navigazione). In queste ipotesi, la soluzione al sistema
(1.3) viene comunemente determinata mediante una linearizzazione del
sistema stesso e l’uso di un metodo iterativo. Tale linearizzazione non
risulta direttamente inerente agli scopi della presente tesi, ma viene
comunque riportata nell’appendice A per completezza.
9
Giulio Mezzana – Roberto Dell’Ariccia
2.4. Il sistema GPS
Il sistema di navigazione satellitare globale GNSS che va sotto il nome
di Global Positioning System (GPS) è un sistema per il radioposizionamento
ed il trasferimento di temporizzazione dallo spazio, basato sui segnali
trasmessi da una costellazione di satelliti orbitanti intorno alla terra; è in
grado di fornire con estrema precisione stime di Posizione, Velocità e
Tempo (PVT) ad un numero illimitato di utenti sulla Terra, nello spazio, in
cielo ed in mare. Le misure passive di PVT sono disponibili in ogni parte del
globo e per l’intero arco delle ventiquattro ore, in un sistema di
riferimento mondiale comune. Nell’ambito di questo sistema satellitare è
possibile individuare tre segmenti:
2.4.1. Segmento spaziale (space segment)
È rappresentato dalla costellazione nominale dei 24 satelliti, in cui
ogni satellite invia in broadcast codici di ranging a RF, unitamente al
messaggio di navigazione. Ogni orbita ha un angolo di inclinazione (cioè
l’angolo fra la linea equatoriale terrestre e l’orbita percorsa dal SV) di 55°,
per assicurare la copertura delle regioni polari. Il raggio dell’orbita
satellitare è pari a 26560 Km, ed ogni SV compie un giro intorno alla Terra
due volte in un giorno siderale, che corrisponde al tempo impiegato dalla
Terra a completare una rotazione completa di 360°. Il giorno siderale dura
in media 23 ore, 56 minuti e 4.09 secondi, che risulta essere un tempo
leggermente più breve della giornata solare di 24 ore. Traendo energia dai
pannelli solari, gli SV possono orientarsi in modo da esporre i pannelli stessi
ai raggi solari e le antenne orientate verso la Terra per la trasmissione dei
dati. La tab. 1.1 mostra alcune caratteristiche della costellazione GPS.
Numero di Satelliti
Numero di Piani Orbitali
Numero di Satelliti per orbita
Inclinazione Orbitale
Raggio dell’Orbita
Periodo Orbitale
24
6
4
55°
26560 km
11h, 58min, 2.05 sec
Tab. 2-1 Caratteristiche della costellazione GPS
10
Giulio Mezzana – Roberto Dell’Ariccia
Va notato, tuttavia, che i satelliti in ogni orbita non sono spaziati in
modo omogeneo: due SV sono separati di 30.0° - 32.1°, e gli altri sono
separati di 92.38° - 130.98° dagli altri due satelliti e fra di loro. La scelta
di questa spaziatura fra i satelliti minimizza gli effetti di degradazione
delle prestazioni indotte sul sistema dal guasto di un singolo SV [1]. Inoltre
la spaziatura scelta per i satelliti in orbita assicura anche che un minimo di
cinque satelliti siano in vista per l’utente a livello mondiale, caratteristica,
questa, importante per permettere all’utente stesso di determinare la
propria posizione con buoni livelli di accuratezza, come vedremo più avanti
in questo capitolo. Va precisato in ogni caso che, in qualsiasi ora, un
ricevitore a Terra è in grado di ricevere segnali GPS fino ad un massimo di
12: un ricevitore tipico può inseguire fra i 4 e gli 11 satelliti
contemporaneamente. Inoltre, molti dei ricevitori GPS attualmente
disponibili hanno una maschera di elevazione di 5°, il che significa che
possono inseguire soltanto i satelliti che siano in vista con un angolo di
elevazione superiore ai 5°. Ogni SV è inoltre equipaggiato con un orologio
atomico con un’accuratezza non superiore ai 3 nanosecondi, utilizzato per
far sì che un satellite mandi in broadcast segnali che siano sincronizzati con
quelli inviati dagli altri SV. La fig. 1.4 a pagina seguente mostra una
rappresentazione grafica della costellazione dei satelliti GPS orbitanti
intorno alla Terra.
2.4.2. Segmento di controllo a terra (ground segment)
È costituito da una rete di monitoraggio di cinque stazioni a terra
(Ground Station, GS), utilizzata per il controllo delle performance e la
gestione della costellazione dei satelliti in orbita e dei loro orologi, oltre
che per l’aggiornamento dei dati del messaggio di navigazione. Ogni
stazione di monitoraggio possiede due orologi al Cesio che forniscono il
riferimento per il tempo di sistema GPS; ognuna delle cinque stazioni
procede a continue misure di pseudorange rispetto a tutti i SV in vista ogni
1.5 secondi. Queste misure sono utilizzate per l’aggiornamento del
messaggio di navigazione dei vari satelliti ad opera della Master Control
Station, collocata presso la Falcon Air Force Base in Colorado.
11
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 2.4 Costellazione dei satelliti GPS
Infatti, dal momento che sono note sia le coordinate spaziali che
quelle temporali delle stazioni, le misure di pseudorange calcolate da
ciascuna stazione (per un certo satellite) possono essere usate per
calcolare una soluzione navigazionale inversa, al fine di correggere
eventuali errori sulla posizione e sul timing di quel satellite. Quindi i dati
raccolti dai vari SV da parte delle GS sono trasmessi alla MCS per il
processamento: quest’ultima, in quanto designata come centro delle
operazioni di supporto, è chiamata a svolgere i calcoli alla ricerca di
eventuali errori sulla posizione e sul timing di ciascun satellite, in accordo
alle informazioni ricevute dalle varie Monitor Station. Se viene rilevato un
errore, la MCS trasferisce le informazioni alla monitor station interessata
attraverso l’appropriata Ground Antenna (GA), per trasmettere le
correzioni necessarie al particolare satellite. Le effemeridi di ciascun
satellite e gli errori di timing sono ritrasmessi al satellite una volta al
giorno, utilizzando le GA. La MCS, dunque, è effettivamente responsabile
del controllo delle performance GPS, della generazione e dell’uploading dei
dati di navigazione verso i SV per il mantenimento dei requisiti standard in
fatto di prestazioni e di controllo dell’integrità.
12
Giulio Mezzana – Roberto Dell’Ariccia
2.4.3. Segmento utente (user segment)
Costituito da una varietà di ricevitori GPS specificatamente progettati
per ricevere, decodificare e processare i codici di ranging ed il messaggio di
navigazione provenienti dai satelliti GPS. Il ricevitore utilizza i segnali
trasmessi dai satelliti, unitamente alla misura precisa del ritardo di
trasmissione del segnale, per determinare (utilizzando algoritmi che
vedremo più avanti) informazioni di PVT dell’utente, oltre che la
sincronizzazione al tempo GPS. Gli utenti del servizio possono essere
classificati in due gruppi: utenti militari ed utenti civili. Gli utenti militari
utilizzano il GPS per un ampio raggio di scopi, dalla navigazione alla
designazione di obiettivi, al supporto
aereo alle armi di ultima
generazione. Per gli utenti civili, il GPS è utilizzato in varie applicazioni, la
principale delle quali rimane certamente la navigazione punto-punto.
La fig. 1.5 fornisce una rappresentazione grafica dei tre segmenti del
sistema GPS, con l’indicazione delle loro principali interazioni.
SPACESEGMENT
Downlinkdata:
•Rangingsignal
•Effemeridi
•Dati atmosferici
•Almanacco
Uplinkdata:
•Aggiornamentoeffemeridi
•Clock correction
•Dati atmosferici
•Almanacco
USERSEGMENT
Ground
Antenna
Monitor
Stations
Master
Control
Station
GROUNDSEGMENT
Fig. 2.5 I tre segmenti del sistema GPS
Ciascun satellite, quindi, trasmette con continuità dei segnali,
codificati con particolari codici (ranging codes), che contengono diverse
informazioni, quali i dati orbitali per il calcolo della posizione del satellite
13
Giulio Mezzana – Roberto Dell’Ariccia
(effemeridi) ed un riferimento temporale per la determinazione degli
istanti di trasmissione dei segnali stessi.
Nel caso in cui il ricevitore disponesse di un orologio perfettamente
sincronizzato con quello satellitare, sarebbe possibile conoscere con
esattezza il ritardo di propagazione (senza timing bias) misurando il ritardo
tra il segnale orario ricevuto ed il tempo indicato dall’orologio locale,
secondo l’algoritmo descritto nel paragrafo precedente.
2.5. Il segnale GPS
Daremo in questa sezione una descrizione sommaria della struttura
del
segnale
GPS,
riservandoci
di
tornare
più
dettagliatamente
sull’argomento nel prossimo capitolo. Il segnale GPS è trasmesso su due
radiofrequenze collocate nella banda UHF; queste frequenze sono note col
nome di Link 1 (L1) e Link 2 (L2), e sono entrambe multiple di una
frequenza base comune, f0 = 10.23 MHz, che rappresenta, di fatto, il clock
del sistema:
f L1  154 f 0  1575.42 MHz
f L 2  120 f 0  1227.6 MHz
(1.4)
Per un’utile schematizzazione, si consideri che il segnale trasmesso
dal SV può essere suddiviso nelle tre componenti di seguito illustrate:
 Portante: l’onda sinusoidale a frequenza fL1 o fL2;
 Dati del messaggio di navigazione: il messaggio di navigazione
contiene informazioni riguardanti le orbite dei satelliti; queste
informazioni sono trasmesse a tutti i SV dalle Ground Station
che compongono il Control Segment del GPS. I dati del
messaggio di navigazione sono trasmessi ad un bit rate di 50 bps
(quindi ciascun bit dura 20 ms).
 Sequenze di spreading: il sistema GPS si basa sulla tecnica di
trasmissione nota come Spread Spectrum (vedi cap. 2) nella
quale ogni SV trasmette utilizzando due sequenze di spreading
che sono uniche. La prima è il codice C/A (Coarse Acquisition),
14
Giulio Mezzana – Roberto Dell’Ariccia
la seconda è il codice P (Precision). Il codice C/A, che modula la
portante L1, è un codice Pseudo-Random Noise (PRN) binario
costituito da una sequenza di 1023 chips che si ripetono
ciclicamente ogni millisecondo, allargando la banda del segnale
di navigazione trasmesso da 50 bit/s fino ad un chip rate
complessivo di 1.023 Mchip/s. Questo codice è diverso per ogni
SV e, di fatto, ne rappresenta comunemente l’identificativo. Il
codice P, che modula entrambi i canali L1 ed L2, è un codice
PRN più lungo (~ 2.35 10 4 chips) che porta il segnale ad un chip
rate di 10.23 Mchip/s (dieci volte più grande di quello utilizzato
per il codice C/A) e che si ripete con cadenza settimanale, a
partire dall’inizio della settimana GPS. Il codice P è trasmesso,
per ragioni di sicurezza, con una modalità nota come AntiSpoofing (AS) che ne opera la cifratura: il codice complessivo
criptato è noto come codice P(Y). Il codice P(Y) può essere
decriptato solo dagli utenti autorizzati, i quali devono possedere
la chiave crittografica; in generale tale segnale è utilizzato in
ambito militare è non è dunque di utilizzo pubblico.
Il sistema GPS fornisce due differenti tipi di servizi: il Precise
Positioning Service (PPS), basato sull’uso del codice P, e lo Standard
Positioning Service (SPS), basato sul codice C/A. Gli utenti autorizzati,
muniti della chiave crittografica, sono in grado di utilizzare il PPS, che
fornisce elevati livelli di accuratezza rispetto al SPS di dominio pubblico. I
satelliti GPS trasmettono dunque i ranging codes ed i bit del navigation
data, suddivisi sulle due portanti L1 ed L2 così come riportato nella fig. 1.6
a pagina seguente.
Vediamo adesso più in particolare la struttura del messaggio di
navigazione.
15
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 2.6 Schematizzazione delle componenti di segnale su L1 ed L2
2.6. Il messaggio di navigazione
Il messaggio di navigazione (Navigation Message) è trasmesso sulla
frequenza L1 ad un bit rate di 50 bps. Come il codice C/A, anche il
navigation message è un codice binario, ma è trasmesso ad una velocità
inferiore, per modo che ogni bit di dati occupa 20 ms. Dal momento che
ogni ripetizione del codice C/A occupa 1 ms, ci sono 20 ripetizioni del
codice C/A in ogni bit dei dati di navigazione. Daremo ora una brevissima
presentazione della struttura generale del messaggio di navigazione senza
entrare nel dettaglio, in quanto non necessario ai fini dei successivi
sviluppi.
La fig. 1.7 mostra la struttura complessiva del navigation message. Il
formato alla base del messaggio di navigazione è dato da una trama di 1500
bit, contenente 5 sottotrame, ognuna di lunghezza pari a 300 bit. Una
sottotrama contiene 10 parole, ognuna di lunghezza pari a 30 bit. Le
sottotrame 1, 2 e 3 sono ripetute in ogni trama. Le ultime sottotrame (4 e
5) hanno 25 differenti versioni, note come pagine, da 1 a 25. Ad un bit rate
di 50 bps, la trasmissione di una sottotrama dura 6 secondi, quella di una
trama 30 secondi, mentre l’intero messaggio di navigazione viene
trasmesso in 12.5 minuti.
Le sottotrame di 10 parole iniziano sempre con due parole dedicate,
note come Telemetry (TLM) e Handover (HOW) word. La TLM word è la
16
Giulio Mezzana – Roberto Dell’Ariccia
prima parola di ciascuna sottotrama e si ripete dunque ogni 6 secondi:
contiene un preambolo di 8 bit (utilizzato per la sincronizzazione) seguito
da 16 bit riservati e di parità. L’HOW contiene una versione troncata a 17
bit del campo Time Of Week (TOW), seguita da due flags utilizzati per
fornire informazioni all’utente riguardo l’Anti-Spoofing, ecc.. I successivi 3
bit indicano l’ID della sottotrama, per indicare in quale delle 5 sottotrame
della trama corrente è localizzata l’HOW.
In aggiunta alle TLM e HOW, ogni sottotrama contiene 8 parole di dati,
sulle quali, però, non entriamo in maggiore dettaglio, rimandando alla
letteratura [2].
Fig. 2.7 Struttura del messaggio di navigazione
2.7. Il sistema Galileo
I sistemi satellitari attualmente esistenti sono il GPS americano e il
GLONASS russo (di cui non tratteremo), nati in piena guerra fredda per
applicazioni strettamente militari e il cui utilizzo civile è subordinato alle
necessità di impiego militare; da notare che negli ultimi anni GLONASS non
viene più mantenuto in perfetta efficienza, per cui l’unico sistema
disponibile praticamente su tutto il globo è il GPS. Questo crea una
situazione di monopolio che l’Europa ritiene inaccettabile; è nato quindi
Galileo, il progetto congiunto tra Comunità Europea e l’ESA (European
17
Giulio Mezzana – Roberto Dell’Ariccia
Space Agency) che ha lo scopo di dotare l’Europa di un proprio sistema di
localizzazione satellitare, orientato però verso applicazioni civili e
commerciali. I Paesi partecipanti al progetto pensano giustamente di
acquisire un grosso vantaggio competitivo, attraverso lo sfruttamento
commerciale di tutte le potenzialità offerte da Galileo, e l’indipendenza
tecnologica, come già avvenuto per Ariane e Airbus nei rispettivi settori.
Sebbene
il
sistema
sia
pensato
per
essere
completamente
indipendente ed autonomo, sarà compatibile ed interoperabile con il GPS;
cioè le sue caratteristiche saranno tali da non interferire con il
funzionamento del GPS (compatibilità) ed esso potrà anche essere
utilizzato congiuntamente con il GPS (interoperabilità).
La realizzazione del progetto è stata programmata in tre fasi:
 Fase di sviluppo (2002-2005): comprende la nascita di 2-4
satelliti, alcune basi di controllo a terra, la validazione del
sistema in orbita (IOV, In Orbit Validation) e del lancio del
primo satellite sperimentale alla fine del 2005 (Giove A,
attualmente in orbita secondo le previsioni);
 Fase di avanzamento (2006-2007): costruzione e lancio dei
satelliti rimanenti e installazione del segmento di terra
completo;
 Fase commerciale (2008).
Come abbiamo già detto, i sistemi attualmente esistenti GPS e
GLONASS sono stati sviluppati e tuttora gestiti dai rispettivi Dipartimenti
della Difesa di Stato per un loro utilizzo in applicazioni di tipo militare.
Tuttavia, da quando tali sistemi sono entrati in piena operatività, potendo
contare su una costellazione di satelliti completa (in realtà questo è
successo solo per il GPS), hanno cominciato a svilupparsi applicazioni in
ambito civile.
L’oscuramento totale del sistema, e quindi la non disponibilità del
sistema
stesso,
potenzialmente
ottenibile
attraverso
la
Selective
Availability (cioè la possibilità di introdurre errori arbitrari sui dati
18
Giulio Mezzana – Roberto Dell’Ariccia
trasmessi dai SV, riducendone in maniera drastica i requisiti di accuratezza
ottenibili) rappresentava, di fatto, il rischio maggiore per gli utilizzatori del
GPS (fino alla data di rimozione di questa caratteristica, avvenuta il
02/06/2000). Anche evitando questo scenario limite, dobbiamo comunque
notare alcuni elementi negativi del GPS:
 Una precisione mediocre e mutevole a seconda dei luoghi e dei
momenti.
 Nessuna garanzia di continuità del servizio (il Dipartimento della
Difesa americano non è tenuto a segnalare lo "spegnimento" del
sistema e neanche un oscuramento parziale con introduzioni
intenzionali di errori per scopi bellici in determinate regioni del
globo).
 Bassa copertura nelle aree urbane.
Proprio per questi motivi, Galileo si prefigge di rispondere ai requisiti
di precisione, affidabilità e sicurezza:
 Precisione superiore: calcolo della posizione con errore al di
sotto dei 4 metri.
 Affidabilità superiore: ottima copertura anche a latitudini
superiori ai 75° e delle aree urbane (95% contro il 50% del GPS);
invio del “messaggio di integrità”, che avverte immediatamente
l’utente di eventuali errori.
 Alte percentuali di disponibilità del segnale (availability) e di
continuità del servizio (continuity).
2.8. I servizi
Il sistema Galileo proporrà molte tipologie di servizio in chiaro o
cifrate; vediamole tutte, descrivendole brevemente.
Open Service (OS)
È un servizio di base, disponibile gratuitamente a tutti gli utenti, che
offre informazioni di posizionamento, navigazione e temporizzazione; è
destinato in particolare ad applicazioni per il pubblico ed a servizi di
19
Giulio Mezzana – Roberto Dell’Ariccia
interesse generale. Sarà concorrenziale allo SPS del GPS ma complementare
ad esso, al fine di permettere l’utilizzo di entrambi i sistemi; Galileo avrà
comunque una più alta affidabilità e qualità. L’OS non offre alcun servizio
di integrità, va tuttavia notato che, già con l’OS, è possibile operare in
Dual-Frequency Mode, eliminando così l’errore ionosferico. Le tabelle 1.2 e
1.3 riassumono le caratteristiche dell’OS di Galileo.
Tab. 2-2 Caratteristiche dell’Open Service per la sincronizzazione
Tab. 2-3 Caratteristiche dell’Open Service per la sincronizzazione
Safety of Life Service (SOL)
È un servizio di altissima qualità nato per applicazioni concernenti la
vita umana, come la navigazione aerea o marittima. Ha la stessa
accuratezza dell’OS, ma in più include la conferma dell’esattezza del
segnale ricevuto (informazione di integrità) e la garanzia del servizio
20
Giulio Mezzana – Roberto Dell’Ariccia
(autenticazione). Tale servizio rende disponibile un messaggio che
permette di determinare se l’informazione satellitare ricevuta è affidabile:
ciò è indispensabile in molti settori dove occorre una garanzia giuridica ed
un elevato tasso di sicurezza. Sebbene disponibile gratuitamente, questo
servizio richiede l’uso di ricevitori più sofisticati. La caratteristica
essenziale è, in ogni modo, la fornitura di integrità a livello globale ed in
modo open. La tab. 1.4 riporta le caratteristiche quantitative del servizio
SOL.
Tab. 2-4 Caratteristiche del Safety of Life Service
Commercial Service (CS)
Disponibile a pagamento, attraverso l’uso di un canale cifrato, per gli
utenti che richiedano
prestazioni di navigazione superiori e dati
addizionali. Permetterà lo sviluppo di applicazioni a scopi professionali ed
offrirà prestazioni più elevate rispetto al servizio di base, soprattutto in
termini di garanzia del servizio. L’accesso sarà controllato a livello del
ricevitore mediante l’uso di speciali chiavi di cifratura.
Public Regulated Service (PRS)
Servizio governativo cifrato e resistente ad oscuramenti ed interferenze,
riservato soprattutto alla necessità delle istituzioni pubbliche in materia di
21
Giulio Mezzana – Roberto Dell’Ariccia
protezione civile e sicurezza nazionale. Tali applicazioni richiedono
requisiti stringenti per la robustezza del segnale rispetto alle interferenze
ed una grande continuità. Il servizio PRS è concepito per aumentare la
probabilità che, utenti autorizzati dal governo (essenzialmente organismi di
polizia e sicurezza) in caso di minacce o in periodi di crisi, possano disporre
di un segnale continuo nello spazio e nel tempo. La tab. 1.5 riporta le
specifiche del PRS.
Tab. 2-5 Caratteristiche del Public Regulated Service
Search And Rescue Service (SAR)
Servizio di ricerca e salvataggio, destinato a migliorare sensibilmente il
sistema esistente. Si tratta dell’integrazione con il sistema russo-americano
Cospas-Sarsat per la gestione degli allarmi e la localizzazione di utenti in
pericolo al fine di assistere le operazioni di soccorso. Cospas-Sarsat è
basato sulla localizzazione del vettore, sia esso terrestre, marittimo o
aereo che, dotato di uno speciale trasmettitore, si trovi in situazione di
pericolo e necessiti di
soccorso. Il segnale d’allarme lanciato da tali
trasmettitori viene captato da uno dei satelliti del sistema e inviato a
terra: qui una rete di stazioni riceventi lo elabora fino ad ottenere
l’indicazione delle coordinate del luogo d’invio del segnale stesso. Il
sistema sinora disponibile assicura però una copertura limitata, un tempo
22
Giulio Mezzana – Roberto Dell’Ariccia
di
attesa
elevato
(dell’ordine
dell’ora)
ed
una
localizzazione
approssimativa (nel raggio di 5 Km). Galileo migliorerà sensibilmente le
prestazioni di questo sistema da molti punti di vista, garantendo una
copertura planetaria, una ricezione quasi in tempo reale (10 minuti di
ritardo massimo) ed una localizzazione precisa al metro, in modo che i
servizi di salvataggio
siano
in grado
di avviare rapidamente ed
efficacemente le operazioni di recupero. La tab. 1.6 riporta le informazioni
sul supporto del sistema Galileo al SAR.
Tab. 2-6 Supporto del sistema Galileo al Search and Rescue Service
2.9. L’architettura
L’architettura del sistema Galileo si articola in tre segmenti, che
descriveremo brevemente qui di seguito [4].
Segmento Spaziale
Ha la funzione di trasmettere a terra i segnali corrispondenti ai servizi
di base forniti dal sistema. Esso è costituito da una costellazione di 30
satelliti, denominata Walker Constellation, disposti ad un’altezza di circa
24000 Km e distribuiti su 3 piani orbitali distinti (10 satelliti per piano); i
piani orbitali sono inclinati a formare un angolo di 56° rispetto al piano
equatoriale terrestre. In realtà i satelliti operativi sono in totale 27 (9 per
ogni piano orbitale), mentre i 3 rimanenti (1 per piano) sono satelliti di
riserva, pronti ad entrare in funzione in caso di guasto di un satellite
operativo.
23
Giulio Mezzana – Roberto Dell’Ariccia
Segmento di Terra
Da un punto di vista funzionale, questo segmento è diviso in due
sottosistemi logici, il segmento di controllo (GCS, Ground Control
Segment) ed il segmento di missione (GMS, Ground Mission Segment).
Prima di esaminare il funzionamento dei due segmenti, proponiamo una
panoramica delle varie strutture presenti.
Il cuore dell’intera struttura è il GCC (Galileo Control Centre), dove
si trovano tutti gli elementi di controllo e processamento, quali:
 SCF, Satellite Control Facility: monitorizza e controlla tutti i
satelliti in orbita e supporta le operazioni.
 MCF, Mission Control Facility: supervisiona i servizi di integrità
e navigazione.
 MGF, Message Generation Facility: ha il ruolo di multiplare in un
singolo flusso i dati generati nell’GCC (o da esso ricevuti).
 OSPF, Orbitography & Synchronisation Processing Facility:
determina i parametri di navigazione dei satelliti.
 PTF,
Precision
Timing
Facility:
fornisce
un
riferimento
temporale stabile ed affidabile.
 SPF, Service Product Facility: gestisce la comunicazione con le
entità esterne che scambiano traffico con il GCC.
 GACF, Ground Assets Control Facility: controlla in tempo reale
tutti gli elementi del segmento terrestre.
 KMC, Key Management Centre: si occupa della gestione e della
distribuzione delle chiavi di sicurezza per i servizi ad accesso
controllato.
Ci sono inoltre le stazioni remote di telemetria e telecomando TT&C
(Tracking Telemetry & Control), stazioni che fungono da sensori GSS
(Galileo Sensor Station) e stazioni per le trasmissioni verso i satelliti, dette
ULS (Up-Link Station). Il compito del segmento di controllo, il GCS, è quello
di monitorare costantemente lo stato dei satelliti; SCF, tramite le 5
stazioni TT&C, riceve le telemetrie dai satelliti ed invia a questi ultimi i
telecomandi necessari per variare la configurazione delle apparecchiature
interne del satellite e/o per correggere l’assetto e l’orbita.
24
Giulio Mezzana – Roberto Dell’Ariccia
Il
controllo
di
missione,
il
GMS,
si
occupa
principalmente
dell’implementazione di una serie di funzioni le quali concorrono alla
generazione del messaggio di navigazione che porta all’utente tutte le
informazioni di navigazione e di tempo, calcolo dell’integrità, broadcast di
dati commerciali. Il funzionamento è il seguente: le 29 stazioni GSS
ricevono continuamente i segnali trasmessi dai satelliti, elaborano delle
informazioni e le inviano all’OSPF, che calcola le orbite dei satelliti e la
sincronizzazione temporale del sistema e all’IPS (Integrity Processing
Facility) che calcola l’informazione di integrità. I risultati di queste
elaborazioni sono inviati all’MCF, nel quale viene generato il messaggio di
navigazione. Quest’ultimo viene trasmesso alle 10 stazioni di uplink (ULS)
che hanno il compito di inviarlo ai satelliti: questi ultimi computano il
tempo di riferimento generato dagli orologi atomici di bordo e lo codificano
nel segnale di navigazione che viene trasmesso a terra verso gli utenti.
È da notare che il segmento spaziale e quello di terra costituiscono il
cosiddetto Galileo Global Component; oltre a questo Galileo prevede
anche l’uso di componenti Locali (Galileo Local Component). Questi ultimi
sono costituiti da infrastrutture a terra dimensionate ad hoc per soddisfare
specifiche esigenze di utenti che richiedono, per aree geografiche limitate,
prestazioni più spinte in termini di accuratezza e integrità rispetto a quelle
che Galileo è in grado di offrire a livello globale: pensiamo, per esempio,
ad un aereo in fase di atterraggio o una nave all’interno di un porto. La fig.
1.8 illustra le interazioni funzionali del segmento di terra di Galileo.
25
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 2.8 Il segmento di terra di Galileo
Segmento Utente
Gli utenti del sistema Galileo avranno a disposizione una vasta gamma
di terminali riceventi in funzione dei segnali diffusi dai satelliti e relativi ai
diversi servizi di base offerti. In aggiunta a ciò, si avranno anche terminali
in grado di lavorare contemporaneamente con i segnali Galileo e GPS,
capaci di sfruttare l’interoperabilità dei due sistemi per conseguire delle
prestazioni migliori rispetto a quelle ottenibili tramite l’uso di un solo
sistema. Una nuova tipologia di terminale sarà richiesta per il servizio SAR,
già illustrato in precedenza.
La fig. 1.9 illustra la struttura complessiva di Galileo fin qui descritta.
26
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 2.9 Overview del sistema Galileo
2.10. Il segnale Galileo
I segnali di navigazione utilizzati da Galileo fanno parte del SIS (Signal
In Space) del sistema e sono trasmessi in quattro bande di frequenza,
indicate in blu nella fig. 1.10 [5]. Le quattro bande di frequenza sono
indicate come: E5a, E5b, E6 e la banda E2-L1-E1, e garantiscono un’estesa
larghezza di banda per la trasmissione dei segnali Galileo.
Le bande di frequenza sono state scelte nell’ambito dello spettro
allocato per i servizi di radionavigazione satellitare (RNSS bands) e, in
aggiunta a queste, le bande E5a, E5b ed L1 sono incluse nella porzione di
spettro allocata per i servizi aeronautici di radionavigazione (ARNS bands),
utilizzata dagli utenti dell’aviazione civile e per applicazioni dedicate di
sicurezza.
27
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 2.10 Piano di utilizzo delle frequenze del sistema Galileo
La tab. 1.6 riassume le larghezze di banda degli spettri trasmessi e le
frequenze centrali utilizzate.
Tab. 2-7 Larghezze di banda e frequenze centrali dei segnali trasmessi
Tutti i segnali Galileo saranno trasmessi in polarizzazione circolare
destra (RHCP).
Come già visto nel sistema GPS, tutti i segnali trasmessi dai satelliti
della costellazione Galileo dovranno condividere le stesse bande di
frequenza: l’accesso multiplo al mezzo radio sarà ottenuto attraverso la
tecnica CDMA, nella quale verranno trasmessi segnali a dispersione di
spettro (spread spectrum) caratterizzati da differenti ranging codes per
ogni segnale, per ogni frequenza e per ogni satellite.
28
Giulio Mezzana – Roberto Dell’Ariccia
Passiamo ora ad una breve descrizione dei segnali di navigazione
trasmessi da ciascun satellite Galileo, che vanno sotto i nomi di segnali
L1F, L1P, E6C, E6P, E5A e E5B:
 L1F: è un segnale ad accesso libero trasmesso nella banda L1,
comprendente
un
canale
di
dati
ed
un
canale
pilota
(rispettivamente le componenti di segnale L1-B e L1-C). Viene
codificato con codici di ranging non criptati, unitamente ai dati
del messaggio di navigazione, che sono quindi accessibili da tutti
gli utenti. I dati di navigazione di L1F corrispondono al tipo di
messaggio classificato come I/Nav, e contengono messaggi di
integrità insieme a dati commerciali criptati.
 LIP: è un segnale ad accesso limitato trasmesso sul canale L1-A.
I ranging codes ed i dati di navigazione sono dunque criptati
utilizzando un algoritmo di cifratura governativo. I dati di
navigazione
di
L1P
corrispondono
al
tipo
di
messaggio
classificato come G/Nav.
 E6C: è un segnale ad accesso commerciale trasmesso nella
banda E6, comprendente un canale di dati ed un canale pilota
(rispettivamente le componenti di segnale E6-B e E6-C). I
ranging codes ed i dati di navigazione sono criptati utilizzando
un algoritmo di cifratura commerciale. I dati di navigazione di
E6C corrispondono al tipo di messaggio classificato come C/Nav.
 E6P: è un segnale ad accesso limitato trasmesso sul canale E6-A.
I ranging codes ed i dati di navigazione sono dunque criptati
utilizzando un algoritmo di cifratura governativo. I dati di
navigazione
di
E6P
corrispondono
al
tipo
di
messaggio
classificato come G/Nav.
 E5a: è un segnale ad accesso libero trasmesso nella banda E5,
comprendente
un
canale
di
dati
ed
un
canale
pilota
(rispettivamente le componenti di segnale E5a-I ed E5a-Q).
Viene codificato con codici di ranging non criptati, unitamente
ai dati del messaggio di navigazione, che sono quindi accessibili
da tutti gli utenti. I dati di navigazione di E5a corrispondono al
tipo di messaggio classificato come F/Nav, e contengono i dati
29
Giulio Mezzana – Roberto Dell’Ariccia
basilari per il supporto delle funzioni di navigazione e di
sincronizzazione.
 E5b: è un segnale ad accesso libero trasmesso nella banda E5,
comprendente
un
canale
di
dati
ed
un
canale
pilota
(rispettivamente le componenti di segnale E5b-I ed E5b-Q).
Viene codificato con codici di ranging non criptati, unitamente
ai dati del messaggio di navigazione, che sono quindi accessibili
da tutti gli utenti. I dati di navigazione di E5b corrispondono al
tipo di messaggio classificato come I/Nav, e contengono
messaggi di integrità insieme a dati commerciali criptati.
La tab. 1.8 mostra la corrispondenza fra le bande di frequenza ed i
servizi presentati in precedenza.
Galileo Service
E5
Open Service
√
Commercial Service
√
Safety of Life Service
√
Public Regulated Service
E6
L1
√
√
√
√
√
Tab. 2-8 Matrice di corrispondenza fra i segnali ed i servizi Galileo
Vi sono diverse caratteristiche da evidenziare nella struttura dei
segnali Galileo rispetto a quello che abbiamo discusso a proposito dei
segnali GPS. In primo luogo, mentre nel GPS si rendono disponibili
solamente due portanti a RF (L1 ed L2), nel sistema Galileo ve ne sono
diverse, usate per garantire i servizi visti prima. Il punto per comprendere
l’occupazione spettrale è capire che si è cercato di mantenere il più
possibile la piena compatibilità fra GPS e Galileo; occorre dunque che la
banda centrale sia la stessa, per poter avere sulla media frequenza sia il
segnale GPS che quello di Galileo. Alla luce di questo può, per esempio,
essere spiegata l’allocazione spettrale delle bande E2 ed E1 che sono poste
a cavallo della banda L1 del GPS. A causa della vicinanza di alcune
frequenze, i segnali di Galileo, a differenza di quelli del GPS, sono
trasmessi utilizzando tecniche di modulazione digitale (in particolare la
modulazione BOC – Binary Offset Carrier) per evitare di occupare la parte
30
Giulio Mezzana – Roberto Dell’Ariccia
centrale dello spettro che risulta già occupata dai segnali GPS. In ultimo, si
può evidenziare come i segnali propri di Galileo utilizzino due codici di
ranging per ciascuna frequenza: i dati sono sovrapposti solo ad uno di essi,
mentre l’altro è privo di dati e ha la funzione di codice pilota (Pilot
Channel) per fornire misure di navigazione più precise e robuste (sempre
allo scopo già evidenziato di migliorare le prestazioni rispetto ai sistemi
GNSS di prima generazione quali il GPS).
I segnali E5a ed E5b sono modulati sulla singola portante E5
utilizzando una tecnica conosciuta come AltBOC (Alternative Binary Offset
Carrier, verrà descritta in seguito): il segnale complessivo è chiamato E5 e
può essere processato come un segnale unico da un appropriato ricevitore
utente. Un riassunto delle caratteristiche dei segnali appena presentati è
riportato in tab. 1.9.
Galileo
Signals
RF channels
Nav.
Message
type
Description
Ranging Code
Encryption
Data
Encryption
L1F Signal
L1-B
L1-C
I/Nav
Open access code signal
carrying integrity data.
No
Partial
L1P Signal
L1-A
G/Nav
Restricted access code
and data signal.
Governmental
Governmental
E6C Signal
E6-B E6-C
C/Nav
Controlled access code
carrying encrypted
commercial data.
Commercial
Commercial
E6P Signal
E6-A
G/Nav
Restricted access code
and data signal.
Governmental
Governmental
E5a Signal
E5a-I E5a-Q
F/Nav
Open access code.
No
No
E5b Signal
E5b-I E5b-Q
I/Nav
Open access code signal
carrying integrity data.
No
Partial
E5 Signal
Combination of E5a and E5b signals
Tab. 2-9 Riassunto delle caratteristiche salienti dei segnali di navigazione Galileo
Per concludere questa carrellata sui segnali utilizzati nel sistema
Galileo, mostriamo infine, nella fig. 1.11, gli spettri dei segnali trasmessi,
le frequenze allocate e le corrispondenze con i servizi descritti nel §1.4.1.
L’andamento spettrale molto particolare dei segnali con modulazione BOC
sarà descritto dettagliatamente nel cap. 2.
31
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 2.11 Overwiev degli andamenti spettrali dei segnali i navigazione Galileo
32
Giulio Mezzana – Roberto Dell’Ariccia
3. SEGNALI DI NAVIGAZIONE GNSS
3.1. Introduzione
In questa sezione descriveremo nel dettaglio la struttura dei segnali
GPS e GALILEO, le loro caratteristiche e le proprietà generali. Poiché
entrambi i sistemi fanno uso di una particolare tecnica di accesso multiplo,
nota come CDMA (Code Division Multiple Access) che a sua volta si basa sul
sistema di “Spread Spectrum”, introdurremo per primi i capisaldi di questi
sistemi. Il capitolo prosegue con una descrizione dettagliata della struttura
di entrambi i segnali; seguirà poi una breve discussione generale del
formato del messaggio di navigazione (Navigation Data).
Verrà inclusa anche, per entrambi i sistemi, una panoramica delle
proprietà di cross-correlazione e di autocorrelazione dei segnali trasmessi:
questa sezione, in particolare, risulterà propedeutica per la comprensione
delle tecniche di acquisizione implementate nel seguito.
Infine saranno trattati i livelli del segnale a radio frequenza e saranno
discussi i rapporti segnale a rumore (SNR) tipici dei sistemi, per rendere le
simulazioni trattate nei capitoli seguenti più aderenti al modello reale.
3.2. Sistemi di accesso multiplo a spettro disperso
Il sistema di accesso multiplo CDMA (Code Division Multiple Access)
utilizzato nei sistemi di radionavigazione satellitare, si basa su una tecnica
di codifica nota come tecnica di Spread Spectrum: il principio di questa
modalità è fondato sullo speading della banda del segnale da trasmettere
su una banda molto più larga, per fare in modo che il segnale risulti
maggiormente immune ai disturbi di natura rumorosa o interferente, anche
intenzionali (p. es. jammer). In particolare, il segnale di dati da
trasmettere D(t) di banda Bd, viene modulato su di una portante sinusoidale
per formare il segnale d(t), la cui banda viene in seguito allargata (spread
33
Giulio Mezzana – Roberto Dell’Ariccia
spectrum) fino a raggiungere un valore Bs >> Bd. L’allargamento della banda
può essere ottenuto moltiplicando la portante (modulata dai dati) con una
forma d’onda s(t) a banda molto larga (si parla in questo caso, che è
l’unico che analizzeremo, di Direct Sequence Spread Spectrum, DSSS).
Un sistema semplificato basato sulla tecnica DSSS è mostrato in fig.
2.1.
A
B
C
D
Fig. 3.1 Schematizzazione della tecnica DSSS
La figura mostra un convenzionale trasmettitore a modulazione bifase
(all’estrema sinistra) seguito da un’operazione di spread spectrum; la
trasmissione avviene su un canale rumoroso ed infine i dati pervengono ad
un ricevitore che opera il despreading.
Una sequenza di dati binari D(t), con valori D = ±1 ed un rate di
trasmissione pari a fd, viene prima di tutto modulata su una portante a
potenza Pd per dar luogo al segnale a banda stretta d(t) da trasmettere:
d (t )  D(t ) 2 Pd cos2f 0 t 
(2.1)
34
Giulio Mezzana – Roberto Dell’Ariccia
Questo segnale, con larghezza di banda Bd, è quindi sottoposto
all’operazione di spreading (nella modalità Direct Sequence) mediante l’uso
di un segnale pseudo-random binario s(t), con s(t) = ±1 ed un bit rate pari a
fc, molto più grande del bit rate dei dati (i.e. fc >> fd). Nel caso
semplificato in cui, sia i dati trasmessi che i codici di spreading siano
randomici, è possibile esprimere le densità spettrali di potenza per
entrambi i segnali d(t) e s(t) come segue:
Gd ( f ) 
1
sin f / f d /f d 2
fd
(2.2)
Gs ( f ) 
1
sin f / f c /f / f c 2
fc
(2.3)
A seguito dell’operazione di allargamento dello spettro, il segnale
complessivamente trasmesso assume la forma seguente:
s 0 (t )  s (t ) d (t )  s(t ) D (t ) 2 Pd cos( 2f 0 t )
(2.4)
nella quale il segnale di spreading può essere espresso come segue:

s (t )   S n p (t  nTc )
(2.5)
n  
dove p(t) rappresenta un impulso rettangolare unitario sull’intervallo
{0, Tc = 1/fc} e Sn = ±1 rappresenta una sequenza random (o pseudorandom). Più in generale, p(t) può rappresentare un impulso filtrato,
mentre si possono utilizzare differenti forma d’onda s(t) per lo spreading,
che possono modulare separatamente le componenti in fase e in quadratura
del segnale da trasmettere, anche se in questo esempio abbiamo ristretto
la discussione ad impulsi rettangolari e ad una modulazione BPSK (in quanto
queste caratteristiche saranno prese in considerazione nel prosieguo della
trattazione).
La modalità di Spread Spectrum descritta, che come abbiamo detto è
nota sotto l’acronimo DSSS, non è tuttavia l’unica possibile (esistono anche
altre modalità quali per es. il Frequency-Hopping SS, FHSS), ma è quella su
35
Giulio Mezzana – Roberto Dell’Ariccia
cui concentreremo l’interesse in quanto è la modalità correntemente
utilizzata nei sistemi GNSS.
Il segnale DSSS attraversa quindi un canale con rumore additivo bianco
n(t) caratterizzato da una densità spettrale di potenza N0. In ricezione
viene generata una replica identica e perfettamente sincronizzata
temporalmente del segnale di spreading s(t), che viene quindi correlata
(moltiplicata e filtrata) con il segnale rumoroso ricevuto sul canale. Il fatto
che la replica ricevuta debba essere accuratamente sincronizzata nel
tempo è, come si vedrà nel seguito, la proprietà fondamentale che
permette al sistema di ottenere accurate informazioni di sincronizzazione e
di ranging. In ricezione, quindi, l’operazione di moltiplicazione ha lo scopo
di convertire il segnale d(t)·s(t) in d(t)·s(t)2 = d(t), dal momento che s(t)2 =
1; in questo modo, il segnale a spettro espanso DSSS viene nuovamente
compresso alla sua larghezza di banda originale (despreading), rimanendo
sul segnale solamente la modulazione dei bit di dati. La densità spettrale di
potenza del rumore è ancora N0, in quanto il rumore non è correlato con il
segnale DSSS, e dopo la correlazione si ha ancora rumore bianco Gaussiano.
A questo punto, filtrando l’uscita del moltiplicatore con un filtro
passabanda centrato intorno alla portante, il segnale d(t) arriverà agli stadi
successivi relativamente non distorto, mentre solamente una frazione della
potenza del rumore sarà passata attraverso il filtro, con potenza N0·Bd. Il
grande vantaggio nell’uso dei sistemi Spread Spectrum sta proprio nella
loro robustezza rispetto al rumore ed agli interferenti: infatti, spargere la
potenza del segnale su una banda più larga, ha fatto sì che il rumore
intaccasse di meno la potenza del segnale di partenza; inoltre un segnale
DSSS ha un livello di densità di potenza paragonabile al livello di rumore,
ed è quindi difficilmente intercettabilei. In generale, un segnale DSSS è
roiibusto rispetto ad una larga classe di interfenti.
Abbiamo assunto che la sequenza di spreading s(t) fosse una sequenza
random: in effetti non è possibile generare sequenze puramente random,
quindi in generale si farà riferimento a sequenze pseudo-random, cioè
sequenze che presentino caratteristiche spettrali il più possibile simili a
quelle delle sequenze genuinamente random, ma che siano di fatto
36
Giulio Mezzana – Roberto Dell’Ariccia
completamente deterministiche. Va ricordato che una sequenza binaria
completamente randomica presenta una serie equiprobabile di occorrenze
pari a ±1. Questa sequenza, ad un rate fc, può essere usata per generare la
forma d’onda dell’espressione (2.5), che presenta una funzione di
autocorrelazione triangolare ed una densità spettrale di potenza con
andamento proporzionale a [sinc(f)]2.
Come vedremo fra breve, una approssimazione soddisfacente di
queste fondamentali proprietà delle sequenze genuinamente randomiche
può essere ottenuta dalle sequenze cosiddette pseudo-random, che
possono essere generate attraverso l’uso di opportuni registri a scorrimento
con feedback. In questo modo, saremo in grado, in ricezione, di riprodurre
una replica della forma d’onda trasmessa e, facendo uso delle proprietà di
autocorrelazione dei codici pseudo-random, di sincronizzare in modo
accurato questa replica con il segnale ricevuto.
Per concludere questo paragrafo, sottolineiamo che la tecnica DSSS ha
la capacità di abilitare l’accesso multiplo di più utenti nello stesso tempo e
sulla stessa banda, dando luogo ad un accesso multiplo a divisione di codice
(CDMA). L’accesso multiplo a divisione di codice permette ai vari utenti di
condividere esattamente lo
stesso
canale in frequenza, con
una
interferenza multiutente limitata, se il numero totale di segnali M non è
troppo grande. Questa caratteristica di accesso multiplo è fondamentale
nei sistemi di radionavigazione satellitare, in quanto un ricevitore può
ricevere simultaneamente anche 10 segnali GNSS da 10 differenti SV, tutti
collocati nello stesso canale in frequenza e continui nel tempo (cioè senza
far uso di slot temporali). Nei sistemi CDMA l’accesso multiplo avviene nel
dominio dei codici: vi è quindi la necessità che i diversi satelliti della
costellazione
trasmettano
utilizzando
codici
differenti
(per
poter
distinguere un satellite dagli altri) e che inoltre i codici utilizzati siano il
più possibile ortogonali fra loro (per far si che i segnali non causino
un’eccessiva interferenza mutua). In generale non sarà possibile far sì che i
segnali trasmessi dai vari SV siano perfettamente ortogonali per ogni
ritardo; tuttavia si ottengono ancora buone prestazioni nell’accesso
multiplo selezionando i diversi codici pseudo-random per lo spread
37
Giulio Mezzana – Roberto Dell’Ariccia
spectrum facendo in modo che siano quasi del tutto incorrelati fra loro, per
ogni possibile ritardo temporale. Tali codici sono noti come PRN (PseudoRandom Noise) e verranno ripresi più dettagliatamente nel seguito.
3.3. Struttura del segnale GPS
In questo paragrafo descriveremo nel dettaglio la struttura del segnale
GPS. Il Global Positioning System, che come abbiamo visto è un sistema
basato sulla tecnica di accesso multiplo CDMA, utilizza fondamentalmente
due tipi diversi di codici per ottenere lo spreading dello spettro del
segnale: i Coarse/Acquisition Codes (C/A Codes, utilizzati in ambito civile)
ed i Precision Codes (P Codes, utilizzati in ambito militare). Va rilevato che
il codice P non è direttamente trasmesso dal SV, ma viene prima criptato
da un codice di sicurezza, noto come Y Code: perciò ci riferiremo al codice
P criptato indicandolo, come d’uso comune, con P(Y) Code. Il codice P(Y),
a causa della cifratura, non è disponibile per l’uso civile (in quanto si deve
disporre di un opportuno codice di decifrazione) ed è invece principalmente
usato a scopo militare (i dati del codice P(Y) sono spesso indicati come
Classified Data). Per questo motivo, qui e nel seguito, tratteremo il codice
P(Y) solo marginalmente, e unicamente negli aspetti fondamentali e
rilevanti ai fini delle nostre simulazioni.
Diverso è invece il discorso sul codice C/A, sul quale focalizzeremo
maggiormente la nostra attenzione.
3.3.1. Generazione e modulazione del segnale su L1
Daremo ora una descrizione più dettagliata della generazione del
segnale, descrizione che sarà utile per la concreta implementazione al
calcolatore del simulatore di segnale. È chiaro che, per quanto finora visto,
si pongono fondamentalmente due importanti questioni: come multiplare i
due codici C/A e P(Y) su una singola portante e, inoltre, come garantire
l’accesso multiplo ai vari segnali GPS che devono essere ricevuti dai
differenti SV nell’ambito delle bande di frequenza disponibili.
38
Giulio Mezzana – Roberto Dell’Ariccia
Durante la fase di progettazione del sistema GPS, sono state prese in
considerazione differenti possibili bande di frequenza per la sistemazione
del segnale da trasmettere; inoltre, anche la struttura stessa del segnale è
stata scelta fra un insieme di possibili alternative. Per questo, le
caratteristiche del segnale trasmesso dal satellite potrebbero essere
modificate in futuro (e questo è tanto più vero per il segnale GALILEO, che
è ancora in fase di definizione). Tuttavia, al momento attuale, la frequenza
L1 contiene entrambi i codici C/A e P(Y), mentre la frequenza L2 contiene
solamente il codice P(Y) (e pertanto non può essere utilizzata dagli utenti
del servizio civile, noto come SPS – Standard Positioning System).
Più in dettaglio, il segnale L1 trasporta i codici di spread spectrum sia
per l’uso civile che militare, multiplati in fase ed in quadratura su una
singola portante a RF. Inoltre, i segnali provenienti dai differenti SV devono
condividere lo stesso canale in frequenza: questo è ottenuto facendo uso
della tecnica di accesso multiplo CDMA, descritta in precedenza. La fig.
2.2 mostra gli spettri dei segnali trasmessi per entrambi i canali L1 ed L2;
la fig. 2.3, invece, fornisce uno schema a blocchi del sistema di
generazione dei due segnali [1].
Fig. 3.2 Spettri dei segnali sulle frequenze L1 ed L2
Come si vede dalla prima figura, il picco della densità spettrale di
potenza del segnale C/A si trova al disopra della curva riferita al codice P:
per la precisione la differenza è di circa 13 dB, in quanto il codice P è
39
Giulio Mezzana – Roberto Dell’Ariccia
attenuato di 3 dB rispetto al codice C/A (vedi fig. 2.3) ed inoltre
quest’ultimo ha un chip rate (e quindi una larghezza di banda) che è pari
ad 1/10 di quella del codice P.
Per quanto riguarda invece la fig. 2.3, il diagramma a blocchi va letto
da sinistra verso destra: all’estrema sinistra, il segnale di clock principale,
con una frequenza di 10.23 MHz, pilota i blocchi rimanenti. La frequenza
base è moltiplicata per 154 e per 120 per generare i segnali portanti alle
frequenze L1 ed L2, come indicato dalle (1.4). Nell’angolo in basso a
sinistra si può notare un limitatore, che ha il compito di stabilizzare il
segnale di clock prima di usarlo per pilotare i generatori dei codici P(Y) e
C/A. Ancora più in basso, il blocco “Data Generator” si occupa della
generazione dei dati del messaggio di navigazione. I generatori di codice ed
il generatore dei dati sono sincronizzati attraverso il segnale X1 provvisto in
uscita dal generatore del codice P(Y).
Fig. 3.3 Schema a blocchi della generazione del segnale GPS
Dopo la parte di generazione del codice, i due codici così ottenuti
sono combinati con i dati di navigazione attraverso due operazioni di OR
esclusivo (XOR, eXclusive OR), che operano semplicemente la somma
40
Giulio Mezzana – Roberto Dell’Ariccia
modulo-2 degli addendi. L’operazione di XOR mostrata nello schema è
utilizzata su sequenze binarie rappresentate da 0 ed 1, e le sue proprietà
sono mostrate nella tab. 2.1:
Input 1
Input 2
Output (XOR)
0
0
0
0
1
1
1
0
1
1
1
0
Tab. 3-1 Tabella di verità dell’operazione di XOR
Va tuttavia notato che, per meglio rappresentare le proprietà
spettrali e di autocorrelazione dei codici di spreading, si dovranno
convertire le sequenze binarie unipolari in uscita ai generatori di codice
come sequenze bipolari di 1 e -1. Adottando quest’altra rappresentazione,
è semplice mostrare che, in luogo dell’operazione di XOR, si può utilizzare
l’ordinaria moltiplicazione bit a bit. Infatti, le corrispondenti proprietà
della moltiplicazione riportate nella tabella 2.2, dimostrano che i risultati
sono gli stessi, dopo aver sostituito 0 con -1, e a meno di una ininfluente
inversione di segno.
Output
Input 1
Input 2
-1
-1
1
-1
1
-1
1
-1
-1
1
1
1
(Moltiplicazione)
Tab. 3-2 Tabella di verità della moltiplicazione
I codici C/A e P(Y), moltiplicati per i dati di navigazione, costituiscono
l’input per i due modulatori (uno per il segnale in fase e l’altro per quello
in quadratura) della frequenza L1: qui i due segnali sono modulati sulla
frequenza portante usando la modulazione BPSK (Binary Phase Shift
41
Giulio Mezzana – Roberto Dell’Ariccia
Keying), garantendo così una portante modulata ad inviluppo costante,
anche se i due segnali presentano differenti livelli di potenza. Si noti che, il
fatto che i due codici siano modulati uno in fase ed uno in quadratura, è
rappresentato dallo shift di fase di 90° fra i codici stessi. Infine, il ramo
che trasporta il codice P(Y) viene attenuato di 3 dB, dopodiché i due
segnali così risultanti sono sommati, dando luogo al segnale su L1. La
tecnica CDMA consente l’accesso multiplo garantendo la separazione dei
diversi segnali nel dominio dei codici, facendo uso di sequenze con
specifiche proprietà di cross-correlazione.
Dalla descrizione appena conclusa del sistema di generazione, è
possibile rappresentare matematicamente il segnale trasmesso dal satellite
k-mo sulla frequenza L1 (che è quella che analizzeremo nelle simulazioni
dei capitoli seguenti):




s Lk1 (t )  2PC C k (t )  Dk (t ) cos(2f L1t  k )  2PPL1 P k (t )  D k (t ) sin(2f L1t  k ) (2.6)
dove PC e PPL1 rappresentano le potenze dei codici C/A e P(Y), Ck è la
sequenza di codice C/A assegnata al k-mo satellite, Pk è la sequenza di
codice P(Y) assegnata al k-mo satellite, Dk è la sequenza dei dati del
messaggio
di
navigazione,
fL1
e
fL2
sono
le
frequenze
portanti,
rispettivamente, di L1 ed L2, ed infine kè la fase iniziale trasmessa dal SV
considerato.
Per chiarire quanto finora esposto, la fig. 2.4 illustra le tre parti che
compongono il segnale sulla frequenza L1. Come si può vedere dalla figura,
conformemente a quanto esposto, il codice C/A si ripete ogni millisecondo,
mentre un bit del messaggio di navigazione ha la durata di 20 millisecondi:
questo significa che, per ogni bit del messaggio di navigazione, il segnale
risultante contiene 20 ripetizioni complete del codice C/A.
42
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 3.4 Modalità di spreading dei bit del messaggio di navigazione
La fig. 2.5 illustra invece la modalità di generazione del segnale su L1,
per un dato SV, mediante modulazione BPSK del codice C/A e dei dati
sull’onda portante. Il segnale risultante che viene trasmesso è il prodotto
dei tre segnali, come mostra la parte bassa della figura: perciò, quando il
bit del massaggio di navigazione è pari ad 1, il segnale risultante è
sottoposto ad una rotazione di fase di 180° ogni volta che il codice C/A
passa da 1 a -1 o viceversa. Quando invece si ha una variazione da 1 a -1
del bit del messaggio di navigazione, come avviene nel mezzo della figura,
anche la fase del segnale risultante sui 20 ms è ruotata di 180°.
Fig. 3.5 Generazione del segnale GPS su L1
43
Giulio Mezzana – Roberto Dell’Ariccia
3.3.2. Sequenze PRN
In questo paragrafo affronteremo la descrizione delle sequenze di
spreading usate nel sistema GPS. Descriveremo principalmente il codice
C/A in quanto il codice P(Y), essendo criptato, non potrà naturalmente
essere simulato nei dettagli (per maggiori dettagli sul codice P(Y) si veda
[2]).
Le sequenze utilizzate per il codice C/A devono essere tali da
presentare le desiderate caratteristiche, in termini di cross-correlazione,
tali da permettere bassa interferenza dovuta all’accesso multiplo al mezzo
radio: in particolare, i segnali utilizzati appartengono alla famiglia, molto
importante, dei codici Pseudo-Random Noise (PRN) (così chiamati per le
loro peculiari caratteristiche spettrali e di autocorrelazione che possono
essere ricondotte a quelle tipiche delle sequenze genuinamente random)
conosciuti come codici di Gold (in quanto fu proprio R. Gold a scoprirli nel
1967). Queste sequenze sono generate dal prodotto di due sequenze PRN di
1023 bit ciascuna, che vengono indicate come G1 e G2 (Gold 1 e Gold 2). I
codici G1 e G2 sono generati da due registri lineari a scorrimento (shift
register) con feedback, che danno luogo a sequenze a massima lunghezza
(MLS – Maximum Length Sequence), utilizzate perché presentano importanti
proprietà di correlazione, come vedremo fra breve. I registri utilizzati per i
segnali GPS, che hanno una lunghezza pari a 10 e sono inizializzati con tutti
‘1’, permettono di generare sequenze MLS di lunghezza pari a 210 - 1 = 1023
(in generale è possibile dimostrare che un registro di lunghezza n genera
sequenze MLS di lunghezze 2n – 1). Suddetti registri per la generazione di
G1 e G2 sono mostrati in fig. 2.6 [7], nella quale si osserva come il
feedback sia realizzato mediante dei sommatori modulo-2.
44
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 3.6 – Shift regiter per la generazione dei codici di Gold
Il segnale C/A effettivamente trasmesso è dato dalla somma modulo-2
bit a bit dei 1023 chip in uscita ai registri di G1 e G2, ed ha un chip rate di
1.023 Mchip/s. Dunque il periodo del codice C/A è relativamente breve e
pari ad 1 ms: questa caratteristica è stata appositamente scelta per
permettere che l’acquisizione possa avvenire in tempi rapidi, come
vedremo, infatti, ci sono solo 1023 code bins da esplorare per la ricerca.
Ogni periodo di 1023 chip, gli shift register vengono resettati ad ’1’,
facendo sì che il codice ricominci ciclicamente dall’inizio. Le configurazioni
di feedback sono identificate dai polinomi caratteristici, che indicano quali
prese del registro devono essere considerate nella somma; il codice G1 ha
sempre la stessa configurazione data dal seguente polinomio:
G1( X )  1  X 3  X 10
(2.7)
intendendo il fatto che gli stati ‘3’ e ‘10’ del registro vengono sommati fra
loro, ed il risultato viene mandato indietro per aggiornare il primo stato
(feedback). In maniera analoga, il registro del codice G2 utilizza il seguente
polinomio caratteristico:
45
Giulio Mezzana – Roberto Dell’Ariccia
G 2( X )  1  X 2  X 3  X 6  X 6  X 8  X 9  X 10
(2.8)
Per differenziare i codici C/A dei vari SV, le uscite dei due shift
register sono combinate in maniera particolare: il registro di G1 fornisce
l’output dello stato ‘10’ del registro, mentre il registro di G2 fornisce
l’output come somma modulo-2 di 2 stati che variano per ciascun SV. La
selezione degli stati da sommare è chiamata selezione di fase, in quanto si
può dimostrare facilmente che la sequenza che si ottiene in questo modo,
altri non è che la versione ritardata di G2 stesso, cioè con una differente
fase (è questa infatti, una delle proprietà delle sequenze MLS, basata sullo
studio dei campi di Galois di cui fanno parte le sequenze, [2]) . Il ritardo di
fase di G2 dipende proprio da quali stati si selezionano per la somma: in
questo modo, quindi, la scelta degli stati da sommare determina
univocamente l’identità del SV.
La tabella 2.3 [6] mostra le combinazioni delle prese per ogni codice
C/A utilizzato dai SV, il corrispondente ritardo introdotto su G2, oltre ai
primi 10 chip espressi in notazione ottale. Dalla tabella si può notare come
solo i primi 32 codici, sui 37 possibili definiti nel GPS-ICD-200, sono
utilizzati come codici C/A per i satelliti (ma solo 24 SV sono in orbita); i
rimanenti cinque codici sono riservati per altri usi, come per es. le
trasmissioni da terra (i.e. pseudoliti). Inoltre si può vedere che i codici C/A
dei segnali PRN n°34 e n°37 sono gli stessi.
46
Giulio Mezzana – Roberto Dell’Ariccia
Tab. 3-3 Corrispondenze fra i codici di spreading ed i SV ad essi associati
3.3.3. Proprietà di correlazione dei codici C/A
Le più importanti proprietà dei codici C/A, soprattutto per quel che
concerne le problematiche di acquisizione sviluppate nella presente tesi,
riguardano l’operazione di correlazione fra i codici. I codici di Gold sono
stati scelti proprio perché posseggono particolari caratteristiche rispetto ad
altre sequenze, che possono riassumersi nelle due principali di seguito
elencate:
1. Picchi bassi nell’autocorrelazione quasi per ogni ritardo, ad
eccezione del ritardo nullo: tutti i codici C/A sono quasi del
47
Giulio Mezzana – Roberto Dell’Ariccia
tutto incorrelati con loro stessi, ad eccezione di quello che
accade per ritardi nulli. È proprio questa importante proprietà
che permette di distinguere facilmente fra di loro due diversi
codici di Gold quando sono sovrapposti. Più in particolare,
l’autocorrelazione per il satellite k-mo che trasmette il codice
Ck è data da:
1022
Rk ,k (n)   C k (l )  C k (l  n)  0,
n 1
(2.9)
l 0
mentre
per
n=0
si
osserva
un
picco
molto
ampio
nell’autocorrelazione.
2. Picchi bassi per ogni ritardo nella cross-correlazione: tutti i
codici C/A sono praticamente incorrelati fra di loro, per ogni
ritardo. Questo significa che, per due codici Ci e Ck (trasmessi
rispettivamente dai SV i e k), la cross correlazione può essere
scritta come:
1022
Ri ,k ( n ) 
 C i ( l )  C k ( l  n )  0,n
(2.10)
l 0
Queste due proprietà, tipiche dei codici di Gold, sono fondamentali
per permettere la demodulazione dei segnali in ricezione, e possono far sì
che si abbia un ampio intervallo di segnali acquisiti. Per poter rilevare un
segnale utile a bassa potenza in presenza di un altro segnale interferente
più
potente,
il
picco
della
funzione
di
autocorrelazione
(ACF
–
Autocorrelation Function) del segnale utile deve essere più alto del picco di
cross-correlazione fra il segnale utile ed il segnale interferente. Se i codici
fossero perfettamente ortogonali, la cross-correlazione sarebbe nulla;
tuttavia va notato che i codici di Gold non sono perfettamente ortogonali,
e quindi la cross-correlazione fra le diverse sequenze non sarà nulla, ma
sarà comunque contenuta entro bassi valori. Quanto appena detto è ben
evidenziato dalla figura 2.7, che mostra un esempio delle proprietà di
autocorrelazione dei codici C/A: come ci aspettavamo, visto che la figura è
riferita all’autocorrelazione di un particolare satellite (il SV n°15), si
48
Giulio Mezzana – Roberto Dell’Ariccia
evidenzia un picco in corrispondenza al ritardo nullo e bassi valori per tutti
gli altri ritardi.
Fig. 3.7 Proprietà di correlazione dei codici C/A: autocorrelazione del codice C/A per il SV 15
Il picco dell’autocorrelazione della figura 2.8 risulta essere pari a
1023 (come mostra lo zoom di fig. 2.8), che altri non è che la lunghezza del
codice C/A; i valori assunti negli altri ritardi sono pari ai valori assunti dalla
correlazione in corrispondenza ad ogni ritardo, che sono calcolabili in base
alla tabella 2.4 a pagina seguente.
49
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 3.8 Proprietà di correlazione dei codici C/A: autocorrelazione del codice C/A per il SV 15 - zoom
Tab. 3-4 Valori di cross-correlazione dei codici di Gold
Per i codici C/A, il numero di registri n è pari ed uguale a 10, perciò
P=1023. Usando le relazioni presenti nella tabella, i valori di crosscorrelazione sono: -65/1023 (il 12.5% delle volte), -1/1023 (il 75% delle
volte), e 63/1023 (12.5% delle volte). Considerando però che, come detto,
il picco dell’ACF non è unitario ma pari a 1023, i tre valori assunti dalla
50
Giulio Mezzana – Roberto Dell’Ariccia
cross-correlazione risultano essere: 63, -1 e -65: 1023 rappresenta dunque
il guadagno di processo nell’autocorrelazione.
Va sottolineato che, per poter generare i grafici di figg. 2.7-2.8, i chip
in uscita al generatore di codici C/A (descritto in precedenza) devono
assumere valori pari a 1 e -1, invece che 1 e 0 (vanno quindi convertiti da
valori unipolari a valori bipolari).
Infine, la fig. 2.9 mostra il grafico della cross-correlazione fra due SV
scelti arbitrariamente: come ci si aspettava, si osservano bassi valori per
ogni ritardo, secondo la (2.10). Inoltre tali valori, unitamente alle
rispettive probabilità, sono ancora calcolabili in base alla tab. 2.4.
Fig. 3.9 Proprietà di cross-correlazione dei codici C/A: cross-correlazione fra i codici dei SV 15 e 31
51
Giulio Mezzana – Roberto Dell’Ariccia
3.3.4. Livelli di potenza e rapporti segnale-rumore del segnale
GPS a RF
I minimi livelli di potenza specificati per il segnale GPS ricevuto da un
utente che utilizza un’antenna a 0 dBIC sono riassunti nella tabella 2.5, per
un SV che sia in vista con angoli di elevazione superiori ai 5 gradi. In realtà,
il minimo valore realmente ricevuto varia con l’angolo di elevazione del
satellite, a causa della forma del pattern d’antenna: in ogni caso, i valori
riportati in tabella si riferiscono al caso peggiore di minima potenza
ricevuta conformemente ai valori riportati nel GPS-ICD-200 [6], al variare
dell’angolo di elevazione.
Link
P(Y)
C/A
L1
-163 dBW
-160 dBW
L2
-166 dBW
-166 dBW
Tab. 3-5 Minimi livelli di potenza dei segnali GPS ricevuti all’uscita di un’antenna 0 dBIC con
polarizzazione circolare destra (RHCP – Rigth-Hand Circular Polarization) [6].
Le densità spettrali di potenza per le componenti di segnale C/A e
P(Y) sono mostrate in fig. 2.2: si noti, al centro dello spettro, il picco (a
banda stretta) a più alta densità spettrale di potenza, proprio del codice
C/A. È molto importante sottolineare che questi spettri sono gli spettri in
trasmissione: in condizioni normali, infatti, il rumore termico bianco del
ricevitore supera abbondantemente i livelli di densità spettrale del segnale
utile, ed il segnale (come vedremo anche nelle nostre simulazioni) non è
visibile utilizzando un analizzatore di spettro, in quanto si trova
completamente al di sotto del rumore.
È molto utile ora andare a stimare i livelli di densità di potenza e di
SNR attesi in ricezione, per poter rendere quanto più possibile realistiche le
simulazioni dei segnali ricevuti dal nostro sistema di acquisizione. Per
prima cosa, andiamo a calcolare i livelli di densità di potenza del rumore in
termini di figura di rumore del ricevitore.
In uno schema convenzionale di ricezione, il segnale ricevuto
dall’antenna è inviato lungo una linea di trasmissione, filtrato in banda, e
52
Giulio Mezzana – Roberto Dell’Ariccia
infine inviato ad un amplificatore a bassa cifra di rumore (LNA), come
mostrato dalla fig. 2.10.
LINEA DI TRASMISSIONE
&
FILTRO PASSABANDA
LNA
Fig. 3.10 Configurazione del primo stadio dello schema di ricezione
La densità (monolatera) di rumore ricevuta, come noto dai corsi di
comunicazione elettrica, è pari a
N 0  Teq , dove la temperatura
equivalente di rumore è definita come segue:
Teq 
T A L  1T0

 TR   K
L
L
(2.11)
Nella (2.11), L sono le perdite (Loss) introdotte dalla presenza del
filtro e della linea di trasmissione, TR è la temperatura di rumore del
ricevitore, definita come:
TR  T0 F  1
(2.12)
essendo F la figura di rumore del ricevitore (in unità lineari), mentre T0 è
la temperatura ambiente e T A è la temperatura di rumore dell’antenna
(tutte le temperature sono da intendersi espresse in °K). Il valore della
costante di Boltzmann è pari a  = –228.6 dBW/°K-Hz; per quanto riguarda
la figura di rumore, valori tipici variano in un range che va da 1.0 dB a 1.5
dB. Se, per esempio, si sceglie una figura di rumore pari a 1.0 dB, allora F =
1.259, F – 1 = 0.259, e TR = (F – 1)∙290°K = 75.1 °K. Per un esempio tipico di
perdite contenute dell’insieme filtro/linea di trasmissione, si può
considerare L=1.1, mentre T A =130 °K; con questi dati, la temperatura
equivalente di rumore e la densità di rumore che otteniamo sono pari a:
53
Giulio Mezzana – Roberto Dell’Ariccia
Teq 
130 K 0.1

290 K  75.1K  219.6 K  23.42 dB K
1.1
1.1
N 0  kTeq  205.2 dBW / Hz
(2.13)
(2.14)
Per capire se il segnale si pone al di sopra o al di sotto del rumore,
riportiamo i dati della tab. 2.5 da unità di potenza (dBW) a unità di densità
di potenza (dBW/Hz). Per far ciò, occorre ricordare che il massimo valore
della densità spettrale di potenza, per un segnale pseudonoise con uno
spettro continuo e proporzionale a sinc(f/fc)2, è pari a Ps/fc, con fc = 1.023
MHz (per il codice C/A). Perciò, se Ps = – 160 dBW, e calcolando che
10log10(1.023∙106) = – 60.1 dB, allora abbiamo che il massimo valore della
densità spettrale di potenza dello spettro del codice C/A è pari a:
Ps [ dBW / Hz ]  160  60.1  220.1 dBW / Hz
(2.15)
Comparando questo valore con il valore di densità di rumore trovato
prima, si vede come lo spettro del segnale C/A, anche considerato nel suo
valore di picco, si posiziona circa 14.9 dB al di sotto del valore di densità
spettrale di potenza del rumore. Il segnale P(Y), per quanto già visto in
precedenza, si troverà circa 13 dB al di sotto dei livelli del codice C/A,
ossia a – 27.9 dB dalla densità spettrale di rumore. Questo semplice
esempio mostra che un singolo segnale GPS non è normalmente visibile
facendo uso di un analizzatore di spettro, a meno che non si utilizzi
un’antenna ad elevato guadagno.
In conclusione, andiamo a riportare i dati finora ottenuti in termini di
rapporto fra la potenza della portante del segnale ricevuto e la densità
spettrale di potenza del rumore in ricezione, noto come rapporto Carrierto-Noise Density – C/N0. Il rapporto C/N0 che si ha in ricezione è uno dei
parametri principali per la determinazione delle performance del
ricevitore. Se la potenza del segnale C/A ricevuto su L1 è pari a C = – 160
dBW e, come visto, N 0 =– 205.2 dBW/Hz, allora il rapporto fra la potenza
della portante e la densità spettrale di rumore è pari a:
54
Giulio Mezzana – Roberto Dell’Ariccia
C
 160  205.2  45.2 dB  Hz
N0
(2.16)
Come detto, il valore di potenza ricevuto per il codice C/A varia
secondo l’angolo di elevazione, ed il valore preso come esempio di –160
dBW è un valore cautelativo che si ha nel caso peggiore (e che noi
considereremo come valore di ingresso per le nostre simulazioni): al
crescere dell’angolo di elevazione al di sopra dei 5 gradi, il livello del
segnale ricevuto cresce fino a C = –158 dBW, e conseguentemente il valore
di C/N0 si assesta a circa 47.2 dB-Hz, che può essere considerato un valore
tipico. Oltre a questo, bisogna considerare che nella realtà spesso il
sistema trasmissivo dei satelliti in orbita eccede i livelli di potenza
specificati, in quanto ci si aspetta che la potenza trasmessa dal satellite
degradi con il passare del tempo, fino ad arrivare, in condizioni di EOL (End
Of Life), a trasmettere la potenza specificata dagli Interface Control
Document. Per questo, i più recenti satelliti sono progettati in modo da
trasmettere un più alto livello di potenza rispetto alle specifiche di EOL,
fino ad un massimo di 6 dB. Considerando anche che, spesso,
l’attenuazione atmosferica subita dal segnale è più bassa di quella attesa,
ci si può aspettare che l’effettivo C/N0 risulti nei fatti fino a 7.3 dB più
grande di quello specificato, arrivando a valori di 52.5 dB-Hz per il segnale
C/A [2].
3.4. Struttura del segnale Galileo
Parameter
fX
PX
LX-Y
TC,X-Y
TS,X-Y
TD,X-Y
Explanation
Carrier Frequency [Hz]
RF-Signal Power [W]
Ranging Code Repetition Period [Chips]
Ranging Code-Chip-Length [Seconds]
Subcarrier-Period [Seconds]
Navigation Message Symbol Duration [Seconds]
RC,X-Y
= 1/ TC,X-Y; Code-Chip-Rate [Hz]
RS,X-Y
= 1/ TS,X-Y; Subcarrier-Frequency [Hz]
RD,X-Y
CX-Y(t)
DX-Y(t)
= 1/ TD,X-Y; Navigation Message Symbol Rate [Hz]
Binary (NRZ modulated) ranging code
Binary (NRZ modulated) navigation message signal
55
Giulio Mezzana – Roberto Dell’Ariccia
scX-Y(t)
Binary (NRZ modulated) subcarrier
Binary NRZ modulated navigation signal component including
code, sub-carrier (if available) and navigation message data (if
available);
(= CX-Y(t)∙scX-Y(t) ⋅DX-Y(t) );
Normalised Baseband Signal (= sX-I(t) +jsX-Q(t)) (Unit mean
power)
‘kth’ Chip of the Ranging Code
‘kth’ Symbol of the Navigation Message
eX-Y(t)
sX(t)
cX-Y,k
dX-Y,k
Tab. 3-6 Convenzioni simboliche
In questo paragrafo dettaglieremo la struttura del segnale utilizzato
nel sistema GALILEO. Allo stesso modo del GPS, anche GALILEO utilizza dei
codici di spreading per ottenere l’accesso multiplo nel dominio del codice
mediante la tecnica CDMA: tuttavia, a differenza di quello che accade nel
sistema americano, si utilizzano codici generalmente più lunghi (anche se si
tratta ancora di codici di Gold). La descrizione del segnale nei paragrafi
che seguono è tratta in massima parte da [11]. Qui e nel seguito,
utilizzeremo i simboli in accordo alla tabella a pagina precedente.
3.4.1. Modulazione e piano di frequenza
I satelliti del sistema Galileo trasmetteranno i segnali di navigazione
con caratteristiche di polarizzazione, frequenza portante e banda
trasmessa riassunte nella tabella 2.6.
Signal
Carrier–Frequency
Parameter
Carrier-Frequency
Polarisation
Transmitted
bandwidth
E5
E6
L1
fE5
fE6
fL1
1191.795 MHz
1278.750 MHz
1575.420 MHz
Right-hand circular
Right-hand circular
Right-hand circular
92.07 MHz
40.92 MHz
40.92 MHz
Tab. 3-7 Caratteristiche del segnale trasmesso
Per quel che riguarda la modulazione, nei paragrafi seguenti le
espressioni faranno riferimento all’inviluppo complesso normalizzato in
potenza s(t) (i.e. alla versione in banda base) di un segnale modulato in
banda passante S(t). Entrambi i segnali saranno descritti in termini delle
componenti in fase (I) ed in quadratura (Q), secondo le generiche
espressioni seguenti:
56
Giulio Mezzana – Roberto Dell’Ariccia

S X (t )  2 PX S X  I (t )  cos2f x t  S X Q (t )  sin( 2f x t )

S X (t )  S X  I (t )  jS X Q (t )
(2.17)
(2.18)
Prima di entrare più nel dettaglio delle specifiche di segnale,
conviene introdurre la particolare modulazione utilizzata (per la prima
volta) nei segnali di navigazione Galileo, che va sotto il nome di
modulazione BOC.
3.4.2. La modulazione BOC (Binary Offset Carrier)
Le tecniche di modulazione del segnale di navigazione sono state
ristrette, nel caso del GPS, alla tradizionale modulazione BPSK: per questa
tecnica, al diminuire di altre fonti di errori, risultano dominanti i contributi
del rumore e del multipath [12]. Tuttavia, limitazioni in larghezza di banda
precludono ulteriori miglioramenti che potrebbero essere ottenuti con
l’utilizzo della tecnica BPSK all’aumentare del rate di codifica. Inoltre,
aumentare la potenza trasmessa per migliorare l’accuratezza è una
soluzione costosa, ed ha un effetto limitato sulle performance contro il
multipath.
Al contrario, tecniche di modulazione specificatamente progettate per
la radionavigazione possono ottenere prestazioni più elevate delle
modulazioni esistenti, facendo uso della stessa larghezza di banda, o anche
meno, e permettendo una semplificazione sia nell’apparato trasmittente
che in quello ricevente. In aggiunta a ciò, modulazioni più avanzate
possono permettere una migliore condivisione delle frequenze attualmente
disponibili con i segnali già presenti, permettendo così di ovviare alle
problematiche di scarsità di spettro disponibile.
Per questi motivi, sono stati portati avanti molti studi su modulazioni
differenti dalla tradizionale BPSK, inizialmente spinti dalla necessità di
modernizzazione del sistema militare GPS, nell’ambito del quale l’obiettivo
era quello di introdurre un nuovo segnale militare (M signal) all’interno
delle bande di frequenza già utilizzate. Con questi obiettivi è stata dunque
sviluppata la modulazione Binary Offset Carrier (BOC), successivamente
57
Giulio Mezzana – Roberto Dell’Ariccia
adottata anche nel sistema europeo Galileo. Inizialmente sviluppata con il
principale scopo di garantire un buon grado di isolamento spettrale dai
segnali già esistenti modulati sulla stessa portante, si è poi constatato che
la modulazione BOC offre anche vantaggi prestazionali, soprattutto per
quel che riguarda la reiezione d’interferenza (principalmente dovuta al
multipath).
Andiamo ora a richiamare brevemente le caratteristiche essenziali
della modulazione BOC. L’idea fondamentale è quella di realizzare uno
schema di modulazione che permetta la separazione spettrale fra due o più
segnali che siano trasmessi sulla stessa frequenza portante: per far ciò,
occorre che tali segnali possano posizionare la maggior parte della potenza
al di fuori del centro banda, vicino ai limiti della banda. Il primo tentativo
in questo senso è rappresentato dalla modulazione di tipo Manchester;
successivamente, si è dimostrato che un approccio di tipo offset carrier,
che utilizza una sottoportante sinusoidale modulata da una forma d’onda
bipolare filtrata, mostrava un maggior grado d’isolamento spettrale. La
necessità di semplicità nell’implementazione ha infine portato ad una
modulazione binaria di tipo offset carrier (BOC), la quale utilizza una
sottoportante ad onda quadra, invece che sinusoidale come avviene nella
modulazione LOC (Linear Offset Carrier). La fig. 2.11 mostra uno schema a
blocchi che riassume la generazione di un segnale BOC.
58
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 3.11 Generazione di un segnale BOC
Perciò, la modulazione BOC(fs,fc) consiste nel modulare il segnale di
banda base s(t) tramite una sottoportante quadrata (onda quadra) di
frequenza fs, ottenendo il segnale:
s BOC (t )  s(t )  signsin 2f s t 
(2.19)
dove, nel caso in questione, s(t) è un segnale di tipo BPSK con un chip rate
pari a fc.
Quello che si ottiene è equivalente ad utilizzare una sequenza di
spreading i cui chips, sempre della stessa durata, anziché rettangolari,
hanno la forma di un’onda quadra troncata ad un numero di cicli pari al
rapporto fs/fc.
È molto importante capire quello che succede nel dominio della
frequenza, per comprendere in che modo i segnali BOC riescano
effettivamente a condividere la banda in maniera efficace. Senza perdita di
generalità, assumiamo che la sottoportante quadra abbia ampiezza
59
Giulio Mezzana – Roberto Dell’Ariccia
unitaria, e che nT(t) sia un impulso rettangolare ad energia unitaria,
descritto dalla (2.20):
1 / nT ,
 nT (t )  
 0,
0  t  nT
(2.20)
altrove
Si può dimostrare [12], come riportato nell’appendice C, che la
densità spettrale di potenza normalizzata (ad area unitaria) in banda base
di un segnale BOC è data da:
2
1  sin fT sin nfT 
G BOC  f s , f c   f  

nT  f cosfT  
  f   f
 sin 
 sin 
2
f
f
 fc   s   c

 f 

 f cos
2
f
 s

2

 
 ,



(2.21)
2 fs
 n pari
fc
Nel caso in cui n sia invece dispari, la (2.21) si modifica come segue:
2
1  sin fT cosnfT 
G BOC  f s , f c   f  

nT  f cosfT  
  f   f
 cos
 sin 
2 f s   f c


 fc

 f 

 f cos
 2 fs 

2

 
 ,



(2.22)
2 fs
 n dispari
fc
Benché le (2.21)-(2.22) rappresentino le espressioni complete e
corrette degli spettri di densità di potenza, risulta tuttavia difficile
comprendere bene quali siano le caratteristiche di siffatti spettri. Per una
valutazione qualitativa trascuriamo le armoniche di ordine superiore,
ottenendo la seguente densità spettrale di potenza del segnale modulato:
G BOC ( f )  G  f  f s  G  f  f s 
(2.23)
dove G(f) rappresenta la densità spettrale di potenza di s(t).
60
Giulio Mezzana – Roberto Dell’Ariccia
La (2.23) rende bene evidente la circostanza che la potenza del
segnale si concentra su lobi che sono spostati, rispetto alla portante, di una
quantità pari alla frequenza fs della sottoportante. Tale caratteristica è
ben evidente negli spettri della fig. 2.12, che rappresenta alcuni fra i
segnali BOC più rappresentativi. Dalla figura, si possono evincere delle
caratteristiche del tutto peculiari di questa particolare modulazione. In
primo luogo, si può notare come la somma dei lobi principali e dei lobi
laterali compresi fra i lobi principali, sia pari ad n, definito nelle (2.21)(2.22) come il doppio del rapporto fra la frequenza della sottoportante e il
rate del
codice.
Inoltre,
come accade in
una
modulazione PSK
convenzionale, i punti di zero-crossing di ogni lobo principale sono spaziati
di una quantità pari al doppio del rate del codice (individuando la larghezza
di banda del codice stesso). È importante sottolineare come il valore
massimo dei lobi principali si abbia in corrispondenza a frequenze
leggermente inferiori rispetto alla frequenza della sottoportante, a causa
della interazione coerente fra le banda inferiore e quella superiore [13].
61
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 3.12 Spettri di densità di potenza di vari segnali BOC
I segnali BOC con la frequenza della sottoportante più spaziata
rispetto al rate del codice, con un valore di n pari a 4 o più, garantiscono
un miglior allontanamento dell’energia del segnale dal centro banda, come
evidente dal confronto di fig. 2.12.
3.4.3. Proprietà di correlazione dei segnali Galileo
Nel
sottoparagrafo
precedente
abbiamo
visto
le
peculiari
caratteristiche in frequenza dei segnali BOC. Occupiamoci ora di studiare le
proprietà della funzione di autocorrelazione di questi segnali, in quanto
sono queste le proprietà che più ci interessano per i nostri scopi.
La funzione di autocorrelazione di un segnale modulato BOC presenta
la particolare caratteristica, rispetto a segnali modulati BPSK, di avere un
certo numero di picchi secondari, oltre a quello principale. Le ACF sono
presentate, per gli stessi segnali della figura 2.12, nella fig. 2.13, assieme
al proprio inviluppo.
62
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 3.13 ACF e loro inviluppi per vari segnali BOC a banda limitata
Si
può
apprezzare
autocorrelazione,
che
bene
la
rappresenta
multimodalità
sicuramente
delle
un
funzioni
tratto
di
molto
caratteristico di questi segnali, e che andrà preso in considerazione in fase
di acquisizione del segnale. Il numero di picchi positivi e negativi nelle ACF
è pari a 2n – 1, il numero dei soli picchi positivi è dato da n – 1, ed i picchi
sono separati da un ritardo T (vedi 2.20). Utilizzando la convenzione
secondo cui l è l’indice del picco normalizzato dell’ACF (con l = 0 ad
indicare il picco principale, l = 1 corrispondente all’indice del primo picco
secondario alla destra di quello principale, ecc..), allora il valore dell’l-mo
picco è pari a:
 1l n  l / n,
l  0,1, , n  1
(2.24)
Un cenno importante va fatto a proposito di questi picchi: infatti, a
differenza di quello che succede con la modulazione BPSK, la presenza di
63
Giulio Mezzana – Roberto Dell’Ariccia
più picchi può rendere ambigua l’acquisizione ed il tracking del segnale in
quanto, come vedremo, queste operazioni si basano sul riconoscimento non
ambiguo del picco di correlazione. Per capire meglio queste problematiche,
si consideri la fig. 2.14 che mette a confronto le ACF di segnali modulati
BPSK con quelle di segnali modulati BOC: la presenza di più picchi rende
difficile il riconoscimento del picco principale da quelli secondari,
soprattutto se consideriamo la presenza di rumore (che nella figura è stato
invece trascurato).
In conclusione, possiamo dire che l’andamento multimodale della
funzione di autocorrelazione dei segnali modulati BOC ne segna, per i nostri
scopi, il tratto più caratteristico e che più differenzia i segnali Galileo da
quelli GPS.
Fig. 3.14 Confronto fra le ACF di segnali BPSK e segnali BOC
3.4.4. Il segnale L1 di Galileo
Dopo aver illustrato le particolarità dei segnali BOC, siamo ora pronti
ad affrontare la descrizione del segnale trasmesso dai satelliti di Galileo
64
Giulio Mezzana – Roberto Dell’Ariccia
sulla banda L1. La generazione del segnale è conforme al seguente schema
[11]:
Fig. 3.15 Generazione del segnale L1 di Galileo
Come si vede, il segnale completo è costituito dalla multiplazione di
tre componenti che sono, rispettivamente:
 Il canale L1-A, cui corrisponde la componente di segnale
governativo (G/NAV), nell’ambito del già noto Public Regulated
Signals (segnale di navigazione L1P).
 Il canale L1-B, cui corrisponde il canale di trasporto dei dati
(I/NAV) (segnale di navigazione L1F). Tale segnale è modulato
dalla sottoportante e dal ranging code CL1-B (ossia dalla sequenza
di PRN).
 Il canale L1-C, noto come canale pilota (pilot channel), che è
modulato solamente dalla sottoportante quadrata e dal ranging
code CL1-C, ma che non trasporta dati.
Va sottolineato che il canale pilota è una peculiarità introdotta nel
sistema Galileo (non è previsto nel GPS), ed è quello su cui si effettuano le
misure delle caratteristiche del segnale ricevuto in fase di acquisizione: la
mancanza dei dati a modulare il canale rende di fatto tali misure più
accurate di quelle che si potrebbero eseguire sul canale di dati.
I segnali su B e C dovranno essere generati in accordo alle seguenti
formule:
65
Giulio Mezzana – Roberto Dell’Ariccia

e L1 B t    c L1 B  d L1 B  rectTc , L1 B t  iTc, L1 B  signsin 2R s , L1 B  t 
(2.25)
i  

e L1C t    c L1C  rectTc , L1C t  iTc , L1C  signsin 2Rs , L1C  t 
(2.26)
i  
I satelliti del sistema Galileo dovranno trasmettere i ranging codes per
il segnale L1 con i chip-rate ed i subcarrier-rate riportati nella seguente
tabella:
Channel (Parameter Y)
SubcarrierType
Subcarrier-Rate
RS,L1-Y [MHz]
Ranging Code Chip-Rate
RC,L1-Y [MChip/s]
A
BOCc
15.345
2.5575
B
BOC
1.023
1.023
C
BOC
1.023
1.023
Tab. 3-8 Caratteristiche del segnale trasmesso su L1
Come si vede, dunque, il canale governativo è modulato con una
BOCc(15,2.5) (dove BOCc sta per BOC-coseno, ossia una modulazione nella
quale l’onda quadra è calcolata come segno del coseno invece che del
seno), mentre sia il canale pilota che il canale di dati sono modulati con
una BOC(1,1). Lo stream di dati del messaggio di navigazione, a seguito
della codifica di canale, dovrà essere trasmesso, per le componenti di
segnale di L1, con i symbol-rate elencati nella seguente tabella:
Channel
(Parameter Y)
Symbol-Rate RD,L1-Y [symbols/s]
A
Encrypted
B
250
C
No data (pilot channel)
Tab. 3-9 Caratteristiche del messaggio di navigazione
Molto importante è poi sottolineare che il segnale su L1 dovrà essere
modulato in accordo alla modulazione CASM (Coherent Adaptive Sub-carrier
66
Giulio Mezzana – Roberto Dell’Ariccia
Modulation) che garantisce un inviluppo costante del segnale, e la cui
espressione formale è data dall’equazione seguente:
s L1 t  
1
2  e L1 B t  2  e L1C t  
3
 j 2  e L1 A t  e L1 A t  e L1 B t  e L1C t 


(2.27)
Nello schema di multiplazione CASM, la costanza dell’inviluppo
complesso è mantenuta sommando ai tre canali desiderati (A, B e C) un
segnale addizionale, dato dal prodotto di tutti i segnali binari eL1-X (l’ultimo
termine nella (2.27)). L’utilizzo della (2.27) conduce ad una costellazione
di simboli inviata che è rappresentata nella fig. 2.16, nella quale
compaiono anche i valori esatti delle componenti I e Q.
Fig. 3.16 Costellazione dei simboli nella multiplazione CASM
Lo schema a blocchi funzionale della tecnica CASM è presentato nella
figura 2.17, la quale riveste un’importanza fondamentale sia per il ruolo
esplicativo nei confronti della (2.27), sia perché rappresenta l’esatta
implementazione
della
multiplazione
CASM
che
sarà
realizzata
al
calcolatore.
67
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 3.17 Rappresentazione grafica della multiplazione CASM
3.4.5. I codici di spreading
Per chiudere la carrellata sul segnale trasmesso dai satelliti Galileo in
banda L, vediamo ora i codici di spreading utilizzati. Come per il GPS, i
codici di ranging sono codici di Gold lunghi un certo periodo che originano
da altri due codici (G1 e G2) secondo uno schema ben preciso. Innanzitutto,
andiamo a raccogliere in una tabella le lunghezze dei codici per tutti i
segnali previsti dal sistema:
Signal
Component
Code period (ms)
E5a-I
Code length (chips)
Primary
Secondary
20
10230
20
E5a-Q
100
10230
100
E5b-I
4
10230
4
E5b-Q
100
10230
100
E6-A
Classified data
E6-B
1
5115
–
E6-C
100
5115
100
L1-A
Classified Data
L1-B
4
4092
–
L1-C
100
4092
25
Tab. 3-10 Caratteristiche dei ranging codes
68
Giulio Mezzana – Roberto Dell’Ariccia
I codici utilizzati in Galileo sono della stessa famiglia di quelli che
abbiamo già descritto per il sistema GPS, dunque non ci attarderemo a
discuterne nel dettaglio. Va notato in ogni caso che sono previsti anche dei
codici secondari, che però non sono di Gold, ed avranno un chip rate ed
una lunghezza molto più piccole del primario. In generale, un chip del
codice secondario conterrà un’intera ripetizione del codice primario, così
come evidenziato nella figura 2.18.
Fig. 3.18 Relazione fra il codice primario e quello secondario
Come sappiamo dalla discussione precedente sul GPS, quello che ci
interessa per riprodurre correttamente i chip di codice sono le informazioni
riguardanti le prese e gli stati iniziali degli shift register. Le prese dei
registri, per i vari segnali, sono riportate in ottale nella tabella 2.11.
Tab. 3-11 Prese degli shift register per i vari segnali
L’inizializzazione degli stati dei registri viene effettuata in questo
modo: nel registro numero 1, per qualsiasi codice, la parola allocata nelle
celle di memoria è data da tutti 1, mentre nel registro numero 2 la parola
69
Giulio Mezzana – Roberto Dell’Ariccia
cambia a seconda del satellite. Per la generazione del codice primario
occorre riportare le notazioni in ottale delle prese e degli stati iniziali in
binario, e poi ribaltarle.
Il codice secondario, invece, è fissato e riportato, sempre in ottale,
nella tabella seguente:
Tab. 3-12 Parametri del codice secondario
Anche ora, occorre riportare il tutto in binario e se il numero di bit
ottenuto è inferiore alla lunghezza prevista per il codice si devono
aggiungere alla sinistra della sequenza il necessario numero di zeri.
3.4.6. Livelli di potenza del segnale Galileo a RF
Per chiudere la carrellata sui segnali trasmessi dai satelliti Galileo in
banda L, andiamo ora a considerare i livelli di potenza del segnale rispetto
al rumore.
Per quel che riguarda la minima potenza del segnale ricevuto con
un’antenna isotropica a 0 dBi, i valori sono riportati nella tabella 2.13. Tali
valori sono validi per angoli di elevazione fra 10 e 90 gradi [5].
Signals
Minimum Power (dBW)
L1F
-157
Tab. 3-13 Minimi livelli di potenza ricevuta su L1
I livelli di densità spettrale del rumore si assumeranno identici a quelli
già calcolati nel caso del GPS, in quanto le caratteristiche del sistema di
ricezione sono assunte essere le stesse. Dunque, con riferimento alle
70
Giulio Mezzana – Roberto Dell’Ariccia
(2.11)-(2.14), possiamo ritenere che il livello di densità spettrale di rumore
sia sempre pari a N0 = –205.2 dBW/Hz.
Per concludere, parallelamente a quanto fatto con il GPS, andiamo a
riportare i dati finora ottenuti in termini di rapporto fra la potenza della
portante del segnale ricevuto e la densità spettrale di potenza del rumore
in ricezione (rapporto C/N0). Se la potenza del segnale ricevuto su L1 è pari
a C = – 157 dBW e, come visto, N0 = – 205.2 dBW/Hz, allora il rapporto fra
la potenza della portante e la densità spettrale di rumore è pari a:
C
 157  205.2  48.2 dB  Hz
N0
(2.28)
Come detto, il valore di potenza ricevuto per il segnale varia secondo
l’angolo di elevazione, ed il valore preso come esempio di –157 dBW è un
valore cautelativo che si ha nel caso peggiore. Come si vede, il C/N0 che si
ottiene è superiore a quello che si ha con il GPS; tuttavia bisogna
considerare che la modulazione BOC utilizzata non è tale da disporre tutta
la potenza del segnale intorno alla portante. Tale potenza viene infatti
suddivisa nei due lobi spettrali che si pongono a cavallo della portante.
L’altezza dei due lobi dovrà quindi attendersi al disotto di quella del GPS,
per il quale la modulazione BPSK mantiene invece tutta la potenza
concentrata nell’unico lobo centrale.
71
Giulio Mezzana – Roberto Dell’Ariccia
4. CATENA RICEVENTE E SOFTWARE RECEIVER
4.1. Introduzione
In questo capitolo focalizzeremo la nostra attenzione sulla catena
ricevente di un generico ricevitore GNSS, con particolare riferimento ad un
approccio software del problema. Il presente lavoro, infatti, ha come scopo
fondamentale quello di mostrare le possibili implementazioni e le
performance ottenibili applicando il concetto di Software Receiver al caso
del sistema di navigazione Galileo, basandosi sui risultati e sulle
metodologie già introdotte per il GPS.
Introdurremo quindi i vantaggi e le problematiche inerenti alla
progettazione di un ricevitore software, con particolare riferimento alle
tematiche di nostro interesse che concernono i processi di correlazione
nell’ambito degli algoritmi di acquisizione del segnale. Si illustreranno le
innovative possibilità che è possibile sfruttare utilizzando un sistema di
navigazione software-based, viste in contrapposizione al più classico
approccio hardware-based. Non verranno d’altro canto ignorate le
problematiche che questo diverso approccio pone, che saranno illustrate da
un punto di vista puramente teorico in questo capitolo, per essere poi
riprese su un piano più concreto nel capitolo in cui saranno presentati i
risultati delle simulazioni.
Dopo questa introduzione, entreremo maggiormente nel dettaglio
dello schema ricevente di un sistema di navigazione satellitare. Nell’ambito
di questa breve dissertazione, l’intera catena ricevente verrà analizzata nel
dettaglio, a partire dall’antenna fino ad arrivare alla descrizione del canale
di ricezione ed alla parte di signal processing, dettagliando tutte le
particolarità che saranno poi riprese nella concreta implementazione al
calcolatore del sistema complessivo.
72
Giulio Mezzana – Roberto Dell’Ariccia
4.2. Struttura di un ricevitore GNSS e Software Receiver
La struttura di base del Software Receiver GNSS che sarà presa a
riferimento qui e nel seguito, è mostrata nella fig. 3.1.
ANTENNA
RF
IF
FILTRI DI PRESELEZIONE
A RF
POSIZIONE
VELOCITA’
TEMPO
NAVIGATION
PROCESSING
DOWNCONVERSION
ADC
SIGNAL PROCESSING
Fig. 4.1 Struttura del ricevitore software
Per gli scopi del nostro lavoro, conviene esplorare più nel dettaglio la
struttura dei blocchi di Signal Processing e di Navigation Processing, il cui
contenuto è mostrato nella fig. 3.2.
ACQUISIZIONE
POSIZIONE
DELL’UTENTE
TRACKING
POSIZIONE DEL SV
IDENTIFICAZIONE
DELLA SOTTOTRAMA
EFFEMERIDI
&
PSEUDORANGE
Figura 4.2 Signal e Navigation Processing
I segnali trasmessi dai satelliti GPS o Galileo sono ricevuti
dall’antenna e vengono poi posti in ingresso allo stadio a radio frequenza
73
Giulio Mezzana – Roberto Dell’Ariccia
(RF) del ricevitore, che ha il compito di filtrarli (per eliminare il rumore
fuori banda) e di amplificarli fino al livello desiderato; inoltre la frequenza
propria del segnale viene convertita (stadio di Down-Conversion) ad una
frequenza intermedia (IF) precedentemente scelta. Di seguito si utilizza un
convertitore analogico-digitale (ADC) per la digitalizzazione del segnale:
questo significa che, in questo schema, gli unici componenti hardware del
sistema sono l’antenna, i filtri a RF e l’ADC. Il processo di acquisizione
ricerca nello spazio bidimensionale di fase del codice e frequenza Doppler
la presenza del segnale di un particolare SV, mentre il blocco di tracking è
utilizzato per determinare le transizioni di fase provocate dai bit del
messaggio di navigazione (vedi cap. 1) di quello specifico SV. I dati delle
effemeridi e gli pseudoranges sono ricavati dai dati di navigazione; infine la
posizione dell’utente può essere calcolata con la linearizzazione fornita
nell’appendice A.
Il punto cruciale è che il fondamento del concetto di Software
Receiver, mostrato nella fig. 3.1, risiede nella possibilità di realizzare via
software le fasi di acquisizione e inseguimento, che in un convenzionale
ricevitore vengono invece effettuate facendo uso di hardware dedicato
(p.es. tramite l’uso di correlatori hardware posti su una FPGA) per via del
fatto che, per quest’ultimo, il passaggio al software avviene solamente
dopo la fase di tracking e di acquisizione. Obiettivo del presente lavoro è
dunque quello di sviluppare degli algoritmi di acquisizione che permettano
un processamento software del segnale GPS/Galileo, in modo che la parte
di Signal Processing e Navigation Processing possa essere effettuata
interamente facendo uso di un microprocessore general-purpose (cioè
disponibile su di un normale PC, senza far uso di risorse dedicate).
Il concetto di software receiver è espresso nella fig. 3.3 a pagina
seguente [9]. A commento della figura, bisogna tener presente che, mentre
in un ricevitore GNSS hardware-based convenzionale il penultimo blocco è
realizzato su un chip, togliendo perciò di fatto all’utente la possibilità di un
libero accesso agli algoritmi implementati nell’hardware, in un software
receiver invece i blocchi dopo l’ADC sono completamente realizzati
74
Giulio Mezzana – Roberto Dell’Ariccia
utilizzando linguaggi di programmazione ad alto livello, e quindi l’utente ha
un più elevato controllo sugli algoritmi stessi.
Fig. 4.3 Schema di un Software Receiver
4.2.1. Vantaggi dell’approccio software
Vediamo ora quali sono i vantaggi nell’utilizzo di un ricevitore
software rispetto all’uso dei più convenzionali ricevitori hardware-based.
Il principale vantaggio è che un ricevitore GNSS software possiede una
maggiore flessibilità, dovuta all’indipendenza dal particolare hardware a
disposizione: da questo punto di vista si hanno dunque diversi vantaggi
implementando un ricevitore completamente su base software. Le uniche
parti hardware rimangono l’antenna (che non potrà in ogni caso essere
sostituita da una controparte software) e il sistema di Front-End, in quanto
le capacità delle attuali CPU non sono ancora in grado di processare,
completamente via software e in real-time, i segnali di navigazione
provenienti direttamente dall’antenna (a causa delle alte frequenze di
campionamento richieste, problema tanto più sentito sul sistema Galileo).
Altri aspetti vanno evidenziati nell’implementazione che stiamo
presentando: per prima cosa, un ricevitore software rimuove le nonlinearità
dipendenti
dalla
temperatura
dei
componenti
elettronici
dell’hardware.
In secondo
flessibilità
di
luogo, un approccio
valutazione
e
di
software permette maggiore
test,
caratteristica
che
risulta
particolarmente utile nella progettazione di un sistema complesso quale
l’apparato ricevente. Molti sistemi possono acquisire dati complessi su
75
Giulio Mezzana – Roberto Dell’Ariccia
entrambi i canali in fase (I) ed in quadratura (Q), mentre altri utilizzano
dati reali provenienti da un unico canale [8]: qui e nel seguito faremo
riferimento ad acquisizioni di dati complessi sui due canali I e Q. Va però
esplicitamente notato che, i dati in uscita da questi due differenti schemi
di Front-End possono essere processati dallo stesso software receiver:
infatti, sia dati reali che complessi possono essere generati dal ricevitore
apportando delle piccole modifiche al programma che implementa
l’acquisizione. Inoltre un ricevitore software può anche adattarsi a dati
digitalizzati con differenti frequenze di campionamento senza dover
apportare modifiche all’hardware, ma solamente aggiornando il software:
in questo modo è possibile confrontare fra loro le performance di algoritmi
diversi senza alcuno stadio di sviluppo software.
In terzo luogo, l’approccio software fornisce un efficace ambiente di
simulazione: nuovi algoritmi possono essere sviluppati, mirati a risolvere
particolari problemi (come per es. l’eventuale presenza di jamming o
disturbi di altra natura) ed implementati nel ricevitore senza dover
aggiungere o modificare componenti HW. È semplice dunque realizzare
prototipi di segnali teorici e non ancora effettivamente presenti in aria
(come i segnali Galileo) e testare le tecniche di processamento per i nuovi
segnali senza nessuno sviluppo hardware.
In ultimo luogo, la scelta di implementare algoritmi software consente
di facilitare l’aggiornamento delle caratteristiche di ricezione del sistema,
in funzione dell’evoluzione dei segnali di navigazione. La possibilità di
eseguire aggiornamenti “on the fly” consente all’utente di poter aggiornare
facilmente
e
in
tempi
rapidi
il
proprio
software
semplicemente
scaricandone una nuova versione.
4.3. La catena ricevente
Descriveremo ora nel dettaglio gli stadi della catena ricevente che
saranno implementati nelle simulazioni dei successivi capitoli. Visti gli
scopi del nostro lavoro, la descrizione comprenderà principalmente i primi
stadi del sistema: in particolare, con riferimento alle figg. 3.1 e 3.2,
76
Giulio Mezzana – Roberto Dell’Ariccia
considereremo una rapida carrellata dei blocchi evidenziati, soffermandoci
alla fine anche sugli schemi di acquisizione, che saranno in ogni caso ripresi
nel successivo capitolo 4.
4.3.1. L’antenna
Un’antenna GPS/Galileo è progettata e realizzata per la ricezione dei
segnali di navigazione: questo significa che le specifiche sono determinate
dall’uso che se ne fa nell’ambito del sistema. In particolare, i requisiti sono
definiti dai seguenti parametri:
 Guadagno vs. elevazione: l’antenna dovrebbe presentare un alto
guadagno per angoli superiori ad uno specificato angolo di
elevazione. In questo modo, i segnali provenienti dai SV saranno
amplificati rispetto a segnali generati da sorgenti con più bassi
angoli di elevazione.
 Reiezione dell’interferenza: l’antenna dovrebbe, in qualche
misura,
respingere
(o
quanto
meno
ridurre)
i
segnali
interferenti, che potrebbero originarsi per es. da un mix di
segnali radio di trasmettitori localizzati nelle vicinanze.
L’antenna dovrebbe in ogni caso respingere segnali in bande di
frequenza differenti.
 Reiezione del multipath: l’antenna dovrebbe ridurre quasi del
tutto i segnali di multipath, in quanto questi segnali sono molto
difficili da rimuovere negli stadi successivi del ricevitore. La
caratteristica di riduzione del multipath va di pari passo con la
proprietà di guadagno vs. elevazione, in quanto i segnali di
multipath arrivano generalmente dalle riflessioni di terra
provenienti da sotto l’antenna, e quindi da bassi angoli di
elevazione.
4.3.2. Il blocco RF Front End
Lo stadio di Front End rappresenta il blocco della catena che si occupa
di agire sul segnale analogico, operando un processamento volto a
preparare il segnale analogico alle successive operazioni di campionamento
nel convertitore analogico-digitale. In particolare, un generico blocco di
77
Giulio Mezzana – Roberto Dell’Ariccia
Front End contiene tipicamente due funzionalità di base: il signal
conditioning e la down-conversion, come mostrato in fig. 3.4.
Fig. 4.4 Struttura del blocco di Front End
Signal Conditioning
Lo scopo principale del filtraggio a RF è quello di operare una preselezione sul segnale in ingresso, al fine di rimuovere le componenti di
interferenza: questo obiettivo viene raggiunto utilizzando un filtraggio
passabanda sul segnale in ingresso (il filtro utilizzato viene quindi di solito
indicato come filtro di preselezione). Inoltre, un altro scopo del blocco di
Signal Conditioning è quello di operare un’amplificazione del segnale in
arrivo (questo aspetto, tuttavia non verrà preso in considerazione nelle
simulazioni).
Down-conversion
Questo blocco si occupa di traslare il segnale a RF su una portante più bassa
rispetto a quella originaria: nel caso del segnale L1 (sia di Galileo che del
GPS) il segnale ricevuto è traslato da una RF di 1575.42 MHz ad una
frequenza intermedia (IF), che generalmente si aggira sulla decina di MHz.
La traslazione è ottenuta facendo uso di un mixer, ossia di un sistema non
lineare che opera il battimento del segnale in ingresso con una sinusoide ad
una frequenza fissata che funge da riferimento (Local Oscillator, LO), in
modo da variare la portante del segnale in ingresso di una quantità che
dipende dalla frequenza scelta per l’oscillatore. Il LO deve essere molto
stabile ed accurato, in modo che la nuova IF sia ben definita. La funzione
del mixer può essere calcolata come segue [7]:
s out (t )  sin (t )  s LO (t )
(3.1)
78
Giulio Mezzana – Roberto Dell’Ariccia
La (3.1) può essere riscritta nel dominio della frequenza secondo la
(3.2):
S out ( f )  S in ( f ) * S LO ( f )
(3.2)
dove con S(f) si è intesa la trasformata di Fourier di s(t). La (3.2) è
l’applicazione pratica della ben nota proprietà della trasformata di Fourier
secondo la quale una moltiplicazione in tempo diventa una convoluzione in
frequenza. La fig. 3.5 a pagina seguente schematizza il principio alla base
dell’operazione di Down-conversion effettuata dal mixer.
Nella fig. 3.5(a) è mostrata la trasformata di Fourier del segnale LO
(che sappiamo essere un impulso di Dirac), in (b) è invece mostrata la
trasformata del segnale di ingresso a RF. In (c) si vede il risultato del
mixing fra il segnale LO e il segnale a RF: si può notare che è stata
applicata la (3.2) e che il segnale in uscita corrisponde alla convoluzione in
frequenza del segnale (a) con il segnale (b). La frequenza del riferimento
locale viene scelta secondo la seguente formula:
f LO  f RF  f IF
(3.3)
Come si può vedere, però, l’uscita del mixer non può essere presa
direttamente come segnale a IF, in quanto sono presenti delle armoniche
spurie a frequenze particolari e ben precise. In particolare, l’operazione di
mixing da luogo a quattro componenti di segnale, collocate alle frequenze
[–fRF – fLO, –fRF + fLO, fRF – fLO, fRF + fLO]; poiché sono richieste solo le
componenti a più bassa frequenza, all’uscita del mixer dovrà essere posto
un opportuno filtro passa-basso per rimuovere le due componenti di segnale
ad alta frequenza.
La fig. 3.5 (d) evidenzia proprio il segnale risultante a IF dopo la
Down-conversion e il filtraggio passa-basso. La fig. 3.5 nel suo complesso
evidenzia l’idea teorica che sta alla base della Down-conversion, ed anche
la necessità di utilizzare un filtraggio per rimuovere le alte frequenze
indesiderate.
79
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 4.5 Principio di funzionamento della conversione da RF a IF
4.3.3. Il convertitore Analogico-Digitale (ADC)
Il sistema per la conversione dal dominio analogico a quello digitale è
responsabile del campionamento del segnale analogico a media frequenza.
Per evitare distorsioni dovute ad aliasing spettrale, il campionamento del
segnale su portante IF dovrà avvenire rispettando le condizioni del ben noto
e fondamentale teorema di Nyquist, il quale stabilisce che, per ricostruire
correttamente un segnale analogico a partire dai suoi campioni (segale
digitale), il rate di campionamento dovrà essere almeno pari al doppio del
massimo contenuto in frequenza del segnale stesso. Questo significa che,
per soddisfare il teorema di Nyquist, il rate di campionamento fs dovrà
rispettare la seguente condizione:
80
Giulio Mezzana – Roberto Dell’Ariccia
f s  2  f MAX
(3.4)
nella quale fMAX rappresenta appunto il massimo contenuto spettrale del
segnale da campionare. In realtà, la (3.4) rappresenta l’estensione del
teorema di Nyquist, originariamente pensato per segnali in banda base, a
segnali modulati su portante.
È di fondamentale importanza capire il significato del teorema del
campionamento: per un maggiore approfondimento, consideriamo quello
che accade se il criterio (3.4) non viene rispettato.
Fig. 4.6 Aliasing in frequenza
La figura 3.6 mostra il piano di frequenze di un sistema campionato ad
un sampling rate pari a fs. Si vede che, per tutti i segnali in ingresso con
frequenza minore di fs/2 (come per esempio la sinusoide a frequenza f0) il
criterio di Nyquist è completamente soddisfatto: infatti, un qualsiasi
numero di segnali può essere presente nella regione ombreggiata e
ciascuno di questi sarà rappresentato correttamente dai propri campioni.
Ma se si considera la presenza di un segnale a frequenza superiore ad fs/2,
per es. a frequenza fa, il processo di campionamento genererà una replica
(alias) del segnale che apparirà nei dati campionati in corrispondenza della
frequenza fs – fa. Va rilevato che questa immagine non può essere distinta
da un segnale che sia realmente presente a quelle stesse frequenze e che
sia invece correttamente campionato: il punto è che, una volta che
l’aliasing è stato introdotto dal processo di campionamento, nessun tipo di
elaborazione successiva potrà permettere di distinguere fra un segnale
reale ed uno creato da aliasing spettrale. Perciò, l’imperativo deve essere
81
Giulio Mezzana – Roberto Dell’Ariccia
quello di prevenire l’aliasing prima che si verifichi, scegliendo i rate di
campionamento secondo la (3.4).
In particolare, se applichiamo queste considerazioni per es. al sistema
GPS, allora, considerando che il codice C/A ha una larghezza di banda
complessiva di f = 2.046 MHz, si vede che il massimo contenuto spettrale
di un segnale posto ad una IF arbitraria è pari a:
1
f MAX  f IF  f  f IF  1 MHz
2
(3.5)
La (3.5) dovrà essere tenuta in conto, insieme con un’analoga formula
per il sistema Galileo, al momento dell’implementazione al calcolatore del
sistema di ricezione.
4.4. Canali di ricezione
Nel sistema ricevente di un sistema GNSS quali GPS e Galileo, il signal
processing ha luogo generalmente facendo uso di differenti canali di
ricezione. Ogni satellite visibile all’antenna è allocato su un certo canale,
limitatamente al massimo numero di canali disponibili nel particolare
ricevitore (generalmente tale numero arriva al massimo a 10-12 canali HW).
Nei classici ricevitori hardware-based tali canali sono realizzati in HW,
facendo uso di componenti dedicati; nell’ambito del nostro progetto di un
ricevitore software, invece, tali canali sono da intendersi implementati
mediante un opportuno linguaggio di programmazione. La fig. 3.7 mostra i
blocchi che costituiscono un generico canale di ricezione.
Fig. 4.7 Overwiev del canale di ricezione
82
Giulio Mezzana – Roberto Dell’Ariccia
A livello logico, il blocco di acquisizione fornisce una prima stima (non
particolarmente accurata) dei parametri del segnale in arrivo: questa
stima, di interesse per la determinazione della posizione dell’utente, è
raffinata dai due blocchi di inseguimento (o di tracking). Dopo la fase di
tracking del segnale, è possibile estrarre i dati del messaggio di navigazione
e calcolare gli pseudoranges per la localizzazione dell’utente.
Prima di assegnare un canale ad un determinato SV, il ricevitore deve
sapere quali sono i SV attualmente in vista: a questo scopo si utilizzano
generalmente due metodi. Il primo va sotto il nome di warm start
(“partenza a caldo”), mentre il secondo è noto come cold start (“partenza
a freddo”).
Nella warm start, il ricevitore combina l’ultima posizione calcolata
con le informazioni memorizzate negli almanacchi: questi ultimi sono
utilizzati per un calcolo della posizione approssimativa dei satelliti
nell’istante attuale (basato sulla conoscenza delle orbite dei SV stessi).
Queste stime di posizione sono dunque combinate con l’ultima posizione
nota del ricevitore in un algoritmo per la determinazione dei SV che
dovrebbero essere visibili in quel momento. La modalità di warm start
presenta due principali problemi: in primo luogo, se il ricevitore è stato
spostato molto lontano rispetto al punto in cui era stato spento (e.g. in un
altro continente), l’ultima posizione del ricevitore calcolata non può essere
chiaramente attendibile e i SV determinati non coincideranno con quelli
realmente in visibilità. In secondo luogo, può accadere che i dati
dell’almanacco riguardanti i parametri orbitali non siano aggiornati, e che
quindi non forniscano le giuste posizioni dei satelliti. In entrambi i casi, il
ricevitore deve necessariamente procedere ad una partenza a freddo.
Nella cold start, il ricevitore non fa uso di nessuna informazione
memorizzata in precedenza; al contrario, comincia dall’inizio la ricerca dei
SV in visibilità. Il metodo di ricerca va sotto il nome di acquisizione, e la
descrizione e l’implementazione degli algoritmi per la sua realizzazione via
software sono l’obiettivo di questa tesi.
83
Giulio Mezzana – Roberto Dell’Ariccia
Va precisato che un’acquisizione che svolge la sua ricerca su tutti i
possibili SV è un’operazione che può richiedere molto tempo: per questo,
quando possibile, è preferibile procedere ad una warm start.
4.4.1. Acquisizione
Lo scopo della fase di acquisizione, è prima di tutto, quello di capire
se un determinato satellite sia visibile all’utente oppure no. Nel caso in cui
si determini che il satellite sia effettivamente in visibilità, l’algoritmo di
acquisizione deve determinare le due seguenti proprietà del segnale
ricevuto:
 Frequenza: la frequenza di un segnale proveniente da uno
specifico satellite può differire dal suo valore nominale che, nel
caso in cui si operi una Down-conversion, coincide con la media
frequenza scelta. Lo spostamento della frequenza è dovuto
all’effetto Doppler, generato dal moto relativo fra SV e
ricevitore. In particolare, l’effetto Doppler dipende dalla
velocità con cui avviene l’avvicinamento (o l’allontanamento)
del ricevitore dal particolare satellite: lo spostamento in
frequenza può arrivare, nel caso di massima velocità del
satellite combinata con una velocità molto alta dell’utente, a
valori massimi di 10 KHz [8]. I calcoli che portano a questi valori
per lo shift Doppler sono riportati nell’appendice B, nella quale
si evidenzia anche che, per ricevitori stazionari, lo spostamento
non supera i 5 KHz.
 Fase del codice: la fase del codice denota il punto in cui
comincia, nel blocco di dati che si sta elaborando, il codice di
spreading del particolare segnale ricevuto (vedi § 1.3.1). Se per
esempio, facendo riferimento al segnale GPS, viene esaminato
un blocco di dati di 1 ms, i dati raccolti includono un’intera
ripetizione del codice C/A (vista la periodicità di 1 ms di tale
codice) e quindi anche il punto di inizio del codice stesso.
La determinazione della fase del codice è realizzata facendo uso di
differenti metodi: tuttavia, tutti questi algoritmi sono basati, in un modo o
84
Giulio Mezzana – Roberto Dell’Ariccia
nell’atro, sulle peculiari proprietà dei particolari codici di spreading
utilizzati. In particolare, sono molto importanti le proprietà di correlazione
mutua e incrociata delle sequenze, proprietà che abbiamo già visto nel
precedente capitolo.
Per comprendere meglio le modalità di acquisizione, ricordiamo che,
come visto nel cap. 1, sia il GPS che Galileo sono sistemi basati sulla
tecnica di accesso multiplo CDMA; in base a questo, possiamo esprimere
matematicamente il segnale s(t) ricevuto dal generico utente come
combinazione dei segnali provenienti da tutti ed n i satelliti in visibilità:
s (t ) s1 (t )  s 2 (t )    s k (t )    s n (t )
(3.6)
Durante l’acquisizione del generico satellite k-mo, il segnale s(t) in
ingresso è correlato con una copia generata localmente del codice C/A
associato al satellite; la scelta di sequenze di spreading con opportune
proprietà di cross-correlazione è fondamentale per far si che il processo di
correlazione implichi la quasi totale rimozione, dal segnale in ingresso, dei
segnali propri dei satelliti diversi dal k-mo. Per evitare di rimuovere anche
il segnale desiderato sk(t), occorre che la copia generata sia perfettamente
allineata temporalmente a quella in arrivo, cioè che la fase del codice sia
opportunamente determinata mediante una ricerca su questo dominio. A
tal proposito, la fase di acquisizione ha il compito di ottenere solamente
una indicazione grossolana
della reale
fase del
codice, per cui
generalmente la ricerca procede a passi di un chip di codice o più.
Dopo la moltiplicazione con la copia del codice, il segnale è posto in
ingresso ad un mixer grazie al quale avviene il battimento con un’onda
sinusoidale generata localmente e centrata su un’opportuna frequenza.
Come abbiamo già visto in precedenza, questa operazione varia la
frequenza centrale dello spettro, e si rende necessaria per rimuovere la
portante del segnale in ingresso. Naturalmente non va dimenticato che, per
quanto visto in precedenza, s(t) è affetto da una frequenza Doppler,
dunque la rimozione della portante dal segnale implica che la frequenza
del tono sinusoidale generato localmente debba essere variata nell’intorno
della media frequenza scelta per quel particolare ricevitore. Come
85
Giulio Mezzana – Roberto Dell’Ariccia
dimostrato nell’appendice B, lo shift Doppler è compreso, per ricevitori non
stazionari, in un range massimo di ±10 KHz dalla frequenza nominale (vedi
app. B); questo implica che differenti celle in frequenza andranno indagate
per determinare la reale entità dello spostamento. Per determinare se un
satellite sia effettivamente in visibilità, si considera sufficiente estendere
la ricerca su celle di frequenza di ampiezza pari a 1 KHz, ottenendo così
algoritmi che scandiscono il dominio della frequenza su 21 possibili celle
[8].
Infine, dopo aver dunque rimosso anche la frequenza portante, tutte
le componenti del segnale risultante in uscita vengono elevate al quadrato
e sommate, dando luogo ad un determinato valore numerico in uscita: tale
valore andrà di seguito confrontato con una soglia di acquisizione, per
determinare (con una fissata probabilità) la presenza o meno del segnale in
ambienti rumorosi.
Abbiamo visto quindi che la procedura di acquisizione si configura
principalmente come una modalità di ricerca bidimensionale nel dominio
della fase del codice e della frequenza Doppler: per le diverse celle in
frequenza, tutte le possibili fasi del codice sono scandite. Quando tutte le
possibilità per la fase e la frequenza sono state provate, viene eseguita una
ricerca per la determinazione del massimo della funzione bidimensionale
così ottenuta; se tale valore massimo eccede una predeterminata soglia di
acquisizione, si considera acquisito il satellite, con i corrispondenti shift in
frequenza e fase.
Per meglio chiarire i concetti ora esposti, la fig. 3.8 mostra un tipico
andamento della funzione bidimensionale di acquisizione, ottenuta nel caso
di un satellite in visibilità: il grafico mostra chiaramente un ampio picco di
correlazione.
86
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 4.8 Funzione bidimensionale di acquisizione nel caso di presenza del SV
La fig. 3.9 mostra, invece, la funzione di correlazione nel caso in cui
l’acquisizione sia eseguita per un satellite che non è visibile al ricevitore. Si
noti che in questo caso i valori sono tutti simili senza che si abbia nessun
picco, ad indicare bassi valori di correlazione e quindi l’assenza dello
specifico satellite dal piano dei SV in visibilità.
87
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 4.9 Funzione bidimensionale di acquisizione nel caso di assenza del SV
4.4.2. Tracking Loops
Dopo la fase di acquisizione, il segnale transita attraverso i blocchi di
inseguimento (o di tracking). Lo scopo principale della fase di tracking è
quello di raffinare i valori grossolani di offset Doppler e di fase del codice
forniti dall’acquisizione e di inseguirli, al variare delle proprietà del
segnale ricevuto nel tempo. Proprio per la necessità di inseguire questi
valori, e quindi di aggiornarne costantemente la stima nel tempo,
l’inseguimento è realizzato attraverso degli anelli o loops (tracking loops).
È importante raffinare i dati in uscita dai blocchi di acquisizione, in quanto
l’accuratezza del valore finale della fase del codice è connessa alla
precisione
nel
calcolo
dello
pseudorange e quindi,
in definitiva,
all’accuratezza ottenibile nella stima di posizione dell’utente.
Come si vede nello schema di fig. 3.7, l’inseguimento è suddiviso in
due parti: inseguimento del codice (code tracking) e inseguimento della
frequenza/fase della portante (carrier frequency/phase tracking). Vediamo
brevemente entrambi:
88
Giulio Mezzana – Roberto Dell’Ariccia
 Code Tracking: l’inseguimento del codice è generalmente
realizzato attraverso l’uso di un anello noto come DLL (Delay
Lock Loop), nel quale vengono generate tre repliche locali del
codice che vengono poi correlate con il segnale in ingresso.
Queste tre repliche sono note come Early, Prompt e Late (EPL)
rispettivamente, e sono generalmente ritardate l’una dall’altra
di mezzo chip.
 Carrier
Frequency/Phase
Tracking:
l’altra
parte
dell’inseguimento è quello che ha luogo sulla portante del
segnale, che può essere realizzato in due modi. È infatti
possibile inseguire la fase della portante (attraverso il PLL –
Phase Lock Loop) o la frequenza (con l’uso dell’FLL – Frequency
Lock Loop).
I tracking loops inseguono continuamente la frequenza e la fase del
codice, che variano al trascorrere del tempo. Se il ricevitore perde
l’aggancio su uno dei satelliti, vale a dire se gli anelli perdono la voluta
accuratezza sull’informazione di fase e di frequenza, si dovrà procedere ad
una nuova acquisizione del segnale di quel particolare satellite.
Gli schemi più utilizzati sono: per il code tracking uno schema tipo
Early-Prompt-Late (EPL, la ricerca del picco è effettuata tramite il calcolo
della derivata numerica a partire dalle tre taps); per il carrier tracking
invece si utilizza generalmente l’anello di Costa. La figura 3.10 mostra lo
schema a blocchi di questi sistemi, così come appaiono generalmente in un
convenzionale ricevitore. Tuttavia, poiché tali schemi non saranno
implementati, non ci soffermeremo ulteriormente sulla loro descrizione.
89
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 4.10 Loops di tracking: EPL e anello di Costa
4.4.3. Estrazione dei dati di navigazione e calcolo degli
pseudoranges
Nella situazione in cui i segnali siano opportunamente inseguiti, è
possibile rimuovere i codici di spreading e la frequenza portante dal
segnale ricevuto, lasciando solamente i bit di dati del messaggio di
navigazione. Nel caso del GPS, il valore di un bit di dati è ottenuto
integrando il segnale su un periodo di 20 ms; dopo aver raccolto dati per
circa 30 s, è possibile trovare l’inizio di una sottotrama, al fine di
determinare l’istante di tempo in cui i dati sono stati originariamente
trasmessi dal satellite. Una volta stimato il tempo di trasmissione, occorre
decodificare i dati delle effemeridi per quello specifico satellite: queste
informazioni sono poi utilizzate per calcolare la posizione del satellite al
tempo di trasmissione.
90
Giulio Mezzana – Roberto Dell’Ariccia
L’ultima cosa da fare prima di procedere al calcolo della soluzione
navigazionale, è naturalmente il calcolo degli pseudoranges da almeno
quattro satelliti in visibilità. Questi ultimi sono calcolati facendo uso del
tempo stimato di trasmissione dal satellite e del tempo di arrivo del
segnale al ricevitore, calcolato sulla base dell’inizio della sottotrama.
4.4.4. Determinazione della posizione
L’ultimo (ma principale) compito del ricevitore è infine quello di
determinare la posizione dell’utente che usufruisce del servizio di
radiolocalizzazione satellitare. La posizione è calcolata a partire dagli
pseudoranges e dalla posizione del SV trovata a partire dalle effemeridi,
seguendo l’algoritmo di risoluzione proposto nell’appendice A. La fig. 3.11
rende l’idea del metodo di calcolo della posizione dell’utente facendo uso
di segnali radio satellitari, secondo l’idea di base già ampiamente descritta
nel § 1.2.
Non tratteremo
ulteriormente le problematiche connesse alla
determinazione del segnale di navigazione e della posizione dell’utente, in
quanto non risultano inerenti al presente lavoro. Nei prossimi paragrafi ci
soffermeremo invece su uno studio più dettagliato dei possibili algoritmi di
acquisizione utilizzabili nei sistemi reali, algoritmi che verranno poi
concretamente implementati nelle simulazioni.
91
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 4.11 Determinazione della soluzione navigazionale
92
Giulio Mezzana – Roberto Dell’Ariccia
5. SIMULAZIONE DEI SEGNALI GNSS A FREQUENZA
INTERMEDIA
5.1. Introduzione
In questo capitolo saranno descritti i tools di simulazione che sono
stati utilizzati per lo sviluppo e il test degli algoritmi oggetto della tesi.
Dopo la prima fase di studio degli algoritmi e delle possibili architetture dei
ricevitori software per sistemi di navigazione, si rendeva necessario un
opportuno tool di simulazione dei segnali di navigazione. Poiché si
disponeva già di simulatori di segnali a radiofrequenza GPS e Galileo sulla
portante L1 realizzati in Simulink, è stato deciso di andare a modificare i
suddetti simulatori in maniera tale che fossero più adatti allo sviluppo e al
test del ricevitore software.
Per quanto riguarda Galileo, verrà simulato il segnale trasmesso da
GIOVE-A, nell’ottica di poter confrontare poi i risultati ottenuti con i dati
simulati con quelli ottenuti con i dati reali.
5.2. Simulazione del segnale di navigazione: requisiti
fondamentali
L’obiettivo fondamentale era quello di ottenere simulatori di segnali
campionati GPS e Galileo a frequenza intermedia (poiché attualmente sono
questi di solito i dati di input di un ricevitore software allo stato dell’arte
attuale) il più possibile fedeli alle modulazioni e multiplazioni descritte nei
rispettivi Signal In Space Interface Control Document, riassunti nel capitolo
2.
Inoltre, per essere flessibile nell’ottica di un utilizzo futuro con dati
reali, i simulatori devono possedere i seguenti parametri settabili a livello
globale:
 Frequenza intermedia: deve essere possibile impostare come
input il valore della media frequenza. L’IF sarà dunque la
93
Giulio Mezzana – Roberto Dell’Ariccia
frequenza di riferimento rispetto alla quale confrontare
l’offset sul segnale satellitare introdotto dall’effetto Doppler.
 Frequenza di campionamento: deve essere possibile passare
al sistema, come parametro d’ingresso, la frequenza di
campionamento del segnale ricevuto.
5.3. Il simulatore di segnale GPS
L’implementazione del simulatore di un singolo segnale GPS a
frequenza intermedia è rappresentato nella figura seguente.
Prima di descrivere i singoli blocchi, si riportano i parametri settabili
dall’utente tramite l’interfaccia di Simulink che maschera il simulatore:
94
Giulio Mezzana – Roberto Dell’Ariccia

Satellite ID: impostando il numero identificativo (1-32),
vienescelta la sequenza di bit predefinita in modo tale da
confrontare i bit demodulati in fase di tracking con quelli
effettivamente simulati e il codice PRN reale del satellite

Code Shift: è possibile scegliere la fase del codice C/A
misurata in chips nel range [0..1022]

Doppler Shift: è possibile settare lo shift doppler associato alla
dinamica che si ha in linea di vista fra il satellite ed il ricevitore
rispetto alla IF. Il range dei valori è [-10kHz,10kHz] per un
ricevitore in movimento e [-5kHz,5kHz] per un ricevitore
stazionario.
Naturalmente
questi
valori
possono
essere
maggiorati per tenere in conto possibili drift di frequenza tra
oscillatore in trasmissione e in ricezione

Doppler Rate: è possibile impostare il rate di cambiamento
della doppler iniziale. Valori tipici per un ricevitore stazionario
vanno da una media di 0.54 Hz/s ad un massimo di 0.936 Hz/s,
95
Giulio Mezzana – Roberto Dell’Ariccia
mentre per un ricevitore in moto con un’accelerazione di un g
si arriva a 51.5 Hz/s

Carrier to Noise Ratio: un’altra importante caratteristica da
inserire in un simulatore di segnale è certamente la possibilità
di settare il parametro di C/N0, al fine soprattutto di stabilire
qual è la sensibilità effettiva del sistema di acquisizione.
Questo valore sarà il valore ricevuto a IF, dunque dopo possibili
filtraggi e amplificazioni.
Descritta l’interfaccia
ad
alto
livello
del
simulatore,
ora
si
descriveranno i singoli blocchi che lo compongono.
Prima di iniziare le simulazioni, è necessario caricare un file che
contiene i 33 codici C/A (il codice 33, non utilizzato dalla costellazione,
verrà usato in seguito per il calcolo della soglia di acquisizione) e i 32
messaggi di navigazione predefiniti con 10 bit ripetuti in maniera ciclica.
I codici sono stati generati con un’opportuna funzione matlab
(riportata in appendice), con cui sono state verificate le proprietà di crosscorrelazione dei codici stessi, come si evince dalla figura seguente, in cui
sono graficati i picchi delle possibili cross-correlazioni di tutti i codici.
Come ci si aspettava i valori alti, pari a 1023, corrispondono alle
autocorrelazioni e si trovano sulla diagonale principale.
96
Giulio Mezzana – Roberto Dell’Ariccia
1000
900
5
800
10
700
15
600
500
20
400
25
300
200
30
100
5
10
15
20
25
30
In questa maniera nel Workspace di Matlab vengono caricate una
matrice di dimensione 32x1023 e una matrice 32x10: a questo punto due
appositi blocchetti Signal From Workspace prelevano le due variabili dal
Workspace e generano due segnali ciclici con la frequenza di 1.023 MHz e
per il codice C/A e 50 Hz per i bits del messaggio di navigazione
corrispondenti agli identificativi scelti nell’interfaccia grafica. Inoltre il
codice viene sfasato circolarmente a seconda del code shift impostato
nell’interfaccia grafica, e ciò viene implementato tramite la funzione
Matlab circshift.
97
Giulio Mezzana – Roberto Dell’Ariccia
Sia i codici che il messaggio di navigazione sono generati direttamente
in forma bipolare, ovvero possono assumere i valori -1 e 1 ciò permette di
sostituire le operazioni di XOR con delle semplici moltiplicazioni. Per
questo motivo il messaggio di navigazione viene campionato a 1.023 MHz e
a 10.23 MHz con due diversi blocchetti Zero-Holder Hold per permettere la
moltiplicazione rispettivamente per il codice C/A e per il codice P(Y).
98
Giulio Mezzana – Roberto Dell’Ariccia
Per quanto riguarda il codice P(Y), essendo criptato esso viene
generato come una sequenza Pseudo-Noise che rispetti i 10.23 MHz di
banda, utilizzando un apposito blocchetto Simulink PN: inoltre, esso viene
convertito da unipolare in bipolare per il motivo già spiegato sopra e il
tutto viene compattato in un nuovo blocchetto.
Si hanno dunque i due codici di spreading che vanno a moltiplicare
opportunamente i bit del messaggio di navigazione; dopodiché il segnale da
trasmettere così ottenuto viene modulato su portante, rispettando le
convenzioni considerate più volte che prevedono il C/A in fase ed il P(Y) in
quadratura. Va notato che, prima di essere sommato al ramo in fase, il
ramo in quadratura viene attenuato di 3 dB, così come richiesto nell’ICD
del GPS.
Per quanto riguarda l’implementazione della portante in fase e in
quadratura, è stato implementato un sistema basato su un VCO la cui
frequenza iniziale è pari alla somma dei parametri IF e Doppler scelti
nell’interfaccia grafica: l’andamento della frequenza nel tempo è
controllato da un segnale rampa la cui pendenza viene definita
nell’interfaccia grafica ed è proprio pari alla Doppler rate scelta. Inoltre la
portante viene generata con un ampiezza calcolata a partire dal valore di
Carrier to Noise Ratio impostato nell’interfaccia grafica.
Infatti tale parametro ‘C’ non rappresenta altro che il valore del
rapporto C/N0 (in dB-Hz), che sarà richiesto in ingresso dal blocco di
99
Giulio Mezzana – Roberto Dell’Ariccia
simulazione di segnale GPS, contenente al suo interno la somma dei segnali
generati dai singoli satelliti della costellazione. A partire dal valore del
rapporto Carrier-to-Noise, il simulatore provvede a calcolare l’ampiezza
della sinusoide portante. Sapendo infatti che la potenza C di un segnale
sinusoidale è legata alla propria ampiezza A dalla relazione:
A2
C
2
(5.2)
e che il rapporto C/N0 è dato da:
C
N0
 C dBW  N 0,dBW / Hz  C dBW 
dB  Hz
C
N0
 N 0, dBW / Hz
(5.3)
dB  Hz
se ne conclude che l’ampiezza della sinusoide dovrà essere pari a:
(5.4)
A  2C
ossia, considerando che il valore di C è fornito in ingresso in dBW:
A  2  10 CdBW / 10  2  10
 C

 N0

 N 0 , dBW
dB  Hz
/ Hz

 / 10


(5.5)
La (5.5) è precisamente la formula utilizzata nel campo ‘Output
amplitude’ per determinare l’ampiezza della sinusoide a partire dal valore
di C/N0 in dB-Hz fornito in ingresso al blocco a più alto livello.
Lo schema Simulink descritto finora viene poi inserito in un blocco a
più alto livello a cui è collegato un campionatore e un blocchetto che salva
il segnale su un file .mat.
100
Giulio Mezzana – Roberto Dell’Ariccia
L’andamento nel tempo del segnale del singolo satellite GPS a IF 15
MHz è il seguente, nel quale si vede bene la natura ondulatoria del segnale
data dalla portante sinusoidale, ma la cosa più importante da notare è
senza dubbio la presenza, evidenziata opportunamente dallo zoom, delle
transizioni di fase binarie provocate dalla modulazione con il codice di
spreading:
Sebbene la rappresentazione in tempo
precedente
mostri
qualche
caratteristica
illustrata dalla figura
interessante
del
segnale
trasmesso, tuttavia le maggiori informazioni sul corretto funzionamento del
sistema in esame possono essere tratte dalla visualizzazione dello spettro
di densità di potenza, sulla forma del quale si è già indagato nel capitolo 2.
La figura seguente mostra lo spettro di densità di potenza (stimato
utilizzando il metodo di Welch) della simulazione del segnale L1 del GPS
centrato intorno ad una media frequenza di 15 MHz. In particolare, si può
notare la sovrapposizione degli spettri tipici dei due codici C/A e P(Y),
oltre a verificare la correttezza delle larghezze di banda dei due segnali
(20.46 MHz per il Precision Code e 2.046 MHz per il Coarse/Acquisition
Code). Nello zoom è evidenziato proprio la larghezza di banda del codice
C/A.
101
Giulio Mezzana – Roberto Dell’Ariccia
Un’ulteriore riprova della coerenza del simulatore al segnale reale è
data dalla costellazione dei simboli della parte in fase, ovvero riferiti alla
BPSK
modulata dal codice C/A e dal messaggio
di navigazione:
successivamente si vedrà come il modulo di tracking del software receiver
riuscirà a ricostruire i simboli della costellazione, mostrati nella figura
seguente tramite lo Scatter Plot di Simulink.
102
Giulio Mezzana – Roberto Dell’Ariccia
Ora che è stata descritta l’implementazione a basso livello, si può
considerare
quella
ad
alto
livello,
che
semplicemente
sfrutta
l’implementazione del singolo satellite appena vista per generare un
segnale in ricezione che sia la somma di più segnali GPS. Infatti, come ben
evidenziato nel cap. 1, per determinare la soluzione navigazionale si
necessita di almeno quattro SV in visibilità e dei relativi pseudoranges: è
dunque auspicabile considerare la situazione in cui al ricevitore arrivi un
segnale che sia la somma di almeno quattro segnali dai rispettivi satelliti.
D’altra parte, di solito un ricevitore si trova a dover elaborare un segnale
che è la somma di 8-12 segnali provenienti dai satelliti in vista, dunque sarà
necessario simulare fino a 12 satelliti per valutare l’impatto della mutua
interferenza in fase di acquisizione e tracking.
Il risultato finale è il seguente, in cui i contributi dei singoli satelliti in
vista vengono mascherati sotto un unico blocco, che permette di scegliere
la frequenza intermedia, naturalmente comune a tutti i segnali:
103
Giulio Mezzana – Roberto Dell’Ariccia
Non viene presentato il segnale in uscita al blocco GPS IF Signal
generator, in quanto non risulta molto diverso dal segnale del singolo
satellite già illustrato nelle figure precedenti: in particolare, in frequenza
104
Giulio Mezzana – Roberto Dell’Ariccia
non cambia nulla, mentre in tempo variano solamente le ampiezze che
risulteranno più grandi proporzionalmente al numero dei satelliti simulati.
In conclusione, è interessante porre l’accento sulla differenza che
intercorre fra il segnale del singolo satellite rispetto a quello costituito
dalla somma dei quattro SV: in realtà, se i codici di Gold fossero
perfettamente ortogonali, non vi sarebbe differenza alcuna in quanto, in
ricezione, l’interferenza mutua fra i differenti segnali sarebbe stata
completamente annullata dall’operazione di despreading. Tuttavia, come
appropriatamente segnalato nei capitoli precedenti, in realtà l’ortogonalità
dei vari codici di spreading non è perfetta, e si hanno dei valori non nulli in
corrispondenza ad alcuni valori di cross-correlazione: questo significa che,
modellando il segnale complessivo come somma di altri segnali GPS, si
avranno delle perdite in ricezione, valutabili in termini di una riduzione
della sensibilità del ricevitore rispetto al caso di ricezione del segnale del
singolo satellite.
5.4. Il simulatore del segnale di GIOVE-A sulla banda L1
L’implementazione del simulatore per GIOVE-A è molto simile a quella
del GPS; tuttavia, le differenze fra i due sistemi si rendono evidenti
soprattutto per quel che riguarda i codici di spreading (primari e
secondari), la modulazione e multiplazione.
In particolare, il segnale di GIOVE-A si differenzia da quello Galileo
per il fatto di avere un codice primario sul canale pilota lungo 8184 chips
invece che 4092 e per una durata di 8 ms invece che 4 ms.
105
Giulio Mezzana – Roberto Dell’Ariccia
Per quel che riguarda i registri, la differenza non sta nel principio di
generazione dei chip dei codici (che infatti sono ancora codici di Gold,
sebbene più lunghi), ma nel fatto che la rappresentazione dei valori iniziali
e delle taps per la phase selection risulta meno immediata di quella del
GPS e si basa sulle notazioni in ottale.
106
Giulio Mezzana – Roberto Dell’Ariccia
Tuttavia, i codici primari e il codice secondario del canale pilota non
sono stati generati via Matlab, poiché già disponibili in formato bipolare
(confrontare []).
La modulazione rappresenta invece la maggiore differenza rispetto a
quanto realizzato per il GPS. Galileo è infatti il primo sistema satellitare ad
introdurre l’innovativa modulazione BOC nella trasmissione del segnale di
navigazione, modulazione di cui si è ampiamente trattato nel cap. 2; tale
trattazione teorica rappresenta il fondamento per la realizzazione concreta
del simulatore. Inoltre, un altro elemento di novità introdotto da Galileo è
sicuramente la tecnica di multiplazione CASM, che rappresenta senza
dubbio un’interessante modalità di trasmissione di un segnale a inviluppo
complesso costante.
L’implementazione del simulatore di GIOVE-A a frequenza intermedia
è rappresentato nella figura seguente:
107
Giulio Mezzana – Roberto Dell’Ariccia
L’interfaccia grafica associata è uguale a quella del GPS, apparte il
fatto che ora il parametro Satellite ID scompare in quanto viene simulato
un solo satellite.
Come si può facilmente apprezzare, lo schema in oggetto è
notevolmente più complicato di quello realizzato per il sistema GPS e ora
se ne descriveranno i blocchi che lo compongono.
108
Giulio Mezzana – Roberto Dell’Ariccia
Sul canale in fase, i codici primari, il messaggio di navigazione e il
codice secondario vengono richiamati dal workspace di matlab, una volta
averli caricati da un opportuno file e generati con il rate previsto nel ICD di
GIOVE-A.
Come si vede nella figura seguente, il codice secondario è
concatenato col codice primario in modo tale che un chip del secondario
duri un’intera replica del codice primario: dunque l’intera replica del
secondario dura 25x8 ms cioè 200 ms, e quindi il rate equivale a 125 bit/s.
Dunque la sequenza dei chip del secondario, già convertita in
bipolare, che verrà generata a 125 bit/s sarà:
1 1 -1 -1 1 -1 -1 -1 1 1 1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 1 1 -1
Per quanto riguarda il messaggio di navigazione a 250 bit/s sul canale
B, è stata generata una sequenza predefinita di 10 bits, in modo tale da
poterne verificare l’esatta ricostruzione in fase di tracking, come si farà
per i chip del codice secondario.
109
Giulio Mezzana – Roberto Dell’Ariccia
Anche in questo caso i codici primari sono sfasati circolarmente
usando la funzione circshift di matlab: lo shift è applicato nello stesso
modo a entrambi i codici primari, anche se hanno lunghezze differenti e ciò
è reso possibile grazie alla proprietà circolare dei codici.
Il blocco più interessante è sicuramente quello che si occupa di
generare la sottoportante quadrata per la simulazione della modulazione
BOC(1,1),
utilizzata
per
la
trasmissione
del
segnale
L1.
Benché
teoricamente l’onda quadra potrebbe ottenersi calcolando il segno del
seno, tuttavia il modo più efficiente è quello di utilizzare un generatore
discreto di impulsi, già presente come funzione nella libreria di Simulink.
La figura seguente mostra l’effettiva implementazione dell’onda quadra,
mentre la successiva rappresenta l’interfaccia del blocco di generazione
discreta di impulsi.
Fig. 5.9 – Implementazione del segno del seno (onda quadra).
Si noti solo che il sample time, che è un parametro fondamentale che
Simulink richiede per quasi tutti i blocchi, è stato settato giustamente al
doppio del valore nominale in quanto bisogna considerare che ciascun
impulso dura due campioni (si veda il campo ‘Period’).
110
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 5.10 – Interfaccia del generatore di impulsi.
Dunque, tenuto conto di questo effetto, il generatore restituisce
un’onda quadra alla frequenza di 1.023 Msample/s, che è esattamente la
frequenza della sottoportante di una BOC(1,1).
Il blocco ‘Classified Data’ è costruito allo stesso modo di quello che si
occupa della generazione del codice P(Y) del GPS, ovvero come una
sequenza randomica che rispetta il rate previsto dal ICD.
Da sottolineare il fatto che il canale A di L1 trasmette con una
modulazione BOCc(15,2.5), quindi in questo caso in realtà l’onda quadra da
generare è costituita dal segno del coseno piuttosto che del seno; questo
cambiamento è ottenuto semplicemente ponendo ad uno il campo ‘Phase
Delay’ del blocco che genera gli impulsi. Inoltre la frequenza va cambiata
di conseguenza, portandola a 15.345 Msample/s.
111
Giulio Mezzana – Roberto Dell’Ariccia
I vari blocchi che generano i differenti segnali BOC sono collegati fra
loro secondo la logica della multiplazione CASM, che si ritiene utile
riproporre qui di seguito:
s L1 t  
1
2  eL1 B t  2  eL1C t  
3
 j2  eL1 A t  eL1 A t  eL1 B t  eL1C t 


(5.1)
All’estrema destra dello schema si possono notare le funzioni d’onda
sinusoidali, utilizzate per traslare su portante le componenti analogiche di
bassa frequenza SL1-I e SL1-Q: anche in questo caso si è utilizzato lo stesso
metodo del simulatore GPS, ovvero due VCO controllati da un segnale
rampa.
Come si vede nella figura seguente, lo schema viene incapsulato in un
blocco ad alto livello seguito da un campionatore e da un blocco che salva
il file nel formato .mat.
Illustrato l’intero sistema, non rimane che mostrare i risultati del
simulatore stesso nel dominio della frequenza, in quanto nel dominio del
tempo si visualizzerebbe un plot non molto dissimile da quello mostrato per
il GPS. A questo proposito, la figura seguente mostra l’andamento dello
spettro di densità di potenza del segnale L1 di Galileo nella sua interezza,
centrato intorno ad una portante di 20 MHz.
Lo
spettro
offre
molti
spunti
interessanti.
In
primo
luogo,
l’occupazione spettrale è quella che ci si attendeva da L1, con un segnale
che occupa 40.92 MHz di banda, come dichiarato nel SIS-ICD.
112
Giulio Mezzana – Roberto Dell’Ariccia
In secondo luogo, l’andamento spettrale al centro della portante
mostra il classico splitting dello spettro in due lobi principali, tipico della
modulazione BOC con cui sono trasmessi i segnali Galileo.
Naturalmente, detto andamento andrà confrontato con quello
riportato in letteratura per il segnale L1 di Galileo, che riportiamo nella
figura successiva.
Fig. 5.1 Spettro di densità di potenza del segnale L1 di GIOVE-A, centrato intorno a 20 MHz
113
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 5.2 Spettro di densità di potenza teorici dei segnali di GIOVE-A su L1 ed L2
Come si può ben notare, l’aderenza fra i due andamenti è evidente, a
conferma della validità del simulatore presentato.
Per trarre ulteriori informazioni dall’andamento spettrale, può essere
interessante graficare gli spettri delle componenti di bassa frequenza I e Q
separatamente, e non sommate insieme.. Un’analisi separata permette di
trarre più informazioni, in quanto ciascuna delle due componenti è
modulata con un’unica BOC, il cui andamento sarà più chiaramente
riconoscibile se considerata separatamente dall’altra.
A questo scopo, la figura seguente mostra lo spettro di densità di
potenza della componente in fase e la figura successiva quello della parte
in quadratura. Si può notare che la visualizzazione separata dei due rami ha
portato gli effetti voluti, in quanto ora è possibile discutere separatamente
le caratteristiche dei due segnali BOC che stiamo considerando.
114
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 5.3 Spettro di densità di potenza della parte in fase del segnale su L1
Fig. 5.4 Spettro di densità di potenza della parte in quadratura del segnale su L1
La prima figura
mostra il ramo in fase, sul quale, come già
evidenziato in precedenza, ci aspettiamo di trovare una modulazione
BOC(1,1). Dalla discussione svolta nel capitolo 2, ci aspettiamo che lo
115
Giulio Mezzana – Roberto Dell’Ariccia
spettro mostri due lobi principali, ciascuno di larghezza pari a 2.046 MHz:
questa eventualità è ben evidenziata dallo zoom della a pagina seguente (si
ricordi che il numero di lobi è dato da n, dove n è definito dal rapporto fra
il doppio della frequenza della sottoportante e il chip rate del codice; nel
caso della BOC(1,1), quindi, n = 2). Lo zoom evidenzia anche la frequenza
su cui è centrato il lobo: è ben noto (vedi cap. 2) che il picco dovrebbe
essere centrato ad una frequenza che dista dalla portante una quantità pari
alla frequenza della sottoportante, che in questo caso è pari a 1.023 MHz.
Dunque il picco dovrebbe essere centrato su 21.023 MHz; si vede tuttavia
che l’effettiva frequenza centrale del lobo è leggermente inferiore: tale
fatto è però pienamente giustificato nell’ambito nella modulazione BOC, in
quanto è ben noto che l’interazione coerente fra la semibanda inferiore e
quella superiore provoca un leggero abbassamento della frequenza centrale
di ciascun lobo.
Fig. 5.5 Spettro di densità di potenza della parte in fase del segnale su L1 (zoom)
Le stesse considerazioni possono essere riproposte per la figura
seguente: si tratta dello spettro di densità di potenza di quella che
dovrebbe essere una BOCc(15,2.5). La prima considerazione è sul numero di
116
Giulio Mezzana – Roberto Dell’Ariccia
lobi: considerando infatti che, in questo caso, n = 12, ci si aspettano 2 lobi
principali divisi da 10 lobi secondari, come effettivamente si verifica.
Inoltre, per la BOCc(15,2.5), i lobi principali dovrebbero essere centrati su
frequenze che distano 15.345 MHz dalla portante, come effettivamente
accade se osserviamo la fig. 5.18. Inoltre, lo zoom mostra che, anche in
questo caso, l’effetto di interazione coerente fra le sottobande sposta
leggermente in basso la frequenza centrale del lobo.
Sempre lo zoom, evidenzia che la banda del lobo ottenuto è
effettivamente pari ai 5.115 MHz attesi, comprovando così la correttezza
del segnale generato.
Fig. 5.6 Spettro di densità di potenza della parte in quadratura del segnale su L1 (zoom).
Ora che le caratteristiche della modulazione sono state accertate,
passiamo
ad
esaminare
la
correttezza
dell’implementazione
della
modulazione CASM: il modo più immediato per discuterne è visualizzare la
costellazione del segnale in uscita. Questo è stato fatto nella fig. 5.21,
nella quale si sono considerati il ramo in fase e quello in quadratura, che
sono stati utilizzati per costruire un segnale complesso a partire dal quale
graficare poi il diagramma nel piano di Gauss della figura. Confrontando i
117
Giulio Mezzana – Roberto Dell’Ariccia
punti di costellazione della figura seguente con i punti teorici della
costellazione CASM, si nota l’aderenza del modello simulato a quello che
sarà realmente trasmesso dai satelliti della costellazione Galileo. Può
essere interessante notare che lo Scatter Plot di Simulink, in quanto
progettato per disegnare i punti a tempo di simulazione, evidenzia
chiaramente che l’occorrenza dei simboli non è la stessa: i punti puramente
immaginari appaiono più spesso di quelli complessi. Questo comportamento
è spiegabile considerando che i rami in fase ed in quadratura hanno
differenti sia il chip rate che la frequenza della sottoportante: ciò provoca
lo squilibrio osservato nelle occorrenze dei punti della costellazione.
Fig. 5.7 Costellazione del segnale simulato L1 di GIOVE-A
118
Giulio Mezzana – Roberto Dell’Ariccia
5.5. Simulazione del Rumore Termico
In questo paragrafo si andrà a considerare la schematizzazione
(semplificata) dell’ambiente circostante, consistente nell’inserzione di un
rumore gaussiano bianco sommato al segnale simulato. Naturalmente,
mentre per i simulatori si è differenziato il discorso fra GIOVE-A e GPS,
l’ambiente è invece lo stesso per entrambi i sistemi, dunque il discorso
portato avanti in questo paragrafo sarà da considerarsi applicato tanto al
GPS che a GIOVE-A.
Il blocco per l’introduzione di rumore gaussiano bianco è un blocco di
libreria
in
Simulink,
il
quale
andrà
dunque
solamente
settato
opportunamente in modo da simulare l’opportuno livello di disturbo del
sistema. La figura seguente mostra il blocco utilizzato, insieme con la
relativa interfaccia.
119
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 5.8 Blocco Simulink per la generazione del rumore bianco a banda limitata
Come si vede, la potenza di rumore è settata ad un valore conforme a
quello espresso nella (2.14), ove si tenga in debito conto dell’eventualità
che il blocco in questione richiede di specificare la densità spettrale di
potenza di rumore bilatera (N0/2) anziché quella unilatera (questo spiega la
differenza di 3 dB fra i due valori). Il parametro ‘Seed’ rappresenta il seme
iniziale per il generatore di numeri pseudo-causali utilizzato dal blocco:
non essendo un campo rilevante per lo scopo della presente tesi, viene
lasciato il valore di default.
Un discorso a parte merita in questo caso il valore del ‘Sample Time’,
che rappresenta il tempo di campionamento del blocco. Teoricamente, il
rumore gaussiano bianco ha un intervallo di correlazione pari a zero e una
densità spettrale a banda infinita; in realtà, nei sistemi fisici, il rumore
sarà bianco solo all’interno della banda del segnale. In altre parole il tempo
di correlazione non sarà zero, ma molto più piccolo dell’inverso della
frequenza massima usata nel modello. Il blocco genera, quindi, dei numeri
casuali distribuiti normalmente secondo uno specifico sample time, che
corrisponde all’intervallo di correlazione; quest’ultimo, affinché la
simulazione sia accurata, deve essere scelto secondo la (5.6), condizione
riportata nelle specifiche del blocco stesso:
120
Giulio Mezzana – Roberto Dell’Ariccia
tc 
1 1
100 f max
(5.6)
nella quale fmax rappresenta il massimo contenuto spettrale del
segnale d’interesse.
Considerando che il segnale d’interesse (GPS/GIOVE-A) è generato ad
una media frequenza ben specificata (nell’esempio 14/20 MHz), allora il
massimo contenuto spettrale sarà dato dall’IF cui si aggiunge la specifica
semibanda del segnale. In altre parole, se consideriamo il GPS, allora il
campo ‘Sample Time’ andrà posto pari a:
tc 
1
1
100 14  10.23 10 6
(5.7)
Se invece parliamo di Galileo allora si dovrà porre:
tc 
1
1
100 20  20.46  10 6
(5.8)
La (5.8) giustifica quindi pienamente il valore utilizzato nella fig.
5.23.
L’inserzione di rumore porta naturalmente delle variazioni del segnale
trasmesso, sia in tempo che in frequenza. In particolare, ci si dovranno
attendere importanti modifiche agli spettri dei segnali visualizzati nelle
figg. 5.15-5.20, oltre che ai punti di costellazione della CASM.
Per quel che riguarda gli spettri di densità di potenza, bisogna
ricordare le conclusioni a cui si era giunti alla fine del cap. 2: in particolare
si era asserito che, introdotto l’opportuno livello di rumore, lo spettro del
segnale utile non sarebbe più risultato visibile, trovandosi circa 15 dB sotto
il rumore. Vediamo se quest’asserzione risulta verificata nel nostro caso:
per prima cosa, mostriamo nella fig. 5.24 lo spettro di densità di potenza
dei campioni di rumore in uscita al blocco.
121
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 5.9 Stima della densità spettrale di potenza del rumore simulato
La figura precedente mostra appropriatamente come la densità
spettrale di rumore sia abbastanza costante (come dovrebbe essere)
sull’intervallo considerato, e come soprattutto il valore massimo della
densità spettrale coincida con i –205.2 dBW/Hz riportati nella (2.14).
Dunque, già il semplice confronto fra gli spettri delle figg. 5.6/5.19 e 5.24
mostra che il segnale GPS/GIOVE-A si trova mediamente circa 15 dB al di
sotto del rumore, il che giustifica la nostra conclusione, tratta nel capitolo
2, che non è possibile osservare la presenza o l’assenza del segnale facendo
uso di un semplice analizzatore di spettro, senza prevede alcuna
amplificazione.
Questa eventualità è puntualmente verificata dalla fig. 5.25, che
rappresenta il confronto degli spettri del segnale GPS e del rumore,
indicando anche la distanza fra i due livelli di densità di potenza.
122
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 5.10 Confronto fra le densità spettrali del GPS e del rumore
L’ultima figura mostra un confronto particolarmente interessante, e
spiega il motivo per il quale il segnale che entra in ingresso al ricevitore, di
cui lo spettro di densità di potenza è mostrato nella fig. 5.26, non mostra
nessun andamento particolare, ma di fatto non potrebbe, visto che si tratta
di rumore gaussiano bianco.
123
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 5.11 Spettro di densità del segnale GPS simulato in ingresso al sistema ricevente
Gli stessi discorsi si applicano al segnale Galileo, il quale, pur essendo
trasmesso con maggiore potenza rispetto al GPS, si trova in ogni caso nelle
stesse condizioni di segnale utile al di sotto del rumore di diversi dB, così
come testimoniato dalla fig. 5.27, con riferimento al segnale sul canale
pilota (che è quello di interesse per l’acquisizione, in quanto il canale
criptato non potrà essere decodificato, mentre il canale di dati, per la
presenza dei dati stessi, porta di fatto a misure più rumorose).
Da quanto detto, segue che anche per il sistema Galileo il segnale in
ingresso alla catena ricevente mostrerà un andamento in frequenza simile a
quello della fig. 5.26, che quindi non si ritiene utile ripresentare per non
appesantire la discussione. Invece è interessante mostrare come si modifica
la costellazione CASM a causa del rumore, che sposterà i punti del piano di
Gauss in modulo e fase intorno ai punti teorici delle figg. 5.21 e 5.22. La
fig. 5.28 mostra la costellazione del segnale L1 cui è stato aggiunto del
rumore bianco, con un C/No pari a 48.2 dB-Hz.
124
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 5.12 Confronto fra le densità spettrali del GPS e del rumore
125
Giulio Mezzana – Roberto Dell’Ariccia
6. ACQUISIZIONE DEI SEGNALI DI RADIONAVIGAZIONE
6.1. Introduzione
Dopo aver descritto, a grandi linee, tutta la catena ricevente saranno
ora descritti i differenti algoritmi di acquisizione.
In particolare, l’attenzione sarà posta su quegli algoritmi che risultano
teoricamente meno complessi dal punto di vista del carico computazionale
e del tempo di esecuzione, e dunque più adatti ad un’implementazione
completamente software. Come si vedrà, da questo punto di vista
risulteranno molto interessanti gli algoritmi FFT-based, i quali presentano il
grande vantaggio di parallelizzare, per uno dei due parametri di interesse
nella fase di acquisizione, la ricerca sul dominio di definizione, riducendo
conseguentemente i tempi di elaborazione. Questa descrizione sarà
propedeutica sia per l’effettiva implementazione di tali algoritmi, sia per
cominciare a comprendere quali fra le possibili alternative proposte in
letteratura possa essere la migliore. Il capitolo prosegue con la trattazione,
a livello generale, dei fondamenti teorici alla base delle distribuzioni
attese di probabilità dei campioni in uscita al sistema di acquisizione, per
poter fissare le opportune soglie di detezione una volta scelta una
determinata probabilità di falso allarme.
In chiusura, si affronta la descrizione delle scelte, interenti al
processo di acquisizione, che condizionano le effettive prestazioni dei
sistemi implementati
6.2. Aspetti teorici
6.2.1. Algoritmi di acquisizione
Entriamo quindi nel dettaglio della descrizione teorica degli algoritmi
utilizzati per l’acquisizione del segnale satellitare. Come già menzionato
nel capitolo precedente, lo scopo dell’acquisizione è quello di determinare
126
Giulio Mezzana – Roberto Dell’Ariccia
i satelliti in visibilità e di estrarre dei valori inziali della frequenza portante
e della fase del codice dei segnali trasmessi dai vari satelliti.
Come detto nei capp. 1 e 2, la costellazione GPS è costituita
nominalmente da 32 satelliti, ciascuno identificato da una diversa sequenza
PRN, secondo le corrispondenze riportate nella tab. 2.3. Il parametro della
fase del codice rappresenta l’allineamento in tempo del codice PRN, nel
blocco di dati corrente: questo parametro è necessario per poter generare,
in ricezione, una copia locale del codice PRN che risulti perfettamente
allineato con il codice di spreading dei dati in arrivo. Solo quando questo
accade è possibile moltiplicare in ricezione il segnale ricevuto per il codice
PRN del particolare SV in vista con la giusta fase, rimuovendo così il ranging
code dallo stream di dati ricevuto1.
Riveste molta importanza anche la portante del codice: tale
frequenza corrisponde, nel caso più comune in cui si effetti un’operazione
di down-conversion, alla media frequenza. L’IF è un parametro noto nella
progettazione del software receiver, a partire dalla frequenza centrale del
segnale in ricezione (nel nostro caso, L1 = 1575.42 MHz) e dai parametri di
settaggio del mixer nel down-converter. Tuttavia si è visto, nel capitolo 2,
che la frequenza ricevuta può deviare, ed in generale devierà, dalla
portante nominale a causa della velocità non nulla in linea di vista del
satellite, che darà luogo ad uno spostamento (in alto o in basso, a seconda
che il SV sia in avvicinamento o in allontanamento) delle frequenza dovuto
all’effetto Doppler. Abbiamo anche visto che, nel caso peggiore di
ricevitore GNSS posto su un aeromobile in movimento ad alta velocità, la
frequenza può deviare fino a 10 KHz. È importante conoscere con
esattezza il valore reale della frequenza del segnale in arrivo, per poter
essere in grado di generare una portante locale con cui moltiplicare il
segnale in arrivo.
In un ricevitore tradizionale, l’acquisizione è generalmente operata in
un’ASIC, mentre nell’ambito di un ricevitore software, tale operazione è
implementata in hardware. Nei prossimi paragrafi, verrà descritta nei
1
I codici PRN mostrano un elevato picco di correlazione solamente quando si trovano in corrispondenza al ritardo
nullo (cfr § 2.3.3). Quindi, i due segnali devono essere perfettamente allineati per poter rimuovere il codice sui dati
in arrivo.
127
Giulio Mezzana – Roberto Dell’Ariccia
dettagli la teoria alla base del funzionamento dei tre principali metodi di
acquisizione al fine di dimostrare la possibilità di implementazione del
metodo più conveniente da utilizzarsi nell’ambito di un software receiver.
Nell’ultimo paragrafo verrà inoltre fatto cenno alla modalità mediante le
quali si sono calcolate le soglie di acquisizione utilizzate, sulla base delle
statistiche dei campioni in ricezione.
6.2.2. Acquisizione mediante ricerca seriale
L’acquisizione mediante ricerca seriale è uno dei primi metodi usati
per acquisire un segnale nell’ambito dei sistemi ad accesso multiplo basato
sulla tecnica CDMA, in quanto è il metodo di più immediata comprensione,
ma anche il meno raffinato. La fig. 4.1 rappresenta i diagramma a blocchi
dell’algoritmo di ricerca seriale.
Fig. 6.1 Schema per l’acquisizione mediante ricerca seriale
Come si può vedere dalla figura, l’algoritmo è basato semplicemente
sulla moltiplicazione del segnale in arrivo per la sequenza di codice PRN e
per il segnale portante locale, entrambi generati in ricezione. Il generatore
del PRN da luogo ad una sequenza pseudo-random corrispondente allo
specifico satellite e con una certa fase del codice (che per esempio, per il
GPS va da 1 a 1023, mentre per Galileo va da 1 a 4092). Il segnale in
ingresso è inizialmente moltiplicato per questa sequenza PRN generata
localmente; dopodiché, si opera la moltiplicazione con la frequenza
portante generata localmente. La moltiplicazione con il segnale portante
genera il segnale in fase I, mentre la moltiplicazione con una versione
128
Giulio Mezzana – Roberto Dell’Ariccia
ruotata in fase di 90° della portante stessa genera il segnale in quadratura
Q.
I segnali I e Q sono integrati su un certo periodo di tempo2 e infine
sono posti in ingresso ad un blocco per il calcolo dell’elevamento al
quadrato e poi sono sommati insieme. Idealmente, almeno per quel che
riguarda il segnale GPS, la potenza di segnale dovrebbe essere collocata
interamente sulla componente I del segnale, dal momento che il codice
C/A è modulato solamente su quel ramo (cfr. equazione (2.6)): tuttavia, in
questo caso, il segnale I generato dal satellite non corrisponderà in
generale alla componente I demodulata. Questo accade perché la fase del
segnale è incognita a causa dell’azione disturbante del rumore: quindi, per
essere sicuri di rilevare correttamente il segnale, è necessario estendere la
ricerca sia sulla componente I che su quella Q. L’output dello schema è
costituito da un valore che rappresenta di fatto la correlazione fra il
segnale in ingresso ed il segnale in arrivo dalla media frequenza. A questo
punto, si pone una soglia di acquisizione predefinita sui campioni in uscita
al correlatore: se la soglia viene superata, si dichiara il segnale presente e
si assumono corretti i parametri di fase del codice e di frequenza portante
che hanno dato luogo al picco di correlazione. Tali parametri possono
dunque essere passati ai successivi loops di tracking per il raffinamento dei
parametri di acquisizione di quel particolare SV.
L’algoritmo di acquisizione seriale opera dunque su due sweeps
successivi: uno sweep in frequenza, cercando su tutte le possibili frequenze
portanti di media frequenza nel range di 10 KHz a passi di 1 KHz (vedi §
4.3.2), cui segue uno sweep su tutti i possibili code delay (1023 per il GPS,
4092 per Galileo). Questa schematizzazione ci permette di stimare il
numero di possibili combinazioni che l’algoritmo seriale deve scandire
prima di determinare se un determinato SV è in vista oppure no: in tutto,
queste combinazioni assommano per il GPS a:
2
Questo periodo di tempo è generalmente scelto pari al periodo del codice del sistema che stiamo considerando: nel
caso del GPS, quindi, si fissa pari ad 1 ms, nel caso del segnale L1 di Galileo invece si potrà fissare pari a 4 ms (dal
momento che si hanno 4092 chip a 1.023 Mchips/sec).
129
Giulio Mezzana – Roberto Dell’Ariccia
 10000 
1023   2 
 1  1023  21  21483 combinazioni
 1000

(6.1)
Naturalmente si tratta di un numero molto elevato di combinazioni,
ma questo numero è addirittura destinato ad aumentare nel caso del
segnale Galileo.
Per quest’ultimo infatti, il calcolo esplicito del canale pilota conduce
a:
 10000 
8184   2 
 1  8184  21  171864 combinazioni
 1000

(6.2)
Questo algoritmo di ricerca seriale impone una ricerca esaustiva su un
numero di possibili combinazioni che risulta, già per il sistema GPS, molto
alto ma che, per il sistema Galileo, diventa addirittura improponibile.
Questa scansione completa è sicuramente la più evidente debolezza del
sistema di acquisizione basato sulla ricerca seriale in entrambi i domini
della frequenza portante e della fase del codice. Bisogna sottolineare che
questo schema va a pesare proprio sulle caratteristiche di complessità e
costo computazionale che, in un’ottica di implementazione via software
dell’acquisizione, rappresentano invece esattamente le caratteristiche da
salvaguardare.
6.2.3. Acquisizione mediante ricerca parallela nel dominio della
frequenza
Nel paragrafo precedente abbiamo visto come il metodo di
acquisizione completamente seriale risulti una procedura estremamente
dispendiosa dal punto di vista del carico di calcoli, e, dunque, anche dal
punto di vista del tempo necessario prima di poter fornire una risposta sulla
presenza o meno del segnale di un particolare SV. Questo perché la ricerca
è eseguita sequenzialmente su tutti i possibili valori assumibili dai due
parametri di interesse: è evidente che, invece, se uno dei due domini
potesse essere eliminato dalla procedura di ricerca seriale, ovvero potesse
essere scandito in parallelo, le prestazioni di questa procedura potrebbero
migliorare significativamente.
130
Giulio Mezzana – Roberto Dell’Ariccia
Questo
secondo
metodo
sfrutta
proprio
questa
importante
osservazione: come il nome stesso implica, nello schema di acquisizione
mediante ricerca parallela nel dominio della frequenza si parallelizza la
ricerca in uno dei due domini, quello della portante. Si tratta di un metodo
FFT-based, che utilizza la trasformata di Fourier per operare una
trasposizione dal dominio del tempo a quello della frequenza, nel quale è
possibile scorrere in parallelo le celle del dominio stesso. La fig. 4.2 mostra
lo schema a blocchi di quest’ulteriore schema di acquisizione:
Fig. 6.2 Schema a blocchi dell’acquisizione mediante ricerca parallela nel dominio della frequenza
Il segnale in arrivo è moltiplicato da una sequenza PRN generata
localmente, con un codice corrispondente ad un certo satellite ed una fase
del codice compresa fra 0 e 1023 (per il GPS), o fra 0 e 8184 (per Galileo
canale pilota). Il segnale così ottenuto viene traslato nel dominio
trasformato della frequenza mediante l’applicazione della trasformata di
Fourier. Naturalmente la trasformata di Fourier discreta potrà essere
implementata in differenti modi: in particolare sarà possibile utilizzare un
algoritmo tipo DFT (Discrete Fourier Transform) oppure FFT (Fast Fourier
Transform). La FFT è, fra i due, il metodo più veloce, ma richiede che la
sequenza dei campioni in ingresso abbia lunghezza pari ad una potenza di
due3.
Per comprendere meglio il funzionamento dello schema, la fig. 4.3
illustra il risultato della moltiplicazione del segnale in ingresso con una
replica perfettamente allineata (vale a dire con la giusta fase iniziale) del
PRN del satellite in visibilità generato localmente. Come si vede
chiaramente dalla figura a pagina seguente, il segnale all’ingresso del
3
La lunghezza della sequenza deve essere pari a 2x, x Є {1,2,....}
131
Giulio Mezzana – Roberto Dell’Ariccia
blocco che calcola la FFT è costituito da un tono sinusoidale ad una
frequenza
fissata,
qualora
il
codice
sia
perfettamente
allineato.
Quest’ultima condizione deve essere necessariamente verificata affinché
sul segnale in arrivo scompaia completamente la modulazione dovuta al
ranging code. Se il segnale contiene componenti provenienti da altri
satelliti (come generalmente accade), queste ultime saranno minimizzate a
causa delle proprietà di cross-correlazione delle sequenze di Gold, discusse
nel cap. 2.
Fig. 6.3 (a) Il codice PRN modulato sulla portante. (b) Il codice PRN perfettamente allineato. (c)
Dopo la moltiplicazione con il segnale in (b), il risultato è un tono sinusoidale puro
Dunque, se si considera che la fase del codice sia correttamente
agganciata, allora la FFT opererà su un’onda sinusoidale ad una fissata
frequenza, e restituirà in uscita un picco di elevata ampiezza (si tratta
della materializzazione dell’impulso di Dirac, che corrisponde alla
trasformata di Fourier di un segnale sinusoidale). Il picco in questione si
troverà collocato in corrispondenza della frequenza dell’onda sinusoidale in
ingresso: il calcolo del posizionamento del picco potrà dunque fornirci
l’informazione sulla frequenza portante del segnale da acquisire, che
corrisponderà alla media frequenza spostata di un offset dovuto alla
Doppler. Sottraendo dunque all’indice di frequenza trovato il valore dell’IF
(noto), potremo finalmente determinare l’entità dello shift Doppler che
influenza il segnale in arrivo.
132
Giulio Mezzana – Roberto Dell’Ariccia
L’accuratezza della frequenza così determinata dipende dalla
lunghezza della DFT (o FFT); tale lunghezza corrisponde al numero di
campioni che costituiscono il blocco di dati analizzati. Nell’ipotesi in cui si
analizzi 1 ms di dati, il numero di campioni può essere calcolato come
1/1000 della frequenza di campionamento. Perciò, se la frequenza di
campionamento risultasse, per esempio, pari a fs = 10 MHz, il numero di
campioni sarebbe pari a N = 107/103 = 10000.
Con una lunghezza della DFT (FFT) pari ad N, i primi N/2 campioni
rappresentano le frequenze da 0 Hz fino a fs/2: per cui, la risoluzione in
frequenza del segnale in uscita è pari a:
f 
fs / 2 fs

N /2 N
(6.3)
Nel caso in cui la frequenza di campionamento sia fissata a 10 MHz, la
risoluzione sarebbe pari a 1 KHz. La fig. 4.4 mostra l’output del blocco che
calcola la trasformata di Fourier. Nella parte (a) della figura è mostrato il
risultato del calcolo della trasformata nel caso di codice perfettamente
allineato: può essere notato facilmente il picco nel grafico (di diversi dB al
di sopra degli altri valori del grafico) che indica la frequenza del segnale
entrante.
La parte (b) della figura mostra invece l’uscita della FFT nel caso in
cui la moltiplicazione sia avvenuta per un codice non perfettamente
allineato: questa eventualità può essere riconosciuta dall’assenza di picchi
nel plot.
133
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 6.4 Trasformata di Fourier del segnale in ingresso moltiplicato per il codice. (a) Moltiplicazione
per un codice perfettamente allineato, presenza del picco. (b) Moltiplicazione con un codice non
allineato, nessun picco è presente
Mentre il metodo di acquisizione mediante ricerca seriale scandisce
tutte le celle su entrambi i domini della fase del codice e della Doppler, la
ricerca parallela nel dominio della frequenza deve scandire serialmente
soltanto le 1023 (8184) celle del code delay. A fronte di questo vantaggio
c’è naturalmente da considerare che il parallelismo è stato ottenuto a
spese del costo computazionale dell’operazione di trasformazione secondo
Fourier per il passaggio in frequenza. Ma la cosa importante da considerare
è che, a seconda dell’implementazione utilizzata per il passaggio al
dominio trasformato, è possibile e relativamente facile ottenere un
algoritmo che permetta un’acquisizione più rapida, se comparata con
quella ottenibile con il metodo puramente seriale. Tale maggiore velocità è
naturalmente imputabile alla possibilità di scorrere il dominio Doppler in
parallelo, senza la necessità di scandire cella per cella.
6.2.4. Acquisizione mediante ricerca parallela nel dominio della
fase del codice
L’idea di base nella ricerca parallela nel dominio della frequenza può
essere
ulteriormente
sviluppata,
considerando
la
possibilità
di
parallelizzare la ricerca nel dominio della fase del codice.
Come si vede dalle equazioni (4.1)-(4.2), il numero di celle di ricerca
nel dominio della fase del codice è significativamente più grande rispetto a
134
Giulio Mezzana – Roberto Dell’Ariccia
quello che si ha nel dominio della frequenza, e questo è tanto più vero se
consideriamo un sistema come Galileo, che in banda L trasmette codici
anche otto volte più lunghi di quelli in uso per GPS. Allora, invece di
utilizzare un metodo di acquisizione come il precedente, che parallelizza la
ricerca nel dominio della frequenza eliminando la necessità di scandire le
21 possibili celle in Doppler, l’idea per migliorare ulteriormente le
performance del sistema è quella di parallelizzare la ricerca nel dominio
del codice, così che solamente 21 celle in Doppler debbano essere
scandite, contro le 1023/8184 del metodo precedente.
In quest’ambito, uno dei più recenti algoritmi utilizzati per
l’acquisizione dei segnali GPS, è stato progettato proprio per sfruttare al
meglio i vantaggi della parallelizzazione nel dominio del code delay, ed è
noto come schema di acquisizione mediante ricerca parallela nel dominio
della fase.
Come abbiamo visto, lo scopo dell’acquisizione è quello di calcolare la
correlazione del segnale in ingresso ed un codice PRN. Invece di
moltiplicare il segnale in ingresso con un codice PRN, traslato di volta in
volta secondo tutti i 1023/8184 possibili ritardi (come si fa nell’acquisizione
seriale), è più conveniente operare la correlazione circolare tra il segnale
in ingresso ed il codice PRN senza dover di volta in volta ritardare la fase.
Dal punto di vista teorico, è possibile operare una correlazione circolare
nel dominio della frequenza, utilizzando ancora una volta la trasformata
di Fourier: un metodo per realizzare quanto detto è descritto in [14] e
verrà riportato di seguito.
La trasformata di Fourier discreta (DFT) di una sequenza x(n) di
lunghezza finita N, è calcolata come segue:
N 1
X k    xn e i 2kn / N
(6.4)
n 0
La cross-correlazione fra due sequenze x(n) e y(n), entrambe di
lunghezza finita N, si può calcolare come:
135
Giulio Mezzana – Roberto Dell’Ariccia
z n  
N 1
 xm yn  m
(6.5)
m 0
La convoluzione, sempre fra le stesse due frequenze di lunghezza
finita e pari ad N, si può scrivere come:
N 1
z n   xn  y n    x m y n  m 
(6.6)
m 0
A questo punto si impongono due osservazioni molto importanti. La
prima: le equazioni (4.5) e (4.6) mostrano bene che l’unica differenza fra
la cross-correlazione e la convoluzione fra due sequenze di lunghezza finita
è il segno dell’espressione y n  m . Secondariamente, bisogna ricordare
una proprietà fondamentale di teoria dei segnali che ci dice che la
convoluzione in tempo fra due sequenze diventa, in frequenza, il prodotto
delle
due
sequenze
trasformate.
Dunque
è
possibile
scambiare
moltiplicazione e convoluzione grazie alla trasformata di Fourier in maniera
immediata; combinando le equazioni (4.4) e (4.6) si ottiene la DFT della
convoluzione fra X k  e Y k , a dimostrazione della proprietà appena
menzionata:
N 1 N 1
Z k     xm y n  m e i 2 kn / N 
n 0 m 0
N 1
N 1
m 0
n 0
(6.7)
  xm e i 2 km / N  y n  m e i 2 k nm / N  X k Y k 
La (4.7) dimostra di fatto il legame, garantito dalla trasformata di
Fourier, fra convoluzione e moltiplicazione, che può essere riassunto dalla
(4.8):
F
z n   xn  y n  Z k   X k Y k 
(6.8)
Combinando ora le equazioni (4.4)-(4.6), si ottiene la DFT della crosscorrelazione fra X k  e Y k :
136
Giulio Mezzana – Roberto Dell’Ariccia
N 1 N 1
Z k     xm y n  m e i 2 kn / N 
n 0 m0
N 1
  xm e
m 0
i 2 km / N
N 1
 yn  m e
(6.9)
i 2 k n  m / N
 X k Y k 

n 0
Quindi, l’ultima formula dimostra come la connessione fra la
correlazione nel dominio del tempo e la sua rappresentazione nel dominio
trasformato è molto simile alla connessione che esiste fra la convoluzione e
la sua rappresentazione in frequenza. L’unica differenza risiede nel fatto
che la trasformata di Fourier di una delle due sequenze deve essere
coniugata prima della moltiplicazione.
Ora che la rappresentazione della correlazione nel dominio della
frequenza è stata determinata, si può tornare nel dominio del tempo (dove
dobbiamo tornare per poter visualizzare il risultato della correlazione)
attraverso l’utilizzo della trasformata inversa di Fourier (IDFT/IFFT).
Basandosi sulle equazioni (6.4)-(6.9), la fig. 6.5 mostra lo schema a blocchi
dell’algoritmo di ricerca parallela nel dominio della fase del codice.
Fig. 6.5 Schema a blocchi per l’acquisizione mediante ricerca parallela nel dominio della fase del
codice
Il segnale in arrivo è moltiplicato con un segnale proveniente da
oscillatore locale, che ha il compito di scandire le 21 celle Doppler alla
ricerca della reale frequenza portante del segnale in ingresso. Tramite
questa moltiplicazione si generano le componenti analogiche di bassa
137
Giulio Mezzana – Roberto Dell’Ariccia
frequenza del segnale, in fase (I) ed in quadratura (Q, moltiplicazione con
una versione ruotata in fase di 90° dell’OL). I due segnali I e Q sono
combinati insieme a formare un numero complesso xn   I n  jQ n , che
rappresenta l’input al sistema di calcolo della DFT/FFT. La copia della
sequenza PRN generata in ricezione è trasformata nel dominio della
frequenza, ed il risultato (complesso) viene coniugato, secondo quanto
appreso dalle equazioni precedenti. A questo punto, si realizza la
correlazione circolare nel dominio della frequenza secondo la (4.9),
moltiplicando fra loro la trasformata di Fourier del segnale in arrivo dopo
battimento e il complesso coniugato della trasformata di Fourier del PRN
memorizzato. In ultimo, si ripassa nel dominio del tempo per la
visualizzazione dei risultati attraverso l’uso della trasformata inversa di
Fourier: l’output della IDFT/IFFT viene posto in ingresso ad blocco che ne
calcola il modulo quadro, ed infine avviene il confronto con le predisposte
soglie di acquisizione.
Il punto fondamentale è che, secondo la (6.9), il valore assoluto
dell’output della trasformata di Fourier inversa rappresenta nei fatti la
cercata correlazione fra il segnale in ingresso ed il codice PRN
memorizzato: quindi, se un picco è presente (e supera la soglia di
acquisizione) allora si potrà affermare che il SV associato a quel PRN è in
vista, e l’indice del picco (opportunamente normalizzato) indica la fase del
PRN con cui il segnale in ingresso è modulato.
S’impongono, allora, una serie di osservazioni. In primo luogo,
l’algoritmo appena descritto, se comparato con il metodo di ricerca
parallelo in frequenza, dovrà operare una ricerca seriale solamente sulle
suddette 21 celle nel dominio Doppler: per ciascuna di queste celle, si
dovrà calcolare una trasformata di Fourier ed una trasformata inversa, così
che l’effettiva efficienza di calcolo del metodo di acquisizione dipenderà
essenzialmente dal modo in cui queste funzioni sono implementate al
calcolatore.
In secondo luogo, mentre l’accuratezza nella stima della frequenza è
la stessa degli altri due algoritmi, l’accuratezza della stima del parametro
di fase del codice PRN è sicuramente maggiore rispetto agli altri metodi, in
138
Giulio Mezzana – Roberto Dell’Ariccia
quanto, invece di avere l’accuratezza di un chip, si ha una precisione che
dipende dal numero di campioni utilizzati (in quanto viene restituito un
valore di correlazione per ciascun campione di segnale). Ciò significa che,
se per esempio la frequenza di campionamento è fissata a 10 MHz, allora
una sequenza di codice PRN campionata è composta da 10000 campioni, in
modo che il valore di fase del codice stimato può assumere 10000 valori
diversi, invece che 1023/8184 come accadeva negli altri due metodi.
L’algoritmo appena descritto dunque, essendo quello che impone il
minor numero di ricerche seriali (solo sulle 21 celle in doppler), è
senz’altro quello da cui ci si aspettano i risultati migliori, almeno dal
punto di vista della velocità di acquisizione (in quanto per quel che
riguarda il carico computazionale bisogna comunque tenere in debita
considerazioni le operazioni di FFT/IFFT). Questo è soprattutto vero per il
sistema Galileo, per il quale si evita di scandire serialmente le 8184 celle
di code delay che rappresentano la lunghezza dei codici trasmessi sulla
portante L1 per il canale pilota.
6.2.5. Soglie di acquisizione
Vediamo ora brevemente come possono essere calcolate le soglie da
porre sul segnale in uscita al blocco che si occupa di acquisire un
particolare
satellite:
il
superamento
di
dette
soglie
comporterà
l’assunzione, da parte del sistema, che il particolare satellite è
effettivamente in vista. Naturalmente, vista la presenza del rumore
termico, dette assunzioni saranno affette da una certa probabilità di falso
allarme, che rappresenta la probabilità che la soglia sia superata dal solo
rumore, e di mancata rivelazione, che rappresenta l’eventualità che il
picco di correlazione non superi la soglia. Per quantificare queste
probabilità, occorre determinare i livelli di segnale attesi secondo le
statistiche ipotizzabili per i campioni in uscita al rivelatore quadratico
d’inviluppo.
Le simulazioni effettuate sono tutte sviluppate in un ambiente
caratterizzato da rumore gaussiano bianco, dunque i 2N campioni (N per la
componente I ed N per la componente Q) che vengono posti in ingresso al
rivelatore quadratico d’inviluppo che segue i correlatori possono essere
139
Giulio Mezzana – Roberto Dell’Ariccia
assunti gaussiani. La somma dei quadrati di 2N variabili aleatorie gaussiane
dà luogo ad una nuova distribuzione chiamata distribuzione -quadrato a 2N
gradi di libertà che ha la formulazione seguente [2], [15]:
N

z   I 2k  Q 2k
N

 
2
 
   E Ik  E Qk
k 1
2
k 1
 
(6.10)
i

z
 

z N i 1  e 2

2


2
Pz; , N    e

i!  2N i N  i  1!
i 0



Si può dare ora, una definizione più analitica di cosa siano
effettivamente le probabilità di falso allarme e di mancata rivelazione. Si
noti che per i falsi allarmi manca il termine   che rappresenta proprio
l'energia del segnale e in questo caso la distribuzione si dice centrale:

Th
FA   P( z; N )dz
MD   P (z;, N )dz
Th
(6.11)
0
Queste due equazioni rappresentano esattamente il principale
problema da risolvere e, vista la non immediatezza della formulazione
della distribuzione -quadrato, il compito non è agevole senza l'uso di
calcolatori. Per un’analisi più dettagliata di queste distribuzioni si rimanda
al [2], in questo paragrafo si presenteranno solo i risultati più interessanti.
La risoluzione dei due integrali proposti genera le distribuzioni
cumulative -quadrato nella forma centrale e non centrale, che per
l’analisi in corso rappresentano le formule generali di mancata rivelazione
e falso allarme:
Th 2 
FA  e

i 0
i!
 2   e
j
i
N 1
 Th
2

MD  1   e
j 0

2

j! 

 Th
N  j 1
2

i 0
 
 Th i  
2 

 i!  
 

(6.12)
Si nota subito che il calcolo più complesso da realizzare è quello
relativo alla distribuzione non centrale, perché presenta una serie
numerica all'interno della quale vi è una sommatoria. Si può comunque
anticipare che il troncamento della serie al termine j=k produce un errore
non superiore alla quantità qui di seguito indicata:
140
Giulio Mezzana – Roberto Dell’Ariccia
 
j

 
k


err  1   e 2 2 
 j0
j! 


(6.13)
Nella fig. 4.6 a pagina seguente sono mostrate le probabilità di falso
allarme al variare della soglia e delle post-accumulazioni (cioè del numero
di millisecondi memorizzati e poi sommati per effettuare una sorta di
integrazione incoerente), così come riportate in [15]. Dunque si vede che
naturalmente il valore della soglia dipenderà dal livello di rumore presente
nelle simulazioni: tale livello è già stato calcolato nel cap. 2, ed è su quei
valori che si procederà al calcolo della soglia di acquisizione per un fissato
valore di Pfa, mediante la fig. 6.6.
6.2.6. Fattori che influenzano le prestazioni dell’acquisizione
Diversi sono i fattori che possono influenzare in maniera non
trascurabile le reali prestazioni ottenibili dal programma che esegue
l’acquisizione. Uno dei fattori più importanti è senza dubbio la lunghezza
del pacchetto di dati utilizzati per acquisire il ritardo del codice e lo shift
Doppler. Un altro fattore importante è la larghezza del passo utilizzato
nella ricerca lungo il dominio Doppler: utilizzando passi più piccoli si
ottiene una ricerca più fine in frequenza, ma si aumenta il tempo di
processazione.
141
Giulio Mezzana – Roberto Dell’Ariccia
N=1
Probabilità di falso allarme
N=2
N=3
100,000%
N=4
N=5
10,000%
N=6
N=7
1,000%
N=8
N=9
0,100%
N=10
0,010%
0,001%
4
14
24
34
44
54
64
2
Soglie in sigma
Fig. 6.6 Probabilità di falso allarme al variare della soglia di acquisizione
6.2.7. Lunghezza del set di dati da acquisire
È importante determinare, secondo criteri di ottimalità delle
prestazioni, la lunghezza dei dati su cui vengono applicati gli algoritmi di
acquisizione fin qui descritti.
Più lungo è il set di dati, più si allunga il tempo necessario a portare a
termine l’acquisizione; tuttavia, il beneficio che si ha nell’usare periodi di
dati molto estesi è il miglioramento del rapporto S/N del segnale in
ricezione [9]. Il problema dell’acquisizione va poi contestualizzato
nell’ambito delle problematiche del ricevitore software: ciò significa che,
per ottenere acquisizioni ragionevolmente rapide, occorrerà scegliere
accuratamente la lunghezza ottima del set di dati.
I due fattori che limitano la scelta di set di dati eccessivamente lunghi
sono la lunghezza dei dati di navigazione e la velocità di variazione della
frequenza Doppler. Infatti, dal momento che un bit del messaggio di
navigazione (per il GPS) dura 20 ms, se accade che i primi 10 ms di dati
contengono una transizione di fase dovuta alla variazione del bit di
navigazione, allora non ci sarà nessuna transizione di fase nel successivi 10
ms. Quindi, la massima lunghezza di dati da utilizzarsi è pari a 10 ms [20].
142
Giulio Mezzana – Roberto Dell’Ariccia
Dal momento che il codice C/A ha una durata di 1 ms, è certo che l’inizio
del segnale codificato col C/A potrà essere trovato all’intero del set di dati
della lunghezza selezionata. Tuttavia, c’è ancora la possibilità che la
transizione di fase dovuta al bit di navigazione si abbia all’interno di questo
millisecondo di dati: se questo avviene, allora certamente il successivo
millisecondo di dati non potrà contenere nessun altra transizione di fase
dovuta al messaggio di navigazione. Perciò, al fine di garantire la presenza
di almeno un set di dati esente da transizioni di fase, dovranno utilizzarsi
un minimo di 2 ms consecutivi di dati in acquisizione.
Dalla discussione fin qui presentata, i limiti all’interno dei quali
scegliere la lunghezza del set di dati sono fissati fra 2 e 10 ms; bisogna però
considerare
il
trade-off
fra
la
lunghezza
dei
dati
e
la
durata
dell’acquisizione. Per questo, nella maggior parte dei casi, sono richiesti
uno o due millisecondi per acquisire segnali con buona potenza, mentre ne
servono generalmente cinque o dieci per acquisire segnali più deboli.
Per il sistema Galileo, analoghi ragionamenti portano a concludere
che la dimensione da scegliere per il set di dati da acquisire sia pari a 8
ms (bisogna infatti ricordare che i codici di spreading utilizzati sul canale
pilota di L1 sono lunghi otto volte tanto quelli del GPS).
6.2.8. Dimensione delle celle in Doppler
Il passo da utilizzare nella ricerca sul dominio Doppler è un altro
fattore importante per conseguire un’acquisizione rapida ed efficace.
Infatti, dal momento che la frequenza portante del segnale è affetta da
uno shift Doppler, tale shift deve essere naturalmente tenuto in conto nella
generazione del segnale, e dovrà essere ricercato su tutto il dominio di
definizione. Il numero di celle Doppler da coprire sul range ±10 KHz deve
essere determinato in modo opportuno: usare un passo grande nella ricerca
aumenta naturalmente la velocità con cui si ottengono i risultati, d’altro
canto un passo più fine permette una maggiore accuratezza nella
determinazione della Doppler, pur risultando in un aumento del carico
computazionale.
143
Giulio Mezzana – Roberto Dell’Ariccia
Il punto importante è però che il passo da utilizzare nella ricerca in
frequenza è correlato alla lunghezza del set di dati usato in acquisizione
[8]. Dalle proprietà di correlazione dei codici di Gold infatti, si può vedere
come, quando il segnale in ingresso e la copia locale del codice sono
sfasate di un chip, non si registra nessuna correlazione. Se invece i due
segnali sono sfasati per meno di un chip, allora si ha una correlazione
parziale: in particolare, se c’è un offset di mezzo chip, l’ampiezza del
picco di correlazione si riduce di 6 dB. Per assicurare che ci sia ancora una
correlazione parziale fra il segnale in ingresso e quello memorizzato,
occorre che la separazione in frequenza non ecceda il mezzo chip di offset.
Se quindi si sceglie di acquisire su un set di dati lungo 1 ms, allora un
segnale di 1 KHz varierà di 1 ciclo in un millisecondo. In particolare, la
relazione da rispettare è la seguente:
Lunghezza set dati x Larghezza celle Doppler = 1 cilclo
(6.14)
Allora, nel caso del GPS, per far sì che il requisito (6.14) sulla massima
separazione in frequenza sia rispettato, il passo in frequenza deve essere
scelto pari ad 1 KHz.
Nel caso del sistema Galileo invece, poiché la lunghezza del set di dati
acquisito si allunga, si deve ridurre la dimensione delle celle in Doppler
(aumentandone di conseguenza il numero). In particolare, poiché per come
detto prima si acquisirà su blocchi di 8 ms, la (4.14) impone che il passo da
utilizzare in frequenza sia pari a 125 Hz, ossia 1/8 di quello utilizzato per
il GPS. Questo significa che con Galileo si avranno 81 celle contro le 21
celle del GPS: naturalmente, il fatto di scandire più celle in Doppler avrà
un peso sia dal punto di vista del carico computazionale che dei tempi
medi di acquisizione. Tuttavia bisogna tenere bene a mente che tale fatto
è intrinseco al sistema Galileo stesso, e dunque non rappresenta una
differenza eliminabile al fine di poter utilmente comparare fra loro i due
sistemi. Si tratta invece di una peculiare caratteristica di Galileo, che
impone la ricerca Doppler su un maggior numero di celle, per non perdere
il picco di acquisizione.
144
Giulio Mezzana – Roberto Dell’Ariccia
L’ultima caratteristica da evidenziare è che si farà riferimento ad
acquisizioni “a freddo”, senza cioè avere alcuna notizia a priori sulla
posizione dei satelliti o del ricevitore stesso: nella realtà, tuttavia, si potrà
generalmente procedere ad acquisizioni “a caldo”, potendo utilizzare
informazioni precedentemente memorizzate che, combinate con le
informazioni degli almanacchi, consentono di ridurre sensibilmente i tempi
di acquisizione riducendo le celle di ricerca sul dominio bidimensionale.
6.3. Implementazione software
6.3.1. Obiettivi
6.3.2. Architettura Generale
L’algoritmo implementato nel modulo di acquisizione è il Parallel
Code Phase Search, descritto nel capitolo teorico dedicato all’acquisizione:
la scelta è stata fatta sulla base delle migliori prestazioni e del minor costo
computazionale del Parallel Code Phase Search rispetto agli altri due
algoritmi esaminati.
Ad alto livello il modulo di acquisizione è sostanzialmente uguale sia
per GPS sia per Galileo, in quanto a livello funzionale gli inputs e gli
outputs che lo caratterizzano sono gli stessi.
Fondamentalmente gli inputs sono rappresentati da:

Un segnale ad una certa frequenza intermedia, campionato con
un’opportuna frequenza di campionamento ed eventualmente
quantizzato, convertito nel formato .mat di Matlab

Un insieme di parametri, alcuni inerenti al segnale da
processare (IF e Fs) e altri che specificano direttamente
l’algoritmo, quali la Probabilità di Falso Allarme del sistema e il
numero di frames di acquisizione da utilizzare.
145
Giulio Mezzana – Roberto Dell’Ariccia

Le repliche locali dei codici CA e le stesse repliche trasformate
nel dominio della frequenza mediante FFT e coniugate

Le repliche locali dell’oscillatore locale, ovvero seno e coseno
Dopo
il
processamento,
gli
outputs
generati
dal
modulo
di
acquisizione sono:

La lista dei canali allocati, che definisce quali satelliti sono
stati acquisiti e con quale doppler e con quale fase del codice.
6.3.3. Descrizione dell’algoritmo di Acquisizione per GPS
In questo paragrafo sarà esaminato nel dettaglio l’algoritmo di
acquisizione
per
GPS,
discutendo
tutti
i
passaggi
intermedi
del
processamento, facendo riferimento all’acquisizione su 1 ms di dati,
rimandando ai successivi paragrafi possibili varianti sul set di dai da
acquisire.
Nella
figura
seguente
viene
mostrato
lo
schema
a
blocchi
dell’algoritmo, che rappresenta l’espansione del blocco centrale del
precedente schema.
146
Giulio Mezzana – Roberto Dell’Ariccia
Prima di poter iniziare l’acquisizione vera e propria sono eseguite
delle operazioni preliminari:

Conversione del file dal formato originario al formato .mat di
Matlab

Impostazione dei parametri di acquisizione
147
Giulio Mezzana – Roberto Dell’Ariccia
Parametro
Frequenza Intermedia (Hz)
Frequenza di
campionamento (Hz)
Frames di
Acquisizione
Doppler massima di scansione
Doppler fine (boolean)
Passo di ricerca della doppler
fine (Hz)
Pfa

Funzione
Determina la frequenza centrale intorno alla
quale ricercare il segnale, è una caratteristica
del file di dati da processare. Influenza la
generazione delle repliche dell’oscillatore
locale
Determina quanti campioni per chip verranno
generati campionando le repliche dei codici
CA, è una caratteristica del file di dati da
processare
Ci sono 21 valori possibili (0.5,1:20),
determina la lunghezza del set di dati da
acquisire e la lunghezza delle repliche di
codice e OL
Definisce il massimo valore in modulo della
doppler che verrà ricercata
Attiva/disattiva la ricerca fine
Se la ricerca fine è attivata, determina la
risoluzione finale ottenuta e il numero di
iterazioni della scansione
Determina la soglia di acquisizione
Generazione delle repliche campionate dei codici CA e delle
rispettive FFT coniugate: le repliche sono generate in base alla
Fs e alla lunghezza del set di dati da acquisire, le FFT* vengono
impiegate nel modulo di generazione della soglia e nel calcolo
della matrice di acquisizione mentre le repliche nel dominio del
tempo vengono impiegate nel modulo di ricerca fine della
frequenza doppler. Il campionamento viene eseguito tramite
Matlab, a partire dal tempo di campionamento 1/Fs e dal
tempo di chip 1/1023000, e dopo vengono calcolate le FFT:
nelle figure seguenti sono mostrate l’autocorrelazione e la
cross-correlazione per dei codici CA campionati a 12.276 MHz
con 1 frame di acquisizione, cioè lunghi 12276 campioni (6
campioni per chip). Come ci si aspettava il picco di
autocorrelazione è pari al numero totale di campioni ovvero
12276, mentre la cross-correlazione è compresa in un range di
valori che va da 1000 a -1000, ovvero il valore massimo di
148
Giulio Mezzana – Roberto Dell’Ariccia
autocorrelazione è circa 12-13 volte più alto del massimo valore
di cross-correlazione, come per i codici CA non campionati.
CA 1 Autocorrelation, frames = 1
14000
12000
10000
samples
8000
6000
4000
2000
0
-2000
-1.5
-1
-0.5
0
code shift (samples)
0.5
1
1.5
4
x 10
CA 1,CA 2 Cross-correlation, frames = 1
1000
800
600
400
samples
200
0
-200
-400
-600
-800
-1000
-1.5
-1
-0.5
0
code shift (samples)
0.5
1
1.5
4
x 10
149
Giulio Mezzana – Roberto Dell’Ariccia
C’è da rimarcare il fatto che le repliche che saranno input all’unità di
ricerca fine, saranno lunghe un solo frame.

Generazione delle repliche campionate del seno e del coseno
dell’oscillatore locale: le repliche sono generate in base alla Fs,
alla IF (che determina la frequenza centrale) e alla lunghezza
del set di dati da acquisire che ne determinano la lunghezza,
mentre il numero delle repliche è determinato dalla massima
doppler di scansione e dal passo di scansione, determinato dalla
lunghezza del set di dati acquisito. Le repliche sono impiegate
nel calcolo della matrice di acquisizione e nel modulo di
generazione della soglia.

Inizializzazione dei 12 canali GPS: 12 variabili di tipo struct
vengono inizializzate in Matlab, ognuna con gli stessi attributi.
Variabile “canale”
Numero del satellite (1,32)
Status del canale (acquisito/non acquisito)
Doppler di acquisizione
Frequenza di acquisizione (IF + doppler di acquisizione)
Fase di acquisizione (in chips)
Fase di acquisizione (in campioni)
Picco di correlazione
Una volta concluse le operazioni preliminari, è possibile iniziare
l’acquisizione dei satelliti GPS in visibilità, secondo una sequenza di
operazioni che verranno descritte ora, evidenziando i passi fondamentali
dell’algoritmo implementato.
Step 1
Dal file di dati viene selezionato il primo millisecondo e vengono
caricate le repliche
150
Giulio Mezzana – Roberto Dell’Ariccia
Step 2
Calcolo della soglia di acquisizione
Step 3
Scansione dei 32 satelliti GPS: dopo il calcolo della soglia, vi è un ciclo
for che esegue una scansione dei 32 satelliti GPS selezionando mediante
l’indice di scansione il determinato codice CA campionato.
Step 3.1
Per ogni satellite, viene eseguita una scansione seriale nel dominio
della frequenza doppler nell’intorno della IF di riferimento. Il numero delle
celle doppler scandite, fissato il numero dei frames di acquisizione a 1,
dipende dalla massima doppler che si vuole ricercare: con un solo frame (1
ms), la risoluzione in frequenza e cioè il passo di scansione è pari a 1 kHz,
ovvero si avranno 11 celle per un ricevitore stazionario (5 kHz di massima
doppler) e 21 celle per un ricevitore in movimento (10 kHz di massima
doppler).
Step 3.1.1
Per ogni cella doppler, tramite un ciclo for, vengono effettuate le
seguenti operazioni:
1. Tramite
battimento
con
le
repliche
seno
e
coseno
dell’oscillatore locale vengono estratte le componenti in fase
(I) e in quadratura (Q)
2. Le componenti I e Q vengono sommate per formare il segnale
complesso in input alla FFT
3. Il segnale complesso viene trasformato tramite FFT
4. Il segnale ottenuto al punto III viene moltiplicato elemento per
elemento per la FFT coniugata del codice CA corrispondente al
satellite che si sta cercando di acquisire
5. Il vettore ottenuto al punto IV viene anti trasformato
6. Dal vettore ottenuto al punto V viene estratto il modulo quadro
151
Giulio Mezzana – Roberto Dell’Ariccia
7. Il vettore ottenuto viene inserito nella matrice di acquisizione,
costruita per righe, ovvero ogni riga rappresenta il risultato di
una ricerca parallela nel dominio della fase del codice, fissata
la cella doppler
Step 3.2
Alla fine della scansione doppler è stata costruita per righe la matrice
di acquisizione, che avrà dimensioni pari al numero delle celle doppler per
il numero di campioni di codice nel millisecondo di acquisizione, ovvero
Fs/1000.
Ogni elemento della matrice rappresenta il valore di correlazione
ottenuto per il dato satellite, per determinati valori di doppler e fase del
codice, identificati dagli indici dell’elemento della matrice.
Dalla matrice di acquisizione viene calcolato il massimo che
rappresenta il picco di correlazione, e gli indici del massimo corrispondono
alla doppler e alla fase del codice stimati.
La fase del codice acquisita è espressa in campioni e in questo
formato viene inviata al modulo di tracking. Tuttavia è possibile risalire
alla fase espressa in chips, e dunque confrontabile con quella settata nel
simulatore, attraverso una semplice conversione, sapendo con quanti
campioni un chip di codice viene rappresentato:
Ad esempio, con 13 campioni per chip e una fase stimata in campioni
di 276, la fase in chips sarà 20.23.
Step 3.3
Tramite un if viene effettuato un controllo sul picco di correlazione
calcolato. Se il picco non supera la soglia, ovvero si assume il satellite non
in visibilità, l’algoritmo ritorna allo Step 3.1.
Step 3.3.1
152
Giulio Mezzana – Roberto Dell’Ariccia
Se il picco supera la soglia, le seguenti operazioni vengono effettuate:

Viene allocato
un canale con le seguenti informazioni
riguardanti il segnale del satellite acquisito, ovvero numero del
satellite,doppler, frequenza di acquisizione (IF + doppler) fase
del codice (in campioni e in chips) e picco di correlazione.
Inoltre viene aggiornata, ovvero incrementata, la variabile
next_ch il cui valore corrisponde al successivo canale
disponibile

Se il picco non supera la soglia, si passa al satellite successivo,
ovvero si ritorna allo Step 3: se il satellite corrente è il 32,
l’algoritmo termina.
Step 3.3.2
Se il picco supera la soglia e la ricerca fine della frequenza è stata
attivata, il codice, sfasato circolarmente in base alla fase di acquisizione,
viene moltiplicato per il segnale in ingresso, in modo che rimanga solo la
portante e la modulazione data dal messaggio di navigazione. In questo
modo si può applicare una ricerca seriale della doppler nell’intorno della
stima data dall’acquisizione.
Se la stima è stata migliorata, il nuovo picco di correlazione è
maggiore di quello precedentemente calcolato, e dunque vengono
aggiornate
le
informazioni
del
canale
corrente,
ovvero
picco
di
correlazione, doppler e frequenza di acquisizione (IF + doppler fine).
Se il picco non supera la soglia, si passa al satellite successivo, ovvero
si ritorna allo Step 3: se il satellite corrente è il 32, l’algoritmo termina.
Step 4
L’algoritmo termina, e passa al modulo di tracking la lista dei canali
allocati con le rispettive informazioni che saranno gli input per il modulo di
tracking.
153
Giulio Mezzana – Roberto Dell’Ariccia
6.3.4. Descrizione dell’Algoritmo di Acquisizione per Galileo
6.3.5. Acquisizione su set di dati di lunghezza diversa
L’algoritmo di acquisizione esaminato nelle sezioni precedenti è stato
successivamente modificato per poter permettere al SR di:

Acquisire
segnali
deboli,
a
vantaggio
delle
prestazioni
(guadagno in sensibilità e nella stima della doppler) ma a
discapito della velocità di acquisizione

Acquisire con maggiore velocità a discapito delle prestazioni
(perdite in sensibilità e nella stima della doppler)
154
Giulio Mezzana – Roberto Dell’Ariccia
Queste funzionalità sono implementate andando ad aumentare o
diminuire la lunghezza del set di dati da acquisire, dunque si avranno due
varianti:

Acquisizione “long”, in cui il set di dati da acquisire è maggiore
di quello standard

Acquisizione “partial”, in cui il set di dati da acquisire è minore
di quello standard
Le modalità con cui l’algoritmo viene modificato verranno discusse qui
di seguito, prima per GPS e poi per Galileo.
6.3.5.1. GPS
Per il sistema GPS, si è visto che la durata standard del set di dati da
acquisire è 1 ms perché un millisecondo è pari alla durata di un intera
replica del codice CA: in tal modo si ottiene una risoluzione in frequenza di
1 kHz, che rappresenta il passo per la scansione doppler.
Se si aumenta la durata del set di dati la risoluzione in frequenza
aumenta e si hanno a disposizione più celle doppler dove ricercare il
segnale: inoltre, aumenta il guadagno di codice, pari ora alla lunghezza in
campioni della nuova replica di codice. Tutto ciò va a discapito del costo
computazionale, che aumenta sensibilmente.
Se si vuole ottenere invece un basso costo computazionale, allora si
può eseguire l’acquisizione su mezzo millisecondo, peggiorando la
risoluzione in frequenza con la diminuzione del numero delle celle doppler
e diminuendo il guadagno di codice.
Tuttavia, vi è un limite superiore di frame di acquisizione dato da 20
ms, poiché 20 sono le repliche consecutive di ogni bit del messaggio di
navigazione e quindi superando questo valore si avrebbe sempre la certezza
di avere una transizione di bit che porterebbe ad una degradazione delle
prestazioni in fase di acquisizione.
155
Giulio Mezzana – Roberto Dell’Ariccia
#
Frames
(ms)
Risoluzione in
frequenza
(Hz)
# Celle doppler
(repliche OL),
caso stazionario
# Celle doppler
(repliche OL),
caso non
stazionario
Guadagno di
codice rispetto
al caso standard
(dB)
0.5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2000
1000
500
333
250
200
166
143
125
111
100
90
83
77
71
67
63
59
55
53
50
6
11
21
31
41
51
61
71
81
91
101
111
121
131
141
151
161
171
181
191
201
11
21
41
61
81
101
121
141
161
181
201
221
241
261
281
301
321
341
361
381
401
-3
0
3
4.8
6
7
7.8
8.4
9
9.5
10
10.4
10.8
11.1
11.5
11.8
12
12.3
12.6
12.8
13
Acquisendo un set di dati di lunghezza diversa, le modifiche che
devono essere apportate alla struttura base dell’algoritmo riguardano
principalmente le repliche locali dei codici e dell’oscillatore locale.
Per quanto riguarda le repliche dell’oscillatore locale, queste saranno
in numero pari alle celle doppler di scansione e di lunghezza pari al numero
di campioni equivalenti al numero di frames di acquisizione considerati.
156
Giulio Mezzana – Roberto Dell’Ariccia
Invece, le repliche locali dei codici varieranno solo in lunghezza e
verranno calcolate seguendo i seguenti passi:
1. Caricamento della matrice CA(33,1023)
2. Campionamento in base alla Fs  CA(33,Fs/1000)
3. Ripetizione della matrice in base ai frames di acquisizione
(queste repliche nel dominio del tempo saranno impiegate nella
ricerca fine della frequenza): CA = [CA CA … CA] =
CA(33,frames*Fs/1000)
4. Viene calcolata la FFT di ogni riga della matrice CA e poi
coniugata
Nelle due figure seguenti sono mostrate la autocorrelazione del CA 1 e
la cross-correlazione dei CA 1 e 2 con 0.5 ms di acquisizione e Fs=12.276
MHz, dove si può notare l’abbassamento del picco di 3 dB rispetto al caso
standard, ovvero Fs/1000/2 = 6138.
CA 1 Autocorrelation, frames = 0.5
7000
6000
5000
Samples
4000
3000
2000
1000
0
-1000
-8000
-6000
-4000
-2000
0
2000
code shift (samples)
4000
6000
8000
157
Giulio Mezzana – Roberto Dell’Ariccia
CA 1, CA 2 Cross-correlation, frames = 0.5
800
600
400
200
samples
0
-200
-400
-600
-800
-1000
-1200
-8000
-6000
-4000
-2000
0
2000
code shift (samples)
4000
6000
8000
Con la stessa frequenza di campionamento sono state generate le
stesse figure precedenti, ma considerando 2 ,8 e 20 frames di acquisizione.
158
Giulio Mezzana – Roberto Dell’Ariccia
2.5
x 10
4
CA 1 Autocorrelation, frames = 2
2
samples
1.5
1
0.5
0
-0.5
-2.5
-2
-1.5
-1
-0.5
0
0.5
code shift (samples)
1
1.5
2
2.5
4
x 10
CA 1,CA 2 Cross-correlation, frames = 2
2000
1500
1000
samples
500
0
-500
-1000
-1500
-2000
-2.5
-2
-1.5
-1
-0.5
0
0.5
code shift (samples)
1
1.5
2
2.5
4
x 10
159
Giulio Mezzana – Roberto Dell’Ariccia
10
x 10
4
CA 1 Autocorrelation, frames = 8
8
samples
6
4
2
0
-2
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
code shift (samples)
0.4
0.6
0.8
1
5
x 10
CA 1,CA 2 Cross-correlation, frames = 8
8000
6000
4000
samples
2000
0
-2000
-4000
-6000
-8000
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
code shift (samples)
0.4
0.6
0.8
1
5
x 10
160
Giulio Mezzana – Roberto Dell’Ariccia
2.5
x 10
5
CA 1 Autocorrelation, frames = 20
2
samples
1.5
1
0.5
0
-0.5
-2.5
2
x 10
-2
-1.5
4
-1
-0.5
0
0.5
code shift (samples)
1
1.5
2
2.5
5
x 10
CA 1,CA 2 Cross-correlation, frames = 20
1.5
1
samples
0.5
0
-0.5
-1
-1.5
-2
-2.5
-2
-1.5
-1
-0.5
0
0.5
code shift (samples)
1
1.5
2
2.5
5
x 10
161
Giulio Mezzana – Roberto Dell’Ariccia
Come si può notare considerando n frames di acquisizione, oltre al
picco centrale più alto in assenza di sfasamento, le autocorrelazioni delle
repliche ora presentano un numero di picchi laterali pari a:
Essi sono dovuti essenzialmente a completi allineamenti delle subrepliche: infatti le ampiezze dei picchi laterali corrispondono a quelle delle
autocorrelazioni effettuate con un numero di frames minori. Ad esempio
nell’ultima figura il picco più basso si trova a circa 112276, che è
l’ampiezza dell’autocorrelazione con 1 frame, il secondo a 112276*2, che è
l’ampiezza dell’autocorrelazione con 2 frames e così via. Inoltre si può
notare come la cross-correlazione assuma una forma triangolare, con un
massimo proprio nel caso di assenza di sfasamento tra i due codici.
Il rapporto tra picco di autocorrelazione e massimo valore di crosscorrelazione ad esempio con 8 frames è pari a 17.
Si potrebbe pensare che la presenza di picchi laterali possa portare a
false rivelazioni del segnale su fasi del codice non esatte, ma poiché si
esegue una ricerca parallela nel dominio della fase del codice e si calcola il
massimo, ciò non accade.
6.3.5.2. Galileo
6.3.6. Ricerca fine della frequenza
6.3.6.1. GPS
6.3.6.2. Galileo
6.3.7. Soglia di acquisizione
6.3.7.1. GPS
6.3.7.2. Galileo
6.4. Test e risultati
162
Giulio Mezzana – Roberto Dell’Ariccia
7. TRACKING DEI SEGNALI DI RADIONAVIGAZIONE
7.1. Introduzione
Si potrebbe pensare che il metodo base per il tracking di un segnale
sia quello di costruire un filtro a banda stretta intorno al segnale ed
inseguire la variazione di frequenza nel tempo. Normalmente nei sistemi di
tracking attualmente utilizzati, la frequenza centrale del filtro a banda
stretta è fissa, ma un segnale generato localmente insegue la frequenza del
signale di ingresso. Le fasi del segnale di ingresso e del segnale locale sono
comparate attraverso quello che è detto comparatore di fase, l’uscita del
quale passa attraverso un filtro a banda stretta. Dal momento che il
circuito di tracking ha una banda molto stretta, la sensibilità è molto alta
rispetto a quella del metodo di acquisizione.
Quando nella portante sono presenti degli shift di fase causati ad
esempio dal codice C/A del GPS, la prima cosa da fare è togliere il codice.
Il processo di tracking inseguirà il segnale e estrarrà le informazioni del
messaggio di navigazione.
Nel caso il ricevitore del segnale di radionavigazione sia stazionario, la
variazione di frequenza dovuta al movimento del satellite è molto lenta e
sotto queste condizioni anche la variazione di frequenza del segnale
generato localmente sarà molto lenta. Per eliminare il codice C/A ad
esempio, è necessario un altro loop. Per cui in generale per traccare un
segnale di radionavigazione, c’è bisogno di due loop di tracking, uno per
traccare la frequenza della portante ed un altro per traccare il codice o
meglio la fase del codice.
163
Giulio Mezzana – Roberto Dell’Ariccia
7.2. Aspetti teorici
7.2.1. Phase-Locked Loops (PLL)
Lo scopo principale di un PLL è quello di aggiustare la frequenza di un
oscillatore locale per matchare la frequenza di un segnale di input. Un PLL
di base è mostrato in figura 5.1.
La figura 5.1° mostra la configurazione nel dominio del tempo,
mentre la 5.1b mostra la stessa configurazione nel dominio di Laplace. Il
segnale di input è  i t  è quello di output dal VCO è  f t . Il comparatore
di fase  misura la differenza di fase di questi due segnali. L’amplificatore
k 0 rappresenta il guadagno di del comparatore di fase e il filtro passa-basso
limita il rumore nel loop. Il voltaggio di input Vo al VCO, controlla la sua
frequenza di uscita, che può essere espressa come:
 2 t    0  k1u t V0
(7.1)
Dove  0 è la frequenza angolare centrale del VCO, k1 è il guadagno
del VCO e u t  è definito come:
0 per t  0
u t   
1 per t  0
(7.2)
La fase dell’angolo del VCO può essere ottenuta integrando
l’equazione 5.1:
t
t
0
0
  2 t dt   0 t   f t    0 t   k1u t V0 dt
(7.3)
164
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 7.1 PLL di base
Dove
t
 f t    k1u t V0 dt
(7.4)
0
La trasformata di Laplace di  f t  è:
 f s   V0 s 
k1
s
(7.5)
Osservando la figura 8.1b si possono scrivere le seguenti equazioni:


Vc s   k0 s   k 0  i s   f s 
(7.6)
Vo s   Vc s F s 
(7.7)
 f s   Vo s 
k1
s
(7.8)
Da queste tre equazioni si ricava:
 s    i s   f s  
s f s 
Vc s  Vo s 


oppure
k0
k 0 F s  k 0 k1 F s 


s

 i s    f s 1 
 k 0 k1 F s 
(7.9)
Dove  s  è la funzione di errore. La funzione di trasferimento H s 
del loop è definita come:
165
Giulio Mezzana – Roberto Dell’Ariccia
H s  
 f s 
 i s 

k 0 k1 F s 
s  k 0 k1 F s 
(7.10)
La funzione di trasferimento dell’errore è definita come:
Hes  
 s   i s   f s 
s

 1  H s  
 i s 
 i s 
s  k 0 k1 F s 
(7.11)
La banda equivalente di rumore è definita come:

2
Bn   H  j  df
(7.12)
0
Dove  è la frequenza angolare definita come 2f .
Per studiare le proprietà di un PLL, si utilizzano ini genere due tipi di
segnali di input. Il primo tipo è la funzione detta gradino unitario:
S
 i t   u t  

 i s  
1
s
(7.13)
Il secondo tipo è un segnale modulato in frequenza:
S
 i t   t 

 i s  

s2
(7.14)
7.2.2. Phase-Locked Loop del primo ordine
Un PLL del primo ordine, implica che il denominatore della funzione
di trasferimento H s  sia una funzione del primo ordine in s. L’ordine di un
PLL dipende dall’ordine del filtro di loop. Per questo tipo di PLL, la
funzione del filtro è:
F s   1
(7.15)
Questo è il PLL più semplice di tutti. Considerando come segnale di
ingresso
un
gradino,
la
corrispondente
funzione
di
trasferimento
dall’equazione 5.9 diventa:
166
Giulio Mezzana – Roberto Dell’Ariccia
H s  
k 0 k1
s  k 0 k1
(7.16)
Come si vede il demolitore della funzione è del primo ordine.
La banda di rumore può essere espressa come:
k 0 k1 2 df k 0 k1 2 
d


2
2 0  2  k 0 k1 2
0  2  k 0 k1 

Bn  


k 0 k1 2
(7.17)
  
k k
  0 1

tan 1 
2k 0 k1
4
 k 0 k1 0
Con un segnale di ingresso  i s  
1
, la funzione di errore può essere
s
trovata tramite l’equazione 5.10 come:
 s    i s H e s  
1
s  k 0 k1
(7.18)
L’errore steady-state4 può essere trovato per mezzo del teorema del
valore finale della trasformata di Laplace:
lim y t   lim sY s 
t 
(7.19)
s 0
Per mezzo dell 5.18, il valore finale di  t  può essere trovato come:
lim  t   lim s s   lim
t 
s 0
s 0
s
sk 0 k1
0
Se si considera come segnale di ingresso  i s  
(7.20)

, la funzione di
s2
errore è:
 s    i s H e s  

1
s s  k 0 k1
(7.21)
4
Per errore di steady-state, si intende l’errore come differenza fra input ed output di un sistema considerato nel
limite del tempo che va ad infinito
167
Giulio Mezzana – Roberto Dell’Ariccia
L’errore steady-state è:
lim  t   lim s s   lim
t 
s 0
s 0



s  k 0 k1 k 0 k1
(7.22)
L’errore di fase steady-state non è uguale a zero. Un alto valore di
k 0 k1 permette di avere un errore piccolo. Tuttavia dall’equazione 8.15 la
larghezza di banda a 3dB si ha per s  k 0 k1 . Per questo motivo, un piccolo
valore di  t  comporta anche un alto valore di larghezza di banda, che
contiene più rumore.
7.2.3. Phase-Locked Loop del secondo ordine
Nel caso di un PLL del secondo ordine, il denominatore della funzione
di trasferimento H s  è una funzione del secondo ordine di s. Uno dei
possibili filtri per realizzare un PLL del secondo ordine è:
F s  
s 2  1
s 1
(7.23)
Sostituendo questa relazione nella 7.9, la funzione di trasferimento
diventa:
k 0 k1 2 s k 0 k1

2 n s   n2
1
1
H s  
 2
k 0 k1 2 s k 0 k1 s  2 n s   n2
s

1
1
(7.24)
Dove  n è la frequenza naturale, che può essere espressa come:
k 0 k1
1
n 
(7.25)
Mentre  è il camping factor che può essere espresso come:
2 n 
k 0 k1 2
ω
oppure ς  n 2
1
2
(7.26)
168
Giulio Mezzana – Roberto Dell’Ariccia
Il denominatore di H s  è del secondo ordine.
La banda di rumore può essere espressa come:
2

 

1   2


n 
2

n 
Bn   H   df 

2
2 0      
0

1       2
   n     n


1  4 2 
 n



d 



2
n 
n
d



2
2 0    4
2
 
2
   22  1   1
 n 
 n 
(7.27)

1 
   
4 

La funzione di trasferimento dell’errore può essere ottenuta per
mezzo delle 5.10 come:
H e s   1  H s  
s2
s 2  2 n s   n2
Se si considera un input  i s  
 s  
(7.28)
1
, la funzione di errore è:
s
s
s  2 n s   n2
(7.29)
2
L’errore steady-state è dato da:
lim  t   lim s s   0
t 
(7.30)
s 0
Considerando ora un input  i s  
 s  
1
s  2 n s   n2
2
1
, la funzione di errore è:
s2
(7.31)
L’errore steady-state è:
169
Giulio Mezzana – Roberto Dell’Ariccia
lim  t   lim s s   0
t 
s 0
(7.32)
Come si vede dalle formule, considerando un segnale modulato in
frequenza, l’errore steady-state per il PLL del secondo ordine è zero, cosa
non vera per un PLL del primo ordine.
7.2.4. Trasformazione dai sistemi continui a quelli discreti
Nel precedente paragrafo, le considerazioni fatte erano basate su
sistemi continui, tuttavia la tesi in oggetto si propone di implementare un
software receiver, in cui i PLL dovranno essere realizzati via software. Per
fare questo, bisogna passare dai sistemi continui a quelli discreti.
La trasformazione dal dominio continuo s a quello discreto z , viene
fatta attraverso una trasformazione bilineare:
s
2 1  z 1
t s 1  z 1
(7.33)
Dove t s è l’intervallo di campionamento. Sostituendo la precedente
relazione nella 5.22, il filtro diventa:
F z   C1 
C2
C1  C 2  C1 z 1

1  z 1
1  z 1
(7.34)
Dove:
C1 
2 2  t s
2 1
t
C2  s
1
(7.35)
La figura è mostrata in fig. 7.2.
170
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 7.1 Filtro di loop
Il VCO nel PLL è rimpiazzato da un sintetizzatore digitale di frequenza
e la sua funzione di trasferimento N z  può essere utilizzata per cambiare
il risultato nella 5.7 con:
N z  
 f z 
Vo z 

k1 z  1
1  z 1
(7.36)
Quindi la funzione di trasferimento H z  può essere scritta come:
H z  
 f z 
 i z 

k 0 F z N z 
1  k 0 F z N z 
(7.37)
Sostituendo le 5.33 e 5.35 nella 5.36 si ottiene:
H z  
k 0 k1 C1  C 2 z 1  k 0 k1C1 z 2
1  k 0 k1 C1  C 2  2z 1  1  k 0 k1C1 z  2
(7.38)
Applicando la trasformazione bilineare della 5.32 nella 5.23 il risulto
ottenuto è:
H z  
4
4  4 t
n s



  t   2 t   8z  4  4 t   t  z
2
n
2
  n t s   2 n t s 2 z 1   n t s   r n t s z  2
2
n s
2
n s
2
1
n s
2
n s
(7.39)
Eguagliando i denominatori della 7.37 e 7.38 si ottiene il valore dei
coefficienti C1 , C 2 :
171
Giulio Mezzana – Roberto Dell’Ariccia
C1 
8 n t s
1
k 0 k1 4  4 n t s   n t s 2
(7.40)
2
4 n t s 
1
C2 
k 0 k1 4  4 n t s   n t s 2
7.2.5. Tracking di portante e di codice nel sistema GPS
Tipicamente il segnale di ingresso di un PLL è un’onda continua o un
segnale modulato in frequenza e la frequenza del VCO è controllata in
modo da inseguire quella del segnale di ingresso. In un ricevitore per
segnali
di
radionavigazione,
il
segnale
è
proprio
il
segnale
di
radionavigazione e il PLL deve inseguire (o traccare) questo segnale. Per
riuscire a traccare il segnale, il codice di spreading deve essere rimosso e
sono necessari due loops. Il primo loop serve a traccare la fase del codice
di spreading, il secondo a traccare la frequenza della portante. Questi due
loop devono essere in qualche modo accoppiati per lavorare insieme ed il
loro funzionamento accoppiato si può vedere nella figura sottostante.
Fig. 7.2 Loops di Tracking per codice e portante per il sistema GPS
172
Giulio Mezzana – Roberto Dell’Ariccia
Vengono in pratica generate tre repliche del codice di spreading dette
Early, Prompt e Late. La replica Prompt viene moltiplicata per il segnale di
ingresso ed il risultato è un segnale continuo le cui transizioni di fase sono
dovute solo al messaggio di navigazione. Questo segnale è quindi mandato
in ingresso al loop di portante, la cui uscita sarà sempre un segnale
continuo con la frequenza della portante identica a quella del segnale di
input originale. Questo segnale è utilizzato a sua volta per eliminare la
portante dal segnale di ingresso e questo si fa moltiplicando i due segnali. Il
segnale di ingresso in questo caso sarà solo il codice di spreading senza
portante e verrà utilizzato come segnale di ingresso al loop di codice.
Come spiegato precedentemente, l’aquisizione determina l’inizio del
codice di spreding. Il loop di codice genera le repliche Early e Late del
codice C/A, shiftate normalmente di mezzo chip, queste due repliche
vengono correlate con il codice C/A di ingresso e vengono quindi prodotti
due output. Questi output vengono fatti passare in un filtro che ne fa la
media e viene fatta la radice dell’uscita. Le due uscite sono confrontate
per generare un segnale di controllo che serve ad aggiustare il rate del
codice C/A generato localmente, in modo da far sì che il segnale generato
matchi il segnale originale di ingresso. Il codice C/A generato localmente è
il prompt e questo segnale è utilizzato per eliminare il codice C/A dal
segnale di ingresso.
Per quanto riguarda il loop di portante, questo riceve in ingesso un
segnale continuo modulato in fase solo dal messaggio di navigazione, dato
che il codice C/A è stato eliminato. Come per la fase del codice, anche il
valore inziale della frequenza è stimato durante l’acquisizione. Il VCO
genera una onda con una frequenza in accordo a quanto stimato. Il segnale
è diviso in due parti, una detta in fase ed una detta in quadratura, sfasate
di 90° l’una dall’altra, le quali vengono correlate con il segnale di ingresso.
L’uscita dei correlatori e quindi filtrata e le loro fasi sono confrontate
attraverso l’uso di un comparatore arcotangente. Sì utilizza l’arcotangente,
dato che quest’ultima non risente delle transizioni di fase dovute al
messaggio di navigazione e questo può essere considerato un caso di Costas
Loop. Un loop Di Costas è, infatti, un PLL che è insensibile alle transizioni
173
Giulio Mezzana – Roberto Dell’Ariccia
di fase. L’uscita dal comparatore è filtrata nuovamente e questo genera un
segnale di controllo utilizzato per sintonizzare l’oscillatore in modo che
generi una portante che insegua quella del segnale di ingresso.
7.2.6. Tecnica Block Adjustment of Synchronizing Signal (BASS)
Fino ad ora abbiamo visto il metodo convenzionale per il tracking,
tuttavia esiste anche un'altra tecnica detta BASS. Utilizzando questa
tecnica, una volta generato il codice C/A, questo viene utilizzato per tutto
il tempo, inoltre non è richiesto nessun aggiustamento iniziale di fase come
invece accadeva per il metodo convenzionale.
Il concetto alla base del motodo BASS è quello della trasformata
discreta di Fourier. Considerando un segnale di ingresso digitalizzato xn ,
la sua DFT può essere espressa come:
N 1
X k    xn e

j 2nk
N
(7.40)
n 0
Dove k rappresenta una determinata componente in frequenza e N è
il numero totale dei campioni considerati nell’intervallo di tempo che in
genere e per semplicità e considerato pari alla durata di una ripetizione del
codice di spreading. Se xn  è ottenuto digitalizzando un’onda sinusoidale,
allora il valore massimo di X k i  rappresenta la frequenza segnale di
ingresso. La parte reale ed immaginaria di X k i  possono essere utilizzate
per ottenere l’angolo di fase del segnale come segue:
 ImX k i 

  tan 1 
 ReX k i 
(7.41)
Dove  è la fase iniziale dell’onda seno rispetto alla funzione Nucleo.
Se k è un intero, la fase iniziale del Nucleo è zero. In generale, se la
frequenza del segnale di input è una quantità non nota, devono essere
calcolate tutte le componenti di k . Tuttavia solo la metà dei valori di k
forniscono informazioni utili. La componente più alta di X k i  può essere
174
Giulio Mezzana – Roberto Dell’Ariccia
trovata comparando tutti i valori X k  e per fare questo normalmente si
usa la FFT per risparmiare tempo di calcolo.
7.3. Implementazione software
In questo capitolo verranno discussi in dettaglio gli algoritmi sviluppati
per il tracking del segnale di radionavigazione, sia esso GPS o Galileo.
7.3.1. Obiettivo
Come già accennato nel capitolo precedente, scopo dell’acquisizione
è quello di stimare due parametri fondamentali che sono fase del codice e
frequenza doppler di un eventuale segnale di radionavigazione. La stima
accurata di questi due parametri risulta essere di importanza vitale, perché
permetterà al tracking di agganciare il segnale ed inseguirlo.
Il funzionamento del tracking, come spiegato nel capitolo 5, è basato
principalmente su due loops, uno per agganciare la frequenza e l’altro per
agganciare la fase del codice. Come vedremo più avanti questi due loops
lavorano insieme.
7.3.2. Architettura
Prima di entrare nei dettagli dell’algoritmo vediamo a grandi linee la
architettura generale di tutto il processo di tracking.
175
Giulio Mezzana – Roberto Dell’Ariccia
Fig. 7.3 Architettura generale del tracking
176
Giulio Mezzana – Roberto Dell’Ariccia
Il sistema riceve in input la frequenza doppler e la fase del codice
stimate per mezzo degli algoritmi di acquisizione. Il passo successivo
consiste nel creare le repliche locali del codice di spreading che saranno
moltiplicate per il segnale di ingresso, una volta effettuato il battimento
della frequenza portante. Il segnale, in banda base, viene fatto passare nei
due loops che raffinano la stima della frequenza della portante (IF +
Doppler shift) e la fase del codice, permettendo l’inseguimento del
segnale.
7.3.3. Descrizione dell’algoritmo di tracking per GPS
Di seguito verrà descritto nel dettaglio l’algoritmo di tracking per il
sistema GPS e verrà mostrato cosa succede al segnale nei vari steps.
La funzione che principale che contiene tutte le funzioni per inseguire
il segnale prende in ingresso due parametri che sono il numero del canale
da traccare ed il segnale ad IF.
Vediamo ora step by step quello che succede all’interno della
suddetta funzione:
Step 1
Vengono assegnati i seguenti valori:
 fc: frequenza della portante stimata dalla acquisizione
 code_phase: fase del codice stimata dalla acquisizione
 svnum: numero del satellite corrispondente al canale passato
in ingresso alla funzione
Step 2
Vengono settati i valori del tempo di campionamento, inverso della
frequenza di campionamento, ed il numero totale di campioni da
processare per ogni frame. Il numero di campioni nn è scelto in modo che
ogni frame abbia durata esattamente pari ad 1 ms ed il numero dei frames
è a sua volta calcolato dividendo la lunghezza totale del segnale per il
numero di campioni in un frame.
177
Giulio Mezzana – Roberto Dell’Ariccia
L’algoritmo eseguirà le funzioni di tracking un numero di volte pari al
numero frames calcolati in precedenza.
Step 3
Si settano due variabili:
 code_offset: questa variabile permette di settare lo spacing
fra le repliche locali del codice ed è calcolata moltiplicando il
code_offset espresso in chip per il numero di campioni in un
chip. Ad esempio se si vuole un code-offset di mezzo chip e il
campionamento è fatto a 6.138 MHz, considerando che il
codice CA è lungo 1023 chip ed ha una chip-rate pari a 1.023
MHz, si avrà
12.276
 12 ossia ogni chip è rappresentanto da
1.023
12 campioni, quindi code_offset 
1
 12  6 campioni.
2
 code_change: questa variabile permette di specificare di
quanto deve spostarsi la replica locale del codice di spreading,
se il valore del discriminatore del DLL supera un determinato
valore in modulo. Anche in questo caso si tratta di
moltiplicare il valore di code_change desiderato in chip per il
numero di campioni in un chip e, come nel caso precedente se
si volesse uno spostamento di mezzo chip, il code_change
avrebbe come valore 6.
Step 4
vengono calcolati i coefficienti del loop di Costas C1 e C2, tramite
una apposita funzione che vuole in ingresso i parametri:
 gain
 WDF
 WB
Step 5
Vengono generate le tre repliche locali Early, Prompt e Late, dei
codici di spreading. I codici non sono calcolati in real time, ma sono storati
178
Giulio Mezzana – Roberto Dell’Ariccia
come file .mat. Attraverso una operazione di “rotazione”, tramite il
comando circshift, i codici vengono allineati in base alla stima della fase
del codice e ulteriormente ruotati per creare le replice Early e Late.
Step 6
Si fa iniziare un ciclo che avrà durata pari al numero di frames
calcolato in precedenza.
Step 6.1
Si generano le repliche locali della portante seno e coseno, tali da
avere una durata pari ad 1 millisecondo, nel seguente modo:

 sine   e j 2  fctsnn phase


 cosine   e j 2  fcts nn  phase

Dove nn è il numero totale di campioni in un frame, ts è la durata di
un campione e phase è un valore che inizialmente è pari a 0, ma che
successivamente memorizza la fase dell’ultimo campione. Quest’ultima
operazione serve per fare in modo che quando verrà creata la replica locale
del successivo millisecondo il segnale sia continuo con il precedente e non
ci siano quindi salti di fase, che inficerebbero il corretto funzionamento del
PLL.
Si utilizza l’esponenziale complesso in modo che seno e coseno siano
coerenti.
Step 6.2
Si prende l’equivalente di un millisecondo di dati del segnale e si
memorizza in un variabile x.
179
Giulio Mezzana – Roberto Dell’Ariccia
Signal 1 ms
1.5
1
Amplitude
0.5
0
-0.5
-1
-1.5
0
2000
4000
6000
8000
10000
12000
14000
Samples
Fig. 7.4 Segnale di igresso 1 ms
Per vedere meglio che si tratta di una modulazione BPSK su portante
IF, se ne mostra una immagine ingrandita.
180
Giulio Mezzana – Roberto Dell’Ariccia
Signal 1 ms
1
Amplitude
0.5
0
-0.5
-1
6800
6850
6900
6950
Samples
7000
7050
7100
Fig. 7.5 Segnale di ingresso ingrandito
Nella immagine sopra sono ben visibili i salti di fase dovuti alla
particolare modulazione scelta e si vede che l’ampiezza del segnale è
modulata a causa della presenza della portante.
Step 6.3
Si porta il segnale in banda base moltiplicando il segnale in ingresso
per le repliche locali del seno e del coseno, ottenendo così il ramo in fase I
e quello in quadratura Q.
181
Giulio Mezzana – Roberto Dell’Ariccia
In-phase brench
1
Amplitude
0.5
0
-0.5
-1
7500
7600
7700
7800
Samples
7900
8000
8100
Fig. 7.6 Immagine ingrandita del ramo in fase del segnale
La portante, a meno di un residuo dovuto ad un non perfetto
allineamento tra portante del segnale generato localmente e portante
vera, è stata eliminata ed ora sono visibili i bit del codice di spreading che
resta l’ultima cosa da togliere per poter stabilire in quel determinato
millisecondo il valore del messaggio di navigazione trasmesso.
È bene fare una considerazione, l’operazione che permette di
eliminare la portante, consiste in una semplice moltiplicazione del segnale
per un un’onda sinusoidale generata localmente e tale moltiplicazione da
come risultato la seguente espressione:
CA  cos2ft    cos2ft    
1
1
CA  CA  cos4ft  2 
2
2
(7.1)
Come si vede nella espressione scritta sopra, quello che rimane è il
codice CA più il segnale di prima con una frequenza doppia e questo è ben
visibile nella figura 7.4 dove i bit del codice sono modulati da un’onda
sinusoidale, mentre la portante è stata tolta.
182
Giulio Mezzana – Roberto Dell’Ariccia
Per verificare che quanto affermato è vero si può vedere nuovamente
il contenuto in frequenza del segnale.
Power Spectral Density Estimate via Welch
-55
-60
-65
Power/frequency (dB/Hz)
-70
-75
-80
-85
-90
-95
-100
0
1
2
3
Frequency (MHz)
4
5
6
Fig. 7.7 Segnale dopo il battimento della portante
La figura mostra chiaramente che il segnale è stato portato in banda
base, ma che lo stesso è anche stato traslato in banda e portato intorno ai
4 MHz che è esattamente il doppio della frequenza portante iniziale. Per
ovviare a questo problema, la soluzione è quella di inserire un filtro passabasso che abbia un frequenza di cutoff pari alla banda del segnale CA più la
massima doppler possibile che si ricorda essere 10 KHz.
Si utilizza perciò un filtro passa-basso di Butter del 2 ordine. Lo
spettro del segnale a valle del filtro è il seguente:
183
Giulio Mezzana – Roberto Dell’Ariccia
Power Spectral Density Estimate via Welch
-50
-60
-70
Power/frequency (dB/Hz)
-80
-90
-100
-110
-120
-130
-140
0
1
2
3
Frequency (MHz)
4
5
6
Fig. 7.8 Spettro del segnale a valle del filtro di Butter
Il contenuto spettrale del segnale intorno alla frequenza di 4 MHz, si
trova ora quasi 40 dB sotto il segnale in banda base.
Il segnale che rappresentava i bit del codice CA è ora il seguente:
184
Giulio Mezzana – Roberto Dell’Ariccia
In-phase branch
0.8
0.6
0.4
Amplitude
0.2
0
-0.2
-0.4
-0.6
1.04
1.05
1.06
1.07
1.08
Samples
1.09
1.1
1.11
4
x 10
Fig. 7.9 Ingrandimento del segnale in banda base a valle del filtro di Butter
Il contenuto in frequenza intorno ai 4 Mhz è stato eliminato ed ora i
bit del CA sono ben visibili.
Step 6.4
Avendo eliminato dal segnale in ingresso la portante quello che resta
da togliere, come detto in precedenza, è il codice di spreading.
I due segnali I e Q vengono correlati con le repliche locali del codice
generate in precedenza. Il valore di output della correlazione fra replica
Prompt IP e ramo in fase, rappresenta il valore stimato del messaggio di
navigazione per quel determinato frame.
185
Giulio Mezzana – Roberto Dell’Ariccia
8148
In Phase
Signal Amplitude
8147.5
8147
8146.5
8146
8145.5
0
0.2
0.4
0.6
0.8
1
Time (ms)
1.2
1.4
1.6
1.8
2
Fig. 7.10 Valore stimato del messaggio di navigazione in un determinato millisecondo
Step 6.5
Vengono inizializzati i due discriminatori dei loops:
 code_discri(frame):
I
I
 I
 I
2
P
 QP2 
2
L
 Q L2
2
P
 Q P2
2
L
 Q L2


Q 
 phase_discri(frame): arctan P 
 IP 
Ad ogni successiva iterazione del codice, questi valori vengono
aggiornati.
Step 6.6
Viene fatto un controllo per vedere se la fase di pull-in del filtro è
finita. Nella fase di pull-in i coefficienti del filtro PLL, erano calcolati
utilizzando alti valori per il dumping factor e per la banda, cosa che
permetteva un aggancio meno preciso, ma più veloce, finita la fase di pull-
186
Giulio Mezzana – Roberto Dell’Ariccia
in cui si ha la certezza di essere agganciati al segnale, la banda del filtro
viene stretta e il dumping factor abbassato. Vengono quindi ricalcolati i
valori C1 e C2.
Per decidere quando far finire la fase di pull-in, si possono seguire
diverse strade, la più semplice è quella di decidere un determinato
intervallo temporale, ad esempio 30 ms, dopo il quale stringere il filtro.
Un’altra soluzione che risulta essere più funzionale, è quella di uscire dal
pull-in quando l’errore in frequenza o in fase si trova al di sotto di una
certa soglia.
Tuttavia un buon controllo sulla apertura e chiusura del filtro, risulta
essere di fondamentale importanza principalmente nei caso in cui ci sia la
possibilità di improvvise perdite repentine del segnale o di notevoli
abbassamenti dello stesso, cosa che capita normalmente in un contesto
urbano con il sistema ricevente montato su una piattaforma in movimento.
In questo caso aprire e chiudere il filtro in modo automatico e quindi non
deciso a priori, su base temporale, permette al sistema di rimanere
agganciato.
Nei casi più estremi sarà necessario acquisire nuovamente il segnale.
Step 6.7
Tramite i coefficienti del filtro C1 e C2 e per mezzo dell’uscita del
discriminatore, il PLL stima il delta di frequenza per correggere la portante
locale e allinearla con quella presente nel segnale. La fc utilizzata nello
step 6.1 viene aggiornata nel seguente modo: fc  fc  fc .
Step 6.8
Si controlla se il valore di uscita del discriminatore di codice è troppo
largo. Quello che si fa di fatto è evitare di aggiornare di volta in volta il
valore della fase delle repliche locali del codice, ma aggiornarlo solo se si è
al di sopra o al di sotto di un determinato valore settato in precedenza
(max_discri). Normalmente per il GPS nel caso di ricevitore fisso, un valore
in modulo di 0.5 è più che sufficiente per consentire il corretto
funzionamento.
187
Giulio Mezzana – Roberto Dell’Ariccia
Nel caso sia necessario un aggiornamento il codice viene fatto ruotare
di un valore pari a code_change.
Step 7
Si torna allo step 6
7.3.4. Descrizione dell’algoritmo di tracking per GALILEO
7.3.5. Risultati Finali
In questo capitolo verranno presentati gli output dell’alogoritmo.
7.3.5.1. GPS
Si considera come segnale di input quello generato tramite i
simulatori come descritto nel capitolo 5, nel quale è presente un solo, si è
in assenza di rumore e la Doppler rate è nulla. È chiaro che una situazione
del genere è da considerarsi un caso ideale e bel lontano dalla realtà, ma
per i nostri scopi risulta essere una ottima scelta. Più avanti verranno presi
in considerazione casi simulati più complessi, fino ad arrivare a quelli reali.
Sì è visto nel capitolo relativo all’acquisizione che il file in esame, una
volta processato permetteva di stimare una frequenza doppler di 1800 Hz
ed una fase del codice pari a 345.1667.
Si ricorda che il segnale in esame è campionato a 12.276 MHz con una
frequenza IF pari a 2 MHz e non c’è il codice P. La particolare scelta della
frequenza di campionamento, permette di rappresentare ogni chip del
codice per mezzo di 12 campioni, infatti
12.276
 12 .
1.023
188
Giulio Mezzana – Roberto Dell’Ariccia
Power Spectral Density Estimate via Welch
-20
-40
Power/frequency (dB/Hz)
-60
-80
-100
-120
-140
0
1
2
3
Frequency (MHz)
4
5
6
Fig. 7.11 Spettro di densità di potenza del segnale in ingresso al tracking
Il segnale non viene trackato tutto insieme, ma se ne prende di volta
in volta, secondo il metodo BASS, una parte equivalente ad un
millisecondo.
Il primo millisecondo ha lo spettro mostrato nella figura sotto.
189
Giulio Mezzana – Roberto Dell’Ariccia
Power Spectral Density Estimate via Welch
-55
-60
-65
Power/frequency (dB/Hz)
-70
-75
-80
-85
-90
-95
-100
0
1
2
3
Frequency (MHz)
4
5
6
Fig. 7.12 Spettro di un millisecondo di segnale
7.3.5.2. Output finali
Per prima cosa è utile far vedere come il PLL insegue la frequenza
portante è precisamente viene mostrato l’inseguimento della doppler.
190
Giulio Mezzana – Roberto Dell’Ariccia
Estimated Doppler
1855
1850
1845
Frequency [Hz]
1840
1835
1830
1825
1820
1815
0
100
200
300
400
500
Time [ms]
600
700
800
900
1000
Fig. 7.13 Doppler stimata per mezzo del PLL
Nella figura sopra è bel visibile un periodo transitorio iniziale, proprio
del filtro di loop, che alla fine arriva a stabilizzarsi intorno ad una
frequenza pari a 1837 Hz. Ricordiamo che la frequenza Doppler stimata in
acquisizione e passata in seguito al tracking come parametro iniziale era di
1800 Hz. Il PLL sta di fatto inseguendo la vera frequenza portante che è
pari ad IF + Doppler stimata.
Un
ulteriore
conferma
del
corretto
funzionamento
del
PLL
nell’inseguire la frequenza della portante, si può avere osservando il
grafico dell’errore di fase che è proprio l’uscita del discriminitatore del
PLL.
191
Giulio Mezzana – Roberto Dell’Ariccia
Carrier Phase Error
25
20
Angle [Degrees]
15
10
5
0
-5
0
100
200
300
400
500
Time [ms]
600
700
800
900
1000
Fig. 7.14 Grafico dell'errore di fase
Anche in questo caso dopo un periodo transitorio iniziale l’errore
tende a zero ed il tracking insegue il segnale.
Fino ad ora abbiamo visto il comportamento del PLL, esaminiamo ora
quello del DLL.
Come già detto il DLL serve ad inseguire il codice servendosi anch’esso
di un discriminatore, basato sulle uscite dei correlatori Early, Prompt e
Late.
Per prima cosa si esamina l’uscita del discriminatore.
192
Giulio Mezzana – Roberto Dell’Ariccia
Code Phase Error (chips)
2
1.5
1
Chip
0.5
0
-0.5
-1
-1.5
-2
0
100
200
300
400
500
Time [ms]
600
700
800
900
1000
Fig. 7.15 Errore di fase del codice
L’errore, come è ben visibile nel grafico, si trova intorno ad un
determinato valore pari a circa 0.25 chip.
Si ricorda che nell’algoritmo sviluppato, si è scelto di implementare il
DLL in modo che la fase delle repliche del codice locale, fosse aggiornata
solo se l’errore supera una certa soglia. In particolare in questo caso tale
soglia è fissata a 0.5 chip, infatti la fase non è mai aggiornata e l’errore
resta costante. In realtà l’errore non è fisso, ma oscilla intorno ad un
valore come si può vedere nella figura sottostante.
193
Giulio Mezzana – Roberto Dell’Ariccia
Code Phase Error (chips)
0.246
0.244
Chip
0.242
0.24
0.238
0.236
100
110
120
130
140
Time [ms]
150
160
170
180
Fig. 7.16 Ingrandimento dell'errore di fase del codice
Le oscillazioni sono molto piccole e quindi l’errore non supera mai la
soglia, di fatto la fase delle repliche locali Early, Prompt e Late non viene
mai aggiornata. Questo si può vedere nel grafico che mostra l’uscita dei tre
correlatori.
194
Giulio Mezzana – Roberto Dell’Ariccia
7
x 10
7
GPS L1 - In Phase Correlators Output
Early
Prompt
Late
6
Correlation power
5
4
3
2
1
0
0
100
200
300
400
500
Frames
600
700
800
900
1000
Fig. 7.17 Uscita dei correlatori del ramo in fase
Come ci si aspetta il Prompt è sopra tutti e si nota che la replica Early
è sopra quella Late. Ci si doveva aspettare questo risultato, dato che
osservando la figura 7.13, i codici risultano essere disallineati di circa un
quarto di chip.
-1
-1/2
1/2
1
Fig. 7.18 Uscita dei correlatori Early Prompt e Late
Il non perfetto allineamento fra il codice nel segnale e la replica
prompt, non inficia il corretto funzionamento del DLL ed in generale di
tutto il tracking, l’unico effetto è quello di avere un picco di correlazione
195
Giulio Mezzana – Roberto Dell’Ariccia
più basso e quindi la potenza dei bits del messaggio di navigazione sarà un
po’ più bassa.
Resta da far vedere il risultato alla fine dell’intero ciclo di tracking.
1
x 10
4
GPS - DLL Prompt Output
Quadrature
In Phase
0.8
0.6
Signal Amplitude
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
100
200
300
400
500
Time (ms)
600
700
800
900
1000
Fig. 7.19 Uscita del DLL relativa alla replica Prompt. La parte in fase rappresenta i bits del
messaggio di navigazione
Il risultato finale come previsto è l’estrazione dei bits del messaggio
di navigazione che sono l’uscita della replica Prompt del DLL. Come ci si
aspettava tutta la potenza è sul ramo in fase, mentre quello in quadratura
va a zero.
La figura 7.17 rappresenta il messaggio di navigazione sotto forma di
segnale, è utile però averlo anche sotto forma di bit di informazione.
196
Giulio Mezzana – Roberto Dell’Ariccia
GPS - Navigation Message
2
1.5
1
Bit Value
0.5
0
-0.5
-1
-1.5
-2
100
200
300
400
500
Time [ms]
600
700
800
900
1000
Fig. 7.20 Bits del messaggio di navigazione
7.3.5.3. Galileo
7.4. Test e risultati
In questo capitolo vengono eseguiti alcuni test per valutare le
performance dell’algoritmo di tracking.
Si utililizzeranno segnale simulati, segnali reali e segnali simulati
hardware forniti da ESA (European Space Agency).
7.4.1. GPS
7.4.1.1. Segnali utilizzati
Per comodità di trattazione, di seguito è riportata la tabella con
l’elenco dei segnali che verranno utilizzati nei vari test.
197
Giulio Mezzana – Roberto Dell’Ariccia
Codice
Frequenza di
campionamento
Frequenza
portante
Gap
C/N0
Noise
Numero di
satelliti
presenti
1
12.276 MHz
2 MHz
No
50
No
1
2
12.276 MHz
2 MHz
Sì
50
No
1
Tab. 7-1 Tabella dei segnali utilizzati per effettuare i test
7.4.1.2. Gap
Come primo test, si creerà un gap nel segnale di ingresso, simulando
ad esempio una macchina che entra in una galleria e si vedrà come
risponde il tracking in questa situazione. Il segnale utilizzato è quello con
codice 2 secondo quanto riportato nella tabella 7-1.
Per prima cosa esaminiamo il comportamento del PLL.
Carrier Phase Error
100
80
60
Angle [Degrees]
40
20
0
-20
-40
-60
-80
0
100
200
300
400
500
Time [ms]
600
700
800
900
1000
Fig. 7.21 Grafico dell'errore di fase nel caso di un segnale con un gap
198
Giulio Mezzana – Roberto Dell’Ariccia
Nonostante il gap di più di 200 ms, il tracking riesce perfettamente a
riagganciare il segnale e a riportare l’errore di fase intorno allo zero.
Per quanto riguarda i correlatori si ha l’uscita riportata nella figura
sottostante.
7
x 10
7
GPS L1 - In Phase Correlators Output
Early
Prompt
Late
6
5
||
4
3
2
1
0
0
100
200
300
400
500
Frames
600
700
800
900
1000
Fig. 7.22 Uscita dei correlatori per il segnale con un gap
Come ci si aspettava anche il DLL riesce a riagganciare senza problemi
la fase del codice.
È chiaro che l’utilizzo di questo particolare segnale facilita molto il
compito del tracking.
199
Giulio Mezzana – Roberto Dell’Ariccia
8. ARCHITETTURA FINALE DEL SOFTWARE RECEIVER E
GRAPHIC USER INTERFACE
200
Giulio Mezzana – Roberto Dell’Ariccia
9. CONCLUSIONI
201
Giulio Mezzana – Roberto Dell’Ariccia
10. ELENCO DELLE FIGURE E TABELLE
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
2.1 Posizionamento dell'utente nel caso bidimensionale ........................................... 5
2.2 Localizzazione con tre SV e con quattro SV ...................................................... 6
2.3 Geometria di riferimento ........................................................................... 8
2.4 Costellazione dei satelliti GPS.....................................................................12
2.5 I tre segmenti del sistema GPS ....................................................................13
2.6 Schematizzazione delle componenti di segnale su L1 ed L2 ..................................16
2.7 Struttura del messaggio di navigazione ..........................................................17
2.8 Il segmento di terra di Galileo ....................................................................26
2.9 Overview del sistema Galileo......................................................................27
2.10 Piano di utilizzo delle frequenze del sistema Galileo ........................................28
2.11 Overwiev degli andamenti spettrali dei segnali i navigazione Galileo .....................32
3.1 Schematizzazione della tecnica DSSS ............................................................34
3.2 Spettri dei segnali sulle frequenze L1 ed L2 ....................................................39
3.3 Schema a blocchi della generazione del segnale GPS..........................................40
3.4 Modalità di spreading dei bit del messaggio di navigazione ..................................43
3.5 Generazione del segnale GPS su L1 ...............................................................43
3.6 – Shift regiter per la generazione dei codici di Gold ...........................................45
3.7 Proprietà di correlazione dei codici C/A: autocorrelazione del codice C/A per il SV 15 .49
3.8 Proprietà di correlazione dei codici C/A: autocorrelazione del codice C/A per il SV 15 zoom .......................................................................................................50
3.9 Proprietà di cross-correlazione dei codici C/A: cross-correlazione fra i codici dei SV 15 e
31 ..........................................................................................................51
3.10 Configurazione del primo stadio dello schema di ricezione .................................53
3.11 Generazione di un segnale BOC ..................................................................59
3.12 Spettri di densità di potenza di vari segnali BOC .............................................62
3.13 ACF e loro inviluppi per vari segnali BOC a banda limitata ..................................63
3.14 Confronto fra le ACF di segnali BPSK e segnali BOC ..........................................64
3.15 Generazione del segnale L1 di Galileo..........................................................65
3.16 Costellazione dei simboli nella multiplazione CASM ..........................................67
3.17 Rappresentazione grafica della multiplazione CASM .........................................68
3.18 Relazione fra il codice primario e quello secondario .........................................69
5.1 Spettro di densità di potenza del segnale L1 di GIOVE-A, centrato intorno a 20 MHz .. 113
5.2 Spettro di densità di potenza teorici dei segnali di GIOVE-A su L1 ed L2 ................. 114
5.3 Spettro di densità di potenza della parte in fase del segnale su L1 ....................... 115
5.4 Spettro di densità di potenza della parte in quadratura del segnale su L1 ............... 115
5.5 Spettro di densità di potenza della parte in fase del segnale su L1 (zoom) .............. 116
5.6 Spettro di densità di potenza della parte in quadratura del segnale su L1 (zoom)...... 117
5.7 Costellazione del segnale simulato L1 di GIOVE-A ........................................... 118
5.8 Blocco Simulink per la generazione del rumore bianco a banda limitata ................. 120
5.9 Stima della densità spettrale di potenza del rumore simulato ............................. 122
5.10 Confronto fra le densità spettrali del GPS e del rumore ................................... 123
5.11 Spettro di densità del segnale GPS simulato in ingresso al sistema ricevente .......... 124
5.12 Confronto fra le densità spettrali del GPS e del rumore ................................... 125
202
Giulio Mezzana – Roberto Dell’Ariccia
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
Fig.
7.1 Filtro di loop ....................................................................................... 171
7.2 Loops di Tracking per codice e portante per il sistema GPS ................................ 172
7.3 Architettura generale del tracking ............................................................. 176
7.4 Segnale di igresso 1 ms ........................................................................... 180
7.5 Segnale di ingresso ingrandito................................................................... 181
7.6 Immagine ingrandita del ramo in fase del segnale ........................................... 182
7.7 Segnale dopo il battimento della portante .................................................... 183
7.8 Spettro del segnale a valle del filtro di Butter ............................................... 184
7.9 Ingrandimento del segnale in banda base a valle del filtro di Butter ..................... 185
7.10 Valore stimato del messaggio di navigazione in un determinato millisecondo ......... 186
7.11 Spettro di densità di potenza del segnale in ingresso al tracking ........................ 189
8.12 Spettro di un millisecondo di segnale......................................................... 190
7.13 Doppler stimata per mezzo del PLL ........................................................... 191
7.14 Grafico dell'errore di fase ...................................................................... 192
7.15 Errore di fase del codice........................................................................ 193
7.16 Ingrandimento dell'errore di fase del codice ................................................ 194
7.17 Uscita dei correlatori del ramo in fase ....................................................... 195
7.18 Uscita dei correlatori Early Prompt e Late ................................................... 195
7.19 Uscita del DLL relativa alla replica Prompt. La parte in fase rappresenta i bits del
messaggio di navigazione ............................................................................. 196
Fig. 7.20 Bits del messaggio di navigazione ............................................................. 197
Fig. 7.21 Grafico dell'errore di fase nel caso di un segnale con un gap ............................. 198
Fig. 7.22 Uscita dei correlatori per il segnale con un gap............................................. 199
Tab. 1-1 Caratteristiche della costellazione GPS .........................................................10
Tab. 1-2 Caratteristiche dell’Open Service per la sincronizzazione ...................................20
Tab. 1-3 Caratteristiche dell’Open Service per la sincronizzazione ...................................20
Tab. 1-4 Caratteristiche del Safety of Life Service ......................................................21
Tab. 1-5 Caratteristiche del Public Regulated Service ..................................................22
Tab. 1-6 Supporto del sistema Galileo al Search and Rescue Service .................................23
Tab. 1-7 Larghezze di banda e frequenze centrali dei segnali trasmessi .............................28
Tab. 1-8 Matrice di corrispondenza fra i segnali ed i servizi Galileo ..................................30
Tab. 1-9 Riassunto delle caratteristiche salienti dei segnali di navigazione Galileo ................31
Tab. 2-1 Tabella di verità dell’operazione di XOR .......................................................41
Tab. 2-2 Tabella di verità della moltiplicazione..........................................................41
Tab. 2-3 Corrispondenze fra i codici di spreading ed i SV ad essi associati...........................47
Tab. 2-4 Valori di cross-correlazione dei codici di Gold .................................................50
Tab. 2-5 Minimi livelli di potenza dei segnali GPS ricevuti all’uscita di un’antenna 0 dBIC con
polarizzazione circolare destra (RHCP – Rigth-Hand Circular Polarization) [6]. ................52
Tab. 2-6 Convenzioni simboliche............................................................................56
Tab. 2-7 Caratteristiche del segnale trasmesso ..........................................................56
Tab. 2-8 Caratteristiche del segnale trasmesso su L1 ...................................................66
Tab. 2-9 Caratteristiche del messaggio di navigazione ..................................................66
Tab. 2-10 Caratteristiche dei ranging codes ..............................................................68
Tab. 2-11 Prese degli shift register per i vari segnali ....................................................69
203
Giulio Mezzana – Roberto Dell’Ariccia
Tab. 2-12 Parametri del codice secondario ...............................................................70
Tab. 2-13 Minimi livelli di potenza ricevuta su L1........................................................70
Tab. 7-1 Tabella dei segnali utilizzati per effettuare i test .......................................... 198
204
Giulio Mezzana – Roberto Dell’Ariccia
11. ABBREVIAZIONI
205
Giulio Mezzana – Roberto Dell’Ariccia
12. APPENDICE
206
Giulio Mezzana – Roberto Dell’Ariccia
13. BIBLIOGRAFIA
207