Anda di halaman 1dari 60

UNIVERSIT DEGLI STUDI DI NAPOLI FEDERICO II

FACOLT DI INGEGNERIA
CORSO DI LAUREA SPECIALISTICA IN
INGEGNERIA DELLE TELECOMUNICAZIONI
DIPARTIMENTO DI INGEGNERIA BIOMEDICA, ELETTRONICA
E DELLE TELECOMUNICAZIONI
ELABORATO DI LAUREA
UN NUOVO APPROCCIO PER LA STIMA DELLA DIREZIONE DI
ARRIVO
RELATORI
CH.MO PROF. AMEDEO CAPOZZOLI
ING. CLAUDIO CURCIO
ING. GIOVANNI IADAROLA
ING. ANGELO LISENO
CANDIDATO
IVAN IUDICE
MATR. 887/429
ANNO ACCADEMICO 2009/2010
1
Ivan Iudice
Elaborato di Laurea Specialistica
(Classe delle Lauree Specialistiche in Ingegneria delle TLC N.30/S)
Universit degli Studi di Napoli Federico II
A.A. 2009/2010, 23 Settembre 2010
Relatori: Capozzoli A., Curcio C., Iadarola G., Liseno A.
2
A tutti coloro che senza riserva
hanno sempre creduto in me
3
Eccomi, ormai siamo agli sgoccioli. Sembra nire qui il mio percorso
accademico.
Ora va messo in pratica tutto ci che ho appreso negli anni, non solo in
termini di nozioni, ma anche stare con la gente, condividere la conoscenza,
ed arricchire la propria.
Mi ritengo una persona fortunata. Non sono mai stato il primo della
classe, ne eccellente in nessuna occasione, ho semplicemente fatto lo stretto
necessario deludendo spesso le aspettative. Questo prima che trovassi ci che
fa per me. Dopo cambiato tutto, studiare quelle materie mi veniva naturale,
sentivo ad ogni paragrafo il piacere della conoscenza. In questo mi ritengo
fortunato.
Non posso che ringraziare tutti coloro che hanno fatto di me una gu-
ra professionale, tutti i docenti che sono stati in grado di trasmettermi co-
noscenza e passione, colleghi e amici che hanno alleggerito il percorso di
studi.
Ringrazio innitamente il Prof. A. Capozzoli per avermi permesso di
lavorare a questa tesi.
Ringrazio A. Liseno e C. Curcio per la professionalit e la passione con
la quale mi hanno seguito nel percorso di tesi.
Un ringraziamento particolare dovuto a G. Iadarola non solo per las-
sistenza professionale, ma per avermi supportato e sopportato durante gli
ultimi mesi.
In ultimo, ma non per importanza, ringrazio tutti coloro che mi hanno
reso luomo che sono, Tu, la famiglia, gli amici, e chiunque mi sia stato
vicino nei momenti di bisogno.
Grazie a tutti!!!
Indice
Introduzione 6
1 DOA estimation 8
1.1 Radar, smart antennas e DOA . . . . . . . . . . . . . . . . . . 8
1.2 Metodi Spettrali . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.1 MUltiple SIgnal Classication: MUSIC . . . . . . . . . 11
1.2.2 Matrix Pencil: MP . . . . . . . . . . . . . . . . . . . . 12
1.3 Problematiche elettromagnetiche . . . . . . . . . . . . . . . . 12
2 Sintesi dellantenna 15
2.1 Modello analitico sintesi . . . . . . . . . . . . . . . . . . . . . 15
2.2 Ostacoli sici . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Mutuo accoppiamento . . . . . . . . . . . . . . . . . . . . . . 18
2.4 Ottimizzazione dei Valori Singolari . . . . . . . . . . . . . . . 19
3 Algoritmo MSE 24
3.1 Stima di parametri . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Modello analitico DOA . . . . . . . . . . . . . . . . . . . . . . 25
3.2.1 Calcolo eciente dellintegrale: Quadratura . . . . . . 27
3.2.2 Dimensionamento dellantenna . . . . . . . . . . . . . . 29
3.3 Ottimizzazione Globale . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1 Multistart . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.2 Clustering Methods . . . . . . . . . . . . . . . . . . . . 32
3.3.3 Multi Level Methods . . . . . . . . . . . . . . . . . . . 33
4
4 Calcolo parallelo su GPU 35
4.1 General Purpose Computing on Graphics Processing Unit . . . 35
4.2 Il modello di programmazione CUDA . . . . . . . . . . . . . . 37
4.3 Gestione della memoria . . . . . . . . . . . . . . . . . . . . . . 37
4.3.1 Global memory . . . . . . . . . . . . . . . . . . . . . . 38
4.3.2 Constant memory . . . . . . . . . . . . . . . . . . . . . 39
4.3.3 Shared memory . . . . . . . . . . . . . . . . . . . . . . 40
4.3.4 Registri . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4 MLSL su GPU . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4.1 Generazione dei punti . . . . . . . . . . . . . . . . . . 41
4.4.2 Assegnazione alle celle . . . . . . . . . . . . . . . . . . 41
4.4.3 Ordinamento con chiavi . . . . . . . . . . . . . . . . . 41
4.4.4 Calcolo dei ag e passaggio allhost . . . . . . . . . . . 42
4.4.5 Ottimizzazione locale, funzionale e controlli . . . . . . 42
5 Risultati Numerici e Conclusioni 44
5.1 Confronto metodi spettrali . . . . . . . . . . . . . . . . . . . . 44
5.2 Sintesi dellantenna: Ostacolo . . . . . . . . . . . . . . . . . . 46
5.3 Sintesi dellantenna: Mutuo accoppiamento . . . . . . . . . . . 48
5.4 MLSL parallelo . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.5 DOA estimation . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.6 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5
Introduzione
I moderni sistemi radar non sono in grado di rivelare soltanto la presenza
di oggetti metallici, ma consentono di eseguire il tracking del bersaglio al
variare del tempo eettuando una stima della direzione darrivo del segnale.
Array di antenne che fanno uso di questo principio vengono denominate
smart antennas, e trovano spazio negli ambienti pi variegati, dalle comunica-
zioni satellitari alla telefonia di ultima generazione, dalle local area networks
ad applicazioni militari.
Questultima applicazione particolarmente interessante in quanto un
sistema in grado di stimare la direzione di arrivo di un jammer a banda
stretta, ha la possibilit di modellare il pattern in modo tale da non subire
gli eetti del disturbo.
La variet delle applicazioni ha spinto negli anni la ricerca ad interessarsi
del problema e sviluppare algoritmi in grado di eettuare operazioni di questo
tipo nel modo pi rapido ed accurato possibile.
Il problema di stima pu essere risolto con metodi spettrali o para-
metrici. I metodi spettrali intendono estrarre linformazione dalle carat-
teristiche spettrali delle tensioni misurate dagli elementi dellarray, calco-
landone sostanzialmente la matrice di correlazione ed i relativi autovetto-
ri [Stoica & Moses, 1997]. I metodi parametrici sfruttano le caratteristiche
statistiche e deterministiche del segnale (ad esempio la modulazione) per
ricavarne la direzione darrivo [Izzo et al., 1992].
Nel lavoro di tesi verr svolta unanalisi dal punto di vista elettromagneti-
co dando enfasi alle problematiche dovute alla presenza di ostacoli e al mutuo
accoppiamento tra gli elementi. Sar realizzato un modello, e poi fornita una
soluzione al problema, in grado di determinare le posizioni degli elementi
6
dellarray tali da ottimizzare la dinamica dei valori singolari delloperatore
che lega le tensioni misurate allo spettro donde piane del campo incidente.
Verr poi mostrato un algoritmo, basato sullottimizzazione globale multi-
start, in grado di eettuare la stima della direzione darrivo tenendo conto
delle problematiche citate pocansi.
Lottimizzazione globale per la stima della direzione darrivo sembrerebbe
particolarmente onerosa in termini di risorse e tempi di calcolo richiesti, tanto
da essere proibitiva in applicazioni di tipo real-time.
I recenti sviluppi nellambito del GPU computing e la disponibilit di am-
bienti di programmazione ben supportati come CUDA di NVIDIA
R
orono
la possibilit di sfruttare le potenzialit del calcolo parallelo su piattaforme
di tipo general purpose.
A tal proposito stato deciso di implementare lalgoritmo di ottimizza-
zione globale su scheda graca, in modo da poter risolvere il problema del-
la stima in tempi notevolmente ridotti rispetto alla corrispondente versione
sequenziale.
Lultima fase del lavoro consister nella validazione numerica degli algo-
ritmi realizzati, mediante simulazione dei casi pratici pi comuni.
7
Capitolo 1
Direction of Arrival (DOA)
estimation
1.1 Radar, smart antennas e DOA
I primi sistemi di telerilevamento attivi (radar), sviluppati e messi a punto a
partire dal secondo conitto mondiale, erano in grado solamente di rivelare
oggetti metallici sfruttando il fenomeno di backscattering legato al campo
elettromagnetico.
A distanza danni il principio di base rimasto lo stesso ma i radar han-
no subito una forte evoluzione no a riuscire non solo a rivelare i bersagli,
ma anche a determinarne informazioni quali distanza, altezza sullorizzonte,
velocit, direzione di arrivo. Un sistema radar quindi in grado di inseguire
un bersaglio, ovvero di eseguirne il tracciamento delle posizioni al variare del
tempo.
Nellambito del signal processing, la direzione di arrivo denota la direzione
dalla quale londa elettromagnetica incide in un punto, ove usualmente
posizionato un array di sensori che prende il nome di smart antenna.
Le smart antennas rappresentano degli array di antenne che impiegano
rapidi algoritmi di signal processing per estrarre informazioni caratteristi-
che del segnale, come appunto la direzione di arrivo, e le utilizzano per la
formazione del fascio.
8
CAPITOLO 1. DOA ESTIMATION 9
Ci fornisce notevoli vantaggi in applicazioni con requisiti di potenza ele-
vata in quanto permette di innalzare notevolmente il guadagno dellantenna
concentrando il fascio nella direzione dinteresse [Fig.1.1].
Figura 1.1: Beamforming da satellite
Tecniche di questo tipo sono previste anche dagli standard per reti WLAN
di nuova generazione (802.11n, MIMO) e di telefonia cellulare (W-CDMA e
UMTS) non solo per innalzare i guadagni, ma anche per consentire laccesso
ad un maggior numero di utenti mediante multiplazione a divisione di spazio,
e limitarne le interferenze [Fig.1.2].
Figura 1.2: Crosstalk avoidance
CAPITOLO 1. DOA ESTIMATION 10
Altra applicazione particolarmente importante specialmente in ambito
militare la stima della direzione di arrivo di un jammer a banda stretta,
per rendere immune la ricezione di segnali GPS [Fig.1.3] [Mele, 2010].
Figura 1.3: Array pattern nulling
Negli anni sono stati sviluppati vari algoritmi atti alla stima della di-
rezione di arrivo [Stoica & Moses, 1997] [Izzo et al., 1992], divisi in metodi
spettrali e metodi parametrici.
1.2 Metodi Spettrali
I metodi spettrali per la stima della direzione di arrivo provengono dalle
tecniche di stima spettrale della frequenza di un segnale.
Consideriamo un array composto da N punti diusori omnidirezionali
isotropi disposti uniformemente, sul quale incidono P segnali provenienti da
P direzioni distinte
0
, . . . ,
P1
. Trascuriamo il fattore di array ed eventuali
eetti di accoppiamento e/o presenza di ostacoli, e supponiamo che le sor-
genti si trovino in zona lontana. In queste particolari condizioni le tensioni
misurate da ciascun sensore assumeranno (in termini di inviluppo complesso)
la forma [Sarkar et al., 2003]:
x(n) =
P1

