Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

100
UNIVERSIT ´ A DEGLI STUDI DI PAVIA FACOLT ´ A DI INGEGNERIA DIPARTIMENTO DI INFORMATICA E SISTEMISTICA Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE Relatore: Prof. Carla Vacchi Correlatore: Dott.ssa Paola Uggetti Tesi di Laurea di Marco Rossi Anno Accademico 2004/2005

description

Web: http://www.mritc.itEmail: [email protected] thesis, 2005/06 M.A. Computer EngineeringUniversita' degli Studi di Pavia (Pavia, Italy)

Transcript of Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

Page 1: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

UNIVERSITA DEGLI STUDI DI PAVIAFACOLTA DI INGEGNERIA

DIPARTIMENTO DI INFORMATICA E SISTEMISTICA

Implementazione

della sezione digitale

di un modulatore LINC

per la trasmissione

di segnali GSM-EDGE

Relatore:

Prof. Carla Vacchi

Correlatore:

Dott.ssa Paola Uggetti

Tesi di Laurea di

Marco Rossi

Anno Accademico 2004/2005

Page 2: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

Indice

1 Introduzione 6

1.1 Lavoro svolto . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.2 Scelta della tesi . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Teoria del sistema 10

2

Page 3: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

INDICE 3

2.1 Analogico o Digitale? . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 Il trasmettitore LINC . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.1 Struttura . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.2 Teoria Matematica . . . . . . . . . . . . . . . . . . . . 17

2.2.3 Vantaggi . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.3 La sezione digitale . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.1 Modulazione PSK . . . . . . . . . . . . . . . . . . . . . 19

2.3.2 Interpolazione . . . . . . . . . . . . . . . . . . . . . . . 21

2.3.3 Il filtro FIR . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.4 Separazione del segnale . . . . . . . . . . . . . . . . . . 31

2.4 Valutazione dei risultati . . . . . . . . . . . . . . . . . . . . . 33

2.4.1 Maschera dello spettro . . . . . . . . . . . . . . . . . . 33

2.4.2 EVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3 Implementazione Matlab 36

3.1 Lo schema Simulink . . . . . . . . . . . . . . . . . . . . . . . . 37

3.2 Effetti di quantizzazione . . . . . . . . . . . . . . . . . . . . . 39

3.3 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.3.1 Quantizzazione FIR . . . . . . . . . . . . . . . . . . . . 41

Page 4: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

INDICE 4

3.3.2 Quantizzazione Separazione . . . . . . . . . . . . . . . 45

3.3.3 Il filtro FIR . . . . . . . . . . . . . . . . . . . . . . . . 46

4 Implementazione VHDL 48

4.1 Note Implementative . . . . . . . . . . . . . . . . . . . . . . . 50

4.2 La libreria FIX-STD . . . . . . . . . . . . . . . . . . . . . . . 51

4.3 Descrizione generale . . . . . . . . . . . . . . . . . . . . . . . 53

4.4 Il filtro FIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.4.1 Specifiche di quantizzazione . . . . . . . . . . . . . . . 58

4.5 Il Separatore . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.5.1 Entita CORDIC.VHD . . . . . . . . . . . . . . . . . . 61

4.5.2 Specifiche di quantizzazione . . . . . . . . . . . . . . . 63

5 Conclusione 66

5.1 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

5.2 Sviluppi Futuri . . . . . . . . . . . . . . . . . . . . . . . . . . 68

A Fixed Point Toolbox 69

B L’algoritmo CORDIC 73

Page 5: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

INDICE 5

C Acronimi 80

D Codice vhdl 82

Page 6: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

11Capitolo

Introduzione

Il primo capitolo introduce al lettore l’argomento dell’elaborato, assieme ad

alcune considerazioni personali dell’autore sullo stato attuale della comuni-

cazione mobile.

6

Page 7: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

1.1. LAVORO SVOLTO 7

Il mercato della telefonia mobile negli ultimi anni si e rivelato redditizio.

Le aziende produttrici sono incentivate dagli utili ad investire in ricerca e

sviluppo per migliorare le prestazioni dei propri prodotti; attualmente le so-

luzioni tecnologiche ci offrono apparecchi cellulari in grado di adempiere ad

una vasta gamma di funzionalita, impensabili fino a qualche anno addietro.

L’utente finale e ormai abituato ad usufruire di servizi che vanno ben al di

la della comunicazione vocale. Navigazione su Internet tramite il protocollo

WAP (Wireless Application Protocol), trasmissione in tempo reale di segna-

li video e SMS (Short Message Service) sono ormai diventati caratteristiche

comuni a molti modelli di telefoni cellulari attualmente in commercio. Per

permettere all’utente di usufruire di questi servizi sono stati sviluppati diversi

standard telefonici nei quali, tramite tecniche via via piu sofisticate di mo-

dulazione digitale, a spese di occupazioni di banda maggiori, si raggiungono

velocita di scambio dell’informazione (bit rate) sempre piu elevate. Purtroppo

l’utilizzo di queste funzionalita e ancora limitato dalla durata della batteria;

le industrie produttrici sono sempre alla ricerca del punto di equilibrio, che

minimizzi i costi (sviluppo, produzione e distribuzione) e i consumi energetici

ma allo stesso tempo offra funzionalita avanzate. Una possibile soluzione al

problema risiede nell’investire nel settore della ricerca per progettare dispo-

sitivi utilizzando componenti economici ma ad alto rendimento, in modo da

ammortizzare i costi fissi con un alto volume di vendite.

1.1 Lavoro svolto

Questa tesi ha come oggetto l’implementazione hardware della sezione di-

gitale di una tipologia di modulatore per apparecchi di comunicazione mo-

bile, in particolare del modulatore LINC (Linear Amplification using Non

linear Components). E stato progettato e ottimizzato secondo le specifiche

Page 8: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

1.1. LAVORO SVOLTO 8

dello standard GSM-EDGE (Global System for Mobile communications -

Enhanced Data rate for GSM Evolution) ma la sua struttura modulare lo

rende adattabile a standard differenti. Il sistema nel suo complesso e compo-

sto da una sezione analogica e da una digitale. La sezione analogica e stata

studiata e implementata su silicio da dottorandi dell’universita di Pavia, in

collaborazione con ST Microelectronics. Uno studio teorico della parte digi-

tale e stato realizzato in particolare dalla dottoressa Paola Uggetti. I passi

fondamentali del mio lavoro sono stati:

• Comprendere a grandi linee il funzionamento del modulatore, at-

traverso articoli teorici pubblicati, il progetto Matlab della dott.ssa

Uggetti e i lavori di tesi precedenti.

• Studiare i risultati delle simulazioni Matlab, effettuate dalla dott.ssa

Uggetti in condizioni ideali e valutare l’impatto delle non idealita in un

sistema reale (in primis gli effetti di quantizzazione del segnale nei vari

punti del sistema, che contribuiscono in maniera notevole a degradare

le prestazioni)

• Proporre una soluzione concreta, tenendo conto dei vincoli di pro-

getto (area, potenza dissipata, velocita di funzionamento) cercando di

ottimizzare le prestazioni del sistema.

• Implementare in un linguaggio descrittivo dell’hardware il sistema, in

modo che potesse essere sintetizzato in un progetto successivo. In par-

ticolare e stato utilizzato il VHDL (Very high speed integrated circuit

Hardware Description Language).

Page 9: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

1.2. SCELTA DELLA TESI 9

1.2 Scelta della tesi

Questa tesi sin dall’inizio mi ha molto interessato perche esamina un proble-

ma reale che puo essere risolto in modi differenti. L’ingegnere informatico

puro potrebbe risolverlo implementando algoritmi di ottimizzazione degli er-

rori di quantizzazione, mentre l’ingegnere elettronico potrebbe proporre con-

fronti con architetture differenti. Il software, sin dal nome, e qualcosa di

astratto, mentre studiare qualcosa che diverra un componente reale di un

circuito di trasmissione dati mi ha appassionato enormemente e descrivere

un circuito digitale in VHDL mi ha permesso di apprezzare ancora di piu il

punto d’incontro tra informatica ed elettronica digitale.

Page 10: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

22Capitolo

Teoria del sistema

Per meglio comprendere l’implementazione del sistema, e necessario descrive-

re i principi teorici sui quali esso si basa. Questo capitolo contiene riferimenti

alla struttura del trasmettitore LINC e descrive come il segnale viene elabo-

rato per una corretta trasmissione. Include inoltre una descrizione dei metodi

che ho utilizzato per valutare l’esito delle simulazioni effettuate.

10

Page 11: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

11

La comunicazione e sempre stata fondamentale per qualsiasi societa. Il lin-

guaggio, il disegno e in seguito la scrittura hanno permesso ai popoli di

evolversi e trasmettere il proprio sapere e i propri valori. In tutta la storia

dell’umanita, la quantita di informazioni accessibili a tutti non e mai stata

cosı importante come oggi. Essa si presenta sotto forma di dati, immagini,

suoni e filmati. Se l’avvento delle prime reti informatiche ha fatto intrave-

dere queste prospettive, oggi e l’insieme delle attivita umane che invoca uno

sviluppo dei sistemi di comunicazione che, al di la delle frontiere, diano nuove

dimensioni al nostro pianeta.

Sorgente Ricevente

Un sistema di comunicazione puo essere schematizzato a grandi linee con

trasmettitori di informazioni e ricettori potenziali collegati tra loro attraver-

so canali di comunicazione. I terminali sono dotati di componenti comuni,

che si occupano di ottenere l’informazione, elaborarla ed infine trasmetterla.

Il trasmettitore e un circuito che si occupa di trasferire l’informazione (sia

essa vocale o di altro genere) al canale di telecomunicazione. Il compito del

trasmettitore di cui mi occupero in questo lavoro di tesi puo essere diviso in

tre passi principali:

• modulazione

• mixing

• amplificazione

Page 12: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.1. ANALOGICO O DIGITALE? 12

Tramite la modulazione si modificano le caratteristiche di ampiezza, fase o

frequenza di una portante, generata appositamente in funzione del segnale

che si vuole trasmettere. Tale segnale si trova inizialmente a una frequenza

inferiore rispetto alla frequenza prevista dallo standard di trasmissione (RF,

Radio Frequenza). Successivamente, tramite il mixing, si trasla il segnale

modulato sino alla frequenza definita. Infine, prima di giungere all’anten-

na, il segnale viene opportunamente amplificato per raggiungere i livelli di

potenza previsti. Obiettivo primario di questa tesi e di proporre una soluzio-

ne implementativa per la prima sezione, ovvero la modulazione, utilizzando

l’elettronica digitale.

2.1 Analogico o Digitale?

Realizzare il modulatore di segnale utilizzando circuiti analogici non e sempre

possibile o, per lo meno, potrebbe richiedere un grande sforzo di progettazio-

ne. Nel caso le operazioni di modulazione fossero particolarmente complesse

non e banale trovare una soluzione analogica, sempre che esista. Affidandosi

all’elettronica digitale, invece, il lavoro del progettista molte volte e facilitato.

A meno di esigenze particolari, infatti, deve implementare in un linguaggio

descrittivo le operazioni necessarie per ottenere il risultato, lasciando al cal-

colatore il compito di tradurre i costrutti in un circuito vero e proprio. Nel

caso di esigenze particolari, potrebbe essere costretto a progettare o migliora-

re manualmente sia il circuito che il layout finale. Un componente analogico

deve avere una risposta lineare alle sollecitazioni in ingresso, su tutta la banda

del segnale. Purtroppo piu le caratteristiche dei componenti analogici sono

spinte, piu il costo degli stessi aumenta. Il rovescio della medaglia e rappre-

sentato dal fatto che il circuito digitale soffre degli effetti di quantizzazione

del segnale. Diviene necessario prestare particolare attenzione alla progetta-

Page 13: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.1. ANALOGICO O DIGITALE? 13

zione, per evitare di peggiorare (in termini qualitativi) il segnale elaborato

dal circuito; uno dei problemi piu impegnativi da affrontare, nella progetta-

zione di circuiti digitali, pertanto, e proprio quello di valutare l’impatto degli

errori di quantizzazione e dimensionare la dinamica del circuito. In natura i

segnali sono analogici, cioe sono funzioni continue di una variabile continua

(come ad esempio la voce), e quindi possono essere classificati come tempo

continui a valore continuo. In alcune applicazioni, pero, e necessario disporre

di segnali digitali, che possono essere classificati come tempo discreti a valore

discreto. Il passaggio tra mondo analogico e mondo digitale avviene attraver-

so un convertitore analogico digitale (ADC - Analog to Digital Converter)

ed implica due operazioni: una discretizzazione nel tempo (campionamento),

ed una discretizzazione in ampiezza (quantizzazione). Durante il processo

di campionamento, il segnale a tempo continuo x(t), viene convertito in se-

gnale a tempo discreto x(n), prelevando dei campioni (samples) del segnale

originario, in precisi istanti temporali, separati da un intervallo T. Il campio-

namento non comporta perdita di informazione, purche il segnale di ingresso

abbia banda finita e la frequenza di campionamento sia sufficientemente ele-

vata. Sotto queste condizioni, il processo di campionamento e reversibile, ed

il segnale analogico puo essere ricostruito esattamente a partire dal segnale

campionato. Durante il processo di quantizzazione, il segnale campionato

x(n), che ha valori continui in ampiezza, viene convertito in segnale a valori

discreti xq(n), scelti tra un numero finito di valori possibili. Rappresentando

un segnale a valori continui con un numero limitato di valori, si introduce un

