• Non ci sono risultati.

L’Algoritmo di sincronizzazione

Nel precedente paragrafo abbiamo descritto come, una volta completata la procedura per la generazione dei campioni da trasmettere, venga posizionato in testa ad essi un header appositamente strutturato per permettere la sincronizzazione temporale del ricevitore. Tale operazione si rende necessaria al fine di determinare l’istante relativo alla presentazione del primo campione utile del segnale in ricezione. Nello svolgimento delle simulazioni per il calcolo delle prestazioni delle forme d’onda considerate, è stato fatto riferimento alla procedura di sincronizzazione elaborata per i sistemi OFDM da Timothy M. Schmidl e Donald C. Cox33, opportunamente modificata per una migliore esecuzione mediante le funzioni pre-definite del LabVIEW. Come anticipato questo metodo si basa sull’adozione di una particolare sequenza, definita “training sequence”, anteposta ai dati da trasmettere ed utilizzata dal ricevitore per estrarre le informazioni relative al sincronismo. Nel proseguo di questo paragrafo sarà analizzata la struttura della training sequence e le operazioni su di essa condotte dal ricevitore, specificate dall’algoritmo Schmidl-Cox (SCA). Come visibile in figura 5.3, l’header utilizzato per l’operazione di sincronizzazione è strutturato mediante l’impiego di due sezioni identiche, alle quali viene poi aggiunto il prefisso ciclico in modo da ricreare la stessa struttura di un tradizionale simbolo OFDM.

Figura 5.3 – Struttura della training sequence definita dall’algoritmo Schmidl-Cox.

La generazione di una sequenza con le caratteristiche sopra descritte è ottenibile, grazie alle proprietà della FFT/IFFT, mediante l’impiego di un tradizionale modulatore OFDM, assegnando i simboli da trasmettere solamente alle sotto-portanti con indice pari (dispari). Tuttavia, avendo impiegato la metà delle sotto-portanti disponibili, si rende necessario moltiplicare la sequenza per

[33] T. M. Schmidl, D. C. Cox, “Robust Frequency and Timing Synchronization for OFDM” - IEEE Transactions on Communications, vol. 45, no. 12, Dicembre 1997.

86

un fattore in modo da rendere la sua energia pari a quella di qualsiasi altro simbolo. Non vi è comunque possibilità di ambiguità nell’identificazione della sequenza di training in quanto essa è l’unica a non prevedere l’impiego delle sotto-portanti con indice dispari (pari)33

.

Conoscendo la struttura della training sequence, per determinare l’inizio dei dati utili, il ricevitore non deve far altro che ricercare, mediante una acquisizione continua del segnale, una sequenza in cui la prima metà risulti identica alla seconda. Questa soluzione risulta tuttavia particolarmente gravosa dal punto di vista computazionale e pertanto nell’algoritmo di Schmidl-Cox vengono introdotte delle metriche appositamente studiate e calcolabili in maniera iterativa. La prima di esse è definita come:

Dove: P( d ) rappresenta una sorta di funzione di correlazione, calcolata tra sequenze consecutive di lunghezza predefinita L , e riferita all’istante di ricezione del campione . Nell’algoritmo SCA viene impiegato un valore e la (5.1) viene implementata in forma ricorsiva definita da:

Contemporaneamente al calcolo del vettore P, la seconda metrica prevista dall’algoritmo è definita da:

Ed essa può essere considerata come l’energia associata al secondo segmento della sequenza, riferita sempre all’istante di ricezione del campione . Anche per la (5.3) è prevista una formulazione per il calcolo ricorsivo::

Una volta ottenuti i valori di P(d) ed R(d) dalla (5.2) e dalla (5.4) rispettivamente, viene infine computata la metrica temporale effettivamente impiegata per la stima del punto iniziale della

[33] T. M. Schmidl, D. C. Cox, “Robust Frequency and Timing Synchronization for OFDM” - IEEE Transactions on Communications, vol. 45, no. 12, Dicembre 1997.

87

sequenza di sincronizzazione, ottenuta dal rapporto del modulo quadro di questi due termini, ovvero:

L’andamento delle metriche utilizzate per il calcolo della (5.5) è stato riportato in figura 5.4, considerando una trasmissione di un segnale OFDM su un canale di comunicazione caratterizzato dalla presenza del solo rumore AWGN.

Figura 5.4 – Profilo delle metriche P ed R (a) e della metrica M (b) utilizzate per la procedura di sincronizzazione.

Dalla figura 5.4 appare evidente il tipico profilo della metrica temporale sulla quale si basa l’algoritmo SCA. Dopo la crescita iniziale, M si stabilizza nell’intorno dell’unità e si mantiene costante per un numero di campioni pari alla lunghezza del prefisso ciclico, prima di decrescere nuovamente su valori prossimi allo zero, e dare forma al caratteristico plateau. Sulla base di questo andamento è possibile determinare l’inizio della sequenza di sincronizzazione, definendo una soglia opportuna e considerandone gli istanti di attraversamento, prima in fase crescente, poi decrescente. Effettuando la media dei punti così individuati si riesce ad ottenere una stima del punto centrale

