• Non ci sono risultati.

Capitolo IVCapitolo IVValidazione AlgoritmoValidazione Algoritmo

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo IVCapitolo IVValidazione AlgoritmoValidazione Algoritmo"

Copied!
1
0
0

Testo completo

(1)

Capitolo IV Capitolo IV

Validazione Algoritmo Validazione Algoritmo

IV.1 Implementazione software

Tra i vari problemi affrontati nell’implementare l’algoritmo nel simulatore ci sono stati difficoltà nell’integrare la funzione di minimizzazione nel simulatore preesistente causate da incompatibilità tra librerie. Il software usava librerie standard C++, quali la <math.h>, <iostream.h>, <fstream.h>, dovendo utilizzare delle funzioni ottimizzate che usavano la libreria <complex.h>, si sono creati conflitti tra istruzioni che avevano dichiarazioni contrastanti.

Inoltre, il simulatore su cui doveva essere implementata la funzione gestiva i numeri complessi dividendoli in parte Reale ed Immaginaria, quindi ogni vettore aveva dimensioni doppie del necessario per ospitare tutti gli elementi. La funzione per la decomposizione SVD della matrice usa invece la libreria <complex> che gestisce diversamente i numeri complessi.

(2)

Seguendo le fasi dell’implementazione dell’algoritmo LSQI, dobbiamo inizialmente creare la matrice C contenente i campioni dello spettro delle CCs. Ogni colonna della matrice corrisponde allo spettro di una CCs, alternando parte in fase e quadratura del segnale. Lo stesso per il vettore s che contiene i campioni dello spettro del segnale utile. Dobbiamo fare attenzione quando passiamo gli argomenti alla funzione che fa l’ottimizzazione:

sia la matrice che il vettore avranno dimensioni delle colonne pari alla metà di quelle di partenza, perché due elementi consecutivi su una colonna corrispondono ad un numero complesso.

11 12 13

21 22 23

31 41

c c c

C c c c

c c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11 21 12 22

31 41

( , ) ( , )

( , )

complex

complex c c complex c c C complex c c

 

 

 

 

 

 

 

 

 

  

CCs1 CCs2 CCs3

2m n, complex m n

C C  . In raltà Ccomplex sarà:

11 21 31 41

[ ( , ), ( , ),...]

complex

Ccomplex c c complex c c .

Dopo aver sistemato i vettori che devono essere elaborati dalla funzione zsvd (che fa la decomposizione SVD della matrice) è stato implementato il metodo di Newton per calcolare il vettore incognito dell’algoritmo LSQI.

Per verificare il giusto funzionamento dell’algoritmo abbiamo preso l’esempio numerico di [1] ed abbiamo fatto elaborare i dati dal nostro codice C++.

(3)

IV.2 Verifica del funzionamento dell’algoritmo

Per avere una prima riprova della correttezza dell’algoritmo ci siamo messi in una situazione semplice computazionalmente.

E’ stato inizialmente graficato uno spettro composto da 64 sottoportanti in totale, 60 di queste servono per la trasmissione dati, le rimanenti 4 sono le CCs.

Applichiamo l’algoritmo di minimizzazione provando a variare la potenza fornita alle CCs.

Illustriamo di seguito i grafici ottenuti nel caso:

 64 sottoportanti

 60 dati

 4CCs con potenza pari al 5%

Volendo graficare lo spettro centrato sullo zero, attiviamo le portanti [-30, 29]

mentre le CCs risulteranno -32,-31, 30, 31, per un totale di 64 sottoportanti.

Il range di ottimizzazione comprende le code a sinistra della CCs= -32 e a destra della CCs=31. La risoluzione dei grafici non risulta buona, in quanto abbiamo preso due campioni per ogni lobo della sinc, quindi il campione sullo zero ed il campione sul massimo del lobo laterale come mostrato in Fig.IV.1. Cosi facendo sono stati ridotti i massimi dei lobi laterali.

(4)

0.8

0.6

0.4

0.2

0.0

-0.2

Fig.IV.1 In Fig.IV.2 mostriamo lo spettro del segnale dati.

1.0

0.8

0.6

0.4

0.2

0.0

-60 -40 -20 0 20 40 60

numero sottoportanti spettro dati