errore, detto errore di quantizzazione (o rumore di quantizzazione eq(n), dato

dalla differenza tra il segnale in ingresso e quello in uscita dal quantizzatore:

eq(n) = xq(n) − x(n) (2.1)

Questo errore dipende dall’accuratezza, cioe dal numero di bit del processo

di conversione A/D.

Page 14: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.2. IL TRASMETTITORE LINC 14

2.2 Il trasmettitore LINC

La tesi considera una tipologia di trasmettitori chiamati LINC. Il trasmettito-

re LINC fu inventato da Cox (1959) negli anni trenta allo scopo di ottenere

modulazioni di ampiezza (AM - Amplitude Modulation) di buona qualita

tramite valvole poco lineari e dalle prestazioni non propriamente ottimali.

2.2.1 Struttura

La struttura generale del sistema e la seguente:

CPUA/D

DATI

MODULATORE

PA

PA

I/O, GESTIONE TRASMISSIONE ANTENNA

Figura 2.1: Schema Funzionale - Sistema di comunicazione mobile

In ingresso si hanno due tipologie di dati: il segnale audio, che dev’essere

prima digitalizzato e altri dati, gia in formato digitale. Quando dev’essere

effettuata una trasmissione, l’unita di elaborazione centrale suddivide questi

dati in spezzoni (burst); a seconda dello standard utilizzato (GSM, GSM-

EDGE, UMTS), hanno lunghezza differente. Per semplicita durante la reda-

zione della tesi non si e tenuto conto di questo fattore, ma si e supposto che

il segnale fosse continuo. Ciascuno di questi burst viene suddiviso in blocchi

da 3 bit ciascuno, chiamati simboli (symbol).

Page 15: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.2. IL TRASMETTITORE LINC 15

Definizione 2.2.1 La frequenza intersimbolica, legata al tempo che inter-

corre tra l’arrivo di un simbolo e il successivo e un parametro dettato dallo

standard di trasmissione. Essa vale 270.8 kHz e verra indicata da ora in

avanti come fL

Il blocco di trasmissione, evidenziato in verde, e formato da due sottosezioni

differenti:

MODULATORE

PA

PA

E(t)

S1(t)

S2(t)

cos(ωt)

SEZ. DIGITALE SEZ. ANALOGICA

Figura 2.2: Schema Funzionale - Trasmettitore LINC

La sezione digitale elabora il segnale d’ingresso, effettuando quattro opera-

zioni:

1. Assegna ad ogni simbolo in ingresso un punto sulla mappa di modu-

lazione PSK.

2. Interpola il segnale per poterlo filtrare in modo corretto.

3. Limita la banda del segnale che verra trasmesso, per eliminare fre-

quenze che non possono-non devono essere trasmesse.

Page 16: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.2. IL TRASMETTITORE LINC 16

4. Separa il segnale in due componenti S1(t) e S2(t).

La parte della sezione digitale che raccoglie i simboli in ingresso, pertan-

to, lavora a frequenza pari a fL. Successivamente, con l’interpolazione, la

frequenza di elaborazione viene portata ad un valore piu alto.

Definizione 2.2.2 Studi teorici eseguiti dalla dott.ssa Paola Uggetti e da

collaboratori hanno stabilito che il coefficiente di sovracampionamento adatto

al sistema e 16×. La frequenza di elaborazione del segnale interpolato e quindi

16 × 270.8 kHz = 4332.8 kHz e verra indicata da ora in avanti con fM

E importante sottolineare che la variazione dei simboli si mantiene a

frequenza fL all’interno di tutta la sezione digitale. All’interno di essa,

pero, le elaborazioni sul segnale vengono eseguite a frequenza differente (fL

e fM)

La sezione analogica, invece, effettua queste operazioni:

1. Modula i segnali S1(t) e S2(t) con una portante di equazione cos(ω0t),

in modo da portarlo alla reale frequenza di trasmissione. Questa ope-

razione viene effettuata da un circuito chiamato PLL (Phase Locked

Loop). Matematicamente equivale a moltiplicare il segnale con la

sinusoide di frequenza ω0

2. Amplifica il segnale modulato per effettuare la trasmissione. Vengono

utilizzati due PA (Power Amplifiers) non lineari.

3. Ricombina il segnale modulato e lo trasmette.

Page 17: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.2. IL TRASMETTITORE LINC 17

2.2.2 Teoria Matematica

Per meglio comprendere il funzionamento del trasmettitore, e opportuno esa-

minare il principio matematico su cui esso si basa. Per ipotesi suppongo di

avere a che fare con un generico segnale continuo, E(t). Questo segnale e

modulato su una generica portante descritta dall’equazione cos(ω0t + φ(t))

Sia

S(t) = E(t)cos(ω0t + φ(t)) con 0 < E(t) < Emax (2.2)

Questo segnale equivale, in forma esponenziale, a

S(t) = <{E(t)ejφ(t)ejω0t} (2.3)

Allora si puo dimostrare che

S(t) =S1(t) + S2(t)

2(2.4)

Dove

S1(t) = Emaxejφ(t)ejαejω0tS2(t) = Emaxe

jφ(t)e−jαejω0t (2.5)

e

α = arccosE(t)

Emax

(2.6)

Questo significa che il trasmettitore LINC puo produrre un segnale modulato

in ampiezza combinando l’uscita di due amplificatori pilotati tramite segnali

ad inviluppo costante modulati esclusivamente in fase.

2.2.3 Vantaggi

Il principale vantaggio del modulatore LINC e il poter trasmettere un flus-

so di dati (in rosso) utilizzando due segnali ad ampiezza costante (in blu)

Page 18: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.2. IL TRASMETTITORE LINC 18

S1(t)

S2(t)

S(t)

Figura 2.3: Trasmettitore LINC - Schema fasoriale

ma a fase variabile. Cio permette di utilizzare amplificatori di potenza non

lineari e quindi economici. Per fare questo, pero bisogna investire risorse

sulla parte di sviluppo e progettazione del processore digitale di segnale. Un

altro importante vantaggio riguarda il consumo di potenza; la suddivisione

del segnale nelle due componenti di fase, infatti, non viene effettuata alla

frequenza di trasmissione del segnale (fH), ma ad una frequenza piu bassa

(fL), quindi con un minor consumo di energia. E opportuno sottolineare che

il ricevitore dovra possedere un circuito abbastanza complesso per ricavare

il segnale originario ma anche in questo caso la progettazione sara facilitata

sulla parte analogica, perche non serviranno preamplificazioni linenari.

Page 19: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 19

2.3 La sezione digitale

Una decrizione particolareggiata della sezione digitale del trasmettitore LINC

e necessaria per capire le scelte intraprese nell’implementazione. E impor-

tante, inoltre, effettuare richiami teorici sui concetti chiave che regolano il

funzionamento del sistema.

PSK INTERPOLAZIONE FIR SEPARAZIONE

MODULATORE LINC

Figura 2.4: Schema Funzionale - Modulatore LINC

2.3.1 Modulazione PSK

Il segnale di ingresso e formato da flussi di dati, composti da simboli. Ogni

simbolo, formato da 3 bit, viene assegnato ad una posizione sul cerchio di

raggio unitario, utilizzando le convenzioni della modulazione M-PSK (Phase

Shift Keying) (in questo caso M = 8). E doveroso sottolineare che la succes-

sione dei numeri, a partire dallo ‘0’, e scandita da un codice di numerazione

Gray.1

1La successione e ‘000’,’001’,’011’,’010’,’110’,’111’,’101’,’100’

Page 20: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 20

Trasmettere il simbolo 1-3-7 significa idealmente compiere il cammino trac-

ciato in figura 2.5. Nella realta cio significa trasmettere per ogni istante il

valore del modulo e della fase del vettore che si muove all’interno del cerchio

per passare tra tutti i punti. Siamo in ambito digitale, per cui il clock di

sistema definisce la frequenza intersimbolica, ovvero quella legata al tempo

che passa tra un simbolo e il successivo.

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Im

Re

Mappatura M-PSK

1

3

2

6

7

5

4

0

Figura 2.5: Traiettoria 1-3-7

Nella figura 2.5 ogni punto in rosso rappresenta il momento in cui viene scan-

dito il clock del segnale d’ingresso. Al tempo zero ci troviamo al punto 1, e ci

Page 21: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 21

dirigiamo verso il 3, per trasmettere il secondo simbolo. Arrivati al simbolo

3, e necessario che la portante inverta bruscamente la fase. Questo si traduce,

nel dominio delle frequenze, in un’occupazione idealmente infinita della ban-

da del segnale trasmesso e impone la necessita di filtrare tale informazione.

In un sistema in cui il canale ha banda limitata, infatti, non ci si puo per-

mettere di avere un’estensione spettrale maggiore di quanto assegnato dallo

standard, poiche si potrebbe interferire con i canali adiacenti. Il filtraggio,

limitando l’estensione spettrale del segnale, modera tali interferenze. Dotare

l’apparato ricevente di un filtro in ingresso, inoltre, attenua (o elimina) le

componenti di ‘rumore’ che stanno al di fuori della banda del segnale.

2.3.2 Interpolazione

Prima dell’operazione di filtraggio e opportuno sovracampionare il segnale,

in modo da aumentare la risoluzione in uscita, e quindi delineare un cammino

piu ‘continuo’. L’interpolatore e definito come una scatola nera che raccoglie

il segnale d’ingresso ad una frequenza di valore basso e restituisce il segnale

ad una frequenza piu alta; il rapporto

OS = numero simboli in uscitanumero simboli in ingresso

e detto coefficiente di sovracampionamento (oversampling ratio).

Se indichiamo con n il numero di simboli del segnale di input e con m deno-

tiamo il fattore di sovracampionamento, il segnale in output sara costituito

da n blocchi, all’interno dei quali avremmo 1 simbolo (ossia il segnale in

ingresso) e m-1 zeri.

Esempio 2.3.1 Sia il fattore di sovracampionamento pari a 3x, sia il segnale

in input e A B C; allora il segnale di output sara A 0 0 B 0 0 C 0 0

Page 22: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 22

-1.5 -1 -0.5 0 0.5 1 1.5

-1.5

-1

-0.5

0

0.5

1

1.5Im

Re

Mappatura M-PSK

1

3

2

6

7

5

4

0

Figura 2.6: Traiettoria correttamente filtrata

In questa figura la traiettoria del segnale e correttamente filtrata, e nella

trasmissione non avvengono brusche variazioni di fase. Ogni punto rosso

rappresenta l’uscita della fase di filtraggio.

Bisogna porre attenzione alla classe di filtro utilizzato e alla scelta dei pa-

rametri, dato che un filtro troppo ‘aggressivo’ modificherebbe la traiettoria

del segnale, causando un overshoot: fenomeno per cui il modulo dell’invi-

luppo raggiunge valori molto maggiori di quelli ammissibili, determinando

uno spreco di potenza e/o cadendo in zone di non linearita (vedi figura 2.7).

Inoltre il filtraggio puo portare a interferenza intersimbolica (InterSymbol

Page 23: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 23

-1.5 -1 -0.5 0 0.5 1 1.5

-1.5

-1

-0.5

0

0.5

1

1.5Im

Re

Mappatura M-PSK

1

3

2

6

7

5

4

0

Figura 2.7: Traiettoria non correttamente filtrata

Interference) e causare mutua interferenza tra simboli consecutivi. Un’accu-

rata analisi del sistema e necessaria per trovare il compromesso tra potenza

dissipata e banda filtrata.

2.3.3 Il filtro FIR

Diversi studi teorici2 hanno dimostrato che il filtro indicato per questo tipo di

modulazione e un filtro FIR (Finite Impulse Response) con risposta impul-

2Mashhour (1999),Schell (2000)

Page 24: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 24

siva di tipo Gaussiano. Un generico filtro FIR di lunghezza M con ingresso

x(n) ed uscita y(n) e descritto dalla seguente equazione alle differenze :

y(n) = b0x(n) + b1x(n − 1) + ... + b(m−1)x(n − M) (2.7)

dove l’insieme {b1} costituisce l’insieme dei coefficienti del filtro.

Questa equazione suggerisce un modo possibile per la realizzazione di un

sistema di questo tipo: l’uscita non e altro che la somma degli ingressi ritar-

dati opportunamente e moltiplicati per i coefficienti bk. Si ricorda che in un

sistema FIR si ha: bk = 0 per k=0 e k=M, dove M e l’ordine del filtro. Per

implementare il sistema FIR con questa strategia, servono un numero finito

di elementi di ritardo, di moltiplicatori e di sommatori, come illustrato in

figura:

1

Output

K b(5)

K b(4)

K b(3)

K b(2)

K b(1)

z -1

z -1

z -1

z -1 1

Input1

Figura 2.8: Filtro FIR - Forma Canonica

E importante sottolineare che prima dell’applicazione del filtro, il segnale

modulato deve subire una pre-elaborazione secondo un preciso algoritmo, con

lo scopo di correggerne la traiettoria3. Per effettuare le simulazioni e stato

generato un vettore di numeri casuali di simboli da trasmettere. Possono

essere 8 simboli differenti, che si muovono verso uno degli altri 8 simboli. Per

un numero molto alto di prove, quindi, questo vettore copre tutte le possibili

traiettorie di input. La figura 2.9 rappresenta queste traiettorie.

3Schell (2000)

Page 25: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 25

−1.5 −1 −0.5 0 0.5 1 1.5−1.5

−1

−0.5

0

0.5

1

1.5

Figura 2.9: Traiettoria originale

Si nota immediatamente che in otto casi avviene il passaggio per il punto

(0,0); Cio rappresenta un notevole problema per l’architettura LINC, che

e basata su due segnali simmetrici, modulati in fase. Una spiegazione piu

dettagliata sara fornita piu avanti, quando sara descritta l’architettura della

seconda parte del modulatore. Per ovviare al problema, deve essere applicata

un’operazione matematica al segnale d’ingresso.

Questa operazione dev’essere:

1. Reversibile, in modo che l’unita ricevente possa ricavare il segnale

originale.

2. Ininfluente rispetto all’informazione da trasmettere, ovvero che non

cambi il significato delle informazioni da trasmettere.

3. Di facile implementazione, per non appesantire il circuito in modo

eccessivo.

Page 26: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 26

4. Funzionale, ovvero con lo scopo di impedire che il segnale percorra il

punto (0,0), per evitare che non linearita nelle regioni a bassa potenza

distorcano il segnale.

Indichiamo con cn il segnale che esce dal codificatore 8-PSK e inoltre sia

pn = e3πn

8

avremo che sn = pncn dove sn e il segnale risultante, sul quale verra applicato

il filtro FIR. La funzione e3πn

8 e periodica, con periodo n=16. In parole povere

ogni simbolo modulato in fase 8-PSK viene ulteriormente ruotato di 3πn8

dove

n e l’indice del simbolo; questo tipo di operazione di definisce Cumulative

Phase Shifting.

−1.5 −1 −0.5 0 0.5 1 1.5−1.5

−1

−0.5

0

0.5

1

1.5

1

2

3

456

7

8

9

10

11

12 13 14

15

16

A

B

C

D

E

F

G

H

Figura 2.10: Esempio CPS - figura 1

Il segnale originale e correttamente assegnato a valori della modulazione 8-

psk; in particolare nel nostro caso il segnale (in rosso) passa sui simboli

F-B-E-H

Page 27: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 27

−1.5 −1 −0.5 0 0.5 1 1.5−1.5

−1

−0.5

0

0.5

1

1.5

1

2

3

456

7

8

9

10

11

12 13 14

15

16

A

B

C

D

E

F

G

H

Figura 2.11: Esempio CPS - figura 2

Il segnale CPSK (in blu), parte correttamente dal simbolo 11 (che coincide

con F), il primo valore cade su 6, ovvero sarebbe il simbolo 3 ruotato di 3π8

,

il secondo su 15 (ovvero E-9 ruotato di 6π8

) e il terzo simbolo su 8 (ossia H-15

ruotato di 9π8

) ).

