Manuale
Utente
2.1
Introduzione al software LabVIEW

Rispetto ai normali linguaggi di programmazione basati sul testo, come ad
esempio MathLab, in cui le istruzioni determinano l’ordine di esecuzione del
programma, LabVIEW usa una programmazione a “diagrammi”, in cui il flusso
dei dati attraverso i nodi del diagramma a blocchi determina l’ordine di
esecuzione dei VIs e delle funzioni. VIs, o strumenti virtuali, sono programmi
LabVIEW che riproducono strumenti fisici come ad esempio oscilloscopi digitali o
multimetri digitali.
In LabVIEW è possibile costruire un’interfaccia utente usando un set di
strumenti e oggetti. L’interfaccia utente è chiamata Front Panel (esempio in
fig 2.1). Si può poi aggiungere codice usando la rappresentazione grafica delle
funzioni per controllare gli oggetti del Front Panel. Questo codice sorgente
grafico è chiamato G code o Block Diagram Code. Il diagramma a blocchi, Block
Diagram (esempio in fig 2.2), contiene questo codice.
Il nostro software “OFDM Simulator” è stato realizzato usando la
versione 8.2 di LabVIEW in aggiunta al Modulation Toolkit versione 3.1.

Fig 2.1: Es. di schermata Block Diagram
Fig 2.2: Es. di schermata Front Panel
2.1.1 Introduzione al Modulation Toolkit
Il Modulation Toolkit della NI
è un add-on per LabVIEW e contiene diversi VIs (Virtual Instruments) che
possono essere usati con l’hardware o in un ambiente di simulazione per
realizzare analisi, misurazioni e generazione dei segnali relativi ai sistemi di
comunicazione. Il Modulation Toolkit per LabVIEW supporta sia modulazioni
digitali (FSK,
MSK, PSK, QAM, ASK, and PAM) che modulazioni analogiche (AM, FM, and PM). Il
Modulation Toolkit fornisce inoltre funzioni per la generazione di bit PRBS
(Pseudo Random Bit Stream), codifica di canale, interleaving, funzioni di
equalizzazione, downconversion e upconversion, visualizzazione IQ, simulazione
del canale di comunicazione come ad esempio un canale AWGN. Si può utilizzare
il Modulation Toolkit per costruire applicazioni che misurano il deterioramento
dei segnali, il BER (Bit Error Rate), il rumore di fase, il burst timing, il
dritf della portante in frequenza, l’indice di modulazione e molto altro
ancora.
2.2
Presentazione di “OFDM Simulator”
L’utente può agire su diversi parametri. Può scegliere l’immagine
bitmap da trasmettere, il tipo di mapping M-QAM, il numero di sottoportanti, il
rapporto Eb/No al ricevitore, la forma dell’impulso di trasmissione, il
relativo roll-off e la lunghezza del Ciclic Prefix.
Rispetto agli schemi di trasmissione e ricezione nel capitolo 1, nel nostro
software non implementiamo la codifica di canale, per difficoltà implementative
con LabVIEW. Inoltre lavoriamo sempre con segnali in banda base, cioè non
effettuiamo l’operazione di upconversion e downconversion.
2.2.1
Front Panel di “OFDM Simulator”

Fig 2.3: Front Panel di “OFDM Simulator”
2.3
Requisiti Hardware e Software
Secondo il nostro punto di vista, LabVIEW è un
programma che richiede un buon computer per poter lavorare efficientemente. Per
buon PC intendiamo:
-
processore
equivalente ad un Pentium 4/M a 2.2 GHz;
-
memoria
RAM 2 Gbyte;
-
scheda
video dedicata di 64 Mbyte con risoluzione 1024x768 pixels;
Il software LabVIEW necessario per poter utilizzare il nostro software è
disponibile per le piattaforme Linux, Windows e MacOS.
La versione di LabVIEW necessaria per l’esecuzione di OFDM Simulator è la
8.2, attualmente l’ultima versione in commercio.
La versione del Modulation Toolkit impiegata per lo sviluppo del nostro
software è la 3.1. Per la sola esecuzione del nostro software non è necessario
avere installato il Modulation Toolkit.
I requisiti minimi invece sono:
-
processore
equivalente ad un Pentium 4/M a 1.5 GHz;
-
memoria
RAM 1 Gbyte;
-
scheda
video con risoluzione 1024x768 pixels;
Infine per lo sviluppo di software in LabVIEW consigliamo una scheda video
con due o più uscite video, in modo da utilizzare una configurazione di lavoro
multi-schermo per consentire una visione del progetto creato più completa.
2.4
Manuale Utente: Parametri di Input
2.4.1
Selezione dell’immagine
Come prima operazione, l’utente deve selezionare l’immagine che desidera
utilizzare per la simulazione. L’immagine deve essere di formato bitmap
(.bmp). Inoltre deve rispettare due vincoli fondamentali:
-
l’immagine
scelta deve avere 8 bit di risoluzione;
-
l’immagine
non deve avere una dimensione superiore a 200x200 pixel;
Il primo vincolo è stringente, perché altrimenti il programma non
funziona. La scelta di usare immagini di 8 bit di risoluzione è stata una
nostra scelta progettuale per consentire un’elaborazione della simulazione
efficiente.
Il secondo vincolo invece dipende dalla capacità di elaborazione del PC su
cui si effettua la simulazione. Con un PC avente i requisiti minimi sopra
indicati, bisogna rispettare questa dimensione massima dell’immagine per
evitare il crash del sistema. Con un PC con i requisiti consigliati ci si può
spingere anche oltre la dimensione 200x200 pixel.
L’utente può selezionare l’immagine, con le caratteristiche
precedentemente indicate, cliccando sull’icona
con la cartella gialla. In questo modo si aprirà la finestra di Salva con Nome, figura 2.4(a), e sarà possibile selezionare
l’immagine da elaborare e il suo percorso. La figura 2.4(b) mostra la sezione
di programma relativa alla selezione dell’immagine.
![]()
![]()