p=0
A
p
exp (j
p
+ j2nsin (
p
)) 0 n N 1 (1.1)
Dove A
p
,
p
e
p
sono rispettivamente lampiezza, la fase e la direzione di
arrivo di ognuna delle P onde piane incidenti.
CAPITOLO 1. DOA ESTIMATION 11
In questa forma risulta evidente la possibilit di utilizzare gli algoritmi di
stima della frequenza anche per lestrazione della direzione di arrivo.
1.2.1 MUltiple SIgnal Classication: MUSIC
Lalgoritmo MUSIC [Stoica & Moses, 1997] estrae le frequenze dal segnale
ricevuto agendo sui valori principali della matrice di correlazione. Ne esistono
due varianti:
Spectral MUSIC
Root MUSIC
Il primo passo consiste in entrambi i casi nella stima della matrice di
correlazione del segnale ricevuto.
Per quanto riguarda lo Spectral MUSIC, si procede massimizzando un
funzionale dipendente dagli autovettori della matrice di correlazione. Lap-
pellativo spectral dovuto al fatto che tale funzionale viene spesso denomi-
nato pseudo-spettro, dal momento che fornisce unidea chiara del contenuto
spettrale del segnale pur non corrispondendo alla densit spettrale di potenza.
Lalgoritmo Root Music invece risolve il problema di stima della frequenza
valutando gli sfasamenti delle radici dellequazione costituita a partire dagli
stessi autovettori.
Gli algoritmi MUSIC mostrati per la stima della frequenza, possono essere
utilizzati senza modiche sostanziali per la DOA estimation. Vi sono soltanto
alcuni aspetti da mettere in conto:
1. Per la DOA estimation possibile scegliere ad arbitrio luno o laltro al-
goritmo soltanto nel caso in cui gli elementi dellarray sono equispaziati.
Per geometrie diverse necessario ricorrere allo Spectral MUSIC.
2. Gli algoritmi MUSIC standard falliscono la stima della direzione di ar-
rivo in presenza di segnali coerenti [Stoica & Moses, 1997]. Esiste co-
munque una variante dellalgoritmo che, se larray lineare uniforme,
pu essere utilizzata anche per segnali coerenti.
CAPITOLO 1. DOA ESTIMATION 12
1.2.2 Matrix Pencil: MP
MP un algoritmo di stima sviluppato recentemente, e subito applicato alla
DOA estimation [Sarkar et al., 2003] in quanto particolarmente eciente in
sistemi di tipo real time e in presenza di segnali correlati.
Anchesso rappresenta un metodo spettrale in quanto basato sulla ricerca
dei valori singolari della matrice di Hankel costruita a partire dalle tensioni
misurate dallarray, per stimare il numero di segnali incidenti.
1.3 Problematiche elettromagnetiche
Nellambito dello sviluppo delle tecniche di stima della direzione darrivo ini-
zialmente non si e tenuto conto della complessit del problema elettromagne-
tico ch alla base del funzionamento. Vanno analizzati senza dubbio aspetti
come il diagramma di radiazione di ciascun elemento, il pattern darray, il
mutuo accoppiamento tra gli elementi, e leetto causato dalla presenza di
ostacoli in prossimit dellantenna.
La presenza di mutuo accoppiamento in un allineamento di antenne un
fenomeno molto ricorrente. dovuta principalmente al desiderio di ottenere
prestazioni elevate (array aperiodici) ed alle necessit, dipendente dallappli-
cazione, di evitare i grating lobes. La spaziatura fra gli elementi viene quindi
ridotta no a valori dellordine di 0.30.4. I disagi dovuti alla presenza di
ostacoli in prossimit dellantenna sono strettamente legati allo scenario. In
ambito militare ad esempio pu rivelarsi utile stimare la direzione di arrivo
di jammers a banda stretta e generare un pattern che elimini il disturbo, in
modo tale da garantire la corretta ricezione di segnali GPS. Per applicazioni
di questo tipo pu essere necessario installare lantenna su di un aereomobile
[Fig.1.4]. In tal caso la carcassa dellaereo rappresenterebbe un ostacolo dal
punto di vista elettromagnetico interagente con la schiera utilizzata per la
stima DOA.
Nella (1.1) si fa riferimento a P onde piane che incidono sugli elementi
dellarray. In presenza di ostacoli in near-eld, o di mutuo accoppiamento
CAPITOLO 1. DOA ESTIMATION 13
160 DIRECTION OF ARRI VAL ESTIMATION AND ADAPTI VE PROCESSING
It is interesting to note that even though the near-field scatter is blocking the
direct path of the signal arriving from 1 lo", it can still be picked up by this two-
step algorithm. Therefore, the technique presented in this section can be used not
only in estimating DOAs using nonuniformly spaced arrays using a single
snapshot of data, but the procedure can also simultaneously take into account
mutual coupling effects between the antenna elements and the presence of near-
field scatterers located close to the array. Algorithms like MUSIC can indeed
estimate the DOAs using a nonuniformly spaced array, but have problems when
dealing with coherent signals. In addition, MUSIC requires a number of
snapshots of the data equal to or greater than the number of antenna elements.
Here we not only deal with nonuniformly spaced elements operating i n the
presence of mutual coupling and near-field scatterers but can also deal with
coherent signals. The last point is that all these can be achieved using a single
snapshot of data.
Figure 6.7. Geometry of a microstrip patch array on the side of an aircraft and an
equivalent ULVA representing the microstrip patch array mounted on a conformal
surface.
6.3.3
the Side of a Fokker Aircraft
DOA Estimation Using a Conformal Microstrip Patch Array on
In this example, we estimate the DOA of the various signals impinging on a
conformal microstrip patch array on the side of a Fokker aircraft. As seen i n
Figure 6.7, the elements of the 1 I-element microstrip patch array are not placed
uniformly, nor do they lie on one flat surface. A detailed view of the microstrip
Figura 1.4: Patch Array installato su un aereo
tra gli elementi, lassunzione piana del fronte donda non pi lecita, per cui
gli algoritmi nora citati non sono in grado di risolvere il problema.
La questione viene in parte risolta in letteratura calcolando, in pre-processing,
la matrice di trasformazione in grado di compensare gli eetti elettromagne-
tici indesiderati ed applicarla ai dati [Sarkar et al., 2003].
I A() = A
v
() (1.2)
dove A() la matrice di steering (pattern) dellarray reale, A
v
() la matrice
di steering dellarray ideale, e I rappresenta la matrice di trasformazione.
Un metodo frequentemente utilizzato per il calcolo della matrice I con-
siste nel risolvere il problema:
arg min
I
_
_
_A
v
() I A()
_
_
_ (1.3)
Ottenuta la matrice di trasformazione sar possibile applicarla ai dati, ed
eettuare la stima mediante gli algoritmi proposti.
Va detto che il metodo di compensazione proposto in [Sarkar et al., 2003]
piuttosto grossolano in quanto gli eetti di accoppiamento sul pattern
vengono compensati a valle dellacquisizione delle tensioni rumorose.
CAPITOLO 1. DOA ESTIMATION 14
Nelle pagine seguenti verr mostrata la possibilit di compensare le pro-
blematiche di cui discusso, in fase di sintesi dellantenna.
Capitolo 2
Sintesi dellantenna
2.1 Modello analitico sintesi
Gli algoritmi in genere sono in grado di eettuare ecientemente la stima
della direzione di arrivo a partire dalle tensioni a vuoto che insistono sugli
elementi di un array lineare uniforme, modellato come una schiera di elementi
isotropi.
Il problema sorge nel momento in cui vengono presi in considerazione
aspetti elettromagnetici fondamentali come la caratterizzazione dei singoli
elementi, il pattern darray, il mutuo accoppiamento, e la presenza di ostacoli
sici in prossimit dellantenna.
In queste condizioni lipotesi di fronte donda piano dei segnali incidenti
decade, per cui non sar pi possibile utilizzare gli algoritmi proposti.
Se in eetti possibile ignorare le non idealit del modello, in genere il
progetto di un sistema per la stima DOA non viene condotto introducendo
ulteriori gradi di libert da utilizzarsi per far fronte agli eetti del mutuo
accoppiamento e alla presenza di ostacoli. In particolare sarebbe possibile
agire sulla distribuzione spaziale non uniforme degli elementi per migliorare
le prestazioni.
In questo capitolo verr fornito un criterio ed uno strumento in grado di
consentire il progetto di un array non uniforme.
Per semplicare la trattazione verr considerato soltanto il problema sca-
15
CAPITOLO 2. SINTESI DELLANTENNA 16
lare, ma negli esempi numerici verr poi mostrato come il discorso pu
facilmente essere adeguato al problema vettoriale.
Le tensioni a vuoto che insistono su un array lineare composto da elemen-
ti omnidirezionali isotropi possono essere rappresentate mediante lo spettro
donde piane a meno di costanti inessenziali e con abuso dimensionale nella
forma [Collin, 1985]:
V
n
=
_
1
1