L’operazione di CPS trasforma il segnale di partenza in segnale ruotato, non

passante per (0,0). Questa operazione risolve anche il problema di trasmis-

sione di due simboli uguali uno dopo l’altro. Senza CPS il sistema si sarebbe

‘fermato’ nel suo stato, con il CPS un cammino avviene in tutti i casi.

A questo punto e effettivamente possibile applicare il filtro che riduca la

banda del segnale trasmesso. I coefficienti di questo filtro sono determinati

dalla sua risposta impulsiva, la quale e definita dalla seguente equazione, il

cui valore e diverso da zero nell’intervallo −52T < t < 5

2T e vale

p(t) = c0t +5

2T (2.8)

Page 28: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 28

−1.5 −1 −0.5 0 0.5 1 1.5−1.5

−1

−0.5

0

0.5

1

1.5

Figura 2.12: Traiettoria con CPS

dove T = 1fL

ovvero il tempo di arrivo di ogni simbolo.

Si ha che

c0(t) =

∏3i=0 f(t + iT ) per 0 ≤ t ≤ 5T

0 altrimenti(2.9)

f(t) =

sinπ∫ t0 g(u)du per 0 ≤ t ≤ 4T

cosπ∫ t−4T0 g(u)du per 4T ≤ t ≤ 8T

0 altrimenti

(2.10)

g(t) =1

2gGSMK(t − 2T ) (2.11)

gGSMK(t) =1

2Terfcα

t

T− 1

2− erfcα

t

T+

1

2(2.12)

Page 29: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 29

α = 2π(0.3)/√

2ln (2.13)

Essendo l’ordine pari a 5 e il fattore di interpolazione pari a 16, ci sono 80+1

coefficienti che moltiplicano i dati di ingresso, dopo che sono stati interpolati.

Di seguito le caratteristiche significative del filtro.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−250

−200

−150

−100

−50

0

50

Normalized Frequency (×π rad/sample)

Mag

nitu

de (

dB)

Magnitude Response (dB)

Figura 2.13: Risposta in frequenza (modulo) del filtro

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9−1400

−1200

−1000

−800

−600

−400

−200

0

Normalized Frequency (×π rad/sample)

Pha

se (

degr

ees)

Phase Response

Figura 2.14: Risposta in frequenza (fase) del filtro

Page 30: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 30

0 10 20 30 40 50 60 70 800

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Samples

Impulse Response

Am

plitu

de

Figura 2.15: Risposta impulsiva del filtro

0 10 20 30 40 50 60 70 800

5

10

15

20

25

30

Samples

Step Response

Am

plitu

de

Figura 2.16: Risposta allo scalino del filtro

Page 31: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 31

Dopo l’applicazione del filtro, la traiettoria del segnale non e piu rettilinea a

tratti ma segue un cammino meno diretto.

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

Figura 2.17: Traiettoria filtrata

2.3.4 Separazione del segnale

CONVERSIONE DA NUMERO COMPLESSO A MODULO E FASE

-+

++

NORM ARC COSIM

RE

MODULO

FASE

Figura 2.18: Schema Funzionale - Separazione del segnale

In entrata a questo stadio si ha un numero complesso, con la componente

reale e la componente immaginaria. Il primo blocco funzionale ne calcola

Page 32: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.3. LA SEZIONE DIGITALE 32

modulo e fase. Il modulo viene normalizzato secondo un valore fisso, ricavato

dalle simulazioni e ne viene calcolato l’arcocoseno. Il risultato finale viene

sommato e sottratto al valore della fase sopra calcolato.

Osservazione 2.3.1 Dopo diverse simulazioni, si e visto che il valore mas-

simo in input e pari a circa 1.6, per cui la normalizzazione viene calcolata

su quel valore.

Bisogna trasmettere un segnale, di cui conosciamo modulo e fase (il vettore

blu). Imponiamo che il modulo dei vettori rossi sia identico, pari a uno (per

utilizzare un amplificatore non lineare) Quello che resta da calcolare e quanto

vale la fase dei due vettori rossi, ovvero quanto vale l’angolo α.

S1(t)

S2(t)

S(t)

α

Dato che α = arccos |ρ∗| , dove ρ∗ e il modulo normalizzato, per ρ∗ che tende

a zero, il valore di α non puo superare 90◦.

Page 33: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.4. VALUTAZIONE DEI RISULTATI 33

Se il modulo tendesse a zero, i due vettori modulati in fase (i vettori rossi)

tenderebbero ad essere paralleli. La loro ricombinazione, percio, darebbe un

segnale nullo. Questo e uno dei motivi per cui al segnale dev’essere applicata

la rotazione cumulativa di fase prima di effettuare il filtraggio.

2.4 Valutazione dei risultati

Il progetto e stato sviluppato per lo standard GSM-EDGE, ma e stato im-

plementato considerando la possibilita di poterlo adattare ad altri standard

attualmente in vigore (GMS, UMTS). Per valutare la correttezza delle simu-

lazioni, pero, e necessario affidarsi a metodi precisi e a vincoli stabiliti dallo

standard. Durante la realizzazione del lavoro di tesi ho dovuto sottostare a

due parametri che indicano quanto il modulatore effettua correttamente il

suo compito.

2.4.1 Maschera dello spettro

Lo spettro del segnale in uscita deve essere contenuto in una maschera, de-

scritta con rigore dallo standard GSM EDGE, per non interferire con altri

canali adiacenti.

La maschera, disegnata in rosso, rappresenta il limite a cui lo spettro del

segnale puo arrivare. In condizioni ottimali (ovvero senza effetti di quantiz-

zazione del segnale, quindi nelle simulazioni Matlab a dinamica ‘illimitata’)

lo spettro e ben al di sotto dei valori limite (figura ??,in nero). In un si-

stema reale mantenere tale livello richiede uno sforzo non banale in termini

di tempo per lo sviluppo di una soluzione valida e di potenza dissipata per

effettuare i calcoli con una tale precisione. Per questa applicazione e piu

Page 34: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.4. VALUTAZIONE DEI RISULTATI 34

−8 −6 −4 −2 0 2 4 6 8

x 106

−80

−70

−60

−50

−40

−30

−20

−10

0

10

Frequenza [Hz]

Spe

ttro

di p

oten

za [d

Bc]

− M

asch

era

ED

GE

MASKMatlab

Figura 2.19: Spettro del segnale

importante minimizzare i consumi e l’area occupata, quindi mi e stato posto

l’obiettivo di rimanere 15 dB sotto la maschera. Questo valore tiene conto

anche del fatto che alla sezione digitale seguira anche la sezione analogica,

che introdurra ulteriori non-linearita e peggiorera ulteriormente lo spettro.

Naturalmente l’operazione di filtraggio influisce notevolmente sullo spettro

di segnale. Senza di esso le frequenze in output si spostano ben al di fuori

della maschera.

2.4.2 EVM

Ad ogni trasmettitore progettato corrisponde un ricevitore. Anche nel caso

del LINC esiste un circuito che si occupa di ricevere il segnale ad alta fre-

quenza (fH) e riconvertirlo in simboli. A causa della non idealita del canale

di trasmissione e degli errori introdotti nella modulazione il segnale ricevuto

Page 35: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

2.4. VALUTAZIONE DEI RISULTATI 35

non e mai uguale al segnale trasmesso. Il ricevitore, pertanto deve avere

un margine di errore, all’interno del quale il segnale viene riconosciuto con

successo. Dopo aver ricevuto il segnale e averlo translato alla frequenza fL,

il ricevitore vedra delle traiettorie simili alla figura 2.9. Un filtro particolare,

con annesso un decimatore (che funziona nella maniera opposta dell’inter-

polatore) trasforma il segnale come in figura 2.12. Infine al segnale verra

applicata l’operazione inversa alla CPS, ovvero una SPS (Subtractive Phase

Shifting) per ottenere un segnale simile a quello di figura 2.17. A questo

punto, teoricamente, la traiettoria di input (ovvero la sequenza di simboli

trasmessa) dovrebbe coincidere con la traiettoria ricevuta e filtrata, con un

margine di errore. Per quantificare questo margine dobbiamo definire una

grandezza conosciuta come EVM (Error Vector Magnitude). Il vettore er-

rore (error vector) (in rosso) e la differenza vettoriale tra il valore ideale e

quello effettivamente trasmesso del segnale. L’EVM e dato dal valor medio

del modulo (in blu) di tale vettore. Nella realizzazione del progetto l’errore

massimo ammesso per la parte digitale e pari al 5 %.

error vector

error vector magnitude

segnale ideale

segnale trasmesso

Figura 2.20: Misura dell’EVM

Page 36: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

33Capitolo

Implementazione Matlab

Per lo studio teorico del circuito digitale e stato utilizzato l’ambiente di si-

mulazione Matlab-Simulink. Attraverso un semplice linguaggio di scripting,

progettato per il calcolo scientifico, e stato possibile ottenere da subito dei ri-

sultati concreti, senza doversi preoccupare delle funzioni di base (es. gestione

delle matrici, calcolo numerico approssimato, ecc)

36

Page 37: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

3.1. LO SCHEMA SIMULINK 37

3.1 Lo schema Simulink

Grazie al lavoro svolto dalla Dott.ssa Uggetti, buona parte della modelliz-

zazione del progetto era gia pronta. Come prima cosa, ho investito un po

di tempo nel comprenderne il funzionamento e ho riorganizzato la struttura

secondo lo stile adottato nel resto del progetto.

I_AN1

I_AN2

O_ANT

Trasmissione

output

Signal To

Workspace

I_SEP

O_SEP1

O_SEP2

Separazione del Segnale

Random Integer

I_PSK O_FIR

Psk, Interpolazione, FIR

Integer to Bit Converter

Figura 3.1: Trasmettitore LINC - Modello Simulink - Generale

Lo schema e molto simile alla figura 2.4, per semplicita sono state raggruppate

alcune sezioni. Per simulare il flusso di dati GSM-EDGE si e utilizzato un

blocco che genera interi casuali da 0 a 7, convertiti poi in numeri binari.

1

O_FIR

Zero-Order Hold

Ramp

Product

M-PSK x[n/16]

FIR Interpolation

exp(jx)

1

I_PSK

Figura 3.2: Trasmettitore LINC - Modello Simulink - Sezione 1

La prima parte effettua la rotazione del segnale e il risultato viene immesso

in un blocco Simulink con interpolatore e filtro integrati. La rotazione viene

implementata mediante la moltiplicazione del segnale in input con un valore

che varia nel tempo. Il blocco ‘Ramp’ genera un segnale di tipo ‘rampa’ con

Page 38: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

3.1. LO SCHEMA SIMULINK 38

pendenza pari a 3πn8

; il mantenitore di ordine zero (‘Zero-Order Hold’) cam-

piona il segnale, sincronizzandolo al tempo di simbolo. L’esponenziale calcola

il valore dell’espressione l(z) = eik(z) dove k(z) e l’output del mantenitore e

i =√−1; utilizzo z come variabile perche il sistema e a tempo discreto. Si

nota che ogni sedici iterazioni la successione si ripete. Questo coefficiente

(che mantiene una sorta di informazione di stato) viene moltiplicato con il

simbolo di ingresso, modulato con la codifica gray-PSK e il risultato viene

passato al blocco di interpolazione-filtraggio.

Osservazione 3.1.1 La funzione che regola l’ingresso del sistema ha due

variabili: il simbolo, ovvero una variabile indipendente dallo stato attuale

del sistema e il coefficiente di rotazione, che e una variabile di stato (imple-

mentata in simulink con una rampa). In un circuto hardware una soluzione

implementativa potrebbe essere l’utilizzo di un contatore.

Sul blocco filtro-interpolatore non c’e nulla di particolare da sottolineare. Ma-

tlab prende come parametri i coefficienti del filtro da applicare e il coefficiente

di sovracampionamento ed elabora automaticamente il risultato.

2

O_SEP2

1

O_SEP1

acos

Trigonometric Function

Divide

1.6

Constant

|u| u

Complex to Magnitude-Angle

1

I_SEP

Figura 3.3: Trasmettitore LINC - Modello Simulink - Sezione 2

Page 39: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

3.2. EFFETTI DI QUANTIZZAZIONE 39

La sezione di separazone del segnale e realizzata con due blocchi principali,

che effettuano la conversione da coordinate cartesiane a coordinate polari, e il

calcolo dell’arcocoseno. Gli operatori di somma e moltiplicazione provvedono

a normalizzare il modulo e addizionare-sottrarre la fase.

1

O_ANT

UnwrapB

UnwrapA Product1

Product

Divide1

1.6

Constant2

2

Constant1

exp(jx)

exp(jx) 2

I_AN2

1

I_AN1

Figura 3.4: Trasmettitore LINC - Modello Simulink - Sezione 3

L’ultimo blocco dello schema provvede a simulare il comportamento della se-

zione analogica, gia realizzata da un altro team di sviluppo. Il segnale, dopo

essere stato modulato e amplificato, viene ricombinato e trasmesso all’an-

tenna; naturalmente non verra presa in considerazione nell’implementazione

VHDL)

3.2 Effetti di quantizzazione

Matlab effettua tutti i suoi calcoli utilizzando tipi di dati ad alta precisione

(a seconda del processore utilizzato) in virgola mobile. Implementare quel

genere di operazioni su un circuito hardware richiede un notevole sforzo di

progettazione ma soprattutto un notevole dispendio in termini di area del

Page 40: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

3.3. RISULTATI 40

circuito e di potenza dissipata. Si e pertanto deciso di studiare a fondo il

problema della quantizzazione del segnale, ponendo un valore limite al nu-