Fig 2.4(a): Finestra per la ricerca dell’immagine

Fig 2.4(b): Selezione immagine
A
lato dell’immagine selezionata sono presenti due indicatori che rappresentano
il flusso di bit di informazione dopo la codifica di sorgente e la sua
dimensione.

Fig 2.5: Flusso di bit con
relativa dimensione a valle della codifica di sorgente
Per
eseguire una nuova simulazione è necessario procedere ad una nuova selezione
dell’immagine seguendo il procedimento appena illustrato.
2.4.2
Scelta dei parametri di trasmissione
Una volta selezionata l’immagine l’utente può scegliere di modificare i
parametri di trasmissione. Il programma ha già preimpostato dei valori di
default.
In figura 2.6 è mostrato la sezione in questione.

Fig 2.6: Modifica parametri di trasmissione
Si può scegliere il valore di M che indica il tipo di mapping QAM che si
desidera utilizzare per la formazione della costellazione dei simboli.
Ricordiamo che M indica il numero di simboli della costellazione, cioè M=2Nb
dove
è
il numero di bit che forma il simbolo QAM. Il mapping effettuato è con codifica
binaria Gray, ovvero per ogni simbolo della costellazione, esso differisce di un
solo bit rispetto agli altri simboli adiacenti. Il valore di default è M=16. In
figura 2.7 è mostrato ad esempio, il mapping effettuato con M=16.

Fig 2.7: Mapping 16QAM con codifica Gray
I possibili valori di M che l’utente può scegliere sono: 4,16,64 che
corrispondono a simboli di 2,4,6 bit per simbolo QAM.
Successivamente l’utente può selezionare il numero di sottoportanti che
desidera utilizzare per la simulazione. Il valore di default è di 32
sottoportanti.
Scegliendo una sola sottoportante è come se si stesse simulando una
trasmissione senza nessun tipo di tecnica multiportante, ovvero una normale
trasmissione digitale in banda base su singola portante.
L’utente può scegliere di aumentare le sottoportanti fino a un massimo di
128.
L’utente può poi scegliere il tipo di impulso di trasmissione e il
relativo valore di roll-off. La forma del filtro dell’impulso di trasmissione
che può essere scelta è di tipo:
-
Radice
a coseno rialzato;
-
Coseno
rialzato;
-
Nessuna;
Il valore del roll-off indica l’eccesso di banda rispetto alla soluzione
ideale di filtro a seno cardinale (rettangolo perfetto nelle frequenze).
Sempre in figura 2.6 si può notare l’indicatore del Samples per Symbol
che consente di specificare il numero di campioni per simbolo e di calcolare di
conseguenza, attraverso il symbol rate, la frequenza di campionamento come:
(Symbol rate) * (Samples per
symbol) = (Sample rate) (Hz)
Il valore di Samples per symbol è un valore critico per quanto riguarda la
velocità di elaborazione. Inserendo valori maggiori di 8 campioni per simbolo
la simulazione può durare qualche minuto.
Successivamente l’utente può
notare che ci sono due indicatori denominati “Bit per Symbol” e
“Bit per OFDM Symbol”; il primo indica il numero di bit per simbolo
QAM (cioè il valore
); il
secondo indicatore visualizza il numero di bit per simbolo OFDM che corrisponde
a
= (Numero
sottoportani)*(
).
Infine il programma visualizzerà i valori delle dimensioni della IFFT, del
CP, della IFFT+CP e della FFT, figura 2.8.

Fig 2.8: Visualizzazione dimensioni
2.4.3
Scelta del Prefisso Ciclico e visualizzazione del Preamble
In figura 2.9 è mostrato la parte in cui è possibile selezionare la
lunghezza del Cyclic Prefix e visualizzare il preamble.