E(u) exp (jux


n
) du (2.1)
dove

E(u) rappresenta lo spettro donde piane del campo incidente.
Volendo essere pi generali introduciamo un modello in grado di contem-
plare tutti i fenomeni elettromagnetici che interessano lantenna:
V
n
=
_
1
1

E(u)G(u, x
n
)du (2.2)
dove G(u, x
n
) loperatore in grado di inglobare le non idealit.
La soluzione del problema legata alla possibili o meno di determinare
lespressione delloperatore H
G
denito come:
H
G
g(u) (x) =
_
1
1
g(u)G(u, x) du (2.3)
g() L
2
[1,1]
(2.4)
2.2 Ostacoli sici
Si consideri unonda piana incidente in presenza dostacoli sici in prossimit
di unantenna composta da diusori omnidirezionali isotropi. Verr mostrato
come sia possibile, in queste condizioni, determinare il nucleo delloperatore
(2.3).
Qualora lostacolo fosse composto da conduttore elettrico perfetto (c.e.p.),
le tensioni osservate dagli elementi dellarray non saranno legate soltanto al
campo incidente, ma anche al campo diuso dallostacolo [Fig.2.1].
CAPITOLO 2. SINTESI DELLANTENNA 17
Figura 2.1: Ostacolo
In particolare su ogni elemento insister un campo pari a:
E = E
i
+ E
d
(2.5)
dove E
i
rappresenta il campo incidente (che si avrebbe in assenza dello-
stacolo), ed E
d
il campo dovuto alle correnti J
S
indotte sulla supercie
dellostacolo .
Le correnti indotte devono essere tali da rispettare le condizioni a contorno
del c.e.p.:
[E
t
]

=
_
E
i,t
+ E
d,t
(J
S
)

= 0 (2.6)
dove col pedice t si intendono le componenti tangenti.
La (2.6) prende il nome di equazione della diusione [Collin, 1985], dove:
E
d
(J
S
) = jA +
A
j
(2.7)
CAPITOLO 2. SINTESI DELLANTENNA 18
con A potenziale vettore [Collin, 1985]:
A =

4
_

J
S
(r

)
exp (j r r

)
r r

dr

(2.8)
Risolvendo lequazione (2.6) si disporr di E
d
, dunque nel caso scalare il
nucleo delloperatore H
G
assumer la forma:
G(u, x) = E
d
(u, x) + exp(jux) (2.9)
dove per E
d
(u, x) sintende il campo diuso dallostacolo per eetto dellonda
piana incidente proveniente dalla direzione u, calcolato nel punto x.
2.3 Mutuo accoppiamento
Lapproccio classico per lo studio degli array di antenne sfrutta il principio
di moltiplicazione del pattern [Collin, 1985]. In un array lineare e uniforme
di elementi identici il fattore delemento uguale al pattern della singola
antenna, pertanto pu essere messo in evidenza. Cos facendo sono trascurati
quelli che sono i fenomeni di mutuo accoppiamento tra gli elementi dellarray
[Fig.5.7].
Gli eetti del mutuo accoppiamento giocano un ruolo molto importante
in quanto alterano le caratteristiche elettromagnetiche dellantenna e ne al-
terano le prestazioni. Va quindi introdotta la denizione di active element
pattern, vale a dire il pattern del singolo elemento quando alimentato da
solo in presenza degli altri elementi chiusi su un carico adattato [Pozar, 1994].
Calcolata la matrice di scattering dellarray, possibile calcolare in modo
semplice il pattern attivo f(u) dellarray a partire dai singoli pattern attivi
delemento. Il pattern attivo consente perci di determinare il campo radiato
dalla schiera con accuratezza in presenza di mutuo accoppiamento.
Detto ci le tensioni a vuoto degli elementi di un array aetto da mutuo
accoppiamento tra gli elementi possono essere messe nella forma:
V
n
=
_
1
1

E(u)f
n
(u) exp(jux
n
) du (2.10)
CAPITOLO 2. SINTESI DELLANTENNA 19
Figura 2.2: Array di patch alimentato da cavi coassiali
dove

E(u) rappresenta lo spettro, ed f
n
(u) il pattern attivo dellarray, per
cui il nucleo delloperatore (2.3) assumer la forma:
G(u, x) = f(u) exp(jux) (2.11)
2.4 Ottimizzazione dei Valori Singolari
Loperatore H
G
dipende praticamente dalle posizioni degli elementi, per-
tanto queste possono essere determinate in modo da minimizzare la mal posi-
zione del problema e quindi il mal condizionamento
1
della matrice associata
1
Il condizionamento riguarda il rapporto tra lerrore commesso sul risultato di un calcolo
e lincertezza sui dati in ingresso. Un problema ben condizionato quando la soluzione del
problema con delle piccole variazioni sui dati non dierisce molto dalla soluzione del proble-
ma originale; al contrario, un problema mal condizionato un problema in cui le soluzioni
CAPITOLO 2. SINTESI DELLANTENNA 20
ad H
G
[Quarteroni et al., 2008].
Loperatore pu essere discretizzato campionando nei nodi spettrali u
k
con k = 0 . . . K 1, in modo che la (2.2) si riduce alla forma matriciale:
V = G

E (2.12)
V =
_

_
V (0)
V (1)
.
.
.
V (N 1)
_

_
(2.13)
G =
_

_
G
0,0
G
0,K1
.
.
.
.
.
.
.
.
.
G
N1,0
G
N1,K1
_

_
(2.14)

E =
_

E(0)

E(1)
.
.
.

E(K 1)
_

_
(2.15)
Il condizionamento di una matrice A, data la norma matriciale , pu
essere denito come [Quarteroni et al., 2008]:
K
_
A
_
=
_
_
A
_
_
_
_
A
1
_
_
(2.16)
tuttavia si soliti ricorrere al condizionamento spettrale:
K
_
A
_
=

max

min
(2.17)
dove
max
e
min
rappresentano rispettivamente il valore singolare massimo
e minimo della matrice A, ottenuti dalla decomposizione SVD:
A = U V
H
(2.18)
sono molto sensibili a piccole perturbazioni dei dati iniziali [Quarteroni et al., 2008]
CAPITOLO 2. SINTESI DELLANTENNA 21
con U e V matrici unitarie e matrice diagonale composta dai valori singolari
della matrice A [Quarteroni et al., 2008].
Visto il legame tra il numero di condizionamento e i valori singolari
della matrice, minimizzare il condizionamento della matrice G corrispon-
de a sollevare la dinamica dei suoi valori singolari [Capozzoli et al., 2010a]
[Capozzoli et al., 2010c]. Questa operazione pu essere eettuata ricorrendo
ad un algoritmo dottimizzazione da applicare al funzionale:
J(x) =
N1

i=0

1
(2.19)
dove
i
rappresenta li-esimo valore singolare della matrice G, e x il vettore
delle posizioni degli elementi dellarray:
x =
_

_
x
0
x
1
.
.
.
x
N1
_

_
(2.20)
Le posizioni degli elementi verranno dunque determinate risolvendo il
problema:
x

= arg min
x
J (x) = arg min
x
_

N1

i=0

1
_
(2.21)
La complessit degli algoritmi dottimizzazione cresce esponenzialmente
con la dimensionalit dello spazio di ricerca, pertanto se il numero delemen-
ti dellarray diventa considerevolmente elevato, la risoluzione del problema
risulta particolarmente onerosa. Ricorrere ad una opportuna rappresentazio-
ne delle posizioni pu ridurre il numero di incognite, quindi semplicare la
complessit computazionale.
I polinomi di Legendre sono uno strumento funzionale per la rappresenta-
zione, in quanto approssimano accuratamente funzioni con un numero esiguo
di coecienti. Essi rappresentano le soluzioni dellequazione dierenziale di
CAPITOLO 2. SINTESI DELLANTENNA 22
Legendre [Abramowitz & Stegun, 1965]:
d
dx
_
(1 x
2
)
d
dx
P
n
(x)
_
+ n(n + 1)P
n
(x) = 0 (2.22)
-1
-0.5
0
0.5
1
1.5
2
-1 -0.5 0 0.5 1
Legendre Polynomials
n = 0
n = 1
n = 2
n = 3
n = 4
n = 5
P
n
(
x
)
x
Figura 2.3: Polinomi di Legendre
Sono particolarmente attraenti dal punto di vista computazionale in quan-
to calcolabili ricorsivamente [Abramowitz & Stegun, 1965]:
P
0
(x) = 1 P
1
(x) = x (2.23)
(n + 1)P
n+1
(x) = (2n + 1)xP
n
(x) nP
n1
(x) (2.24)
Il mapping delle posizioni avviene decomponendo la variabile in polinomi
CAPITOLO 2. SINTESI DELLANTENNA 23
di Legendre con un ssato numero di coecienti:
x () =
L