mero di bit utilizzati per l’implementazione in VHDL delle varie operazioni.

Naturalmente questo valore non e fisso per tutto il percorso del segnale, ma

varia in funzione delle esigenze di precisione. Durante lo sviluppo del proget-

to ho dovuto valutare l’impatto sul risultato finale, in termini di spettro e di

EVM, dei cambiamenti alla risoluzione di ognuno di questi parametri. Natu-

ralmente non si poteva procedere effettuando le prove di quantizzazione su

una sezione sola, sperando che gli effetti si sommassero in maniera lineare, ma

per studiare la quantizzazione si e dovuto prendere in considerazione l’intero

sistema, effettuare parecchie prove e valutare i risultati. Questo puo essere

schematizzato come un problema di ottimizzazione: abbiamo n variabili da

minimizzare, ovvero l’errore di quantizzazione, il costo in termini di area e la

potenza dissipata. La prima la possiamo valutare immediatamente, perche

abbiamo gli strumenti offerti da Matlab, per le altre possiamo affidarci alla

sintesi, che fornisce un’idea approssimata di questi parametri. Si tratta di

un processo di tipo ‘trial and error’ condotto con buon senso e accortezza;

essenzialmente si eseguono modifiche sul progetto, si valutano i risultati e

si ricomincia a provare. Fortunatamente non e necessario riprogettare tutto,

Matlab offre strumenti validi che, cambiando pochi parametri, permettono di

visualizzare il nuovo risultato; lo strumento principale per lo studio di segnali

quantizzati e il Fixed Point Toolbox. Ulteriori indicazioni sull’uso di questo

toolbox sono contenute nell’appendice A.

3.3 Risultati

Sono stati svolti svariati esperimenti in ambiente Matlab, per comprendere

il funzionamento del sistema e per capire quali potessero essere i parametri

ottimali da inserire nel prototipo finale. Di seguito i risultati piu rilevanti.

Page 41: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

3.3. RISULTATI 41

3.3.1 Quantizzazione FIR

Come primo esperimento ho quantizzato a dinamica differente l’output che

proveniva dal filtro FIR, e ho visualizzato il risultato ottenuto. Il segnale

originale, calcolato da MATLAB a precisione macchina compie un cammino

continuo su tutti i punti (figura 3.5). Quantizzando fino a 12 bit la differenza

tra il segnale originale e quello quantizzato si attesta in media a valori minori

di 10−4(figura 3.6). Nella figura 3.7 il segnale e stato quantizzato a 8 bit; si

nota che esso percorre una griglia, saltando i valori intermedi e introducendo

elevato rumore di quantizzazione.

−1.3 −1.2 −1.1 −1 −0.9 −0.8 −0.7 −0.6 −0.5 −0.4 −0.30.8

0.9

1

1.1

1.2

1.3

1.4

1.5

Figura 3.5: Output del FIR senza quantizzazione

In termini di spettro (figura 3.8)possiamo notare che a 10 e a 12 bit il segnale e

ancora correttamente contenuto nella maschera di trasmissione. Utilizzando

8 bit, pero, il segnale fuoriesce dalla maschera e crea interferenza con gli altri

canali di comunicazione.

Come si puo notare, 8 bit non sono sufficienti per immagazzinare tutte le

informazioni. 10 e 12 bit potrebbero andare bene, ma si sta valutando una

Page 42: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

3.3. RISULTATI 42

−1.3 −1.2 −1.1 −1 −0.9 −0.8 −0.7 −0.6 −0.5 −0.4 −0.30.8

0.9

1

1.1

1.2

1.3

1.4

1.5

Figura 3.6: Output del FIR con quantizzazione a 12 bit

−1.3 −1.2 −1.1 −1 −0.9 −0.8 −0.7 −0.6 −0.5 −0.4 −0.30.8

0.9

1

1.1

1.2

1.3

1.4

1.5

Figura 3.7: Output del FIR con quantizzazione a 8 bit

situazione non reale. Quello che e stato quantizzato non e il segnale in

tutti i punti del processo, ma solamente il risultato finale. D’altronde cio ci

permette di delineare un limite, al di sotto del quale non e possibile ridurre

la dinamica. In relazione alla prima parte (modulazione PSK e filtraggio) gli

Page 43: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

3.3. RISULTATI 43

−8 −6 −4 −2 0 2 4 6 8

x 106

−90

−80

−70

−60

−50

−40

−30

−20

−10

0

10

Frequenza [Hz]

Spe

ttro

di p

oten

za [d

Bc]

− M

asch

era

ED

GE

MASKmatlabmatlab 12 bitmatlab 8 bit

Figura 3.8: Spettro del segnale - Confronto tra differenti quantizzazioni

Quantizzazione (bit) EVM

nessuna 1.2689

12 1.5613

10 2.0305

8 6.1739

Tabella 3.1: Valori dell’EVM in funzione al numero di bit utilizzati

elementi che devono essere quantizzati sono:

• il valore iniziale della corrispondenza simbolo-posizione PSK; su questo

valore verranno effettuati tutti i calcoli.

• il valore dei coefficienti del filtro FIR; questi coefficienti dovranno essere

moltiplicati per i dati di ingresso

• la capacita (in termini di dinamica) delle unita di moltiplicazione dei

coefficienti.

• la capacita (in termini di dinamica) dell’unita di addizione dei prodotti.

Page 44: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

3.3. RISULTATI 44

Per quanto riguarda la struttura interna del FIR, ho notato che dando un va-

lore basso alla dinamica dei moltiplicatori (16-18 bit) comparivano in output

alcuni ‘artefatti’.

−5 0 5 10 15 20 25

x 105

−95

−90

−85

−80

−75

−70

Frequenza [Hz]

Spe

ttro

di p

oten

za [d

Bc]

− M

asch

era

ED

GE

MASKmatlabmatlab16−16

Figura 3.9: Spettro del segnale - Artefatti di quantizzazione

Il fenomeno e causato dagli errori di arrotondamento nella moltiplicazione.

Se, per esempio volessimo moltiplicare due numeri, codificati con 16 bit di

dinamica ciascuno, il numero ideale di bit per contenere il risultato e 32. Un

numero inferiore provoca questo genere di artefatti. Per effettuare queste

prove sulla dinamica del segnale, e stato sufficiente inserire un blocco di tipo

‘data conversion’ appena prima del blocco ‘FIR / interpolation’. Simulink

supporta, per quel blocco, l’elaborazione di oggetti ‘fi’. E inoltre possibile

con facilita specificare all’interno del blocco come comportarsi con i parametri

relativi alla quantizzazione (ad esempio dinamica dei coefficienti, saturazione

o troncamento in caso di overflow, ecc). Diverse simulazioni hanno portato

a determinare che un giusto compromesso tra prestazioni e precisione della

dinamica si ottiene effettuando l’elaborazione a 13 bit.

Page 45: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

3.3. RISULTATI 45

3.3.2 Quantizzazione Separazione

Lo studio degli effetti di quantizzazione sulla sezione di separazione del segna-

le si e rivelato molto piu complesso del previsto. Sono presenti due operazioni

non banali, ovvero calcolo di modulo e fase di un numero complesso e calcolo

dell’arcocoseno di un numero. Queste due operazioni non sono direttamente

implementabili in hardware (come la somma o la moltiplicazione) ma possono

essere implementate in maniera differente.

A questo punto si sono presentate due possibilita:

1. Effettuare i calcoli utilizzando i blocchi Matlab gia esistenti, per poi

quantizzare il risultato appena fosse possibile. E un’ipotesi abbastanza

plausibile, non porterebbe al medesimo risultato dell’implementazione

VHDL, ma servirebbe come punto di partenza per decidere i parametri

di quantizzazione.

2. Decidere come realizzare in hardware tali operazioni, e implementarle

sia in Matlab che in VHDL. E una soluzione piu azzardata, e sicu-

ramente piu dispendiosa in termini di tempo, ma che rende possibile

ottenere un risultato VHDL che coincide con le simulazioni Matlab.

I vantaggi di utilizzare Matlab per tutte le simulazioni sono i seguenti:

1. Portabilita: il team di sviluppo della sezione analogica ha progettato

il sistema utilizzando Matlab e programmi di simulazione circuitale; al

momento attuale non e prevista un’integrazione con modelli VHDL.

Per ovviare al problema, pero, si possono elaborare i dati in VHDL e

convertirli in un formato comprensibile a Matlab, stratagemma che ho

effettivamente utilizzato per valutare le prestazioni.

Page 46: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

3.3. RISULTATI 46

2. Facilita di manutenzione: quella proposta in questa tesi e una so-

luzione ad uno specifico problema, con dei vincoli molto stringenti (in

particolare e una soluzione per lo standard GSM-EDGE). Dev’essere

possibile in ogni momento adattare la soluzione ad un altro sistema

oppure modificare facilmente (senza riprogettare il tutto) il trade-off

‘prestazioni’ (ovvero quanto lo spettro e sotto la maschera) e ‘costi’

(ovvero area occupata - potenza dissipata). Fortunatamente, per co-

me e stato implementato il codice VHDL, e possibile, tramite semplici

parametri, aumentare o diminuire la dinamica di ciascun punto del

sistema.

Dopo attente valutazioni ho deciso dei scegliere la prima strada, investendo

piu tempo sul codice VHDL, dato che come obiettivo primario era produrre

un risultato concreto. Varie simulazioni effettuati mi hanno portato a stabi-

lire a 15 bit il valore finale di uscita della sezione digitale. Per un’accurata

descrizione della dinamica scelta per ogni singolo componente del sistema

rimando alla sezione di implementazione VHDL.

3.3.3 Il filtro FIR

La figura 3.10 mette a confronto il segnale d’ingresso (colore blu e nero),

dopo che e stata effettuata la rotazione di 3π8

e il segnale filtrato, (in colore

rosso e verde), in un istante non determinato della simulazione. Il segnale

filtrato possiede una risoluzione maggiore, dato che e stato effettuato il so-

vracampionamento a 16x. Si parte dal punto ‘A’ per entrambi i segnali e

si prosegue il cammino. I cambiamenti di colore sono in corrispondenza del

simbolo trasmesso. Si puo notare che il segnale filtrato segue abbastanza

fedelmente l’originale, con le dovute eccezioni. Per esempio, al punto ‘B’ la

potenza del segnale e relativamente piu bassa, mentre tra il ‘C’ e il ‘D’ c’e

un leggero overshoot. Le circonferenze concentriche rappresentano il valore

Page 47: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

3.3. RISULTATI 47

minimo e il valore massimo della potenza trasmessa, che in questo caso varia

da 1.3 a 0.5; nel complesso e compreso ta 0.2 e 1.6.

−1.5 −1 −0.5 0 0.5 1 1.5−1.5

−1

−0.5

0

0.5

1

1.5

A

B

C

D

E

F

Figura 3.10: Confronto fra segnale trasmesso e segnale filtrato - figura 1

La figura 3.11, invece, mette in evidenza le distanze simbolo reale-ideale at-

traverso delle circonferenze. Una modulazione accurata tende a minimizzare

questa distanza, permettendo al ricevitore di interpretare il segnale.

−1.5 −1 −0.5 0 0.5 1 1.5−1.5

−1

−0.5

0

0.5

1

1.5

A

A

B

C

D

E

F

Figura 3.11: Confronto fra segnale trasmesso e segnale filtrato - figura 2

Page 48: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

44Capitolo

Implementazione VHDL

Il passo finale del lavoro e l’implementazione delle funzionalita del modula-

tore LINC in un Hardware Description Language (linguaggio di descrizione

dell’hardware) in modo da poter sintetizzare con semplicita il modulatore

in un circuito reale. E stato scelto il VHDL come linguaggio, per la sua

semplicita d’uso, l’elevata standardizzazione e il notevole supporto tecnico

disponibile in rete e all’interno dell’universita.

48

Page 49: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

49

FIR

PSK

ADDER

MOLTIPL (5)

FPFF (4)

COEFF

TOP

SEPARAZION E

CORDIC

ADDERMOD2

ADDERMOD1

ARCOSENO

COEFF

COR _ N (16)

FPFF (4)

Figura 4.1: VHDL - Struttura gerarchica

Nella figura 4.1 e rappresentato lo schema gerarchico che descrive la struttura

dell’implementazione VHDL del progetto. Lo sviluppo e avvenuto secondo

la metodologia ‘bottom-up’. Partendo dalle fondamenta, ho costruito un

sistema correttamente funzionante, affiancato dalle unita di test-bench.

Page 50: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.1. NOTE IMPLEMENTATIVE 50

4.1 Note Implementative

Il linguaggio VHDL e un linguaggio che permette di descrivere le funziona-

lita dei circuiti elettronici con un livello di astrazione piu alto delle singole

porte logiche. Il VHDL sta diventando rapidamente il mezzo piu diffuso per

la progettazione di circuiti integrati digitali. Le aziende che progettano e

sviluppano ambienti integrati di CAD elettronico stanno utilizzando VHDL

come standard di input e output dei lori prodotti. Fra questi si trovano in

commercio programmi di simulazione e di sintesi, che generano gli schemi

circuitali a partire dal codice VHDL, programmi che generano codice VHDL

a partire dallo schema elettrico e programmi che convertono un sottoinsieme

del VHDL in altri linguaggi descrittivi dell’hardware e viceversa. La descri-

zione VHDL di un circuito puo avere diversi livelli di astrazione : il livello piu

alto (quello piu lontano dall’hardware) contiene una sommaria descrizione sul

comportamento dell’intera rete, un livello intermedio descrive la suddivisio-

ne del circuito nei vari sottoblocchi ed il funzionamento di ciascuno di questi

mentre il livello di astrazione piu basso, quello piu vicino all’hardware, e

la descrizione del circuito a livello delle porte logiche. Il grande vantaggio

di questo approccio risiede nel fatto che ogni descrizione VHDL a qualsiasi

livello puo essere simulata funzionalmente e puo essere eventualmente conver-

tita in uno schema elettrico tramite sintesi. Nella progettazione del sistema

ho utilizzato un insieme ridotto delle istruzioni VHDL per realizzare codice

adatto alla sintesi. In particolare ho utilizzato una struttura del tipo RTL

(Register Transfer Language). Si basa sul concetto che qualsiasi rete sequen-

ziale puo essere descritta da una logica combinatoria ed un registro ad essa

associata (eventualmente la struttura deve essere retroazionata). Si descrive