88

dell’intervallo di superamento della soglia (Sync Sample), il quale, in condizioni ideali, risulterà esattamente campioni in ritardo rispetto all’inizio effettivo della training sequence (First Training Sequence Sample), come riportato in figura 5.5. Basandoci poi su questo procedimento è possibile inoltre effettuare un controllo sulla lunghezza dell’intervallo in cui M risulta maggiore della soglia, per rendere l’algoritmo maggiormente tollerante ad improvvisi disturbi di carattere impulsivo che potrebbero falsare la metrica. Una volta determinato l’istante di inizio, il ricevitore, conoscendo la lunghezza della sequenza di sincronizzazione, è in grado di determinare la posizione dei campioni utili associati al segnale da ricevere.

Figura 5.5 – Stima dell’istante centrale dell’intervallo di superamento della soglia determinazione del primo campione della training sequence.

Vale la pena notare come l’accuratezza dell’algoritmo sia fortemente influenzata dal valore della soglia considerato. Questa deve essere scelta piuttosto prossima all’unità, ma sufficientemente tollerante da tenere in considerazione la degradazione del segnale dovuta al canale di comunicazione, il cui effetto si traduce in una riduzione sia l’ampiezza sia la durata dell’intervallo

89

di superamento di soglia. Questi effetti possono portare ad una determinazione imprecisa del campione iniziale del segnale, che risulta tuttavia trascurabile fintanto che l’errore di sincronizzazione sia tale da essere contenuto all’intero del prefisso ciclico del primo simbolo OFDM utile. Per questa ragione, il ricevitore predispone un certo offset che sposta la scelta del campione iniziale all’interno del CP, in modo da garantire una certa tolleranza qualora si dovessero verificare errori nella procedura di sincronismo

Come precedentemente anticipato, nello svolgimento delle simulazioni sono state apportate alcune modifiche allo SCA per una migliore adattabilità al principio di funzionamento delle NI-USRP impiegate per le operazioni a RF. LabVIEW infatti, nella sua libreria, predispone alcune funzioni che permettono una ricezione continua dei segnali, ottenuta però mediante un’acquisizione sequenziale di blocchi di campioni di lunghezza predefinita. Questo in alcuni casi comporta la suddivisione della sequenza di training tra due blocchi consecutivi, che rendeva impossibile l’esecuzione corretta dello SCA. Per ovviare a tale problema si è reso necessario apportare una modificare alla sequenza di header utilizzata per ricavare i riferimenti di sincronismo come riportato in figura 5.6

Figura 5.6 – Sequenza implementata nello svolgimento delle simulazioni per il conseguimento del sincronismo temporale.

Questa configurazione prevede l’impiego di due sequenze di training strutturate secondo lo SCA, ciascuna delle quali seguita da un simbolo OFDM “casuale”, generato sempre con riferimento ai valori specificati in fase di inizializzazione, senza però l’adozione delle portanti pilota, il cui compito è solamente quello di distanziare le sequenze utilizzate per il sincronismo. Questo si traduce in un andamento della metrica M utilizzata caratterizzato dalla presenza di due plateau, come riportato in Figura 5.7. Così facendo, nel caso in cui la suddivisione per blocchi interrompa

90

una delle due training sequece, separandola su blocchi successivi, lo SCA è comunque in grado di rivelare la presenza del segnale utile basandosi sull’altra sequenza che essendo opportunamente distanziata risulterà inalterata. Non appena una delle sequenze di sincronizzazione venga rivelata, il blocco sotto esame e quello immediatamente successivo vengono ordinati all’interno di un vettore, sul quale viene eseguito nuovamente l’algoritmo, per la determinazione degli istanti di superamento della soglia corretti. Conoscendo la struttura dell’header e la distanza tra le due training sequence è possibile ricavare il riferimento del primo campione utile associato al segnale. Così strutturato il processing utilizzato per ricavare il sincronismo è tale da non presentare alcuna ambiguità in fase di ricezione, poiché, nel caso in cui venga rilevato un singolo intervallo di superamento della soglia, esso è associato alla seconda sequenza di training presente nell’header e per tanto risulta comunque possibile determinare l’inizio dei dati utili. Le operazioni appena definite rappresentano il primo processing inerente all’elaborazione effettuata sui campioni dal segnale ricevuto, di cui è stata fornita una descrizione completa nel paragrafo successivo.

Figura 5.7 – Andamento della metrica M corrispondente alla sequenza di sincronizzazione implementata nelle simulazioni.

91