l=1
c
l
P
l
() (2.25)
con [0, 1].
Per cui la sintesi consister nel risolvere il problema:
c

= arg min
c
J [x (c, )] (2.26)
Se L < N il problema dottimizzazione avr una complessit inferiore
rispetto al problema di partenza.
Dai test pratici eettuati emerge che per la rappresentazione accurata
della posizione degli elementi dellarray sono sucienti L = 4 coecienti.
Capitolo 3
Algoritmo Minimum Square Error
3.1 Stima di parametri
La teoria della stima si occupa dellestrazione di informazione da sue osser-
vazioni rumorose [Kay, 1993].
Sulla scorta di osservazioni, o misurazioni, con una opportuna regola di
stima, occorre stabilire quali siano i parametri dinteresse.
Spesso si interessati a stimare i parametri di un segnale x(n, ) a partire
da una sua versione rumorosa y(n):
y
n
= x
n
() + w
n
(3.1)
con w(n) rumore di caratteristiche non note.
In tal caso eettuare la stima del segnale equivale ad eettuarne la stima
dei parametri.
La stima dei parametri del segnale verr realizzata mediante un approccio
Minimum Square Error (MSE):

(y) = arg min

N1

n=0
|x
n
() y
n
|
2
(3.2)
La principale ragione per la quale lapproccio considerato pu sembra-
re poco indicato alla risoluzione del problema rappresentata dalla com-
24
CAPITOLO 3. ALGORITMO MSE 25
plessit dellalgoritmo in termini donere computazionale e tempi di calco-
lo, parametri cruciali in applicazioni di tipo real-time. Esso infatti richiede
lottimizzazione globale del funzionale (3.2).
Verr mostrato in seguito come il problema possa essere ridimensionato,
considerando algoritmi particolarmente ecienti, implementati su architet-
ture di tipo parallelo general purpose (GPGPU).
3.2 Modello analitico DOA
Verr mostrato come opera un algoritmo Minimum Square Error (MSE) e
saranno valutate le prestazioni ottenibili.
Consideriamo un array di N punti diusori isotropi, disposti lungo lasse
x, in geometria bidimensionale [Fig.3.1].
1 0 1 2 3 4 5 6
1
0.5
0
0.5
1
y
x
Figura 3.1: Rappresentazione dellallineamento
Il vettore delle tensioni a vuoto misurate sar dato da:

V (u

,

E) = V (u

,

E) + n (3.3)
dove n rappresenta il rumore, e V il vettore delle tensioni ideali.
V =
_

_
V
0
V
1
.
.
.
V
N1
_

_
(3.4)
CAPITOLO 3. ALGORITMO MSE 26
La tensione misurata sulla generica antenna pu essere espressa mediante
lo spettro donde piane nella forma:
V
n
=
_
1
1

E(u) exp (jux


n
) du (3.5)
con u coseno direttore,

E(u) lo spettro, x
n
la posizione, e la costante di
propagazione del vuoto.
Qualora il campo incidente fosse composto da una sola onda piana pro-
veniente dalla direzione u

si avrebbe:

E(u) =

E (u u

) (3.6)
V
n
=

E exp (ju

x
n
) (3.7)
dove () rappresenta limpulso di Dirac.
chiaro che, visto il legame di trasformata di Fourier e le dimensioni
nite dellarray, lo spettro donde piane non pu essere rappresentato corret-
tamente dalla distribuzione impulsiva. Si preferisce dunque ricorrere ad una
rappresentazione di tipo sinc() secondo la quale:

E(u) =

E sinc
_
u u

u
_
(3.8)
V
n
=

E
_
1
1
sinc
_
u u

u
_
exp (jux
n
) du (3.9)
Con u strettamente legato alle dimensioni elettriche dellarray. In parti-
colare esso rappresenta il passo di campionamento in u tale da non perdere
alcuna informazione.
Volendo eettuare un campionamento secondo Nyquist:
1
u
=
A

u =

A
(3.10)
dove A rappresenta la dimensione dellarray, e la lunghezza donda elettro-
magnetica nel vuoto.
La stima della direzione di arrivo verr poi eettuata minimizzando la
CAPITOLO 3. ALGORITMO MSE 27
funzione obiettivo:
F() =
_
_
_V ()

V
_
_
_
2
=
N1

n=0

V
n
()

V
n

2
(3.11)
con =
_
u

,

E
re
,

E
im
_
, risolvendo dunque il problema:

= arg min

F() = arg min

N1

n=0

V
n
()

V
n

2
(3.12)
Si tratta di un classico problema di ottimizzazione in 3 variabili, di cui
soltanto u

risulta dinteresse.
Lutilizzo della sinc() per la rappresentazione dello spettro provoca uno
smooth del funzionale, che aiuta la ricerca del minimo. Analizzandone lan-
damento emerge comunque il comportamento oscillante dovuto alla perio-
dicit degli esponenziali complessi [Fig.3.2]. Ci implica che, con elevata
probabilit, i classici algoritmi di ricerca resterebbero intrappolati nei mini-
mi locali della funzione obbiettivo. Tale problema verr risolto utilizzando
un algoritmo di ottimizzazione globale.
3.2.1 Calcolo eciente dellintegrale: Quadratura
La quadratura rappresenta uno strumento molto potente per eettuare il
calcolo di integrali anche molto complessi in maniera eciente. Nellambito
del signal processing spesso una approssimazione di tipo polinomiale non
suciente a rappresentare correttamente landamento di un segnale, per cui
si ricorre a strumenti molto pi potenti in grado di ricostruire in maniera
ottimale funzioni a banda limitata.
Una funzione f : R R viene denita a banda limitata se esiste una
L
2
[1, 1] e un c reale positivo tali che:
f(x) =
_
1
1
exp(jcxt)(t) dt (3.13)
Si pu mostrare che le funzioni sferoidali prolate rappresentano il set
CAPITOLO 3. ALGORITMO MSE 28
1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1
0
5
10
15
20
25
u
*
F
(
u
*
)
Funzionale 1D
Figura 3.2: Andamento del funzionale ssato il coeciente

E
ideale di funzioni utili a rappresentare funzioni a supporto essenzialmente
limitato sia nel dominio spaziale che nel dominio spettrale [Slepian, 1978].
Denito loperatore F
c
: L
2
[1, 1] L
2
[1, 1]:
F
c
()(x) =
_
1
1
exp(jcxt)(t) dt (3.14)
si deniscono funzioni sferoidali prolate le relative autofunzioni, per cui:

i
(x) =
_
1
1
exp(jcxt)
i
(t) dt (3.15)

L
2
[1,1]
= 1 i N (3.16)
Le funzioni sferoidali prolate sono particolarmente attraenti dal punto di
vista computazionale in quanto sviluppabili in polinomi di Legendre con un
CAPITOLO 3. ALGORITMO MSE 29
numero ridotto di coecienti, e costituiscono una base ortonormale completa
in L
2
[1, 1].
Mediante tali funzioni possibile ottenere i nodi x
k
e i pesi w
k
tali che
[Xiao et al., 2001]:
K1

k=0
w
k
f(x
k
)
_
1
1
f(x) dx (3.17)
per cui a partire dalla [3.9], lintegrale pu essere risolto numericamente
come:
V
n


E
K1

k=0
w
k
exp(ju
k
x
n
)sinc
_
u
k
u

u
_
(3.18)
Se deniamo:
F
nk
= w
k
exp(ju
k
x
n
)
s

k
= sinc
_
u
k
u

u
_ (3.19)
lespressione delle tensioni pu essere riscritta in forma matriciale:
V =

EF s

(3.20)
3.2.2 Dimensionamento dellantenna
Visto lo stretto legame tra le dimensioni elettriche dellantenna e u, sorge
spontanea lidea di voler valutare le dimensioni elettriche tali da poter ga-
rantire una risoluzione appropriata della direzione di arrivo. Va osservato
dunque il legame tra u e la risoluzione angolare [Fig.3.3].
In coordinate cartesiane:
u = cos (3.21)
du
d
= sin du = sin d u sin (3.22)
Volendo investigare una regione compresa tra [5

, 175

], il valore minimo
di u dovr essere u
min
= sin(5

), per cui:
= 1

u
min
= 0.0015 A = 667
= 5

u
min
= 0.0076 A = 132
(3.23)
CAPITOLO 3. ALGORITMO MSE 30
0 0.5 1 1.5 2 2.5 3
1
0.5
0
0.5
1

u
Figura 3.3: Risoluzione DOA
Per ottenere dimensioni pi ragionevoli necessario rilassare i vincoli:
[10

, 170

] = 10

u
min
= 0.0303 A = 33 (3.24)
3.3 Ottimizzazione Globale
Si consideri una funzione obbiettivo reale e continua f : R
n
R. Si denisce
x

minimo locale se esiste un intorno B di x

tale che:
f(x

) f(x) x B (3.25)
In generale una funzione ammette pi minimi locali, in corrispondenza
dei quali pu assumere valori anche molto diversi tra loro. Gli algoritmi in
grado di estrarre il migliore possibile tra i minimi locali vengono denominati
ottimizzatori globali [Capozzoli & G.DElia, 2006].
Un problema di ottimizzazione globale si propone di trovare il minimo
CAPITOLO 3. ALGORITMO MSE 31
globale x

di una funzione obbiettivo reale f : R