il sistema come un flusso di dati tra registri. Si puo immaginare che il flusso

di dati venga elaborato nel sistema (una volta realizzato in modo hardware)

Page 51: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.2. LA LIBRERIA FIX-STD 51

dalla logica combinatoria. Il mio progetto e sviluppato secondo una variante

della logica RTL, in particolare, tutte le unita che compongono il sistema si

comportano come registri , ovvero:

• Sono sincronizzate da un clock.

• Ad esse e associato un segnale di reset

• La logica combinatoria compare all’interno, attraverso una descrizione

comportamentale.

Nella scrittura del codice ho anche seguito le seguenti specifiche:

• Le strutture di controllo sono semplici (IF-THEN-ELSE, CASE)

• Non vi sono iterazioni (FOR, WHILE)

• Le variabili utilizzate hanno ampiezza fissa (ma parametrica, inserita

in un package per mantenere la modularita del progetto)

• Non vengono assegnati esplicitamente dei ritardi ai segnali

• I costrutti di tipo CASE vengono completamente definiti.

• I processi vengono attivati al fronte di salita del clock.

4.2 La libreria FIX-STD

Nello sviluppo del progetto e stata utilizzata una libreria, dedicata alla gestio-

ne delle variabili di tipo fixed point. Questa libreria contiene macroistruzioni

Page 52: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.2. LA LIBRERIA FIX-STD 52

che facilitano la conversione da formati standard IEEE con differenti preci-

sioni, garantendo la possibilita di una successiva sintesi. Nella scrittura del

codice ho definito una convenzione per descrivere le variabili utilizzate. Ad

esempio:

FP S 3 14 e definito come un numero di tipo floating point con segno (S), 3

bit prima della virgola e 14 bit dopo. In definitiva si tratta di un standard

logic vector a 14+3+1 = 18 bit.

La libreria e solo una ‘maschera’, per gestire con piu semplicita le operazioni

in virgola mobile e renderle trasparenti al programmatore. Per il compila-

tore e (successivamente) per il sintetizzatore non crea problemi, dato che si

appoggia alle librerie standard IEEE.

All’interno del codice vengono spesso utilizzate le istruzioni ‘Copy S’ e ‘Co-

py V’. La sintassi e nella forma

Copy_[S|V] ( destinazione , sorgente )

Cio permette di assegnare al valore di ‘destinazione’ il contenuto di ‘sorgente’.

‘S’ oppure ‘V’ devono essere indicate, per specificare se ‘destinazione’ e di

tipo ‘signal’ oppure di tipo ‘variable’. A differenza dell’assegnazione standard

( utilizzando rispettivamente gli operatori ‘<=’ e ‘:=’) l’istruzione effettua

automaticamente la conversione dei tipi di dati.

Ulteriori informazioni su questo pacchetto si trovano sul sito dell’autore,

Jonathan Bromley, che lo ha reso disponibile gratuitamente. L’indirizzo e

http://www.geocities.com/bromley_jonathan/fix_std_02.zip

Page 53: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.3. DESCRIZIONE GENERALE 53

4.3 Descrizione generale

L’implementazione VHDL puo essere suddivisa in due macroblocchi, rappre-

sentati dalla sezione di filtraggio/interpolazione e dalla sezione di separazione.

L’ingresso del circuito e rappresentato da un segnale a 3 bit, che viene letto da

un file di testo all’interno del blocco ‘input’. Per valutare i risultati ho dovuto

salvare l’output della sezione di separazione in un altro file di testo, per poi

elaborarlo con Matlab. Questo avviene nell’unita ‘output’. I restanti blocchi

sono flip-flop di servizio, servono per propagare il segnale di attivazione della

scrittura su file (solo quando esistono dati da immagazzinare).

I_output

R_output

clk

clkd

reset

sym(2:0)

U1

fir

clk_diviso

reset

clk

clk

fir_I_out

fir_R_out Mod_A

Mod_B

reset

clk_cordic

separatore

U4

Clk

S_out

Reset

S_in

U5

ff

Clk

S_out

Reset

S_in

U6

ff

Clk

S_out

Reset

S_in

U7

ff

Clk

S_out

Reset

S_in

U8

ff

Clk

S_out

Reset

S_in

U9

ff

Clk

I_ris

R_ris

Wr

U10

output

clk_cordic

Clk

Symbol(2:0)

Write

U2

input

Figura 4.2: VHDL - Data Flow - Entity TOP.VHD

Page 54: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.4. IL FILTRO FIR 54

L’entita ‘top’ e necessaria per simulare l’ambiente nel quale il vero e proprio

circuito lavorera. Per il funzionamente del sistema sono necessari tre segnali

di clock.

1. clk diviso lavora alla frequenza fL, ovvero alla frequenza di arrivo di

ogni simbolo. Viene utilizzato solo nella prima sezione.

2. clk lavora alla frequenza fM , ovvero 16 volte fL; e la frequenza di

lavoro della maggioranza delle unita presenti del sistema ed e anche

la frequenza a cui viene aggiornato il segnale in output dalla sezione

‘separazione’.

3. clk CORDIC lavora alla frequenza fC , che equivale a fMx8. Viene

utilizzato solo nella seconda parte, ed e necessario all’unita di conver-

sione da notazione cartesiana a notazione polare. Una trattazione piu

approfondita di questa unita sara svolta piu avanti.

Al di sopra di questo schema lavora il file di testbench, che fornisce le indi-

cazioni al simulatore su quali segnali assegnare ai vari terminali in input (in

pratica si occupa di effettuare le oscillazioni dei clock per il tempo necessario

e di assegnare il valore di reset all’inizio della simulazione).

4.4 Il filtro FIR

Il filtro FIR in una forma canonica richiede un numero di moltiplicatori pa-

ri all’ordine del filtro stesso. In presenza di un interpolatore, pero, l’ordine

del filtro deve essere moltiplicato per il fattore di interpolazione. Nel no-

stro caso il FIR Gaussiano e di ordine 5, mentre il fattore di oversampling

Page 55: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.4

.IL

FIL

TR

OFIR

55

Clk

I_out I_in

R_out R_in

Reset

U1

fpff

reset

Clk

I_out I_in

R_out R_in

Reset

U6

fpff

Clk

I_out I_in

R_out R_in

Reset

U2

fpff

Clk

I_out I_in

R_out R_in

Reset

U3

fpff

clk

clk

R_in

I_in coeff_in R_out

I_out

Reset

moltip

U9

clk

R_in

I_in coeff_in

R_out

I_out

Reset

moltip

U10

clk

R_in

I_in coeff_in R

_out

I_out

Reset

moltip

U11

clk

R_in

I_in coeff_in R_out

I_out

Reset

moltip

U12

clk

R_in

I_in coeff_in

R_out

I_out

Reset

moltip

U13

R_Ris

I_Ris clk

R_M

0

I_M0

R_M

1

I_M1

R_M

2

I_M2

R_M

3

I_M3

R_M

4

I_M4

Reset

adder

U14

clk

c0

c1

c2

c3

c4

Reset

U8

coeff

clk _ div

R_output I_output

Reset

I_out Symbol(2:0)

R_out

clk

U4

psk

sym(2:0)

Figu

ra4.3:

VH

DL

-D

ataFlow

-E

ntity

FIR

.VH

D

Page 56: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.4. IL FILTRO FIR 56

e pari a 16; Ad ogni ciclo di clock a frequenza fL il filtro avrebbe effettuato

(5*16)=80+11 moltiplicazioni di cui 5 con valori diversi da zero e i restanti

con valori nulli2. Implementare uno schema canonico avrebbe richiesto un

enorme dispendio in termini di area occupata e potenza dissipata per effet-

tuare il piu delle volte operazioni a vuoto. Si e deciso quindi di ottimizzare la

struttura del filtro, minimizzano il numero di moltiplicatori necessari. Sono

state studiate diverse possibilita, tutte quante scartate perche richiedevano

molte piu risorse di quelle effettivamente utilizzate per cui ho sviluppato una

soluzione ‘ad hoc’. Il punto chiave di questa struttura e che richiede solo

cinque moltiplicatori. Nelle soluzioni standard i coefficienti rimangono fissi,

all’interno di ogni registro moltiplicatore e sono sintetizzati solitamente con

operazioni di shift e addizione. Nel mio caso, invece, sia i dati in ingresso,

sia i coefficienti, ruotano ad ogni ciclo di clock, per sfruttare al massimo l’a-

rea disponibile. Le celle superiori contengono il dato in input; esse vengono

aggiornate a frequenza fL. La prima unita (PSK) si occupa di convertire il

dato (da vettore 3 bit standard logic a vettore 15 bit standard logic, secondo

le convenzioni della modulazione PSK). Ad ogni ciclo di clock il dato viene

spostato nella cella successiva, in modo che i moltiplicatori possano leggerlo

correttamente; quando raggiunge la quinta cella il dato viene perso definiti-

vamente. L’unita sulla sinistra e la cella dei coefficienti. E un contatore, che

lavora a clock a frequenza fM . Ad ogni impulso emette in output i valori

dei coefficienti dello stato attuale. Le cinque unita centrali si occupano di

moltiplicare i dati in input per i coefficienti attuali; infine l’unita in basso

addiziona il risultato e lo manda alla seconda parte del sistema.

Per chiarire meglio le idee e opportuno fare un esempio pratico.

1ad un filtro FIR di ordine n sono associati n+1 coefficienti e quindi n+1 moltiplicatori2E opportuno ricordare che interpolare un segnale significa interporre tra i vari simboli

dei valori nulli.

Page 57: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.4. IL FILTRO FIR 57

Sia dato il segnale d’ingresso

Q P O N M L I H G F E D C B A

Ovvero il primo simbolo e A, il secondo e B, eccetera; Bisogna interpolare

questo segnale; per semplicita pongo fattore di sovracampionamento 3x. A

regime, il segnale di ingresso sara

.... H 0 0 G 0 0 F 0 0 E 0 0 D 0 0 C 0 0 B 0 0 A

Questo entrera in un filtro FIR di ordine 5*Os =15 quindi avra 16 coefficienti,

che dovranno essere moltiplicati con il segnale di ingresso.

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16

0 0 E 0 0 D 0 0 C 0 0 B 0 0 A -

Fortunatamente non e necessario fare tutte le moltiplicazioni ma solo 5 ,

perche il resto dei dati in ingresso e pari a zero.

E*C3 + D*C6 + C*C9 + B*C12 + A*C15

I successivi cicli:

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16

F 0 0 E 0 0 D 0 0 C 0 0 B 0 0 A

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16

0 F 0 0 E 0 0 D 0 0 C 0 0 B 0 0

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16

0 0 F 0 0 E 0 0 D 0 0 C 0 0 B 0

e cosi via...

Page 58: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.4. IL FILTRO FIR 58

Come si puo notare e possibile mettere in un cella di memoria i dati (ad esem-

pio F) e moltiplicarli consecutivamente per il C1, C2, C3, ad ogni periodo del

clock ad alta frequenza. All’arrivo del nuovo dato, (clock lento) il simbolo F

verra spostato nella seconda cella di memoria, per esser poi moltiplicato per

i coefficienti C4, C5, C6.

Il filtro che verra applicato e un FIR di tipo Gaussiano. I coefficienti C1 e

C16 tendono a zero; oltretutto, a causa di effetti di quantizzazione, nell’im-

plementazione pratica VHDL sono effettivamente pari a zero. Per come e

strutturato il FIR, il coefficiente 16 sarebbe utilizzato solo una volta su 5.

Per entrambi i motivi e per semplificare il sistema, si e deciso di non imple-

mentare un ulteriore moltiplicatore, e, a sua volta, un operatore di addizione

in piu.

4.4.1 Specifiche di quantizzazione

Di seguito le specifiche di quantizzazione per la sezione di filtro, proposte

dopo svariate simulazioni come un buon ‘trade-off’ tra prestazioni e potenza

dissipata.

• Dinamica del valore iniziale della corrispondenza simbolo-posizione PSK:

16 bit.

• Dinamica dei coefficienti del filtro FIR: 15 bit.

• Dinamica delle unita di moltiplicazione: 22 bit.

• Dinamica dell’unita di addizione (e dell’output della sezione FIR): 16

bit.

Page 59: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.5. IL SEPARATORE 59

4.5 Il Separatore

fir_R_out fir_I_out

Mod_A

Mod_B

clk

Reset Ris

clk

cos

fase

U2

addermod1

Reset Ris

clk

cos

fase

U3

addermod2

Reset

acos

clk

prodotto

U4

arcoseno

reset

clk_cordic Clk Fase

Clk_slow

Modulo

I_in

R_in

Reset

U1

cordic

Figura 4.4: VHDL - Data Flow - Entity SEPARATORE.VHD

La seconda parte del circuito si occupa di modulare il segnale in uscita dal

FIR, come previsto dal modello Simulink. Il FIR restituisce un flusso di sim-

boli che rappresentano numeri complessi, ovvero i dati che dovranno essere

trasmessi. La prima sottounita del modulatore ha il compito di calcola-

re modulo e fase dei dati in ingresso e di trasmetterli ai successivi blocchi

funzionali. Calcolare il modulo e fase di un numero complesso utilizzando

linguaggi di programmazione ad alto livello e molto semplice, implementare

il calcolo su un dispositivo hardware, invece, si e rivelata un’impresa non

banale. Tra le tante possibilita, esistono due metodi relativamente semplici

da implementare:

Page 60: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.5. IL SEPARATORE 60

• Un algoritmo iterativo, che, a passi successivi approssima la

soluzione cercata. Questa soluzione richiede maggior tempo di svi-

luppo, sempre che esista l’algoritmo adatto, e, probabilmente, se cor-

rettamente implementata, una minore occupazione d’area sul circuito

integrato. Si suppone che l’algoritmo richieda piu di un’iterazione per

essere completato con successo, quindi il circuito deve funzionare ad

una frequenza di clock maggiore rispetto al sistema.

• Una tabella precalcolata (look-up table) che, in funzione del-

l’ingresso, restituisce il valore di modulo e fase. Il tempo di

sviluppo di questa soluzione e praticamente nullo. Attraverso una pro-

cedura Matlab (o altri linguaggi) si crea il file VHDL che descrive

il comportamento desiderato dell’unita. L’occupazione su silicio puo

diventare notevole.

Dalle specifiche del filtro FIR si evidenzia che il segnale in uscita ha una

