• Non ci sono risultati.

Decodifica del BCCH e lettura della LAI

4 ANALISI DEGLI ALGORITMI

4.3 Software receiver core

4.3.4 Decodifica del BCCH e lettura della LAI

su cui si può applicare un demappatura BPSK e ottenere direttamente i bit di informazione:

(4.37)

Il demodulatore coerente compie anche un’operazione di sottocampionamento di un fattore pari a Nov,

perciò i campioni z2n e z2n+1 sono presi a 270.833 kHz.

4.3.4 Decodifica del BCCH e lettura della LAI

La sequenza di bit bi è inviata al decodificatore di Viterbi che, come già visto nel paragrafo 3.2, deco-

difica i 78 bit del payload del burst SCH di cui solo 25 sono bit di informazione. Il burst SCH contiene codificati alcuni parametri quali:

BSIC (Base Transceiver Station Identification code)

RFN (Reduced TDMA Frame Number)

Il BSIC identifica la base station all’interno di un’area geografica ed è costituito da 6 bit di cui i primi 3 rappresentano il Public Land Mobile Network color code (PLMN), detto anche NCC (Network color

code), che identifica l’operatore, e gli altri 3 rappresentano il Base Station color code (BCC) che è

usato dall’operatore per identificare univocamente la base station all’interno di una certa area. Sia il PLMN che il BCC possono assumere un range di valori tra 0 e 7.

L’utilizzo di questo parametro è importante in quanto, a causa del riuso delle frequenze, permette di distinguere le base station di due celle vicine che usano la stessa frequenza.

L’RFN ha una lunghezza di 19 bit ed è costituito da 3 campi:

· T1 è composto da 11 bit e identifica la supertrama. Può assumere valori compresi tra 0 e 2047.

}

{

}