n
R tale che:
f(x

) f(x) x R
n
(3.26)
I vari algoritmi di ottimizzazione globale utilizzano approcci fondamen-
talmente diversi, che si dividono in:
Deterministici:
Stocastici
Molto attraenti da un punto di vista computazionale sono i metodi sto-
castici, i quali constano sostanzialmente di due fasi:
Fase Globale: nel corso della quale il funzionale viene valutato in un
certo numero, dipendente dalla dimensionalit del problema, di sample
points casuali.
Fase Locale: durante la quale i sample points vengono manipolati per
diventare dei candidati minimi globali.
Generalmente utilizzando un metodo stocastico non si ha la certezza di ot-
tenere la soluzione esatta, ma sotto alcune ipotesi sulla distribuzione dei sam-
ple points e sul funzionale la probabilit di ottenere un risultato corretto ten-
de ad 1 al crescere del numero di campioni. In particolare qualora i campioni
fossero distribuiti in maniera uniforme, ed il funzionale f fosse continuo, il
punto a valore minimo convergerebbe ad un punto di un intorno di un minimo
globale con probabilit tendente ad 1 [Rinnooy Kan & Timmer, 1987b].
3.3.1 Multistart
Il pi semplice degli algoritmi di natura stocastica, che ore la convergenza
asintotica in termini probabilistici, viene denominato Pure Random Search
[Rinnooy Kan & Timmer, 1987b]. Esso consta della sola fase globale duran-
te la quale vengono tracciati N punti estratti da una distribuzione unifor-
me per poi valutarne il funzionale f. Il punto in corrispondenza del quale
CAPITOLO 3. ALGORITMO MSE 32
il funzionale assume il valore minimo sar candidato ad essere un minimo
globale.
Fra i metodi stocastici pi attraenti per la risoluzione di problemi dei quali
non si dispone alcuna informazione prendono il nome di algoritmi Multistart,
secondo i quali vengono aggiunti iterativamente punti estratti da una distri-
buzione uniforme (fase globale), da utilizzare come punti iniziali per un algo-
ritmo di ricerca locale (fase locale). Il criterio darresto pu essere stabilito
eettuando la stima Bayesiana del numero di minimi locali W, e della dimen-
sione delle relative regioni dattrazione [Rinnooy Kan & Timmer, 1987b]:

l
=
m(R
x
)
m(S)
l = 1, . . . , W (3.27)
detti R
x
regione dattrazione del minimo locale x

, ed S il dominio di ricerca.
Pur fornendo una ecienza superiore al Pure Random Search, il Mul-
tistart sore del fatto che pi ottimizzazioni possano giungere allo stesso
minimo locale.
Per limitare il tempo speso nelle minimizzazioni locali, onerose da un
punto di vista computazionale, lottimizzazione andrebbe lanciata non pi
di una volta per ogni regione di attrazione. Inoltre si pu pensare di partire
soltanto da punti il cui funzionale assume valori inferiori ai minimi locali gi
valutati.
3.3.2 Clustering Methods
Si tratta di varianti dei metodi Multistart, che cercano di soddisfare richieste
apparentemente in contrasto: la correttezza asintotica (consistenza), e le-
cienza. Constano di tre passi principali [Rinnooy Kan & Timmer, 1987b]:
Step 1. Vengono generati N punti casuali distribuiti uniformemente e
se ne calcola il funzionale. Questi punti vengono aggiunti ad un paniere
inizialmente vuoto, diciamolo X

.
Step 2. Una procedura seleziona un sottoinsieme di punti del panie-
re, ed avvia le procedure di minimizzazione locale. I punti stazionari
risultanti verranno poi riposti nel paniere X

inizialmente vuoto.
CAPITOLO 3. ALGORITMO MSE 33
Step 3. Una regola darresto stabilisce se tornare allo Step 1 o arre-
stare le iterazioni. Se il metodo viene bloccato, lelemento di X

con
funzionale pi piccolo sar la soluzione assoluta al problema.
Il metodo proposto in [Rinnooy Kan & Timmer, 1987b] permette di far
partire la procedura di minimizzazione locale esattamente una sola volta in
ogni regione dattrazione, in probabilit.
In prima battuta viene scartata una percentuale di punti prestabilita
(1 , con 0 < < 1) con funzionale relativamente elevato. Non possibile
dire molto su questo parametro se non che generalmente gli si attribuiscono
valori del tipo 0.1 o 0.2, e che a valle della riduzione i campioni saranno
ancora distribuiti uniformemente.
I clusters vengono creati uno ad uno. I punti selezionati dal paniere ridot-
to vengono aggiunti al cluster corrispondente secondo un criterio prestabilito.
Al termine della selezione si avvia lottimizzazione locale da uno dei punti
del cluster [Rinnooy Kan & Timmer, 1987b].
3.3.3 Multi Level Methods
I metodi precedenti non assolvono completamente al proprio compito, in
quanto non si riesce a garantire che lottimizzazione locale avvenga una sola
volta in ogni regione dattrazione. In particolare non possibile escludere
la possibilit che non venga avviata anche nel caso in cui sarebbe giunta ad
un nuovo minimo locale. Vengono per applicati gli stessi criteri darresto
supponendo che la probabilit che ci accada sia nulla.
I metodi Multi Level [Rinnooy Kan & Timmer, 1987a] risolvono questo
problema osservando il valore del funzionale valutato in tutti i sample points
per stabilirne la regione dattrazione. Nello specico permettono di invo-
care una sola ricerca locale per ogni regione dattrazione con probabilit 1
[Rinnooy Kan & Timmer, 1987a].
La giusta assegnazione di un sample point x alla regione dattrazione R
x

legata allesistenza o meno di un percorso decrescente da x verso x

. Ovvia-
mente sarebbe impossibile considerare tutti i percorsi di discesa a partire da
x, per cui viene considerata la sequenza di sample points, posti a distanza r
k
CAPITOLO 3. ALGORITMO MSE 34
[Rinnooy Kan & Timmer, 1987a] luno dallaltro, in cui il funzionale mo-
notono decrescente. Lidea di base del Multi Level segue dunque i seguenti
passi:
Step 1. Noti w minimi locali, vengono inizializzati w clusters contenenti
ognuno un minimo locale.
Step 2. I sample points vengono ordinati secondo la regola f(x
i
)
f(x
i+1
), 1 i kN 1 e si imposta i = 1.
Step 3. Il punto x
i
viene assegnato ad ogni cluster che contiene un punto
a distanza r
k
. Qualora x
i
non venisse assegnato a nessun cluster verr
fatta partire la ricerca locale, per giungere al punto x

. Se x

/ X

,
x

verr aggiunto ai minimi locali X

, w = w + 1 e verr inizializzato
un nuovo cluster a partire da x

. Il punto x
i
verr assegnato al nuovo
cluster.
Step 4. Se i = kN verranno arrestate le iterazioni, altrimenti i = i + 1
e si torner allo Step 3.
Va notato che lassegnazione al cluster non pu necessaria in quanto la
ricerca locale va eettuata soltanto se non vi sono altri punti a distanza r
k
in cui il funzionale assume valore minore.
Lalgoritmo Multi Level Single Linkage (MLSL) opera correttamente se:
r
k
=
1/2
_