dinamica pari a 16 bit per la parte reale e 16 bit per la parte immaginaria.

Il risultato (modulo e fase), secondo le simulazioni Matalb, deve avere dina-

mica pari a 13 bit e a 15 bit rispettivamente. E’ possibile tramite semplici

calcoli verificare che lo spazio occupato dalla loookup table e enorme e quin-

di, per il calcolo del modulo e della fase, questa soluzione e stata scartata

a priori. Dopo ricerche su internet e studio di articoli scientifici ho scelto

di utilizzare l’algoritmo di CORDIC per effettuare i calcoli. Per i principi

teorici sull’algoritmo CORDIC si rimanda all’appendice B. Per il blocco ‘ar-

cocoseno’, invece, ho deciso di utilizzare una look-up table. Grazie ad alcune

simulazioni ho notato che il metodo CORDIC avrebbe richiesto molto piu

delle otto iterazioni concesse3, ed, allo stesso tempo, il numero di possibili

input era limitato (ricordiamo che il modulo e un valore compreso tra 0.2 e

1.6). La tabella e stata costruita con uno script Matlab, che genera il codice

3Il metodo CORDIC per calcolare l’arcocoseno si basa sull’approssimazione di Taylor

della funzione, pertanto introduce ulteriori errori di approssimazione

Page 61: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.5. IL SEPARATORE 61

VHDL; dalla teoria sappiamo che il modulo calcolato da CORDIC e 1.6467

* il modulo reale del vettore; inoltre il modulo deve essere normalizzato con

un’operazione di moltiplicazione. Queste due operazioni sono state ‘incluse’

all’interno della lookup-table, in modo da risparmiare lo spazio dedicato ad

un moltiplicatore. I blocchi ‘addermod1’ e ‘addermod2’, infine sono semplici

addizionatori che sommano (o sottraggono) il risultato dell’arcocoseno dal

valore della fase, secondo quanto specificato dallo schema del modulatore

LINC.

Prima di descrivere il funzionamento del blocco ‘CORDIC’, e opportuno fare

una precisazione: quell’unita trasmette in output due dati, ovvero il valore

del modulo e il valore della fase. Il segnale si propaga nel tempo da sinistra a

destra; al primo ciclo il valore del modulo e contenuto nell’unita ‘CORDIC’,

al secondo nell’unita ‘arcocoseno’ e al terzo nelle unita di addizione. La

fase, invece si comporta diversamente; in un primo tempo per sincronizzare

il segnale si era pensato di interporre un flip-flop, dopo ho adottato una

soluzione differente, descritta nel prossimo paragrafo.

4.5.1 Entita CORDIC.VHD

L’intero blocco ‘CORDIC’ e formato da 16 celle (cor 1, cor 2, ecc..), ognuna

delle quali elabora i dati ad alta precisione. Utilizzano 18 bit per memorizzare

il modulo del vettore e 35 bit per memorizzare il valore della fase, durante

il calcolo. L’entita lavora alla frequenza fC , pari a 8 volte fM . Ognuna di

queste celle implementa un’iterazione dell’algoritmo di CORDIC.

Per i che va da 1 a 16

Dato il numero complesso z

Se im(z) > 0

//calcolo del modulo

Page 62: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.5. IL SEPARATORE 62

Re(z) = Re(z) + sh(Im(z),i)

Im(z) = Im(z) - sh(Re(z),i)

//calcolo della fase

Ph=Ph+ffase(i)

Altrimenti

//calcolo del modulo

Re(z) = Re(z) - sh(Im(z),i)

Im(z) = Im(z) + sh(Re(z),i)

//calcolo della fase

Ph=Ph-ffase(i)

Fine se

dove Sh (numero, indice) e una funzione che effettua lo shift aritmetico del

numero e Ffase (indice) restituisce un valore precalcolato da aggiungere o

sottrarre al valore attuale della fase. La tabella contiene i valori dell’espres-

sione atan(2−k), con k = 1, 2, 3, ... Le simulazioni hanno dimostrato che il

calcolo della fase deve avvenire a massima precisione possibile per portare

risultati soddisfacenti, per cui questi valori sono stati quantizzati a 32 bit.

Sono tutti valori minori di uno. La variabile di accumulazione, pertanto,

necessita di 3 bit aggiuntivi per evitare overflow. Il valore del modulo e

correttamente calcolato dopo otto iterazioni di CORDIC ovvero dopo

otto cicli di clock a fC , e quindi un ciclo di clock a fM ; la successiva unita

(‘arcocoseno’) leggera il valore ed effettuera le necessarie operazioni. Il va-

lore della fase, invece e correttamente calcolato dopo sedici iterazioni di

CORDIC ovvero dopo sedici cicli di clock a fC , e quindi due ciclo di clock

a fM ; le unita di somma leggeranno il valore e lo combineranno in maniera

corretta con il valore in output dal blocco (‘arcocoseno’). Il segnale SIGN,

calcolato in ‘corin’ e l’input della sezione ‘CORDIC’, ovvero ‘R In’ e ‘I In’

vengono propagati all’interno dell’entita attraverso quattro flip-flop; Le unita

‘corout a’ e ‘corout b’ si occupano di effettuare le correzioni della fase e del

modulo, come descritto nella teoria, utilizzando il valore di quei segnali di

Page 63: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.5. IL SEPARATORE 63

controllo. Il blocco ‘corout a’ e un semplice buffer che rende il risultato del

modulo all’unita ‘arcocoseno’, mentre ‘corout b’, a seconda del valore iniziale

del numero complesso e il valore di ‘SIGN’ corregge la fase e manda il valore

ai blocchi di somma.

4.5.2 Specifiche di quantizzazione

Di seguito le specifiche di quantizzazione per la sezione di separazione.

• Dinamica del valore iniziale proveniente dalla sezione FIR: 16 bit.

• Dinamica dei valori interni di modulo (reale e immaginario): 18 bit.

• Dinamica dei valori interni della fase: 35 bit.

• Dinamica dei coefficienti per il calcolo della fase: 32 bit.

Page 64: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.5

.IL

SEPA

RA

TO

RE

64

R_in

I_in

Clk

Reset

Modulo

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U1

cor_2

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U2

cor_3

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U3

cor_4

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U4

cor_5

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U5

cor_6

Clk

I_tmp

Phase_outPhase

R_outR_tmp

Rese

t

I_out

U6

cor_7

Clk

I_out

I_in Phase

R_in R_out

Rese

tS

IGN

U8

cor_in

Clk_slow

Clk

I_outI_in

R_outR_in

Reset

U9

fpff

Clk

I_outI_in

R_outR_in

Reset

U18

fpff

Clk

S_outS_in

U20

ff

Clk

S_out

Reset

S_in

U21

ff

Clk

R_outR_in

Rese

t

U7

fpff2

Figu

ra4.5:

VH

DL

-D

ataFlow

-E

ntity

CO

RD

IC.V

HD

-prim

aparte

Page 65: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

4.5

.IL

SEPA

RA

TO

RE

65

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U10

cor_8

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U11

cor_9

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U12

cor_10

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U13

cor_11

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U14

cor_12

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U15

cor_13

Clk

I_outI_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U16

cor_14

Clk

Fase

I_in

Phase

R_in

R_tmp

Rese

t

Sig

n

U17

cor_out

Fase

Clk

I_tmp

Phase_outPhase

R_outR_tmp

Rese

t

U19

cor_15

Figu

ra4.6:

VH

DL

-D

ataFlow

-E

ntity

CO

RD

IC.V

HD

-secon

da

parte

Page 66: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

55Capitolo

Conclusione

L’ultimo capitolo riporta i risultati piu importanti di questa esperienza di

progettazione e indica i possibili svliuppi futuri per questo progetto.

66

Page 67: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

5.1. RISULTATI 67

5.1 Risultati

Lunghe sessioni di progettazione e simulazione hanno portato ad un risultato

soddisfacente, in termini sia di spettro che di EVM. Lo spettro del segnale

risiede all’interno della maschera, ed in alcuni punti tende ad i valori del-

lo spettro calcolati utilizzando i modelli Matlab senza quantizzazione. Le

sezioni laterali dello spettro, infatti, offrono un margine di errore rispetto

alla maschera di quasi 20 dB. L’EVM risulta essere pari a 3,208% Grazie

−8 −6 −4 −2 0 2 4 6 8

x 106

−100

−80

−60

−40

−20

0

20

Frequenza [Hz]

Spe

ttro

di p

oten

za [d

Bc]

− M

asch

era

ED

GE

MASKmatlabVHDL

Figura 5.1: Risultati - Spettro del segnale - 16 it. CORDIC

all’ampio margine di errore mi e stato consigliato di modificare in parte il si-

stema, ottimizzando la potenza dissipata; per fare cio ho sostituito le ultime

quattro sottounita di CORDIC con dei flip-flop standard. Successivamente,

quando verra effettuata la sintesi del sistema questi flip-flop saranno collegati

in modo da minimizzare il consumo di corrente. Le prestazoni del sistema

peggiorano lievemente, pur rimaendo in zona accettabile. Il margine d’errore

Page 68: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

5.2. SVILUPPI FUTURI 68

nella maschera si riduce a 15 dB, l’EVM sale a 3,452%.

−8 −6 −4 −2 0 2 4 6 8

x 106

−100

−80

−60

−40

−20

0

20

Frequenza [Hz]

Spe

ttro

di p

oten

za [d

Bc]

− M

asch

era

ED

GE

MASKmatlabVHDL

Figura 5.2: Risultati - Spettro del segnale - 12 it. CORDIC

5.2 Sviluppi Futuri

Sono previsti i seguenti sviluppi per il futuro di questo progetto:

• La sintesi su silicio, che verra effettuata dagli ingegneri della ST Mi-

croelectronics; verranno effettuate simulazioni per stabilire la potenza

dissipata e l’area occupata.

• Le ottimizzazioni al codice VHDL, nel caso si stabilisse che la precisione

attuale dei calcoli non e necessaria.

• L’integrazione con la sezione analogica, gia sviluppata.

• L’ultimo passo prevede l’utilizzo del modulatore LINC su un reale

apparato di comunicazione mobile.

Page 69: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

AAAppendice

Fixed Point Toolbox

Il Fixed Point Toolbox e un pacchetto aggiuntivo che si occupa di simulare

calcoli con aritmetica a punto fisso. Attraverso molteplici opzioni e possibile

specificare il numero di bit che ogni variabile deve avere, quanti prima e

dopo la virgola e se dev’essere mantenuta o meno l’informazione del segno.

E stato sviluppato per essere utilizzato nella modellizzazione di componenti

hardware i componenti del modello Simulink.

69

Page 70: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

70

Questo toolbox si basa sull’oggetto ‘fi’, il quale contiene il numero (o la

matrice) e alcuni parametri relativi alla quantizzazione. Per utilizzare un

oggetto ‘fi’ e necessario crearlo, utilizzando il comando ‘fi’ con la seguente

sintassi:

v_q = fi(v,s,w,f)

Questo comando assegna alla variabile di tipo ‘fi’ chiamata v q il valore

quantizzato di v. Il parametro s indica se deve essere considerato il segno

di v, la conversione viene fatta in complemento a due. w e la lunghezza

della parola, espressa in bit che dovranno essere allocati. f e la lunghezza

in bit della parte frazionaria; nel caso che questi parametri venissero omessi,

Matlab cerca di selezionarli automaticamente, fino a raggiungere una soglia

di errore.

Per meglio comprendere il funzionamento del toolbox, utilizzo π come valore

da quantizzare; in Matlab il valore di π e definito nella variabile ‘pi’; una sua

visualizzazione, con le opzioni di default porta al seguente risultato.

>> pi

ans =

3.1416

Naturalmente tutti i calcoli con quella variabile vengono effettuati a massima

precisione possibile, a dispetto del numero di cifre visualizzate. Provando a

quantizzare il valore di π otteniamo

Page 71: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

71

>> pi_q = fi(pi)

pi_q =

3.1416

DataTypeMode: Fixed-point: binary point scaling

Signed: true

WordLength: 16

FractionLength: 13

RoundMode: round

OverflowMode: saturate

ProductMode: FullPrecision

MaxProductWordLength: 128

SumMode: FullPrecision

MaxSumWordLength: 128

CastBeforeSum: true

Si evince dall’output che vengono utilizzati 16 bit, di cui 13 per la parte

frazionaria e uno per il segno. Ne restano 2 per il valore intero. Di que-

sto oggetto possiamo visualizzarne la rappresentazione binaria attraverso la

proprieta ‘.bin’

>> pi_q.bin

ans =

0110010010001000

e visualizzare lo scarto rispetto al valore non quantizzato (attraverso la

proprieta ‘.double’)

Page 72: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

72

>> pi_q.double-pi

ans =

8.9089e-006

Facendo ulteriori prove si puo vedere come sia semplice valutare gli effetti di

quantizzazione su una serie di operazioni aritmetiche.

>> pi_q_8 = fi(pi,0,8,5)

pi_q_8 =

3.1563

>> pi_q_8.double-pi

ans =

0.0147

Il toolbox supporta l’esecuzione delle 4 operazioni aritmetiche su oggetti di

tipo ‘fixed-point’. Attraverso questa libreria e stato quindi possibile conver-

tire lo schema simulink originale in uno schema quantizzato. Naturalmente

il livello di quantizzazione e stato mantenuto paramentrico ad ogni blocco

simulink, in modo da concedere maggiore liberta nella progettazione. Sono

previste, pero, alcune operazioni sul segnale non banali (calcolo di modulo e

fase, operazioni trigonometriche). Per queste e stato necessario procedere in

un modo alternativo:

Per ipotesi, il blocco X non accetta in input dati di tipo ‘fi’, per cui all’entrata

del blocco si e dovuto convertire il segnale da fi a double e, all’uscita, da

double a ‘fi’. Questo significa che l’operazione viene calcolata a ‘precisione

macchina’, e poi viene quantizzato il risultato e cio e differente da quello

che avviene nell’implementazione VHDL (e quindi nella realta), dove tutto

il sistema e quantizzato.

Page 73: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

BBAppendice

L’algoritmo CORDIC

Il metodo Cordic e’ uno dei modi piu’ validi per calcolare velocemente fun-

zioni trigonometriche come seni, coseni, esponenziali, coseni iperbolici, seni

iperbolici. E’ particolarmente impiegato nelle unita di calcolo o nelle cal-