{

2 2 1 ( 1) Re (2 ) 1,..., 1 2 ( 1) Im (2 ) n n SCH ov burst n n SCH ov ov z s n N N n z + s n N N ì = - × × × ï = - í = - × × × + ïî % %

1 2

( )

i i

b

= - ×sign z

Analisi degli algoritmi

58

(4.38)

· T2 è composto da 5 bit e identifica la multitrama. Può assumere valori compresi tra 0 e 25.

(4.39)

· T3’ è composto da 3 bit e identifica l’SCH nella multitrama. Può assumere valori compresi tra

0 e 4.

(4.40)

dove

T

3

=FNmod(51)

è l’indice della trama all’interno della multitrama e può assumere va- lori all’interno di un range tra 0 e 50.

La Figura 4-19 mostra la disposizione del BSIC e dell’RFN all’interno del payload SCH.

Figura 4-19: Payload SCH.

Il Frame Number (FN) rappresenta il numero di trama TDMA e viene calcolato dall’algoritmo una volta che ha estratto T1, T2 e calcolato T3

(4.41) Quindi: 1

(26 51)

T

=FN div

´

2

mod(26)

T

=FN

' 3 10 3 1 T = ´ +T ' 3 ( 3 1) (10) T = T - div

59

(4.42)

Un altro parametro importante è Tc che specifica se la multitrama corrente contiene la LAI. Infatti la

LAI è presente solo nelle multitrame in cui Tc vale 2, 3 ,6 e 7. Dopo aver calcolato FN, l’algoritmo

trova Tc applicando la (4.43):

(4.43)

Se T3’ e Tc sono stati letti correttamente, viene estratto l’offset di campioni compresi tra l’SCH cor-

rente e l’inizio della più vicina multitrama con LAI (diversamente dal Dejamm-r che estrae invece l’intervallo di campioni compresi tra l’SCH corrente e il BCCH più vicino contenente la LAI). Gli offset sono calcolati offline e vengono inseriti all’interno di una matrice (off-

set_from_current_SCH_to_startMFwLAI). Come già detto nel paragrafo 3.2, in un periodo costituito

da 8 multitrame, i quattro BCCH si trovano sulle multitrame 2, 3 ,6 e 7 mentre la posizione della LAI all’interno del payload BCCH è la stessa nelle multitrame 2, 6 e 3, 7. Nella Tabella 4-1 sono riportati i valori degli offset al variare di T3’ e Tc.

Tabella 4-1: offset di campioni compresi tra l’SCH corrente e l’inizio della più vicina multitrama contenente la LAI.

Di seguito vengono fatti alcuni esempi sul calcolo degli offset. Si supponga che l’algoritmo si trovi sul primo SCH e cioè T3’=0:

· Se Tc =0 l’algoritmo è sulla prima multitrama. La più vicina multitrama contenente la LAI è la

terza quindi deve attendere ancora 2*255000 campioni (due multitrame) da cui vanno sottratti 5000 campioni affinchè l’algoritmo si posizioni perfettamente all’inizio della terza multitrama (Figura 4-20). Lo stesso ragionamento si estende a T3’=0 e Tc =4.

OFFSET_FROM_CURRENT_SCH_TO_STARTMFwLAI T3’ 0 1 2 3 4 5 6 7 Tc= 0 2*255000-5000 255000-5000 -5000 -5000 2*255000-5000 255000-5000 -5000 -5000 Tc= 1 255000+40*5000 40*5000 40*5000 2*255000+40*5000 255000+40*5000 40*5000 40*5000 255000+40*5000 Tc= 2 255000+30*5000 30*5000 30*5000 2*255000+30*5000 255000+30*5000 30*5000 30*5000 2*255000+30*5000 Tc= 3 255000+20*5000 20*5000 20*5000 2*255000+20*5000 255000+20*5000 20*5000 20*5000 2*255000+20*5000 Tc= 4 255000+10*5000 10*5000 10*5000 2*255000+10*5000 255000+10*5000 10*5000 10*5000 2*255000+10*5000 3 2 3 1

51 ((

) mod(26))

51 26

FN

= ´

T

-T

+ + ´T

´T

mod(8) 51 c FN T = êé ùú ë û

Analisi degli algoritmi

60

Figura 4-20: Esempio T3’=0, Tc =0.

· Se Tc =1 l’algoritmo è sulla seconda multitrama. La più vicina multitrama contenente la LAI è

la terza, quindi deve attendere ancora 255000 campioni (una multitrama) da cui vanno sottratti 5000 campioni affinchè l’algoritmo si posizioni perfettamente all’inizio della multitrama. Lo stesso ragionamento si estende a T3’=0 e Tc =5.

· Se Tc =2 l’algoritmo è sulla terza multitrama la quale contiene la LAI. Per posizio-narsi

all’inizio della multitrama deve tornare indietro di 5000 campioni. Lo stesso ragionamento si estende alle coppie T3’=0 e Tc =3, T3’=0 e Tc =6, T3’=0 e Tc =.7

Si supponga adesso di essere sul terzo SCH e cioè T3’=2:

· Se Tc =0 l’algoritmo è sulla prima multitrama. La più vicina multitrama contenente la LAI è la

terza quindi deve attendere ancora 255000 campioni (una multitrama) a cui vanno aggiunti 30*5000 campioni affinchè l’algoritmo si posizioni perfettamente all’inizio della multitrama (Figura 4-21). Lo stesso ragionamento si estende a T3’=2 e Tc =4.

Figura 4-21: Esempio T3’=2, Tc =0.

· Se Tc =1 l’algoritmo è sulla seconda multitrama. La più vicina multitrama contenente la LAI è

la terza, quindi deve attendere ancora 30*5000 campioni affinchè l’algoritmo si posizioni per- fettamente all’inizio della multitrama. Lo stesso ragionamento si estende a T3’=2 e Tc =2,

T3’=2 e Tc =5, T3’=2 e Tc =6.

· Se Tc =2 l’algoritmo è sulla terza multitrama la quale contiene la LAI. Per posizionarsi all’inizio della multitrama deve attendere ancora 2*255000 campioni (due multitrame) a cui vanno aggiunti 30*5000 campioni. Lo stesso ragionamento si estende alle coppie T3’=2 e Tc

61

Si può applicare questa identica procedura per determinare gli altri offset rimanenti.

In seguito l’algoritmo, utilizzando la matrice destinationBCCH_TC e i valori di T3’ e Tc, salva l’indice

di multitrama in cui si trova il BCCH su cui si deve spostare per determinare l’MCC e l’MNC.

La matrice destinationBCCH_TC (Tabella 4-2) è stata ottenuta considerando che i quattro BCCH si trovano solo sulle multitrame 2, 3 ,6 e 7. Dunque se l’algoritmo si trova sul secondo SCH (cioè su quello di indice 1) e sulla multitrama di indice 0, il successivo BCCH si troverà nella multitrama di indice 2; lo stesso vale se l’algoritmo è sulla multitrama di indice 1. Nel caso in cui l’algoritmo è sulla multitrama di indice 2, dovrà attendere la multitrama di indice 3 perchè i quattro BCCH sono posizio- nati nella multitrama prima dell’SCH considerato, e cosi via.

Tabella 4-2: BCCH di destinazione.

Se l’offset che punta all’inizio della multitrama con la LAI non è minore di Ndec (255060 campioni)

significa che ancora l’algoritmo non si è posizionato sulla multitrama giusta quindi per il momento non possono essere estratti i valori dell’MCC e dell’MNC di questo canale BCCH.

Viene calcolato un nuovo offset (

i

nextMFwLAI) sottraendo all’offset precedente (

i

currentMFwLAI) la differen- za tra la durata di una multitrama e l’indice di inizio del burst SCH corrente (

i

SCH):

(4.44)

Il canale non viene più processato fino alla multitrama successiva in cui si ripete la verifica sull’offset e, nel caso in cui, dia esito positivo si va a controllare che tale valore sia minore di 0. Se questo si veri- fica significa che l’algoritmo si trova sulla multitrama corretta e cioè su quella che contiene la LAI, altrimenti è necessario applicare la funzione refiningSCHtiming. Tale funzione ricalcola l’istante otti- mo di sincronizzazione sull’SCH adiacente al BCCH che deve essere spacchettato. A causa del drift del clock tra la BTS e il ricevitore, è possibile che il numero di campioni da attendere per avere l’SCH successivo (adiacente al BCCH con la LAI) possa non essere lo stesso. Se non si utilizzasse la funzio- ne refiningSCHtiming si potrebbero avere problemi in quanto la demodulazione coerente potrebbe restituire una sequenza di bit completamente diversa da quella trasmessa.

DESTINATIONBCCH_TC T3’ 0 1 2 3 4 5 6 7 Tc= 0 2 2 2 3 6 6 6 7 Tc= 1 2 2 3 6 6 6 7 2 Tc= 2 2 2 3 6 6 6 7 2 Tc= 3 2 2 3 6 6 6 7 2 Tc= 4 2 2 3 6 6 6 7 2

(

)

nextMFwLAI currentMFwLAI dec SCH

Analisi degli algoritmi

62

La precisione di clock dell’USRP utilizzata è circa 10 ppm. Quindi campionando a 4 MHz si otterreb- be, in un secondo, un drift di4 MHz 10 ppm× =40 campioni/s. Dopo la decimazione si ha una sam- ple rate di 1.0833 MHz, per cui si avrebbero 10 campioni/s di drift. Dato che in media vengono attese 2/3 multitrame ciascuna lunga 0.235 s si hanno circa 5 campioni di drift.

Deve essere anche verificato che il BCCH con la LAI sia interamente contenuto nello spezzone di segnale preso, altrimenti occorre introdurre un ritardo in modo che il BCCH con LAI cada all’interno di un unico spezzone di segnale.

Ad esempio se lo spezzone di segnale venisse preso non perfettamente coincidente con l’inizio della multitrama si avrebbe una situazione come quella rappresentata in Figura 4- 22.

Figura 4-22: Esempio BCCH a cavallo tra due multitrame.

Si supponga che l’algoritmo sia posizionato nel punto A e cioè sulla prima multitrama (T3’=0) e sul

secondo SCH (TC=1). Dalla Tabella 4-1 si vede che occorre attendere 255000+40*5000 campioni

prima che l’algoritmo si ponga sull’SCH adiacente al BCCH da spacchettare. Una volta attesi quel numero di campioni l’algoritmo si trova nel punto B ma non riesce a demodulare il BCCH in quanto la fine dello spezzone di segnale preso cade a cavallo del BCCH stesso. Quindi è necessario introdurre un ritardo di almeno un quinto di multitrama per evitare questo problema.

Ciascun burst BCCH ha bisogno di essere compensato in fase e demodulato coerentemente, nello stes- so modo in cui è stato spiegato per il burst SCH. La sola differenza tra il processing relativo all’SCH e quello relativo al BCCH è legato al recupero della fase. Infatti per il burst SCH, la stima dell’offset di fase e la compensazione è ottenuta dall’uso della sequenza di sincronismo. Invece, per i burst BCCH la stima di fase è ottenuta utilizzando della propria sequenza di midambolo. Una volta effettuata una decisione hard sulla sequenza di bit per ciascun burst BCCH, viene applicato un GSM de-interleaver, prima di inviare i bit all’interno di un decodificatore di Viterbi. Una volta estratta la LAI è possibile leggere l’MCC e l’MNC della BTS che sta trasmettendo, in modo da poter dire se il canale BCCH (e quindi il provider identificato) è autorizzato a trasmettere su quella frequenza o meno.

63

Ogni Local Area di una rete cellulare ha il proprio identificatore. La LAI è strutturata gerarchicamente ed è unica a livello internazionale. Essa è costituita da una parte stardandizzata a livello internazionale e una parte che dipende esclusivamente dall’operatore. La LAI è costituita da (Figura 4-23):

· MCC formato da 3 cifre, identifica il paese in cui è collocata la PLMN GSM.. · MNC formato da 2 cifre, identifica la PLMN GSM nel paese in cui si trova.

Entrambi i valori sono gli stessi che si trovano nell’IMSI dell’abbonato appartenente al paese appena visitato dal mobile.

· LAC (Location Area Code) è un codice di lunghezza variabile, fino ad un massimo di 2 ottetti che identifica la Location Area all’interno della PLMN GSM .

MNC MCC LAC

3 cifre 2 cifre 2 ottetti (max)

LAI

Figura 4-23: LAI.

La LAI viene trasmessa regolarmente dalla BTS sul canale BCCH. Così ogni cella è identificata uni- vocamente sul canale radio come appartenete a una Local Area e ogni MS può determinare la propria posizione corrente attraverso la LAI. Se la LAI cambia, il mobile notifica questo cambiamento e ri- chiede un aggiornamento della sua posizione nel VLR e HRL [15].

Una volta decodificato il payload BCCH viene estratta la LAI e quindi ottenuti MCC e MNC. Nel caso in cui il BCCH appartenga alle multitrame di indice 2 e 6, l’informazione geografica si trova nei bit 41:64, mentre se nel caso in cui il BCCH appartenga alle multitrame 3 e 7, la LAI è contenuta nei bit 25:48.

Documenti correlati