DFT e applicazioni nelle telecomunicazioni
Transcript
DFT e applicazioni nelle telecomunicazioni
Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Elaborato finale in Teoria dei Segnali
DFT e applicazioni nelle telecomunicazioni
Anno Accademico 2014-2015
Candidato:
Christian Onzaca
matr. N46001351
Ai miei genitori e familiari, ai miei
amici, e a chiunque altro mi sia
rimasto vicino continuando a
credere in me.
Indice
Indice .................................................................................................................................................. III
Introduzione ......................................................................................................................................... 4
Capitolo 1: La trasformata discreta di Fourier ..................................................................................... 6
1.1 Definizione ................................................................................................................................. 6
1.2 Proprietà ..................................................................................................................................... 6
1.3 Relazione con la trasformata di Fourier a tempo discreto ......................................................... 8
1.4 Algoritmi e complessità ............................................................................................................. 9
Capitolo 2: Analisi spettrale ............................................................................................................... 12
2.1 Spettro di un segnale ................................................................................................................ 12
2.2 Trasformata di Fourier di un segnale campionato ................................................................... 13
2.3 Analisi con DFT ....................................................................................................................... 17
Capitolo 3: Simulazione in MATLAB ............................................................................................... 22
3.1 La DFT in MATLAB ............................................................................................................... 23
3.2 Definizione del caso generale .................................................................................................. 23
3.3 Analisi spettrale e finestratura.................................................................................................. 24
Conclusioni ........................................................................................................................................ 34
Bibliografia ........................................................................................................................................ 35
Introduzione
L’elaborazione dei segnali è ormai alla base della tecnologia odierna: è un’operazione
necessaria nella maggior parte dei dispositivi, tra i quali televisori, radio, PC e così via.
Tale evoluzione tecnologica è stata resa possibile, innanzitutto, dalla digitalizzazione dei
dati: questi sono trattati dagli elaboratori come dei segnali digitali1. In questo modo, essi
si possono memorizzare ed elaborare opportunamente, in maniera veloce ed efficace.
Questa trasformazione ha reso possibile anche l’adozione di potenti strumenti matematici
per l’analisi nel dominio della frequenza, tra i quali la DTF (Discrete Fourier Transform, o
trasformata discreta di Fourier). I calcolatori moderni, attraverso alcuni algoritmi, possono
calcolare la DFT rapidamente.
Il seguente elaborato ha l’obiettivo di illustrare la trasformata discreta di Fourier e il
relativo impiego nel campo delle telecomunicazioni.
La relazione è composta da tre parti. Nella prima, viene introdotto il concetto di
trasformata discreta di Fourier, descrivendone le principali proprietà, e illustrandone i
vantaggi che ne rendono possibile l’utilizzo in molte applicazioni.
Nella seconda parte, andando piu’ nello specifico, si illustrano i concetti teorici che sono
alla base dell’applicazione della trasformata discreta di Fourier all’analisi spettrale dei
segnali.
1
Un segnale
si definisce a tempo discreto se la variabile indipendente varia in un insieme discreto. Un segnale
digitale è un segnale a tempo discreto e ad ampiezza discreta (con un numero finito di ampiezze).
4
Nella terza parte, infine, viene eseguita una simulazione utilizzando il software MATLAB,
con lo scopo di osservare uno scenario tipico delle telecomunicazioni e la criticità
dell’operazione di finestratura: verranno messe a confronto la finestra rettangolare e quella
di Hanning, partendo da un caso generale fino ad arrivare a casi specifici.
5
Capitolo 1: La trasformata discreta di Fourier
La trasformata discreta di Fourier, meglio conosciuta come DFT (Discrete Fourier
Transform), è una trasformata che consente di convertire una successione di
nel dominio del tempo in un’altra successione, sempre di
campioni
campioni, nel dominio della
frequenza. Tale trasformazione rende possibile, in tempi accettabili, numerose operazioni ,
tra le quali l’analisi frequenziale del segnale dato in ingresso ad un sistema, nonchè
l’analisi della risposta del sistema stesso.
Utilizzando la DFT, quindi, è possibile operare direttamente nel dominio frequenziale,
sfruttando le proprietà che essa possiede. Ciò risulta utile in numerosi campi, tra i quali le
telecomunicazioni, nelle quali le specifiche dei sistemi sono espresse, nella maggior parte
dei casi, in termini di frequenze.
1.1 Definizione
Sia
una successione di
di Fourier
– . La trasformata discreta
campioni, con
della successione
è la quantità:
∑
Quindi, in ingresso, abbiamo un segnale a tempo discreto,
considerati solo
, di cui vengono
campioni. A ciascuno di essi, corrisponderà un solo campione
trasformato. Dunque, anche i campioni in uscita saranno
. Da notare che il segnale
trasformato, in generale, è un segnale complesso, ossia la sua parte immaginaria può
essere non nulla.
La trasformata discreta di Fourier è invertibile, ossia è possibile ottenere nuovamente la
successione di campioni
a partire da
6
.
La trasformata discreta di Fourier inversa (IDFT, Inverse Discrete Fourier Transform)
della successione trasformata
è la quantità:
∑
Da notare che sia
sia
risultano essere periodici di periodo
∑
∑
:
∑
∑
∑
∑
∑
∑
Quindi, l’elaboratore vede la sequenza di
campioni in ingresso come una sequenza
periodica.
1.2 Proprietà
La trasformata discreta di Fourier gode di alcune proprietà. Utilizziamo il simbolo
per
indicare il passaggio dal dominio temporale a quello frequenziale attraverso la DFT.
Le proprietà più importanti della trasformata discreta di Fourier sono le seguenti:
Linearità:
Traslazione ciclica:
dove con
si indica il resto della divisione intera di
Modulazione:
Convoluzione ciclica:
7
per
;
dove per convoluzione ciclica si intende la seguente operazione:
∑
1.3 Relazione con la trasformata di Fourier a tempo discreto
Sia
un segnale a tempo discreto; la trasformata di Fourier
del segnale
è
la quantità:
∑
Anche in questo caso, il segnale in uscita è, in generale, complesso.
La trasformata di Fourier è invertibile, ossia è possibile ottenere nuovamente
partire da
. La trasformata di Fourier inversa
del segnale
a
è la quantità:
∫
Come si nota, la trasformata discreta di Fourier della sequenza
, fatta di
è simile alla trasformata di Fourier del segnale a tempo discreto
campioni,
. Infatti, la DFT
deriva proprio dalla trasformata di Fourier a tempo discreto, e quindi ne eredita anche le
proprietà. La DFT nasce dall’esigenza di approssimare i segnali campionati con tecniche
digitali. Ciò è necessario per rendere possibile l’analisi e l’elaborazione di questi segnali
ad un calcolatore.
Per poter utilizzare queste tecniche, è necessario:
considerare un numero finito di campioni nel dominio del tempo;
effettuare un campionamento anche nel dominio della frequenza, in modo da
considerare solo un numero finito di frequenze.
Dunque, è necessario avere un numero limitato di campioni, sia nel dominio temporale
che in quello frequenziale. Questo è possibile solo se il segnale di partenza è ben
approssimato da un numero finito
di campioni nel dominio del tempo, ossia:
[
] con
8
Analogamente, la trasformata di Fourier del segnale a tempo discreto
ben approssimata dallo stesso numero finito
deve essere
di campioni nel dominio della frequenza,
ossia:
[
], con
(
)
Quindi, la trasformata discreta di Fourier non è altro che una versione campionata della
trasformata di Fourier a tempo discreto, ottenuta rappresentando
campioni, raccolti con passo di campionamento
solo con
. In questo caso, occorre scegliere
opportunamente tali campioni, in modo tale da catturare la maggior parte del contenuto
informativo. Tale scelta è fondamentale, in quanto determina la bontà della
approssimazione fatta. Dal punto di vista matematico, bisogna scegliere gli
modo che l’energia del segnale
campioni in
, definita come:
∑
si possa considerare tutta contenuta in questi ultimi.
Una volta scelti gli
(
)
campioni, si avrà:
∑
∑
Questa è la relazione tra la trasformata di Fourier a tempo discreto e la trasformata discreta
di Fourier.
1.4 Algoritmi e complessità
La DFT è molto utilizzata nella pratica: infatti, il principale vantaggio di questa
trasformata è l’esistenza di algoritmi che ne consentono un calcolo rapido. L’idea di base
è la possibilità di decomporre ricorsivamente la DFT in trasformate di dimensioni ridotte
della metà ad ogni passo. Dunque, fondamentale è la scelta del numero
di campioni,
poiché il numero di operazioni richieste per il calcolo della DFT dipende direttamente da
esso. Inoltre, è preferibile che
sia proprio una potenza di
trasformate di dimensioni sempre uguali.
In generale, esistono vari metodi per calcolare la DFT.
9
, in modo da ottenere
Per esempio, data una sequenza di
campioni
[
] con
è possibile calcolarne la DFT moltiplicando il vettore
dimensioni
, avente come elemento di posto
per una matrice
la quantità:
Tale calcolo ha una complessità di ordine quadratico, ossia
necessarie
, di
, in quanto sono
operazioni di prodotto e altrettante di somma per ciascuno degli
campioni.
Nelle elaborazioni real-time, tuttavia, tale soluzione non si rivela adeguata, in quanto
richiede un notevole tempo di calcolo.
Una soluzione ottimale fu proposta da Runge e Konig nel 1924, e da Cooley e Tukey nel
1965. La complessità richiesta, in questo caso, è ridotta a
. Per tale motivo,
questi algoritmi sono noti oggi col nome di FFT (Fast Fourier Transform).
L’algoritmo FFT sfrutta la ricorsione e la riduzione della dimensione
della DFT ad ogni
passo. Vediamo, in generale, come lavora l’algoritmo.
Si assuma
potenza di , quindi
.
Riscrivendo la trasformata discreta di Fourier in funzione del termine
∑
, si ha:
∑
Separando i termini ad indice pari da quelli ad indice dispari, si avrà:
∑
∑
Gli indici pari si possono indicare con
multipli di ). Inoltre, essendo
delle due sommatorie avrà
sommatorie seguenti saranno
(multipli di ), quelli dispari con
(non
i termini complessivi della sommatoria iniziale, ciascuna
termini (siccome gli indici partono da , gli estremi delle
e
– 1):
∑
∑
10
Si osservi, adesso, che:
Dunque, si ha
.
Di conseguenza, nelle sommatorie precedenti, si può sostituire
con il termine
, ottenendo:
∑
Si è portato il termine
∑
fuori dalla seconda sommatoria, in quanto non dipende da .
Bisogna quindi calcolare due diverse trasformate. Indicata con
e con
la prima trasformata
la seconda, si ha:
Il calcolo di ciascuna delle due trasformate
e
richiede
moltiplicazioni
di due numeri complessi, mentre per il calcolo del termine
sono richieste
moltiplicazioni. Complessivamente, quindi, si hanno
operazioni, quindi
già si ha un piccolo risparmio rispetto alla precedente soluzione che ne prevedeva
Se, poi, si procedesse ricorsivamente, dimezzando di volta in volta la dimensione
.
delle
trasformate ottenute, la complessità si ridurrebbe ulteriormente. Infatti, nell’ipotesi in cui
, quando si arriva al calcolo dell’ultima trasformata (
è già stata applicata ben
volte, poiché
si dimezza ad ogni passo. In base a
questo ragionamento, il calcolo di una trasformata ad
ricorsivamente il calcolo di
trasformate ad
somma e prodotto aggiuntive, eseguite per
operazioni richieste è approssimativamente
), la procedura illustata
componenti richiama
componenti, con
operazioni di
volte. Dunque, il numero totale di
.
Grazie agli algoritmi FFT, la trasformata discreta di Fourier viene impiegata per molteplici
fini, tra i quali l’analisi spettrale dei segnali, la compressione dei dati e il calcolo delle
risposte dei sistemi.
Infatti, grazie al numero di operazioni ridotto, il calcolo risulta rapido a tal punto che la
DFT si presta molto bene anche ad elaborazioni real-time.
11
Capitolo 2: Analisi spettrale
In alcuni settori, come quello delle telecomunicazioni, sono richieste determinate
condizioni sui segnali nel dominio della frequenza. In questi casi, quindi, è conveniente
osservare direttamente il comportamento in frequenza del nostro segnale, piuttosto che la
sua evoluzione temporale. Nasce quindi l’esigenza di una analisi che coinvolga
direttamente il dominio della frequenza, a cui è possibile passare attraverso la trasformata
di Fourier.
Questo tipo di analisi può essere utile, ad esempio, per la progettazione di particolari
sistemi, come quelli di filtraggio: infatti, la relativa risposta ad un segnale in ingresso sarà
direttamente legata alle proprietà frequenziali del sistema.
2.1 Spettro di un segnale
Sia
un segnale a tempo continuo2. La sua trasformata di Fourier
è la quantità:
∫
La funzione che si ottiene ha come variabile indipendente
, ossia la frequenza. La
trasformata di Fourier è, in generale, una funzione complessa e invertibile. Essa può essere
scritta in termini di ampiezza (o modulo) e fase:
(
è lo spettro di ampiezza, mentre
)
è lo spettro di fase. Tali grandezze
descrivono, rispettivamente, come variano l’ampiezza e la fase della
al variare della
frequenza . La divisione dello spettro del segnale in ampiezza e fase permette uno studio
più accurato ed efficiente del comportamento in frequenza di segnali e sistemi.
2
Un segnale
si definisce a tempo continuo quando la variabile indipendente varia in un insieme continuo.
12
Per rendere possibile la visualizzazione degli spettri in un’ampia banda di frequenze, viene
adottata la scala logaritmica, e i valori degli spettri sono espressi in
Le espressioni di
e
in
.
sono le seguenti:
(
)
(
)
Le frequenze vengono divise in decadi, ossia in intervalli i cui estremi distano tra di loro
di un ordine di grandezza. In questo modo, essi hanno la medesima ampiezza: ogni
frequenza ha la stessa distanza rispetto al relativo ordine di grandezza immediatamente
precedente e quello successivo. Il vantaggio della scala logaritmica non è solo di
rappresentazione: infatti, il logaritmo del prodotto di due grandezze corrisponde alla
somma dei loro logaritmi, mentre il logaritmo del loro rapporto corrisponde ad una
differenza dei loro logaritmi. Questa proprietà rende più immediati e semplici i calcoli ad
un elaboratore, quindi viene adottata spesso nella pratica.
2.2 Trasformata di Fourier di un segnale campionato
Dato un segnale a tempo continuo
, effettuarne il campionamento significa prelevarne
il valore solo in determinati istanti, detti istanti di campionamento. Si sceglie un periodo di
campionamento
, o equivalentemente una frequenza di campionamento
prende solo il valore del segnale in un generico punto
, con
, e si
.
Supponiamo che il segnale da campionare sia quello riportato nella figura 2.2.1, e che il
suo spettro di ampiezza
sia a banda rigorosamente limitata3 ad una certa frequenza
, come riportato nella figura 2.2.2.
Figura 2.2.1: un segnale tempo continuo
3
.
Un segnale si dice a banda rigorosamente limitata quando assume valori non nulli solo all’interno di un intervallo
limitato di frequenze.
13
Figura 2.2.2: spettro di ampiezza del segnale
Si scelga un periodo di campionamento costante
unitario
di periodo
, e si consideri il treno di impulsi4
, riportato nella figura 2.2.3.
Figura 2.2.3: il treno di impulsi unitario
L’espressione di
.
.
è la seguente:
∑
Trasformando il treno di impulsi
, si ottiene lo spettro di ampiezza riportato nella
figura 2.2.4.
Figura 2.2.4: spettro di ampiezza
4
del treno di impulsi unitario
Un treno di impulsi è una successione infinita di delta di Dirac, concentrate in punti equidistanti.
14
.
L’espressione di
è la seguente:
∑
Si nota subito che il treno di impulsi unitario nel dominio del tempo è ancora un treno di
impulsi nel dominio della frequenza, ma gli impulsi hanno ampiezza e distanza
.
Si tenga presente che, se il campionamento fosse ideale, allora il segnale campionato
si potrebbe scrivere come il prodotto tra il segnale a tempo continuo
impulsi unitario
e il treno di
. Infatti:
∑
∑
∑
Per l’ultimo passaggio è stata sfruttata la proprietà di prodotto per una funzione5 della
delta di Dirac. Il segnale ottenuto è rappresentato nella figura 2.2.5.
Figura 2.2.5: il segnale campionato
Siccome la trasformata di Fourier del prodotto di due segnali nel tempo è la convoluzione
delle relative trasformate nel dominio della frequenza, possiamo scrivere:
∑
∑
∑
Per l’ultimo passaggio è stata sfruttata la proprietà di traslazione6 della delta di Dirac. Lo
spettro di ampiezza
ottenuto è riportato nella figura 2.2.6.
5
Data una qualsiasi funzione
di classe
, si ha che
6
Data una qualsiasi funzione
di classe
, si ha che
15
Figura 2.2.6: spettro di ampiezza
del segnale
Quindi, lo spettro di ampiezza del segnale campionato è un segnale periodico, costituito da
repliche dello spettro di ampiezza di
di campionamento
centrate alle frequenze multiple della frequenza
, e moltiplicate per questa stessa quantità.
È evidente che, isolando una sola replica dello spettro di ampiezza
possibile ottenere nuovamente il segnale
, sarebbe
antitrasformandola. Tuttavia, se le repliche
si sovrapponessero in frequenza, tale ricostruzione non sarebbe corretta, poiché una
singola replica avrebbe uno spettro di ampiezza diverso da quello di
. Tale fenomeno
è chiamato aliasing, ed è illustrato nella figura 2.2.7. Si può comprendere che questa
situazione si verifica quando
, ossia quando la frequenza di campionamento è
inferiore alla frequenza massima del segnale in ingresso raddoppiata.
Figura 2.2.7: aliasing.
Quando
caso migliore è
, si ha un caso limite: le repliche hanno distanza nulla l’una dall’altra. Il
, ossia quello illustrato nella figura 2.2.6: le repliche sono ben
distanziate e non si ha perdita di contenuto informativo.
16
Da queste osservazioni, deriva il teorema di Nyquist-Shannon, o teorema del
campionamento:
sia
un segnale a tempo continuo con trasformata di Fourier
i suoi campioni presi con passo di campionamento
il segnale
, e siano
. Se:
è a banda rigorosamente limitata, con banda monolatera
,
ovvero:
la frequenza di campionamento
allora il segnale
soddisfa la condizione di Nyquist:
è perfettamente rappresentato dai suoi campioni
frequenza di campionamento
segnale
. La minima
prende il nome di frequenza di Nyquist del
.
2.3 Analisi con DFT
Come detto in precedenza, gli elaboratori possono lavorare solo con un insieme discreto di
campioni. Ecco perché, nella pratica, viene impiegata la DFT invece della trasformata di
Fourier. Il segnale in ingresso, tuttavia, deve essere opportunamente manipolato ed
elaborato, affinché il calcolo della DFT sia possibile. Lo schema generale è il seguente:
Figura 2.3.1: fasi principali nell’analisi di un segnale tempo continuo nel dominio della
DFT.
Questo schema è realizzato, nella pratica, attraverso alcuni strumenti di misurazione,
chiamati analizzatori di spettro. Questi dispositivi hanno, appunto, il compito di
raccogliere campioni in frequenza dello spettro del segnale in ingresso, per permetterne
successive analisi ed elaborazioni.
17
Il primo elemento dello schema è un filtro passabasso: tali filtri sono sistemi aventi una
risposta in frequenza7
significativa solo in una banda limitata, detta banda
passante, concentrata intorno alle basse frequenze; all’esterno di tale intervallo, essa si può
ritenere praticamente nulla. Dato un segnale in ingresso, quindi, un filtro passabasso ne
lascia passare solo le componenti frequenziali nella sua banda passante, mentre le altre
vengono attenuate. La risposta in frequenza di un generico filtro passabasso è riportata
nella figura 2.3.1.
Figura 2.3.1: risposta in frequenza di un filtro passabasso.
Il compito di questo filtro è quello di limitare il contenuto spettrale del segnale in ingresso.
Questo passaggio è necessario, in quanto, scelta una frequenza di campionamento
, il
segnale in ingresso può presentare componenti spettrali non trascurabili a frequenze che
non rispettano il teorema del campionamento. Questa situazione, per quanto visto nel
paragrafo precedente, può portare alla presenza del fenomeno di aliasing all’uscita del
convertitore, che effettua anche il campionamento. Di conseguenza, queste componenti
frequenziali devono essere attenuate notevolmente: in questo modo, l’effetto dell’aliasing
viene minimizzato.
Inoltre, poiché la banda del filtro e la frequenza di campionamento devono essere
commisurate alla frequenza del segnale di ingresso, esse andrebbero modificate
continuamente. Per risolvere questo problema, alcuni analizzatori di spettro applicano una
decimazione, che agisce direttamente sul segnale campionato.
7
Si definisce risposta in frequenza di un sistema la sua funzione di trasferimento, ossia la risposta del sistema stesso al
solo impulso di Dirac nel dominio della frequenza. Essa rappresenta il legame tra l’ingresso del sistema e la
corrispondente uscita.
18
In pratica, si stabilisce un valore massimo
della massima frequenza analizzabile per
il segnale in ingresso; la frequenza di campionamento è fissata al valore
l’intervallo di frequenze in analisi è [
frequenza
,e
]. Se in ingresso si avesse un segnale con
, tutte le componenti frequenziali nell’intervallo [
minore di
]
sarebbero nulle o trascurabili, grazie all’azione del filtro antialiasing. Dunque, alcuni degli
campioni per il calcolo della DFT sarebbero nulli, poiché verrebbero scelti in una banda
più larga di quella di interesse. Invece, effettuando una decimazione, viene analizzato solo
l’intervallo di frequenze [
], che viene “allargato” escludendo le frequenze non
necessarie. Inoltre, la distanza tra i campioni resta inalterata. In questo modo, si ha un
notevole risparmio di risorse, maggiore efficienza e minor tempo di calcolo.
Una volta terminato il campionamento del segnale, è necessario scegliere gli
campioni
sui quali applicare la DFT. Tale scelta viene fatta attraverso una procedimento chiamato
finestratura.
In pratica, il segnale campionato
viene moltiplicato per un opportuno segnale
detto finestra. Essa assume valori significativi solo in corrispondenza di
corrispondenza dei campioni di
,
istanti, scelti in
sui quali si vuole applicare la DFT. In questo modo,
gli altri campioni non vengono considerati.
La sequenza
di
campioni da trasformare è:
Nel dominio della frequenza, il prodotto corrisponde alla convoluzione, quindi:
Dunque, la finestratura, nonostante permetta di scegliere gli
campioni da trasformare,
introduce su di essi anche un effetto non desiderato nel dominio della frequenza. Tale
fenomeno è detto “dispersione spettrale”. Questo effetto, ovviamente, va minimizzato, in
quanto la DFT opera proprio su
. Ma ridurre questo effetto significa avere una
finestra che, in frequenza, si comporti il piu’ possibile come un impulso.
Questo perché, per le proprietà dell’impulso stesso, la sua convoluzione con un segnale è
il segnale stesso, a meno di un fattore di scala e una traslazione dipendenti dall’impulso.
Nella pratica, non è possibile avere una finestra che si comporti esattamente come un
impulso, quindi si usano soluzioni che possano approssimarlo.
In particolare, si usano finestre che hanno, in frequenza, un lobo principale abbastanza
stretto e dei lobi secondari molto bassi rispetto a quello principale.
Per ridurre la dispersione spettrale, dunque, si impiegano diversi tipi di finestre,
valutandone l’effetto in frequenza.
19
Prendiamo in analisi, per esempio, due finestre, come quella rettangolare e quella di
Hanning.
La finestra rettangolare è definita come:
{
Il suo spettro di ampiezza, ottenuto attraverso la trasformata di Fourier a tempo discreto, è
una
, come illustrato nella figura 2.3.2.
Figura 2.3.2: finestra rettangolare e relativo spettro.
Tale soluzione non è la migliore, in quanto presenta un lobo principale non molto stretto e
lobi secondari non abbastanza bassi rispetto a quello principale. Per questo motivo, nella
pratica, si scelgono finestre diverse, come, ad esempio, quella di Hanning.
La finestra di Hanning è così definita:
{
(
(
))
Lo spettro di ampiezza della finestra di Hanning, rispetto a quello della finestra
rettangolare, ha un lobo principale più esteso, e lobi secondari più bassi, come viene
mostrato nella figura 2.3.3.
20
Figura 2.3.3: finestra di Hanning e relativo spettro di ampiezza.
Dunque, il risultato della finestratura sarà, in generale, una sequenza
campioni sarà minore o uguale di
il cui numero di
. È proprio su questa sequenza che verrà calcolata la
DFT, con l’algoritmo precedentemente illustrato.
21
Capitolo 3: Simulazione in MATLAB
MATLAB è un potente strumento per il calcolo numerico, l’analisi statistica e la
simulazione di sistemi. Grazie a questo software, è possibile anche effettuare l’analisi
spettrale di un segnale con la DFT, sfruttando l’algoritmo FFT.
In particolare, è possibile simulare uno scenario tipico delle telecomunicazioni, come la
trasmissione di due segnali sovrapposti nel tempo su un canale (supposto ideale e non
rumoroso).
In questo caso, dal segnale ricevuto, bisognerà separare in frequenza i due segnali iniziali,
per poi ricostruirli a partire dalla loro DFT.
A tal proposito, verrà ripreso un esercizio dal libro Discrete-time signal processing
(Second edition)8, nel quale saranno messi in evidenza gli effetti dei diversi tipi di finestra
utilizzati nella fase immediatamente precedente alla trasformazione del segnale con
l’algoritmo FFT. In particolare, si utilizzerà un segnale costituito dalla somma di due
sinusoidi con ampiezze e fasi differenti. In base ai parametri scelti per le sinusoidi, si avrà
uno spettro di ampiezza diverso.
Fatte determinate osservazioni sulle frequenze dei due segnali sinusoidali, si studierà
l’effetto della finestratura sullo spettro del segnale somma. Verranno considerate solo due
finestre: quella rettangolare e quella di Hanning.
Infine, dopo aver messo a confronto tre casi specifici di coppie di frequenze delle
sinusoidi, si giungerà alla conclusione che la finestra di Hanning fornisce, in generale,
prestazioni migliori rispetto a quella rettangolare. Inoltre, si scoprirà che, all’avvicinarsi
delle frequenze delle due sinusoidi, queste ultime tenderanno sempre piu’ a sovrapporsi in
frequenza: sarà man mano piu’ difficile, quindi, separarle in ricezione.
8
Alan W. Oppenheim, Ronald W. Schafer, John R. Buck - Discrete-time signal processing (Second edition) - Prentice
Hall, 1999 - pp. 697-701.
22
3.1 DFT in MATLAB
MATLAB fornisce un comando per il calcolo della DFT attraverso l’algoritmo FFT. Tale
comando è proprio
dove
:
è un vettore contenente la sequenza
campioni da considerare e
da trasformare,
è il numero di
è il vettore contenente i valori trasformati
sequenza in ingresso. Nel caso in cui la sequenza
della
in ingresso presenti meno di
campioni, verranno aggiunti degli zeri per colmare tale mancanza; nel caso in cui invece
ne presenti di piu’, i campioni successivi a quello
per il calcolo della DFT. Il parametro
-esimo non verranno considerati
può anche non essere specificato.
3.2 Definizione del caso generale
Si consideri un segnale
ampiezze
e
, costituito dalla somma di due segnali sinusoidali con
, frequenze
e
e fasi iniziali
e
Una volta scelto un periodo di campionamento
campioni negli istanti
:
, verranno considerati solo i
. La versione campionata
del segnale
Nella pratica, bisogna scegliere un intervallo chiuso e limitato [
questo equivale a considerare solo un numero
] in cui possa variare:
di campioni pari a
campioni, in generale, ne verranno poi considerati solo
sarà, quindi:
. Di questi
per la trasformazione tramite
FFT.
La scelta dei campioni, come già detto, avviene tramite la finestratura: in ogni generico
istante
, ciascun campione raccolto dal segnale viene moltiplicato per il corrispettivo
campione raccolto dalla finestra scelta. La lunghezza della finestra è definita proprio a
partire da
: questo significa che
campioni non verranno considerati, in quanto la
finestra sarà nulla dopo l’ -esimo campione.
In pratica, la finestratura assegna un peso a ciascun campione del segnale. È quindi
necessario scegliere accuratamente quale finestra utilizzare, poiché una scelta errata
potrebbe portare ad uno spettro non corretto, con conseguenze più o meno gravi per le
elaborazioni successive.
23
Per comprendere al meglio il problema introdotto dalla finestratura, si assegnano dei
valori ai parametri che definiscono il segnale
e il numero
, la sua frequenza di campionamento
di campioni da considerare. Le considerazioni fatte finora saranno
deducibili a partire dallo spettro ottenuto, che è il modulo di ciascun campione trasformato
.
3.3 Analisi spettrale e finestratura
Si scelga, per semplicità,
segnale
, in modo da considerare direttamente solo i campioni del
che siamo interessati a trasformare. Vogliamo calcolare la DFT del segnale,
fissati i parametri
Lo script MATLAB utilizzato per calcolare la DFT del segnale
, ottenendo le figure
illustrate di seguito, è il seguente:
function cos_fft_windowing_demo(A0, A1, f0, f1, fc, N)
% impiego un asse dei tempi tarato per poter contenere
% esattamente N campioni con passo di campionamento 1/fc
t = 0:1e-5:((N-1)/10)*1e-3;
% costruisco il primo segnale sinusoidale a frequenza f0
% e ampiezza A0
x0_t = A0*cos(2*pi*f0*t);
% costruisco il secondo segnale sinusoidale a frequenza
% f1 e ampiezza A1
x1_t = A1*cos(2*pi*f1*t);
% costruisco il segnale da analizzare, che è la somma
% Dei due segnali costruiti in precedenza
x_t = x0_t + x1_t;
% costruisco l'asse dei tempi discreto con la frequenza
% di campionamento fc specificata, in modo da poter
% considerare esattamente N campioni dei segnali in
% esame
k = 0:(1/fc):((N-1)/10)*1e-3;
24
% campiono il primo segnale con frequenza fc
x0_k = A0*cos(2*pi*f0*k);
% campiono il secondo segnale con frequenza fc
x1_k = A1*cos(2*pi*f1*k);
% campiono la somma dei due segnali precedenti con
% frequenza fc
x_k = x0_k + x1_k;
% costruisco la finestra rettangolare ad N punti
rectangular_window = rectwin(N);
% costruisco la finestra di Hanning ad N punti
hanning_window = hann(N);
% costruisco adesso l'asse delle frequenze, che sarà
% tarato in KHz
f = ((-1/2)*1e-3):((1/(N-1))*1e-3):((1/2)*1e-3);
% a questo punto, devo trasporre il segnale x(k), per
% costruire un vettore contenente, in ogni posizione
% i-esima, il prodotto delle componenti i-esime del
% segnale x(k) stesso e della finestra rettangolare
x_k = x_k';
x_c_rectangular = x_k .* rectangular_window;
% posso trasformare il segnale così ottenuto
X_C_rectangular = fft(x_c_rectangular);
% lo spettro è il modulo del segnale trasformato
X_C_rectangular_M = abs(X_C_rectangular);
% lo spettro ottenuto è distribuito nel dominio del
% tempo, quindi devo spostare ogni componente dalla
% posizione (N/2)+i alla posizione i, per poter
% distribuire opportunamente le componenti spettrali
for i = 1:1:((N/2))
temp = X_C_rectangular_M(i);
25
X_C_rectangular_M(i) = X_C_rectangular_M((N/2)+i);
X_C_rectangular_M((N/2)+i) = temp;
end
% visualizzo il grafico così ottenuto, con asse delle
% frequenze tarato in KHz
stem(f*fc, X_C_rectangular_M), grid, xlim([(1/2)*(fc*1e3),
(1/2)*(fc*1e-3)]),
rettangolare'),
title('DFT
con
xlabel('Frequenza
finestra
(KHz)'),
ylabel('Ampiezza');
% analogamente, costruisco un vettore che contiene, in
% ogni posizione i-esima, il prodotto delle componenti
% i-esime del segnale % x(k) stesso e della finestra di
% Hanning
x_c_hanning = x_k .* hanning_window;
X_C_hanning = fft(x_c_hanning);
% lo spettro è il modulo del segnale trasformato
X_C_hanning_M = abs(X_C_hanning);
% ordino lo spettro nel dominio della frequenza come
% fatto in precedenza
for i = 1:1:((N/2))
temp = X_C_hanning_M(i);
X_C_hanning_M(i) = X_C_hanning_M((N/2)+i);
X_C_hanning_M((N/2)+i) = temp;
end
% visualizzo il grafico così ottenuto, con asse delle
% frequenze tarato in KHz
stem(f*fc, X_C_hanning_M), grid, xlim([(-1/2)*(fc*1e-3),
(1/2)*(fc*1e-3)]), title('DFT con finestra di Hanning'),
xlabel('Frequenza (KHz)'), ylabel('Ampiezza');
Per osservare il comportamento dello script, bisogna assegnare dei valori ai parametri. Per
26
prima cosa, quindi, si scelgono quelli che resteranno invariati per tutte le considerazioni
successive, ossia
Si fissino i valori
. Si vuole calcolare la DFT del segnale
campionato con frequenza
delle frequenze
e
, utilizzando
campioni, al variare
delle due sinusoidi.
Prima di procedere con l’analisi per valori specifici delle frequenze, ricordiamo che la
trasformata di Fourier del nostro segnale non finestrato (fissati
) è la quantità:
[
]
[
Quindi, idealmente, lo spettro del nostro segnale
di ampiezza
in
(supponendo
e di ampiezza
]
dovrebbe presentare quattro impulsi,
in
, come illustrato nella figura 3.2.1
).
Figura 3.2.1: spettro del segnale
.
Utilizzando la DFT, tuttavia, dovremo tenere conto dell’effetto della convoluzione, nel
dominio della frequenza, tra lo spettro del segnale campionato
scelta
e quello della finestra
. Questo comporterà l’apparizione di nuove componenti spettrali, che
dovrebbero essere nulle nel caso ideale.
Dopo aver visto lo script MATLAB e aver fatto queste considerazioni, possiamo
procedere con l’analisi spettrale del segnale
Consideriamo un primo caso, in cui
27
per valori specifici di
e
ed
.
.
Utilizzando la finestra rettangolare, si otterrebbe lo spettro riportato nella figura 3.2.1.
Scegliendo quella di Hanning, invece, si avrebbe lo spettro illustrato nella figura 3.2.2.
Figura 3.3.1: DFT per
e
con finestra rettangolare.
Come si evince dalla figura 3.2.1, la finestra rettangolare, come detto già in precedenza,
non fornisce buone prestazioni, in quanto compaiono componenti spettrali con valori non
trascurabili rispetto a quelle intorno alle frequenze di interesse.
Questo comportamento è dovuto al fatto che i lobi secondari dello spettro di ampiezza
della finestra rettangolare non sono abbastanza bassi rispetto a quello principale: di
conseguenza, la dispersione spettrale introdotta dalla finestra rettangolare è davvero
notevole.
La finestra di Hanning, avendo in frequenza lobi secondari più bassi e un lobo principale
più ampio, tende a concentrarsi su intorni più stretti delle frequenze di interesse. Quindi, la
dispersione spettrale sarà più contenuta.
28
Figura 3.3.2: DFT per
e
con finestra di Hanning.
La riduzione della dispersione spettrale si osserva nella figura 3.2.2. In questo caso, si
hanno componenti spettrali abbastanza ampie solo in intorni stretti delle frequenze di
interesse.
Per questo, lo spettro ottenuto con la finestra di Hanning è più fedele di quello ottenuto
con la finestra rettangolare.
Vediamo, adesso, cosa succede quando le due frequenze di interesse si avvicinano. Si può
prevedere che, al diminuire della distanza tra
, l’effetto della dispersione spettrale
ed
diventa sempre più critico.
Consideriamo, a tal proposito, un secondo caso, nel quale le frequenze di interesse sono
più vicine tra di loro. Fissiamo
e
. Le DFT ottenute
con una finestratura rettangolare e una di Hanning sono riportati, rispettivamente, nelle
figure 3.3.3 e 3.3.4.
29
Figura 3.3.3: DFT per
e
con finestra rettangolare.
All’avvicinarsi delle frequenze di interesse, i picchi diventano sempre più alti e più vicini.
Questo avviene proprio per effetto della finestratura: infatti, le componenti spettrali
nell’intorno di
e
tendono a sovrapporsi. Questo effetto è ancora più evidente con una
finestratura di tipo rettangolare, mentre si riduce notevolmente utilizzando una finestra di
Hanning, come riportato nella figura 3.3.4.
Dopo aver osservato i risultati di questi due esperimenti, la differenza di prestazioni tra le
due finestre diventa ancora più evidente. Si osserva ancora con piu’ facilità come la
convoluzione nel dominio della frequenza tenda a distribuire le componenti spettrali negli
intorni delle frequenze di interesse.
Si osserva, inoltre, che, quando le due frequenze di interesse si avvicinano, la dispersione
spettrale comporta un effetto additivo sulle componenti spettrali localizzate negli intorni
comuni.
30
Quindi, ci possono essere dei casi in cui lo spettro risulta inevitabilmente corrotto,
indipendentemente dal tipo di finestra adottata. Questo avviene per frequenze di interesse
molto vicine tra loro.
Figura 3.3.4: DFT per
e
con finestra di Hanning.
Per questo motivo, nella pratica, si cerca sempre di lavorare con segnali ben distanziati in
frequenza: infatti, aumentando la distanza tra gli spettri, diminuisce l’effetto della
dispersione spettrale e, quindi, aumentano le prestazioni e l’efficienza, indipendentemente
dal tipo di finestra. In questo modo, lo spettro risulterà più fedele.
Questo problema è molto comune nelle telecomunicazioni, soprattutto nelle trasmissioni
dei segnali: capita spesso, infatti, di lavorare con una somma di segnali sovrapposti nel
tempo, ma separati in frequenza. In ricezione, questi segnali dovranno essere
opportunamente separati. Questo avviene con dei filtri, le cui specifiche sono, ovviamente,
legate proprio alle proprietà frequenziali del segnale ricevuto.
31
Fatte queste considerazioni, osserviamo un caso critico, in cui nemmeno la finestra di
Hanning riesce a garantire prestazioni ottime.
È questo ciò che accade quando
e
, che costituisce il
nostro terzo e ultimo caso di studio.
La DFT ottenuta con la finestra rettangolare è riportata nella figura 3.3.5, mentre quella
ottenuta con la finestra di Hanning è illustrata nella figura 3.3.6.
Figura 3.3.5: DFT per
e
con finestra rettangolare.
Ancora una volta, nella figura 3.3.5, si osservano componenti spettrali non trascurabili,
che idealmente dovrebbero essere nulle. Inoltre, a causa della vicinanza tra le due
frequenze di interesse, non si hanno piu’ quattro picchi ben definiti, come avveniva nel
caso precedente. Questa volta, però, nemmeno l’adozione della finestra di Hanning risolve
il problema. Per questo motivo, nella pratica, si preferisce lavorare a frequenze ben
distanziate l’una dall’altra.
32
Figura 3.3.6: DFT per
e
con finestra di Hanning.
In conclusione, la finestratura è un’operazione necessaria nella pratica per il calcolo della
DFT, ma il suo effetto è quello di far comparire, inevitabilmente, componenti spettrali che
non dovrebbero esserci. Per questo motivo, si impiegano finestre che possano lasciare
componenti spettrali significative solo intorno alle frequenze di interesse, come la finestra
di Hanning.
Tuttavia, esistono dei casi limite in cui nemmeno l’adozione della finestra di Hanning
assicura uno spettro accettabile.
Per questo motivo, si cerca sempre di operare con segnali i cui spettri siano
opportunamente distanziati in frequenza.
33
Conclusioni
Questo elaborato mi ha consentito di approfondire le mie conoscenze sulla trasformata
discreta di Fourier, e mi ha aiutato a comprenderne l’importanza nei sistemi di
telecomunicazione.
La DFT, infatti, viene utilizzata al posto della trasformata di Fourier nei sistemi digitali
moderni: lavorare con un insieme discreto di campioni, infatti, comporta notevoli
vantaggi.
Tuttavia, abbiamo visto che possono sorgere dei problemi più o meno gravi in determinati
casi. Tra questi, vi è quello della finestratura, attraverso la quale vengono scelti i campioni
del segnale da trasformare.
Nello specifico, la finestratura causa il fenomeno della dispersione spettrale, che comporta
la nascita di componenti spettrali di ampiezza non trascurabile in intorni più o meno estesi
delle frequenze dei segnali. Questo fenomeno viene ridotto utilizzando finestre sofisticate,
come quella di Hanning. Tuttavia, è stato dimostrato che, se le frequenze dei segnali non
sono abbastanza lontane, anche lo spettro ottenuto con la finestra di Hanning può essere
errato.
Dunque, per migliorare le prestazioni di un sistema di telecomunicazione, bisogna
lavorare con segnali ben separati in frequenza. In generale, poi, sarebbe opportuno avere
una frequenza di campionamento elevata, in modo da catturare la maggior parte del
contenuto informativo, e impiegare opportune finestre per ridurre la dispersione spettrale.
34
Bibliografia
[1]
Alan W. Oppenheim, Ronald W. Schafer, John R. Buck - Discrete-time signal
processing (Second edition) - Prentice Hall, 1999 - pp. 541-701.
[2]
G. Gelli, F. Verde – Segnali e sistemi – Fondamenti di analisi ed elaborazione dei
segnali analogici e digitali - Liguori Editore, 2014 - p. 10, 350.
[3]
The MathWorks - MATLAB Documentation - http://it.mathworks.com/help/matlab/
35