colatrici tascabili per la sua velocita’ di esecuzione e semplicita di realizza-

zione pratica sia a livello hardware che software. Il suo nome e l’acronimo

di ‘COordinate Rotation DIgital Computer algorithm’. L’aspetto piu rile-

vante di questo algoritmo e la possibilita di realizzarlo unicamente tramite

73

Page 74: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

74

addizioni, sottrazioni e divisioni o moltiplicazioni per il fattore due in mo-

do iterativo. Dato che moltipicare (o dividere) un numero per un fattore

due significa, a livello hardware, effettuare uno shift aritmetico (a destra o a

sinistra) l’algoritmo non necessita di moltiplicatori hardware e cio consente

di risparmiare notevolmente sull’area e sulla potenza dissipata. L’algoritmo

originale calcola seno e coseno di un numero reale, ma puo essere facilmente

adattato per il calcolo di modulo e fase di un numero complesso ed e proprio

questa versione che ho utilizzato all’interno del sistema.

Sia z = a + ib il valore di ingresso; si vogliono calcolare le componenti di

modulo ρ e fase θ di z.ρ

θ

a

b

Re

Im

Dato

zk = a + ib, per k = 1, 2, 3, ..., n

avremo che

zk+1 = zk ∗ (1 + αk2−ki)

Page 75: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

75

dove

αk =

+1 se Im(zk) > 0

−1 se Im(zk) < 0

Graficamente:

Re

Im

Mano a mano che le iterazioni proseguono, il vettore in input viene molti-

plicato con i vettori disegnati in rosso; la sua parte reale tende al valore ρ∗,

mentre la sua parte immaginaria tende a zero. La fase puo essere calcolata

al procedere dell’algoritmo, aggiungendo o sottraendo i valori di atan(2−k)

ad una variabile accumulatrice, sempre in funzione del valore di Im(zk). Il

valore di ρ∗ equivale a ρ ∗ 1.64671

1piu precisamente equivale a 1.64676025812107. La motivazione per questa correzione

risiede nel fatto che i vettori per i quali il numero e moltiplicato non hanno modulo uguale

a zero.

Page 76: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

76

Dato

z1 = a + bi e z2 = c + di

allora

z1 ∗ z2 = (a + bi)(c + di)

ma

c = 1

e naturalmente

i2 = −1

quindi l’algoritmo diventa

zk+1 =

(a + b ∗ d) + (b − a ∗ d) ∗ i se Im(zk) > 0

(a − b ∗ d) + (b + a ∗ d) ∗ i se Im(zk) < 0

dove d = 2−k

L’algoritmo funziona correttamente per valori di ρ compresi tra 0◦e 90◦, men-

tre non ha limiti di funzionamento per quanto riguarda i valori del modulo.

Per assicurarne il funzionamento per tutti i valori della fase, quando l’al-

goritmo viene avviato si ‘sposta’ il valore nel quadrante corretto (mediante

cambiamenti di segno) e si assegna ad una variabile il reale quadrante di

partenza. Alla fine verranno apportate le adeguate correzioni alla fase.

Page 77: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

77

Re

Im

Figura B.1: CORDIC - Schema Correzione Quadrante

Page 78: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

78

input z=a+ib

sposta z nel 1'

quadrante

z è nel 1' quadrante?

memorizza lo spostamento

calcola n iterazioni di

cordic

effettua le correzioni di

fase

output: abs(z),angle(z)

z è nel 1' quadrante?

si no

no si

Figura B.2: CORDIC - Diagramma di Flusso - Correzione Quadrante

Page 79: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

79

input z ( k )=a+ ib

re( z ( k +1)) = re( z ( k )) + shift( im ( z ( k )))

im ( z ( k )) > 0

output: modulo =re( z ( k )),

fase

k < KMAX ?

no si

im ( z ( k +1)) = im ( z ( k )) - shift(re( z ( k )))

re( z ( k +1)) = re( z ( k )) - shift( im ( z ( k )))

im ( z ( k +1)) = im ( z ( k )) + shift(re( z ( k )))

fase = fase - funz _ fase ( k ) fase = fase + funz _ fase ( k )

k = k +1

si

no

Figura B.3: CORDIC - Diagramma di Flusso - Iterazione

Page 80: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

CCAppendice

Acronimi

80

Page 81: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

81

Sigla Significato.

WAP Wireless Application Protocol.

SMS Short Message Service.

LINC Linear Amplification using Non linear Components.

ADC Analog to Digital Converter.

VHDL Very high speed integrated circuit Hardware Description Language.

AM Amplitude Modulation.

RF Radio Frequenza.

PLL Phase locked Loop.

UMTS Universal Mobile Telecommunications System.

PA Power Amplifiers.

ISI InterSymbol Interference.

SPS Subtractive Phase Shifting.

CPS Cumulative Phase Shifting.

EVM Error Vector Magnitude.

GSM Global System for Mobile Communications.

EDGE Enhanced Data rates for GSM Evolution.

Page 82: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

DDAppendice

Codice vhdl

La presente appendice contiene i listati in codice VHDL dei blocchi piu im-

portanti progettati in questo lavoro. Sono stati omessi quelli che non saranno

oggetto di sintesi. Le entity che descrivono una struttura (ad esempio FIR)

non sono state incluse, ma possono essere ricavate dalle figure.

82

Page 83: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

83

Adder.vhd

E parte del blocco FIR; si occupa di sommare i risultati dei moltiplicatori

library IEEE;use IEEE.STD_LOGIC_1164.all;use WORK.fix_std.all;

entity Adder isport(R_M0 : in FP_S_3_18;I_M0 : in FP_S_3_18;R_M1 : in FP_S_3_18;I_M1 : in FP_S_3_18;R_M2 : in FP_S_3_18;I_M2 : in FP_S_3_18;R_M3 : in FP_S_3_18;I_M3 : in FP_S_3_18;R_M4 : in FP_S_3_18;I_M4 : in FP_S_3_18;clk : in std_logic;Reset : in std_logic;R_Ris : out FP_S_1_14;I_Ris : out FP_S_1_14

);end Adder;

architecture AdderA of Adder isbeginprocess (Clk,Reset)begin

if(Reset = ’0’)then

R_Ris <= (others => ’0’);I_Ris <= (others => ’0’);

elsif (Clk’event AND Clk=’1’) then

Copy_S(R_Ris,R_M0+R_M1+R_M2+R_M3+R_M4);Copy_S(I_Ris,I_M0+I_M1+I_M2+I_M3+I_M4);

end if;

end process;end AdderA;

Addermod1.vhd

E parte del blocco SEPARATORE; si occupa di sommare la fase e l’arcoco-seno.

Page 84: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

84

library IEEE;use IEEE.STD_LOGIC_1164.all;use WORK.fix_std.all;

entity Addermod1 isport(cos : in FP_S_1_12;fase : in FP_S_3_12;clk : in std_logic;Reset : in std_logic;Ris : out FP_S_3_12

);end Addermod1;

architecture Addermod1A of Addermod1 is

beginprocess (Clk,Reset)beginif(Reset = ’0’)thenRis <= (others => ’0’);elsif (Clk’event AND Clk=’1’) thenCopy_S(Ris,cos+fase);end if;end process;end Addermod1A;

Addermod2.vhd

E parte del blocco SEPARATORE; si occupa di sottrarre l’arcocoseno dallafase.

library IEEE;use IEEE.STD_LOGIC_1164.all;use WORK.fix_std.all;

entity Addermod2 isport(cos : in FP_S_1_12;fase : in FP_S_3_12;clk : in std_logic;Reset : in std_logic;Ris : out FP_S_3_12

);end Addermod2;

architecture Addermod2A of Addermod2 is

beginprocess (Clk,Reset)beginif(Reset = ’0’)thenRis <= (others => ’0’);

Page 85: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

85

elsif (Clk’event AND Clk=’1’) thenCopy_S(Ris,fase-cos);end if;end process;end Addermod2A;

Arcocoseno.vhd

E la lookup-table dell’arcocoseno. non sono stati riportati tutti i valori masolo un piccolo sottoinsieme.

library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_signed.all;use IEEE.std_logic_arith.all;use IEEE.numeric_std.all;use WORK.fix_std.all;

entity arcocoseno isport(prodotto : in FP_S_1_12;

clk : in STD_LOGIC;Reset : in STD_LOGIC;

acos : out FP_S_1_12);

end arcocoseno;

architecture arcocosenoA of arcocoseno isbeginprocess (Clk,Reset)begin

if(Reset = ’0’)thenacos <= (others => ’0’);elsif (Clk’event AND Clk=’1’) then

case prodotto is

when "00000000000000" =>acos <= "01100100100010";when "00000000000001" =>acos <= "01100100100001";when "00000000000010" =>acos <= "01100100100000";

.....

when "00111111111111" =>acos <= "00000001011011";when "01111111111111" =>acos <= "00000000000010";when "11111111111111" =>acos <= "01100100100010";

Page 86: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

86

end case;

end if;end process;end arcocosenoA;

coeff.vhd

E l’entity che fornisce ai moltiplicatori i coefficienti del filtro FIR. E struttu-rata come macchina a stati finiti.

library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_signed.all;use IEEE.std_logic_arith.all;use IEEE.numeric_std.all;use WORK.fix_std.all;

entity coeff isport(

clk : in STD_LOGIC;Reset : in STD_LOGIC;

c0 : out FP_S_1_13;c1 : out FP_S_1_13;c2 : out FP_S_1_13;c3 : out FP_S_1_13;c4 : out FP_S_1_13);

end coeff;

architecture coeffA of coeff isbeginprocess (Clk,Reset)variable Cnt: std_logic_vector(3 downto 0);begin

if(Reset = ’0’)thenCnt := "0000";elsif (Clk’event AND Clk=’1’) thenCnt := Cnt + "0001";

case Cnt iswhen "0000" =>c0 <= "000000000000000";c1 <= "000000100010110";c2 <= "001100001011101";c3 <= "001100001011110";c4 <= "000000100010111";

....

when "1111" =>c0 <= "000000011000000";c1 <= "001011010000110";

Page 87: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

87

c2 <= "001101000010001";c3 <= "000000110001001";c4 <= "000000000000000";

end case;

end if;

end process;end coeffA;

complfunc.vhd

Il package definisce le funzioni per l’algoritmo di CORDIC.

library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;use WORK.fix_std.all;

package compl_func is

function fffase(n: integer) return FP_S_0_31;function Smi(n: integer; Ing: FP_S_3_14) return FP_S_3_14;

end;

package body compl_func is

function fffase(n: integer) return FP_S_0_31 isvariable b : FP_S_0_31;begincase n iswhen 0 => b := ("01100100100001111110110101010001");when 1 => b := ("00111011010110001100111000001011");when 2 => b := ("00011111010110110111010111111001");when 3 => b := ("00001111111010101101110101001101");when 4 => b := ("00000111111111010101011011101110");when 5 => b := ("00000011111111111010101010110111");when 6 => b := ("00000001111111111111010101010110");when 7 => b := ("00000000111111111111111010101011");when 8 => b := ("00000000011111111111111111010101");when 9 => b := ("00000000001111111111111111111011");when 10 => b := ("00000000000111111111111111111111");when 11 => b := ("00000000000100000000000000000000");when 12 => b := ("00000000000010000000000000000000");when 13 => b := ("00000000000001000000000000000000");when 14 => b := ("00000000000000100000000000000000");when 15 => b := ("00000000000000010000000000000000");when others => b := (others => ’0’);end case;return b;end fffase;

function Smi(n: integer; Ing: FP_S_3_14) return FP_S_3_14 is

Page 88: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

88

Variable a : std_logic_vector(FP_S_3_14’LENGTH-1 downto 0);Variable b : std_logic_vector(FP_S_3_14’LENGTH-1 downto 0);begina := std_logic_vector(Ing);if a (FP_S_3_14’LENGTH-1)=’0’ thencase n iswhen 0 => b := (a);when 1 => b := ("0" & a(a’LENGTH-1 downto 1));when 2 => b := ("00" & a(a’LENGTH-1 downto 2));when 3 => b := ("000" & a(a’LENGTH-1 downto 3));when 4 => b := ("0000" & a(a’LENGTH-1 downto 4));when 5 => b := ("00000" & a(a’LENGTH-1 downto 5));when 6 => b := ("000000" & a(a’LENGTH-1 downto 6));when 7 => b := ("0000000" & a(a’LENGTH-1 downto 7));when 8 => b := ("00000000" & a(a’LENGTH-1 downto 8));when 9 => b := ("000000000" & a(a’LENGTH-1 downto 9));when 10 => b := ("0000000000" & a(a’LENGTH-1 downto 10));when 11 => b := ("00000000000" & a(a’LENGTH-1 downto 11));when 12 => b := ("000000000000" & a(a’LENGTH-1 downto 12));when 13 => b := ("0000000000000" & a(a’LENGTH-1 downto 13));when 14 => b := ("00000000000000" & a(a’LENGTH-1 downto 14));when 15 => b := ("000000000000000" & a(a’LENGTH-1 downto 15));when others => b := (others => ’0’);end case;elsecase n iswhen 0 => b := (a);when 1 => b := ("1" & a(a’LENGTH-1 downto 1));when 2 => b := ("11" & a(a’LENGTH-1 downto 2));when 3 => b := ("111" & a(a’LENGTH-1 downto 3));when 4 => b := ("1111" & a(a’LENGTH-1 downto 4));when 5 => b := ("11111" & a(a’LENGTH-1 downto 5));when 6 => b := ("111111" & a(a’LENGTH-1 downto 6));when 7 => b := ("1111111" & a(a’LENGTH-1 downto 7));when 8 => b := ("11111111" & a(a’LENGTH-1 downto 8));when 9 => b := ("111111111" & a(a’LENGTH-1 downto 9));when 10 => b := ("1111111111" & a(a’LENGTH-1 downto 10));when 11 => b := ("11111111111" & a(a’LENGTH-1 downto 11));when 12 => b := ("111111111111" & a(a’LENGTH-1 downto 12));when 13 => b := ("1111111111111" & a(a’LENGTH-1 downto 13));when 14 => b := ("11111111111111" & a(a’LENGTH-1 downto 14));when 15 => b := ("111111111111111" & a(a’LENGTH-1 downto 15));when others => b := (others => ’1’);end case;end if;return FP_S_3_14(b);end Smi;

end;