Fig 2.9: Modifica del CP e visualizzazione del preamble
L’utente può scegliere la lunghezza del prefisso ciclico (CP) che
rappresenta la quantità di informazione che deve essere posta in testa al
simbolo OFDM.
Nel Front Panel viene inoltre visualizzata la sequenza di bit del preamble
scelto automaticamente dal programma e la sua dimensione che corrisponde
esattamente alla dimensione di un simbolo OFDM.
2.4.4
Scelta del rapporto Eb/No
Il programma simula la trasmissione attraverso un canale AWGN (Additive
White Gaussian Noise).
In figura 2.10 è mostrato il cursore che permette di modificare il valore
del rapporto Eb/No in decibel (dB) della forma d’onda complessa ricevuta.

Fig 2.10:
Selettore Eb/No
Il rapporto Eb/No rappresenta il rapporto tra l’energia per bit e la
densità spettrale di potenza del rumore. Aumentando il rapporto Eb/No migliora
la qualità del canale e quindi il BER (Bit Error Rate) diminuisce.
Il range selezionabile varia da
2.5
Manuale Utente: Risultati in Output
Il software di simulazione propone a fine esecuzione i seguenti output:
-
Ricostruzione
dell’immagine ricevuta;
-
Valore
del BER (Bit Error Rate);
-
Grafico
della costellazione trasmessa;
-
Grafico
della costellazione ricevuta;
-
Grafico
dello spettro del segnale trasmesso;
-
Grafico
del segnale trasmesso nel tempo;
-
Grafico
del segnale ricevuto nel tempo;
-
Grafico
del segnale ricevuto dopo l’allineamento;
-
Grafico
del segnale ricevuto dopo la decimazione;
I vari grafici sono visualizzabili uno alla volta, selezionando facilmente
quello che si desidera osservare con l’apposita barra posizionata sopra il
grafico stesso.
Nel paragrafi successivi spieghiamo singolarmente ogni output che la
simulazione restituisce dopo l’elaborazione.
2.5.1
Immagine
ricevuta e BER
Viene visualizzata in basso a sinistra del Front Panel l’immagine
ricostruita dal flusso di bit ricevuti. Nelle figure successive vengono mostrati
alcuni esempi.

Fig 2.11: Immagine ricevuta con mapping 16QAM, 64 sottoportanti e con
Eb/No=4dB con relativo BER calcolato

Fig 2.12: Immagine ricevuta con mapping 16QAM, 64 sottoportanti e con
Eb/No=10dB con relativo BER calcolato
Il valore del Bit Error Rate viene calcolato mediante confronto diretto bit
per bit tra l’immagine ricevuta e l’immagine trasmessa.
Come si può vedere dagli esempi di immagine ricevuta delle figure 2.11 e
2.12, si possono notare la presenza di pixel errati.
2.5.2 Grafico della costellazione trasmessa
Il primo dei grafici che vengono creati è semplicemente quello che
visualizza il tipo di mapping creato a lato trasmettitore. Un esempio è
visualizzato nella figura 2.13.

Fig 2.13: Grafico della costellazione trasmessa
2.5.3
Grafico della costellazione ricevuta
Il secondo grafico che viene creato visualizza i simboli ricevuti. Come si
può notare, il canale introduce uno spostamento dei punti della costellazione
portando ad un eventuale errore di valutazione del punto. Un esempio è
visualizzato nella figura 2.14, dove si notano le tipiche “nuvole”.

Fig 2.14: Grafico della costellazione ricevuta
2.5.4
Grafico dello spettro del segnale trasmesso
Viene visualizzato successivamente il grafico relativo allo spettro del
segnale trasmesso, cioè viene fatto un plot della trasformata di Fourier del
segnale che viene inviato al ricevitore, prima che venga trasmesso sul canale
AWGN simulato. Un esempio è riportato in figura 2.15.

Fig 2.15: Grafico dello spettro del segnale trasmesso
2.5.5
Grafico del segnale trasmesso nel tempo
In figura 2.16 è mostrato il quarto grafico che visualizza l’andamento
temporale del segnale che viene trasmesso. Con il cursore presente sotto il
grafico stesso è possibile scorrere il plot di tutta la forma d’onda.

Fig 2.16: Grafico del segnale trasmesso nel tempo
2.5.6
Grafico del segnale ricevuto nel tempo
Il successivo grafico, rappresentato in figura 2.17, mostra l’andamento
nel tempo del segnale ricevuto dopo l’attraversamento del canale. Si può
notare che il segnale ricevuto è il segnale trasmesso con l’aggiunta di un
rumore.

Fig 2.17: Grafico del segnale ricevuto nel tempo
2.5.7
Grafico del segnale ricevuto dopo l’allineamento
Il sesto grafico restituisce la forma d'onda allineata nel tempo così che
il suo primo campione corrisponde all'istante del primo simbolo ideale, come
mostrato in figura 2.18

Fig 2.18: Grafico del segnale ricevuto allineato
2.5.8
Grafico del segnale ricevuto dopo la decimazione
L’ultimo grafico mostra il segnale decimato, figura 2.19. Si può notare
che il grafico è lo stesso di figura 2.18 ma
con una decimazione di un fattore che dipende dal Samples per Symbol.

Fig
2.19: Grafico del segnale decimato