_
1 +
n
2
_
m(S)
log kN
kN
_
1/n
(3.28)
con > 0.
Capitolo 4
Calcolo parallelo su GPU
4.1 General Purpose Computing on Graphics
Processing Unit
Negli ultimi anni lo sviluppo tecnologico dei microprocessori ha subito una
sostanziale battuta darresto in termini di crescita delle frequenze di clock. In
questa situazione necessario orientarsi su tecniche di calcolo massicciamente
parallelo per ottenere sistemi di calcolo con prestazioni sempre pi elevate.
In questottica pi che ricorrere a calcolatori dotati di un numero elevato
di CPU, possibile optare per le GPU (Graphics Processing Unit), in quanto
i recenti sviluppi nel mercato dei chip graci fanno si che tali prodotti risul-
tino essere particolarmente indicati per il calcolo numerico general purpose
massicciamente parallelo.
Le GPU odierne sono processori caratterizzati da un forte parallelismo e
completamente programmabili. Dispositivi di questo tipo si prestano egre-
giamente anche ad applicazioni diverse dalla Computer Graphics aprendo la
strada ad una serie di applicazioni descritte dallacronimo GPGPU (General
Purpose Computing on Graphics Processing Unit) di tipo HPC (High Perfor-
mance Computing) [Capozzoli et al., 2010b]. Linteresse che si manifestato
per questo tipo di applicazioni legato al fatto che, grazie allelevato paral-
lelismo, le prestazioni di questi dispositivi nel calcolo in virgola mobile sono
signicativamente superiori a quelle delle moderne CPU [Fig.4.1].
35
CAPITOLO 4. CALCOLO PARALLELO SU GPU 36
!"#$%&'()*(+,%'-./0%1-,!
!
!
2( ( !345(6'-7'#881,7(9/1.&(:&';1-,(<*=!
!
!
!
>17/'&()?)*( >@-#%1,7?6-1,%(A$&'#%1-,;($&'(B&0-,.(#,.(
C&8-'D(E#,.F1.%"(G-'(%"&(!63(#,.(963(
!
"#$!%$&'()!*$#+),!-#$!,+'.%$/&).0!+)!12(&-+)34/(+)-!.&/&*+2+-0!*$-5$$)!-#$!678!&),!
-#$!978!+'!-#&-!-#$!978!+'!'/$.+&2+:$,!1(%!.(;/<-$4+)-$)'+=$>!#+3#20!/&%&22$2!
.(;/<-&-+()!!$?&.-20!5#&-!3%&/#+.'!%$),$%+)3!+'!&*(<-!!&),!-#$%$1(%$!,$'+3)$,!
'<.#!-#&-!;(%$!-%&)'+'-(%'!&%$!,$=(-$,!-(!,&-&!/%(.$''+)3!%&-#$%!-#&)!,&-&!.&.#+)3!
&),!12(5!.()-%(2>!&'!'.#$;&-+.&220!+22<'-%&-$,!*0!@+3<%$!A4BC!
!"#$%
&'(%
)$$#%
&*(% +,-%
)$$.% )$$/% )$$0% )$$1% )$$2%
!"#/%
!".$%
30$%
304%
32$%
35)%
36)$$%
&*(% !78% 9'-% 9':% &*(%
9H2==(I(9&>-'0&(9HJ(2K=(
9L2(I(9&>-'0&(LK==(9HJ!
9K=!I!9&>-'0&!KK==!9HJ(
9M)!I!9&>-'0&!ML==!9HJ!
9M=!I!9&>-'0&!MK==!9HJ!
N:O=!I!9&>-'0&!PK==!3@%'#!
N:<Q!I!9&>-'0&!>J!QLQ=!3@%'#!
N:<=!I!9&>-'0&!>J!QK==!
#;$%3<=%
>7-?)%@*7%
#;)%3<=%
<'-,?-A7B(%
!"#$%
!".$%
304%
32$%
32$%
CDA-'%
32$%
CDA-'%
!7-AEB77F%
G-?HI7AA%JJ%
K77FI-?HA%
<'-,?-A7B(%
Figura 4.1: Prestazioni GPU Vs CPU
I maggiori produttori di GPU hanno deciso di organizzare gli elementi del
processore in gruppi che lavorano secondo la logica SIMD (Single Instruction
Multiple Data): ciascun elemento del processore esegue la stessa istruzione
su un dato diverso e non vi interazione tra le elaborazioni condotte dai vari
elementi. Se, a seguito di unistruzione di salto, elementi dello stesso gruppo
devono eseguire istruzioni diverse, queste non vengono eseguite in parallelo
ma in sequenza.
La chiave di volta nel panorama del GPGPU stata il rilascio di strumenti
di sviluppo espressamente dedicati allo scopo, basati tutti sullo stesso prin-
cipio di funzionamento: il programmatore denisce una griglia di thread da
eseguire in parallelo ciascuno dei quali costituito da operazioni matematiche
e operazioni di lettura e scrittura nella memoria della scheda graca.
Lo strumento messo a disposizione da NVIDIA
R
prende il nome di CUDA
(Compute Unied Device Architecture). Si tratta di un ambiente in linguag-
CAPITOLO 4. CALCOLO PARALLELO SU GPU 37
gio C standard con estensioni per la programmazione del chip graco che
permette anche a programmatori meno smaliziati di sfruttare le potenzialit
del calcolo parallelo su GPU.
Le applicazioni CUDA nellambito del calcolo scientico ed ingegneri-
stico si stanno moltiplicando, tanto da suscitare interesse anche in ambito
accademico.
Nel lavoro di tesi lalgoritmo di stima della direzione darrivo stato
implementato in ambiente CUDA per funzionare su scheda GPU NVIDIA
R
GTX 260.
4.2 Il modello di programmazione CUDA
Il sistema di elaborazione visibile al programmatore CUDA composto da un
host, PC tradizionale che esegue le istruzioni sequenziali del calcolo ed ospita
la scheda graca, e da uno o pi device, le GPU che eseguono le istruzioni
parallele. Un sorgente CUDA costituito da istruzioni per lhost ed istruzioni
per il device. Il codice da eseguire sul device organizzato in speciali blocchi
funzionali C, detti kernel che, quando chiamati, generano un certo numero di
thread eseguiti in parallelo dalla GPU. Terminata lesecuzione dei thread, il
controllo passa allhost e vi resta nch non viene invocato un nuovo kernel
[Kirk & mei W. Hwu, 2010].
I thread generati da ogni kernel vengono organizzati secondo un ordi-
ne gerarchico ben denito. Il usso elaborativo di ogni kernel viene di-
viso in griglie, strutture bidimensionali formate da blocchi. Ogni blocco
a sua volta rappresenta una struttura tridimensionale composta da thread
[Kirk & mei W. Hwu, 2010] [Fig.4.2].
4.3 Gestione della memoria
Il modello di programmazione CUDA permette al programmatore di acce-
dere ad una serie di memorie aggiuntive rispetto alla memoria globale pre-
sente sulla scheda graca [Fig.4.3]. Il loro corretto utilizzo rappresenta un
CAPITOLO 4. CALCOLO PARALLELO SU GPU 38
Figura 4.2: Struttura gerarchica dei thread
aspetto cruciale per la realizzazione di codici ecienti. Innanzitutto il de-
vice non ha accesso diretto alla memoria centrale dellhost e viceversa. I
trasferimenti tra host e constant/global memory sono possibili solo median-
te lutilizzo di apposite funzioni API (Application Programming Interface)
[Kirk & mei W. Hwu, 2010].
4.3.1 Global memory
La global memory una memoria esterna alla GPU montata sulla scheda
graca, e rappresenta la risorsa pi capiente a disposizione del programma-
tore (la scheda utilizzata dispone di 896 MB). La GPU non equipaggiata di
cache per gli accessi alla global memory, per cui tali operazioni sono carat-
terizzate da lunghi tempi di latenza (centinaia di colpi di clock). Luso della
global memory va quindi evitato per dati utilizzati frequentemente nel corso
CAPITOLO 4. CALCOLO PARALLELO SU GPU 39
Figura 4.3: Struttura delle memorie su GPU
dellelaborazione.
4.3.2 Constant memory
La constant memory accessibile in lettura e scrittura dallhost ed in sola
lettura dal device. A dierenza di quanto accade per la global memory,
ogni Streaming Multiprocessor dotato di una cache per la lettura dalla
constant memory, di conseguenza solo la prima lettura di una locazione sar
unoperazione a lunga latenza dopodich gli accessi saranno molto pi rapidi.
In particolare se tutti i thread appartenenti allo stesso usso elaborativo
accedono alla stessa locazione della constant memory, loperazione di lettura
sar equivalente allaccesso ad un registro della GPU. La nota dolente della
constant memory rappresentata dalle dimensioni sostanzialmente ridotte
CAPITOLO 4. CALCOLO PARALLELO SU GPU 40
rispetto alla global memory (64 KB nel nostro caso).
4.3.3 Shared memory
Ogni streaming multiprocessor dotato di 16 KB di shared memory, acces-
sibile e condivisa da tutti i thread di un blocco. Trattondosi di una memoria
direttamente implementata sul chip molto pi veloce rispetto alla global
memory presentando tempi di accesso praticamente pari a quelli dei registri.
La quantit di shared memory da allocare per ogni streaming multiproces-
sor viene stabilita allinvocazione del kernel, e viene deallocata al termine
dellesecuzione dellultimo thread. Bisogna porre particolare attenzione a
non saturare la shared memory in quanto essa viene utilizzata in maniera
assolutamente trasparente al programmatore come stack per il passaggio dei
dati.
4.3.4 Registri
Ogni streaming multiprocessor dotato di un certo numero di registri. Ven-
gono utilizzati per allocare le variabili automatiche dichiarate nei kernel e
sono caratterizzati da unelevata velocit daccesso. Gli array dichiarati nei
kernel al contrario vengono allocati in local memory, memoria con caratte-
ristiche del tutto analoghe alla global memory, per questa ragione lutilizzo
rappresenta un fattore determinante per la velocit di trasferimento quindi
per i tempi di latenza.
4.4 MLSL su GPU
Visto lonere computazionale e i tempi di calcolo dei metodi di ottimizzazione
globale si pensato dimplementare lalgoritmo Multi Level Single Linkage
su GPU per renderlo utilizzabile in applicazioni di tipo real-time sfruttando
le capacit di calcolo parallelo delle moderne schede grache.
Come descritto nel capitolo precedente lalgoritmo consta di una fase
globale (generazione e clustering) ed una fase locale (ottimizzazione locale
CAPITOLO 4. CALCOLO PARALLELO SU GPU 41
e controllo). Si scelto di realizzare lalgoritmo in forma ibrida, scindendo
quindi le fasi per realizzarne la prima su GPU e la seconda su CPU.
4.4.1 Generazione dei punti
Il primo passo dellalgoritmo consiste nella generazione di un numero ssato
di punti casuali nello spazio di ricerca per poi calcolarne il funzionale. Questa
operazione si presta naturalmente molto bene ad una implementazione di tipo
parallelo su GPU. Nello specico stato realizzato un kernel che a partire
dai semi generati dallhost, fosse in grado di generare il numero di punti
desiderati.
In seconda battuta il calcolo del funzionale stato eettuato riscrivendo
il problema in forma matriciale e sfruttando le librerie CUBLAS (implemen-
tazione parallela ed ottimizzata CUDA delle librerie BLAS sviluppate per il
calcolo matriciale).
4.4.2 Assegnazione alle celle
Anche nel caso dellassegnazione dei punti alle celle preferibile eettuarne
limplementazione su GPU. In particolare, seguendo il solito approccio, ad
ogni punto stato assegnato un thread che calcola la cella di appartenenza
del punto in base alla posizione, alle dimensioni del dominio e al numero
dintervalli ssati.
4.4.3 Ordinamento con chiavi
Lalgoritmo MLSL prevede che i punti debbano essere ordinati per ridurne
il numero di confronti, prima in base alle celle (i punti appartenenti ad una
cella vengono confrontati soltanto con i punti appartenenti alle celle vicine),
e poi in base al funzionale (i punti appartenenti a ciascuna cella vengono
confrontati soltanto con punti a funzionale pi basso appartenenti alla stessa
cella). stato dunque eettuato un ordinamento mediante lalgoritmo pa-
rallelo implementato nelle librerie Thrust (Radix Sort e Merge Sort), dopo
CAPITOLO 4. CALCOLO PARALLELO SU GPU 42
aver generato, sempre in parallelo, delle chiavi che permettessero di eet-
tuare lordinamento su due livelli, prima rispetto alle celle, poi rispetto al
funzionale.
4.4.4 Calcolo dei ag e passaggio allhost
Il calcolo dei ag rappresenta loperazione cruciale dellalgoritmo MLSL, in
quanto da essa dipende la scelta dei punti dai quali far partire o meno la
ricerca locale tra quelli generati. stata implementata anchessa su GPU
poich il successo dellimplementazione parallela dellalgoritmo legato so-
stanzialmente alla rapidit di esecuzione di questa funzione in quanto pi
onerosa delle altre dal punto di vista computazionale.
Eettuato il calcolo dei ag necessario passare i punti allhost per lese-
cuzione della fase locale dellalgoritmo. Poich il passaggio dei dati dal device
allhost e viceversa rappresenta il collo di bottiglia delle capacit elaborative
della GPU (latenze dellordine delle centinaia di clock [Kirk & mei W. Hwu, 2010]),
stato utilizzato lalgoritmo parallelo Prex Scan delle librerie Thrust che
permette di estrarre da un array di elementi soltanto quelli di interesse. In
questo modo stato possibile limitare i tempi di latenza riducendo la mole
di dati da passare allhost ai soli punti signicativi.
4.4.5 Ottimizzazione locale, funzionale e controlli
Per quanto riguarda lottimizzazione locale, stato implementato un algo-
ritmo ibrido C/CUDA. Nello specico per la ricerca locale stato realizzato
lalgoritmo del gradiente coniugato sequenziale in C [Press et al., 1992], ma
ad ogni iterazione il funzionale richiamato stato implementato in CUDA
sfruttando ancora una volta le librerie CUBLAS per i prodotti matrice vettore
e le librerie Thrust per le riduzioni.
Per quanto riguarda il gradiente, stato realizzato un gradiente numerico
col metodo delle dierenze nite [Quarteroni et al., 2008], per cui il funzio-
nale verr richiamato pi volte per la stima del gradiente. Probabilmente
sarebbe possibile migliorare ancora le prestazioni dellottimizzazione locale
CAPITOLO 4. CALCOLO PARALLELO SU GPU 43
calcolando lespressione del gradiente analitico ed implementandolo in forma
parallela.
Per quanto riguarda i controlli riguardanti la scelta dei minimi locali ed
il criterio darresto lesecuzione stata lasciata in forma sequenziale.
Capitolo 5
Risultati Numerici e Conclusioni
5.1 Confronto metodi spettrali
Sono stati eettuati vari test per vericare le caratteristiche che contraddi-
stinguono i vari algoritmi di stima spettrale.
Una prima analisi stata svolta sui tempi di calcolo. Dai test emerge,
come aermato in precedenza, che lalgoritmo MP presenta tempi di calcolo
molto ridotti [Fig.5.1]. Ci lo rende particolarmente attraente in ambienti
real time.
Per quanto riguarda limmunit al rumore, sono state eettuate delle
stime su dati aetti da rumore gaussiano bianco facendo variare il rapporto
segnale rumore (SNR). I test evidenziano quanto lalgoritmo Spectral MUSIC
sora la presenza di rumore anche di piccola entit. Al contrario gli algo-
ritmi MP e Root MUSIC continuano a garantire buone prestazioni [Fig.5.2].
Da notare che questi ultimi due algoritmi forniscono esattamente le stesse
prestazioni in presenza di rumore.
In conclusione gli algoritmi spettrali si contraddistinguono quanto a rapi-
dit e risoluzione. Tra tutte spiccano senza dubbio le caratteristiche dellal-
goritmo MP, il quale riesce a garantire le medesime prestazioni degli algoritmi
MUSIC, pur abbattendo notevolmente i tempi di calcolo. Tuttavia MP in
grado di stimare
N+1
2
direzioni contro le N 1 di MUSIC.
44
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 45
0 5 10 15 20 25 30 35 40 45 50
9
8
7
6
5
4
3
2
1
0
N
l
o
g
(
t
i
m
e
)
Tempi di calcolo


MP
Spectral MUSIC
Root MUSIC
Figura 5.1: Tempi di calcolo dei metodi spettrali
0 5 10 15 20 25 30 35 40 45 50
90
80
70
60
50
40
30
20
10
SNR [dB]
e
r
r
o
r

[
d
B
]
Errore
Figura 5.2: Errore al variare dellSNR
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 46
5.2 Sintesi dellantenna: Ostacolo
Per mostrare la validit di quanto aermato sono stati prodotti degli espe-
rimenti numerici. Nello specico stata considerata (in geometria bidi-
mensionale) unonda piana incidente in presenza di un cilindro indenito
di conduttore elettrico perfetto [Fig.5.3].
Figura 5.3: Scenario
Per un problema di questo tipo possibile giungere alla soluzione esatta
del campo diuso dallostacolo in coordinate cilindriche [Harrington, 2001]:
E
d
= E
0
+

n=
j
n
_
J
n
(k) + a
n
H
(2)
n
(k)

e
jn(

)
(5.1)
dove con si identica la distanza del punto dosservazione dallorigine, con
langolo formato con lasse x, con

la direzione di provenienza dellonda pia-


na, e con J
n
() e H
(2)
n
() rispettivamente la funzione di Bessel dordine n e la
funzione di Hankel di seconda specie dordine n [Abramowitz & Stegun, 1965].
Imponendo le condizioni a contorno sul cilindro:
a
n
=
J
n
(ka)
H
(2)
n
(ka)
(5.2)
dove a rappresenta il raggio del cilindro di c.e.p.
Di seguito sono riportati i parametri utilizzati per la simulazione:
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 47
VARIABILE SETUP
1 m
a 3
N 10
1 2 3 4 5 6 7 8 9 10
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
Singular Values


Uniform
Optimized
Figura 5.4: Dinamiche dei valori singolari
Dalla [Fig.5.4] mostra il miglioramento della dinamica dei valori singo-
lari ottenuto dalla distribuzione ottimizzata rispetto alla distribuzione uni-
forme, pertanto il numero di condizionamento della matrice passato da
K
_
G
init
_
= 1.7232 a K
_
G
opt
_
= 1.3858.
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 48
2 1 0 1 2 3 4 5 6 7 8 9
4
3
2
1
0
1
2
3
4
x/
y
/



Cilindro
Uniforme
Ottimizzato
Figura 5.5: Posizionamento degli elementi
5.3 Sintesi dellantenna: Mutuo accoppiamen-
to
Per mostrare lecacia della sintesi stato eettuato un test riguardante i
problemi di mutuo accoppiamento di un patch array lineare, trattandosi della
tipologia classica utilizzata per la DOA estimation. Nello specico stato
simulato il pattern attivo di una schiera di patch in aria, alimentati median-
te cavo coassiale, e progettati in modo tale da garantire la polarizzazione
circolare [James, 1988] necessaria in applicazioni GPS [Fig.5.6].
In particolare nelle simulazioni stato considerato il caso vettoriale, per
cui il modello analitico introdotto nel secondo capitolo stato adeguato alla
trattazione.
La tensione a vuoto misurata dalln-esimo elemento dellarray va espressa
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 49
Figura 5.6: Singolo patch a polarizzazione circolare
come:
V
n
=
_
1
1
_

E(u), f
n
(u)
_
exp(jux
n
) du (5.3)
dove:

E(u) =

E

(u)

+

E

(u)

f
n
(u) = f
n,
(u)

+ f
n,
(u)

(5.4)
per cui svolgendo i prodotti matriciali:
V
n
=
_
1
1

f
n,
(u) exp(jux
n
) du +
_
1
1

f
n,
(u) exp(jux
n
) du (5.5)
Campionando nei nodi spettrali u
k
con k = 0, . . . , K 1 si pu passare
alla notazione matriciale:
V = F

+ F

(5.6)
Lottimizzazione dei valori singolari andr eettuata ottimizzando la ma-
trice costruita a righe alterne a partire da F

ed F

.
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 50
Tramite il tool di progettazione HFSS
TM
stato generato un database dei
pattern attivi dellarray campionato in u al variare delle distanze tra elementi
adiacenti [Fig.5.7].
Figura 5.7: Patch array
Di seguito sono riportati i parametri impostati per la simulazione.
VARIABILE SETUP
0.075 m
x
init
0.6
N 33
In tal caso vi un miglioramento estremamente accentuato della dinamica
dei valori singolari [Fig.5.8], in particolare eettuando un taglio a 10dB
larray uniforme perderebbe ben 13 direzioni (13 valori singolari sarebbero
sommersi da rumore).
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 51
5 10 15 20 25 30
90
80
70
60
50
40
30
20
10
0
Singular Values


Uniform
Optimized
Figura 5.8: Dinamiche dei valori singolari
In queste condizioni il condizionamento della matrice, quindi dellopera-
tore continuo, subisce una variazione notevole passando da 10
4
per larray
uniforme, a 1.5 per larray ottimizzato.
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 52
0 0.5 1 1.5
1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
x
y
Array uniforme
Figura 5.9: Posizioni array di partenza (uniforme)
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
x
y
Array ottimizzato
Figura 5.10: Posizioni array ottimizzato
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 53
5.4 MLSL parallelo
Limplementazione parallela dellalgoritmo dottimizzazione globale MLSL
proposto nel quarto capitolo stato confrontata con lo stesso algoritmo
implementato in sequenziale in ambiente MATLAB
R
.
Le varie funzioni sono state analizzate separatamente valutandone i tempi
di calcolo ed analizzandone il comportamento mediante lausilio del cudaprof
visual proler compreso nel toolkit CUDA. I risultati sono stati tabellati in
[Tab.5.1].
FUNZIONE PUNTI MATLAB CUDA
Generazione punti e calcolo funzionale 10240 2030 ms 5 ms
Assegnazione alle celle 1024 114.01 ms 0.04 ms
Ordinamento 1024 4.32 ms 1.65 ms
Calcolo dei ag 1024 15834 ms 123 ms
Minimizzazione locale 1 640 ms 890 ms
Tabella 5.1: Prestazioni delle singole funzioni del MLSL
Le statistiche evidenziano la netta superiorit dellalgoritmo parallelo nel-
leettuare operazioni analoghe su dati diversi. I tempi di calcolo vengono
notevolmente ridotti in gran parte delle funzioni, in particolare nella genera-
zione dei punti. Ci dovuto principalmente allutilizzo di funzioni di libreria
ottimizzate per il calcolo parallelo su GPU quali CUBLAS, come evidenziato
dalloutput del proler [Fig.5.11].
Per quanto riguarda le ricerche locali, le prestazioni sono falsate per diver-
si aspetti. Lalgoritmo MATLAB
R
utilizza per la minimizzazione la funzione
fminunc, basata su un approccio a norma variabile che passa per la stima
dellhessiano. Ci permette di giungere alla soluzione del problema con un
numero ridotto di passi rispetto agli algoritmi a norma costante.
Al contrario lalgoritmo realizzato in CUDA si serve del gradiente co-
niugato per determinare la soluzione del problema di ottimizzazione, il quale
utilizzando un approccio a norma costante, impiegher pi passi per la ricerca
del minimo rispetto agli algoritmi a norma variabile.
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 54
Figura 5.11: Proler output
Analizzando loutput del proler si nota che la ragione per la quale lot-
timizzazione locale impiega pi tempo nel codice CUDA rispetto al codi-
ce MATLAB
R
rappresentata dal numero di chiamate a funzionale, che
coincide col numero di passi impiegati per la ricerca.
Il confronto di velocit tra le due funzioni di ricerca locale non rappresenta
dunque una scelta di valutazione obiettiva dal momento che le procedure
utilizzate sono diverse.
5.5 DOA estimation
Lultimo test eettuato riguarda la stima della direzione darrivo di un segna-
le proveniente da pi angolazioni in presenza di rumore additivo complesso
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 55
gaussiano bianco a media nulla.

V = V + W (5.7)
W(n) = W
r
(n) + jW
i
(n) (5.8)
W
r
(n) N
_
0,

2
2
_
W
i
(n) N
_
0,

2
2
_
(5.9)
Lesperimento stato eettuato utilizzando larray sintetizzato nel terzo
paragrafo considerando il problema del mutuo accoppiamento.
Va notato come lottimizzazione del condizionamento delloperatore ap-
porti vantaggi considerevoli in termini di reiezione al rumore additivo [Tab.5.2].
SNR [dB] - ANGOLO [rad] 0.7854 (/4) 1.0472 (/3) 1.5708 (/2)
10 dB 0.7764 1.0445 1.5718
15 dB 0.7865 1.0461 1.5662
20 dB 0.7827 1.0441 1.5689
Tabella 5.2: Realizzazioni di stima della direzione darrivo con rumore
5.6 Conclusioni
Il lavoro di tesi ha riguardato la stima della direzione darrivo di un jammer a
banda stretta con particolare attenzione alle problematiche elettromagnetiche
che ne derivano.
Sono stati illustrati alcuni algoritmi presenti in letteratura atti allo scopo
e ne sono state valutate le caratteristiche in termini di prestazioni quanto a
reiezione a rumore e tempi di elaborazione.
Sono state individuate alcune delle problematiche elettromagnetiche che
vanno arontate in problemi di questo tipo, quali presenza di ostacoli in pros-
simit dellarray e mutuo accoppiamento tra gli elementi, ed stato fornito
un metodo basato sullottimizzazione dei valori singolari per determinare la
posizione degli elementi tale da ottimizzarne le condizioni di lavoro. Il me-
todo stato validato numericamente mediante simulazioni, in particolare
stata considerata la presenza di ostacoli di forma tale da poter determinare
CAPITOLO 5. RISULTATI NUMERICI E CONCLUSIONI 56
lespressione del campo diuso in forma chiusa, ed il mutuo accoppiamento
di un patch array alimentato da cavo coassiale realizzato in aria.
stato presentato un algoritmo di stima della direzione darrivo basato
su un metodo eciente di ottimizzazione globale che possa tenere conto delle
problematiche di cui discusso.
Lonere computazionale tipico dei metodi di ricerca globale stato in par-
te alleggerito optando per una implementazione parallela dellalgoritmo da
far girare su GPU, nello specico realizzato in ambiente CUDA su NVIDIA
R
GeForce GTX 260.
I risultati di stima, a valle della sintesi, sono molto soddisfacenti in termini
di reiezione al rumore e tempi di elaborazione.
Gli algoritmi presentati non sfruttano in alcun modo le caratteristiche
del segnale incidente. In futuro potranno tener conto delle sue propriet
statistiche ed essere estesi al funzionamento con segnali a banda larga.
Bibliograa
[Abramowitz & Stegun, 1965] Abramowitz, M. & Stegun, I. A., eds (1965).
Handbook of Mathematical Functions: with Formulas, Graphs, and
Mathematical Tables. Dover Publications.
[Capozzoli et al., 2010a] Capozzoli, A., Curcio, C., DElia, G. & Liseno, A.
(2010a). Antennas and Propagation Magazine, IEEE 52, 103 112.
[Capozzoli et al., 2010b] Capozzoli, A., Curcio, C., DElia, G., Liseno, A.
& Vinetti, P. (2010b). Appl. Comput. Electrom. Soc. J. - Special Issue
on hardware Accelerated Computational Techniques for Electromagnetic
Simulations of Complex Problems 25, 355372.
[Capozzoli et al., 2010c] Capozzoli, A., Curcio, C., Liseno, A. & Vinetti, V.
(2010c). in press on Radio Science 1.
[Capozzoli & G.DElia, 2006] Capozzoli, A. & G.DElia (2006). Prog.
Electromagn. Res. 1, 195232.
[Collin, 1985] Collin, R. E. (1985). Antennas and Radiowave Propagation
(Mcgraw Hill Series in Electrical and Computer Engineering). Mcgraw-Hill
College.
[Harrington, 2001] Harrington, R. F. (2001). Time-Harmonic Electromagne-
tic Fields (IEEE Press Series on Electromagnetic Wave Theory). 2nd
edition, Wiley-IEEE Press.
[Izzo et al., 1992] Izzo, L., Paura, L. & Poggi, G. (1992). Signal Processing,
IEEE Transactions on 40, 1682 1686.
57
BIBLIOGRAFIA 58
[James, 1988] James, J. R. (1988). Handbook of Microstrip Antennas (IEE
Electromagnetic Waves Series, 28) (2-Vol Box Set) (Iee Electromagnetic
Waves Series ; 28). The Institution of Engineering and Technology.
[Kay, 1993] Kay, S. M. (1993). Fundamentals of Statistical Signal Processing,
Volume I: Estimation Theory (v. 1). Prentice Hall.
[Kirk & mei W. Hwu, 2010] Kirk, D. B. & mei W. Hwu, W. (2010). Pro-
gramming Massively Parallel Processors: A Hands-on Approach. 1 edition,
Morgan Kaufmann.
[Mele, 2010] Mele, S. (2010). Tesi di Laurea Universit degli studi di Na-
poli Federico II Corso di Laurea Specialistica in Ingengeria Elettronica
A.A.2009/2010, Relatori: A.Capozzoli, G.Ciccariello, C.Curcio, G.DElia,
G.Iadarola, A.Liseno, A.Masciav 1.
[Pozar, 1994] Pozar, D. (1994). Antennas and Propagation, IEEE
Transactions on 42, 1176 1178.
[Press et al., 1992] Press, W. H., Teukolsky, S. A., Vetterling, W. T. & Flan-
nery, B. P. (1992). Numerical recipes in C (2nd ed.): the art of scientic
computing. Cambridge University Press, New York, NY, USA.
[Quarteroni et al., 2008] Quarteroni, A. M., Sacco, R. & Saleri, F. (2008).
Matematica numerica. UNITEX, La Matematica per il 3+2, Springer-
Italia, Milan, IT. Scritto per: studenti e ricercatori dei corsi di laurea in
matematica, ingegneria, sica e informatica.
[Rinnooy Kan & Timmer, 1987a] Rinnooy Kan, A. & Timmer, G. (1987a).
Mathematical Programming 39, 5778. 10.1007/BF02592071.
[Rinnooy Kan & Timmer, 1987b] Rinnooy Kan, A. H. G. & Timmer, G. T.
(1987b). Math. Program. 39, 2756.
[Sarkar et al., 2003] Sarkar, T. K., Wicks, M. C., Salazar-Palma, M. & Bon-
neau, R. J. (2003). Smart Antennas (Wiley Series in Microwave and
Optical Engineering). Wiley-IEEE Press.
BIBLIOGRAFIA 59
[Slepian, 1978] Slepian, D. (1978). AT T Technical Journal 57, 13711430.
[Stoica & Moses, 1997] Stoica, P. & Moses, R. L. (1997). Introduction to
Spectral Analysis. Prentice Hall.
[Xiao et al., 2001] Xiao, H., Rokhlin, V. & Yarvin, N. (2001). Inverse
Problems 17, 805.

Anda mungkin juga menyukai