corin.vhd

La prima cella dell’algoritmo CORDIC ha il compito di determinare la po-sizione del vettore all’interno dei quattro quadranti e assegnare alle variabilidi controllo i valori corretti.

Page 89: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

89

library IEEE;use IEEE.STD_LOGIC_1164.all;use WORK.fix_std.all;use WORK.compl_func.all;

entity cor_in isport(R_in : in FP_S_1_14;I_in : in FP_S_1_14;Clk : in std_logic;Reset : in std_logic;R_out : out FP_S_3_14;I_out : out FP_S_3_14;Phase : out FP_S_3_31;SIGN : out std_logic

);end cor_in;

architecture cor_ina of cor_in is

beginprocess (Clk,Reset)variable Zero : FP_S_1_14 := (others => ’0’);variable Zero2 : FP_S_3_14 := (others => ’0’);variable R_sh : FP_S_3_14;variable I_sh : FP_S_3_14;variable R_next : FP_S_3_14;variable I_next : FP_S_3_14;variable R_tmp : FP_S_3_14;variable I_tmp : FP_S_3_14;

begin

if(Reset = ’0’)thenCopy_S(R_out,Zero);Copy_S(I_out,Zero);Copy_S(Phase,Zero);Sign<=’0’;elsif (Clk’event AND Clk=’1’) then

Copy_V (Phase_Tmp, Zero);

if (R_in>=Zero) thenCopy_V (R_tmp, R_in);elseCopy_V (R_tmp, -R_in);end if;

if (I_in>=Zero) thenCopy_V (I_tmp, I_in);elseCopy_V (I_tmp, -I_in);end if;

if (I_tmp>R_tmp) thenCopy_V (R_next, I_tmp);Copy_V (I_next, R_tmp);Sign<=’0’;elseCopy_V (R_next, R_tmp);

Page 90: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

90

Copy_V (I_next, I_tmp);Sign<=’1’;end if;

Copy_S (R_out , R_next);Copy_S (I_out, I_next);

end if;end process;end cor_ina;

cor2.vhd

Un sottoblocco di CORDIC che implementa un’iterazione dell’algoritmo.

library IEEE;use IEEE.STD_LOGIC_1164.all;use WORK.fix_std.all;use WORK.compl_func.all;

entity cor_2 isport(

R_tmp : in FP_S_3_14;I_tmp : in FP_S_3_14;Phase : in FP_S_3_31;Clk : in std_logic;Reset : in std_logic;R_out : out FP_S_3_14;I_out : out FP_S_3_14;Phase_out : out FP_S_3_31);

end cor_2;

architecture cor_2a of cor_2 is

beginprocess (Clk,Reset)

variable Zero : FP_S_3_14 := (others => ’0’);variable R_sh : FP_S_3_14;variable I_sh : FP_S_3_14;variable R_next : FP_S_3_14;variable I_next : FP_S_3_14;

begin

if(Reset = ’0’)thenCopy_S(R_out,Zero);Copy_S(I_out,Zero);Copy_S(Phase_out,Zero);elsif (Clk’event AND Clk=’1’) then

Page 91: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

91

if (I_tmp>=Zero) then

Copy_V( R_next , R_tmp + Smi(2,I_tmp));Copy_V( I_next , I_tmp - Smi(2,R_tmp));Copy_S( Phase_out,Phase+fffase(2));

elseCopy_V( R_next , R_tmp - Smi(2,I_tmp));Copy_V( I_next , I_tmp + Smi(2,R_tmp));Copy_S( Phase_out,Phase-fffase(2));

end if;

Copy_S( R_out , R_next);Copy_S( I_out , I_next);

end if;end process;end cor_2a;

corout.vhd

Si occupa di correggere il valore finale della fase, a seconda dell’ingressoiniziale e dei segnali di controllo.

library IEEE;use IEEE.STD_LOGIC_1164.all;use WORK.fix_std.all;use WORK.compl_func.all;

entity cor_out isport(R_in : in FP_S_1_14;I_in : in FP_S_1_14;R_tmp : in FP_S_3_14;Phase : in FP_S_3_31;Sign : in std_logic;Clk : in std_logic;Reset : in std_logic;Fase : out FP_S_3_12

);end cor_out;

architecture cor_outa of cor_out is

beginprocess (Clk,Reset)variable Zero : FP_S_1_14 := (others => ’0’);variable Und : FP_S_1_14 := (others => ’U’);variable Ics : FP_S_1_14 := (others => ’X’);variable Zero2 : FP_S_3_14 := (others => ’0’);variable Phase_Tmp : FP_S_3_31;

variable Pi : FP_S_3_14:= "001100100100010000"; --pigreco

Page 92: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

92

variable Pim : FP_S_3_14:= "000110010010001000"; --pigreco mezzivariable Piq : FP_S_3_14:= "000011001001000100";

begin

if(Reset = ’0’)thenCopy_S(Fase,Zero);elsif (Clk’event AND Clk=’1’) then

if (sign=’0’) thenCopy_V(Phase_Tmp,Piq-Phase);elseCopy_V(Phase_Tmp,Piq+Phase);end if;

if (R_in>Zero) and (I_in>Zero) thenCopy_V(Phase_Tmp,Phase_Tmp);elsif (R_in>Zero) and (I_in<Zero) thenCopy_V(Phase_Tmp,Zero-Phase_Tmp);elsif (R_in<Zero) and (I_in>Zero) thenCopy_V(Phase_Tmp,Zero-Phase_Tmp+Pi);elsif (R_in<Zero) and (I_in<Zero) thenCopy_V(Phase_Tmp,Phase_Tmp-Pi);elsif (R_in=Zero) and (I_in>Zero) thenCopy_V(Phase_Tmp,Pim);elsif (R_in=Zero) and (I_in<Zero) thenCopy_V(Phase_Tmp,Zero-Pim);elsif (R_in>Zero) and (I_in=Zero) thenCopy_V(Phase_Tmp,Zero);elsif (R_in<Zero) and (I_in=Zero) thenCopy_V(Phase_Tmp,Pi);end if;

Copy_S(Fase,Phase_Tmp);

end if;end process;end cor_outa;

moltip.vhd

I moltiplicatori del FIR.

library IEEE;use IEEE.STD_LOGIC_1164.all;use WORK.fix_std.all;

entity moltip isport(

clk : in std_logic;Reset : in std_logic;R_in : in FP_S_1_14;I_in : in FP_S_1_14;coeff_in : in FP_S_1_13;

Page 93: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

93

R_out : out FP_S_3_18;I_out : out FP_S_3_18

);end moltip;

architecture moltipa of moltip is

begin

process (Clk,Reset)beginif(Reset = ’0’)then

R_out <= (others => ’0’);I_out <= (others => ’0’);

elsif (Clk’event AND Clk=’1’) then

Copy_S(R_out,R_in * coeff_in);Copy_S(I_out,I_in * coeff_in);

end if;end process;end moltipa;

psk.vhd

L’unita che implementa la codifica PSK; non e stata riportata completamen-te, ma solo la struttura essenziale.

library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_signed.all;use IEEE.std_logic_arith.all;use IEEE.numeric_std.all;use WORK.fix_std.all;

entity psk isport(

clk : in STD_LOGIC;Reset : in STD_LOGIC;Symbol :in std_logic_vector(2 downto 0);

R_out : out FP_S_1_14;I_out : out FP_S_1_14

);end psk;

architecture psk_a of psk isbeginprocess (Clk,Reset)variable Cnt: std_logic_vector(3 downto 0);begin

if(Reset = ’0’)then

Page 94: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

94

Cnt := "0000";elsif (Clk’event AND Clk=’1’) thenCnt := Cnt + "0001";

case Cnt iswhen "0000" =>case Symbol iswhen "000" =>R_out <= "0000000000000000";I_out <= "0000001000101100";when "001" =>R_out <= "0000000000000000";I_out <= "0000001000101100";.....

end case;when "0001" =>case Symbol iswhen "000" =>R_out <= "0000000000000000";I_out <= "0000001000101100";when "001" =>R_out <= "0000000000000000";I_out <= "0000001000101100";

.....end case;

........

when "1111" =>case Symbol iswhen "000" =>R_out <= "0000000000000000";I_out <= "0000001000101100";when "001" =>R_out <= "0000000000000000";I_out <= "0000001000101100";.......

end case;end case;

end if;

end process;

end psk_a;

Page 95: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

Elenco delle figure

2.1 Schema Funzionale - Sistema di comunicazione mobile . . . . . 14

2.2 Schema Funzionale - Trasmettitore LINC . . . . . . . . . . . . 15

2.3 Trasmettitore LINC - Schema fasoriale . . . . . . . . . . . . . 18

2.4 Schema Funzionale - Modulatore LINC . . . . . . . . . . . . . 19

95

Page 96: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

ELENCO DELLE FIGURE 96

2.5 Traiettoria 1-3-7 . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.6 Traiettoria correttamente filtrata . . . . . . . . . . . . . . . . 22

2.7 Traiettoria non correttamente filtrata . . . . . . . . . . . . . . 23

2.8 Filtro FIR - Forma Canonica . . . . . . . . . . . . . . . . . . . 24

2.9 Traiettoria originale . . . . . . . . . . . . . . . . . . . . . . . . 25

2.10 Esempio CPS - figura 1 . . . . . . . . . . . . . . . . . . . . . . 26

2.11 Esempio CPS - figura 2 . . . . . . . . . . . . . . . . . . . . . . 27

2.12 Traiettoria con CPS . . . . . . . . . . . . . . . . . . . . . . . 28

2.13 Risposta in frequenza (modulo) del filtro . . . . . . . . . . . . 29

2.14 Risposta in frequenza (fase) del filtro . . . . . . . . . . . . . . 29

2.15 Risposta impulsiva del filtro . . . . . . . . . . . . . . . . . . . 30

2.16 Risposta allo scalino del filtro . . . . . . . . . . . . . . . . . . 30

2.17 Traiettoria filtrata . . . . . . . . . . . . . . . . . . . . . . . . 31

2.18 Schema Funzionale - Separazione del segnale . . . . . . . . . . 31

2.19 Spettro del segnale . . . . . . . . . . . . . . . . . . . . . . . . 34

2.20 Misura dell’EVM . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.1 Trasmettitore LINC - Modello Simulink - Generale . . . . . . 37

3.2 Trasmettitore LINC - Modello Simulink - Sezione 1 . . . . . . 37

Page 97: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

ELENCO DELLE FIGURE 97

3.3 Trasmettitore LINC - Modello Simulink - Sezione 2 . . . . . . 38

3.4 Trasmettitore LINC - Modello Simulink - Sezione 3 . . . . . . 39

3.5 Output del FIR senza quantizzazione . . . . . . . . . . . . . . 41

3.6 Output del FIR con quantizzazione a 12 bit . . . . . . . . . . 42

3.7 Output del FIR con quantizzazione a 8 bit . . . . . . . . . . . 42

3.8 Spettro del segnale - Confronto tra differenti quantizzazioni . . 43

3.9 Spettro del segnale - Artefatti di quantizzazione . . . . . . . . 44

3.10 Confronto fra segnale trasmesso e segnale filtrato - figura 1 . . 47

3.11 Confronto fra segnale trasmesso e segnale filtrato - figura 2 . . 47

4.1 VHDL - Struttura gerarchica . . . . . . . . . . . . . . . . . . . 49

4.2 VHDL - Data Flow - Entity TOP.VHD . . . . . . . . . . . . . 53

4.3 VHDL - Data Flow - Entity FIR.VHD . . . . . . . . . . . . . 55

4.4 VHDL - Data Flow - Entity SEPARATORE.VHD . . . . . . . 59

4.5 VHDL - Data Flow - Entity CORDIC.VHD - prima parte . . 64

4.6 VHDL - Data Flow - Entity CORDIC.VHD - seconda parte . 65

5.1 Risultati - Spettro del segnale - 16 it. CORDIC . . . . . . . . 67

5.2 Risultati - Spettro del segnale - 12 it. CORDIC . . . . . . . . 68

Page 98: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

ELENCO DELLE FIGURE 98

B.1 CORDIC - Schema Correzione Quadrante . . . . . . . . . . . 77

B.2 CORDIC - Diagramma di Flusso - Correzione Quadrante . . . 78

B.3 CORDIC - Diagramma di Flusso - Iterazione . . . . . . . . . . 79

Page 99: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

Bibliografia

(1998). A survey of cordic algorithms for fpga based computers. ACM/SIGDA

International Symposium on Field-Programmable Gate Arrays (FPGA

’98), ACM/SIGDA.

A.Th. Schwarzbacher, A. Brasching T. W.; Foley J. (1999). Optimisation of

trigonometric functions for low power cmos implementations. Relazione

tecnica.

Cannizzaro R. (2004). Trasmettitore multistandard LINC integrato in tec-

99

Page 100: Implementazione della sezione digitale di un modulatore LINC per la trasmissione di segnali GSM-EDGE

BIBLIOGRAFIA 100

nologia CMOS: studio architetturale e progetto dell’amplificatore e del

ricombinatore. Tesi di Dottorato di Ricerca, Universita di Pavia.

Cox D. C. (1959). Linear amplification using non-linear components.

Relazione tecnica, IEEE.

Giacomantone J. O. (1992). Tradeoffs in arithmetic architectures for cordic

algorithm design. Relazione tecnica, CeTAD Fac de Ingenieria UNLP.

J.Volder (September 1959). The cordic computing technique. IRETrans

Computers, vol EC 8, 330-334.

Mashhour A. (1999). Understanding offset 8-psk modulation for gsm-edge.

Relazione tecnica.

Packard H. (1997). Digital modulation in communications systems an

introduction. Relazione tecnica, Hewlett Packard.

Proakis J. (1995). Digital communications.

Satish Ravichandran V. A. (2004). Pre-computation of rotation bits in unidi-

rectional cordic for trigonometric and hyperbolic computations. Relazione

tecnica, Hewlett Packard.

Schell S. V. (2000). Implementation effects on gsm’s edge modulation.

Relazione tecnica, Tropian, Inc.

Tso-Pin Chuang, Chao-Chuan Huang S.-F. H. (1998). Design of a

cordic-based sin/cos intellectual property (ip) using predictable sign bits.

Relazione tecnica.

Turkowski K. (January 17, 1990). Fixed-point trigonometry with cordic

iterations. Relazione tecnica, Apple Computer.