Fig.IV.2

(5)

Lo spettro delle CCs prima della pesatura è dato dalla somma delle sinc in Fig.IV.3.

1.0

0.8

0.6

0.4

0.2

0.0

-0.2

-60 -40 -20 0 20 40 60

numero di sottoportanti portante1 portante2 portante3 portante4

Fig.IV.3

Il vettore delle incognite fornito dall’algoritmo di minimizzazione sarà composto da elementi Reali, questo perché i simboli sulle sottoportanti sono a parte Immaginaria nulla. I valori del vettore incognite in questo caso particolare sono i seguenti:

0.0513,0.0000 0.5069,0.0000 0.5069,0.0000 0.0513,0.0000 g

 

 

 

 

 

 

.

(6)

1.0

0.8

0.6

0.4

0.2

0.0

-60 -40 -20 0 20 40 60

numero di sottoportanti spettro dati CCs1 CCs2 CCs3 CCs4

Fig.IV.4

Risulta evidente come le code dello spettro di partenza vengano attenuate con l’introduzione delle CCs opportunamente pesate con l’algoritmo.

1.0

0.8

0.6

0.4

0.2

0.0

-60 -40 -20 0 20 40 60

numero di sottoportanti spettro dati spettro dopo la minimizzaizone

Fig.IV.5

(7)

Il fattore A di cui si parla nel cap.III risulta essere A=0.99570166874728 < 1.

Aumentando la potenza spesa sulle CCs vediamo cosa otteniamo di diverso rispetto al caso precedente:

0.1% di potenza 0.1

0.0809,0.00 0.1547,0.000 0.1547,0.000 0.0809,0.00 g

 

 

 

 

 

 

0.3% di potenza 0.3

0.0288,0.00 0.2998,0.000 0.2998,0.000 0.0288,0.00 g

 

 

 

 

 

 

0.5% di potenza 0.5

0.0513,0.0000 0.5069,0.0000 0.5069,0.0000 0.0513,0.0000 g

 

 

 

 

 

 

che risulta essere lo stesso vettore del caso

di potenza pari al 5%.

Grafichiamo lo spettro al variare della potenza investita sulle CCs per verificare l’efficienza dell’algoritmo. Vediamo che aumentando la potenza da 0.1% allo 0.5% i lobi laterali vanno sempre più scomparendo.

(8)

1.0

0.8

0.6

0.4

0.2

0.0

40 20

0 -20

-40

numero di sottoportanti 5% di potenza 0.1 % di potenza 0.3% di potenza

Fig.IV.6

0.3

0.2

0.1

0.0

-0.1

45 40

35 30

numero di sottoportanti

5% di potenza 0.1 % di potenza 0.3% di potenza

Fig.IV.7

(9)

Nella Fig.IV.7 viene riportato il particolare dei lobi laterali sulla destra dello spettro.

Vediamo che aumentando la potenza dal 0.1% al 0.5% si ha un miglioramento, ma oltre lo 0.5% non ci sono cambiamenti, infatti il vettore delle incognite rimane invariato. Questo ci riconduce ai “Commenti sull’efficienza dell’algoritmo” del capitolo III. Cioè oltre un certo livello di potenza non si hanno più benefici sullo spettro. Infatti aumentando oltre lo 0.5% della potenza non si hanno più giovamenti.

Ovviamente questo vale nel caso particolare di 64 sottoportanti di cui 4CCs.

Cambiando i valori anche i risultati variano, poiché varia la matrice C che viene elaborata dall’algoritmo e quindi i valori singolari della decomposizione SVD (cap.III.5 Commenti sulla efficienza dell’algoritmo)

IV.3 Validazione dei risultati forniti in letteratura

Un elemento di partenza per la sperimentazione era il riferimento [5]. Per avere la conferma che il nostro algoritmo funzionasse come richiesto abbiamo ricreato la condizione in [3].

Abbiamo supposto di avere un totale di 64 sottoportanti, ognuna delle quali trasporta un simbolo pari ad 1. Delle 64 sottoportanti 6 erano CCs, quindi le portanti dati erano in totale 58.

Come descritto precedentemente è stato calcolato lo spettro come sommatoria di sinc, quindi è stato stabilito un range di ottimizzazione e su questo è stato applicato

(10)

Fig. IV.8

-100 -80 -60 -40 -20 0

dsp

-60 -40 -20 0 20 40 60

frequenza normalizzata con 6 CCs 3dx e 3sx

senza CCs 64 sottoportanti 58 dati

6CCs con 1.3% di potenza

Fig.IV.9

(11)

Vedendo i risultati delle simulazioni possiamo affermare che l’algoritmo implementato lavora come quello proposto in letteratura.

Una volta presa visione di questo lo applichiamo al nostro simulatore e cerchiamo di adattarlo ai nostri scopi.

Nel caso particolare del nostro simulatore gli spettri non sono stati calcolati come sommatoria di sinc poiché il modello di segnale è diverso. In un sistema simulato, dobbiamo tenere conto che il segnale deve essere sovracampionato nel tempo di un certo fattore L, inoltre noi non usiamo degli impulsi rettangolari nel tempo, ma RRCR con un certo fattore di rolloff, quindi lo spettro su cui andiamo ad applicare l’algoritmo di minimizzazione non sarà dato dalla somma di sinc.

Il modello del segnale a tempo continuo risulta:

( ) n ( s)

n

x t

b g t nT con N Tcp s  t (N1)Ts e n k j2 kn N/

k

b

d e

Il segnale deve essere sovracampionato nel tempo con un certo fattore L, quindi

( s/ ) n ( s/ s)

n

x lT L

b g lT L nT passando al dominio della frequenza otteniamo

2 /

( ) ( s/ ) j flT Ls

l

X f

x lT L e

2 / 2 / 2 /

( ) n ( s/ s) j flT Ls k j kn N ( s/ s) j flT Ls

l n k l n

X f



b g lT l nT e

 

d e g lT L nT e

2 ( /( ))

... d G fk ( ) ej f k NT s nTs

 

 

(12)

( /( )) ( 1) sin( ( /( )) ( )

... sin( ( /( )) )

s s cp

j f k NT T N N s s cp

s s

f k NT T N N

e f k NT T

 

  

2 2

1

( ) cos ( /(4 )*( 2 1 ))

0

G f   fT



  



(1 ) /(2 )

(1 ) /(2 ) (1 ) /(2 )

f T

T f T

altrimenti

 

 

   

Con T(N N Tg) s

Lo spettro delle Cancellation Carriers si calcola allo stesso modo, usando i ck1 anziché gli sk che sono i simboli in ingresso al convertitore serie/parallelo.

Dall’algoritmo di minimizzazione usciranno i valori delle incognite gm.

Fig. IV.10 schema a blocchi del trasmettitore OFDM

I risultati delle simulazioni sono riportati nel capitolo successivo

n S/P

d d

1

d

N

d

1

d

N

gM

I F F T

Aggiunta prefisso

ciclico P/S

x(t) Sidelobe

Suppression

g 1

g

T

(t)

Riferimenti

Documenti correlati

I gruppi non presentano differenze significative riguardo a durata di malattia, numero e durata dei ricoveri e numero di episodi critici, eccezione fatta per

Il confronto dei risultati agli indici di controllo esecutivo dell'attenzione dell'Emotional Stroop Task ha mostrato invece una maggior

Nelle colonne: il numero progressivo della rilevazione, il giorno e l’ora in cui è stata effettuata, il valore della pressione sistolica (sis), il valore della

Questo metodo è più pratico rispetto alla randomizzazione semplice ed assicura anche che le singole unità del campione siano distribuite uniformemente all’interno della

pressione di questo gas ? pressione di questo gas ?.. Il Cloroformio e' un liquido che evapora facilmente. Se la Il Cloroformio e' un liquido che evapora facilmente.. Quale sara'

Available Open Access on Cadmus, European University Institute Research Repository.... ‘Teoriat hamekomot a merkazi’im vehageographia halsraelit: Merkhav, Shoah,

Therefore, the aim of the present study is to investigate how data and key concepts concerning crude oil reserves estimates, production levels, and prices, not only have been

Dopo l’esclusione di questi due partecipanti, il campione finale di 145 soggetti era formato da: 53 pazienti con disturbi psicotici dell’umore (PM: 35 con disturbo