Appunti Esercitazioni per il corso di Telecomunicazioni Stefano

Transcript

Appunti Esercitazioni per il corso di Telecomunicazioni Stefano
Appunti Esercitazioni per il corso di Telecomunicazioni
Stefano Savazzi
Parte 2
1
Trasformata discreta di Fourier - DFT per segnali sinusoidali
Si calcoli la trasformata discreta di Fourier (DFT) dei primi N campioni di un segnale discreto costante di
ampiezza B
X(k) =
N
−1
X
B exp(−j2π
n=0
infatti
k
n) = N Bδ k
N
¶
µ
½
N per k = 0
k
= N δk =
exp −j2πn
0 per k 6= 0
N
n=0
N−1
X
per k 6= 0
N−1
X
n=0
¶ N−1
µ
N−1
X
X
k
k
k
=
exp −j2πn
cos(2πn ) − j
sin(2πn ) = 0
N
N
N
n=0
n=0
in quanto entrambe le somme sono eseguite su k =
6 0 periodi (N campioni) delle rispettive sinusoidi.
Si calcoli la trasformata discreta di Fourier (DFT) del segnale cos(2πn Np )wN [n], n = 0, ..., N − 1 con
p = 1, ..., N − 1, wN [n] = u(n) − u(n − N ).
Dalla definizione (k = 0, ..., N − 1)
X(k) =
=
=
si ha
N−1
X
n=0
N−1
X
cos(2πn
exp(j2πn Np ) + exp(−j2n Np )
k
exp(−j2π n)
2
N
n=0
N−1
X
1
2
k
p
) exp(−j2π n) =
N
N
exp(−j2πn
n=0
N−1
1X
k−p
k+p
)+
)
exp(−j2πn
N
2 n=0
N
N
N
X(k) = δ k−p + δ k−N +p =
2
2
Infatti per k = 0, ..., N − 1
N
−1
X
n=0
e
½
N/2 per k = p e k = N − p
0 altrimenti
¶
µ
½
N per k = p
(k − p)
= N δ k−p =
exp −j2πn
0 altrimenti
N
¶
µ
½
(k + p)
N per k = N − p
= N δ k−N+p =
exp −j2πn
.
N
0
altrimenti
n=0
³
´
(k−p)
Si noti che per k 6= p il segnale exp −j2πn (k−p)
= cos(2πn (k−p)
N
N ) − j sin(2πn N ) è costituito da due
sinusoidi (parte reale e immaginaria) che fanno |k − p| giri in N campioni, la somma e’ nulla, quindi
.
N−1
X
µ
¶
(k − p)
exp −j2πn
=
N
n=0
N−1
X
N
−1
X
N
−1
X
(k − p)
(k − p)
)−j
)=0
cos(2πn
sin(2πn
N
N
n=0
n=0
per k 6= p
1
Vale la stessa cosa per
PN−1
³
´
³
´
(k+p)
exp −j2πn (k+p)
,
infatti
per
k
=
6
N
−
p
il
segnale
exp
−j2πn
=
N
N
n=0
(k+p)
(k+p)
cos(2πn N ) − j sin(2πn N ) inoltre
N−1
X
n=0
¶
µ
(k + p)
=
exp −j2πn
N
N
−1
X
n=0
N
−1
X
(k + p)
(k + p)
)−j
)=0
cos(2πn
sin(2πn
N
N
n=0
per k 6= N − p
pochè la somma è eseguita su un k 6= N − p cicli delle sinusoidi. Ovviamente per k = N − p
N−1
X
n=0
2
¶ N−1
µ
X
N −p+p
=
exp −j2πn
exp (−j2πn) = N
N
n=0
Convoluzione circolare di DFT
n
Si calcoli la DFT di zn = cos(2π 16
) cos( πn
2 ), 0 ≤ n ≤ 15, N = 16.
La sequenza zn = xn yn è il prodotto di due sequenze, la DFT di zn è quindi la convoluzione circolare delle
DFT delle due sequenze xn e yn ovvero X(k) e Y (k), rispettivamente (si deve anche tener conto di un fattore
di scala pari a 1/N )
1
DF T [zn ] = Z(k) = X(k) ~ Y (k)
N
Il calcolo della convoluzione circolare richiede
1) il calcolo della convoluzione lineare (e scalatura di 1/N ) S(k) = (1/N )×X(k)∗ Y (k) tra i singoli periodi
N−1
{X(k)}N−1
k=0 e {Y (k)}k=0 delle due DFT
2) periodicizzazione di S(k) a passo N campioni
3) Z(k) = S(k)|k=0,...,N −1
Come visto nell’esercizio precedente
n
DF T [xn ] = DF T [cos(2π )] = X(k) = 8δ k−1 + 8δ k−15
16
n
DF T [yn ] = DF T [cos(π )] = Y (k) = 8δ k−4 + 8δ k−12
2
La convoluzione lineare tra X(k) ∗ Y (k)
S(k) = (1/N ) × X(k) ∗ Y (k) =
1
[8δ k−1 + 8δ k−15 ] ∗ 8δ k−4 + 8δ k−12 =
=
16
1
1
[8δ k−1 + 8δ k−15 ] ∗ 8δ k−4 +
[8δ k−1 + 8δ k−15 ] ∗ 8δ k−12 =
=
16
16
1
δ k−5 + δ k−19 + δ k−13 + δ k−27
=
4
La periodicizzazione a passo N
S(k) =
Z(k) =
+∞
1 X
δ k−5+p16 + δ k−13+16p + δ k−3+16p + δ k−11+16p
4 p=−∞
1
[δ k−3 + δ k−5 + δ k−11 + δ k−13 ] , k = 0, ..., 15
4
1
Per verificare il risultato possiamo verificare che zn = cos(2πn 16
) cos( πn
2 )=
la DFT e’ la somma delle due DFT dei segnali sinusoidali.
2
1
2
n
cos(6π 16
) + 12 cos(π n10
16 ), quindi
3
Campionamento in frequenza della TdF di sequenze
3
Si spieghi qual’e’ la procedura per calcolare i campioni della trasformata di Fourier del segnale xn = cos(2πn 16
)w16 [n]
per Φ = k/128 con k = −63, ..., +64 usando la DFT.
E’ noto che i campioni della DFT (N campioni) coincidono con il campionamento a passo k/N, k =
0, ..., N − 1 della TdF X(Φ) del segnale discreto xn , ovvero X(k) = X(Φ)|Φ=k/N con N = 16. Dato che serve
3
una risoluzione in frequenza maggiore calcoliamo la trasformata discreta di Fourier del segnale cos(2πn 16
) per
3
n = 0, ..., 15 in cui si aggiungono P = 128 − 16 campioni nulli alla fine della sequenza (xn = cos(2πn 16 )[u(n) −
u(n − 16)]), come noto dalla teoria cio’ equivale a sovracampionare in frequenza la trasformata di Fourier di
xn a passo k/128. Il numero di campioni della DFT vale ora 128,
X(k) =
15
X
n=0
cos(2πn
k
3
) exp(−j2π
n)
16
128
In figura 1 si e’ confrontato il risultato ottenuto (DFT 128 campioni - la linea tratteggiata unisce i campioni
Figura 1:
ottenuti) con la DFT del segnale di lunghezza 16 campioni (campioni in blu). Il codice e’ mostrato in figura
2.
Si calcoli la trasformata di Fourier di xn in forma algebrica e si confronti il risultato con la DFT su 64
campioni.
La trasformata di xn si puo’ calcolare anche algebricamente
∙ µ
¶
µ
¶¸
1
3
3
sin(16πΦ)
3
δ Φ−
+δ Φ+
∗
exp(−j15πΦ)
xn = cos(2πn )[u(n) − u(n − 16)] ↔ X(Φ) =
16
2
16
16
sin(πΦ)
ed è plottata in Fig. 3 (linea scura) a confronto con la DFT calcolata per 64 campioni (campioni in rosso)..
La DFT in Fig. 3 non e’ altro che X(Φ)|Φ=k/64 = X(k).
4
Traslazione circolare e DFT
Sia dato il segnale discreto di N = 5 campioni xn = δ n − 2δ n−1 + 3δ n−2 − 2δ n−3 + δ n−4 . Detta {Xk }4k=0
la DFT della sequenza xn si trovi l’espressione della sequenza yn che ha come DFT Yk = Xk exp(j4πk/5),
k = 0, ..., 4.
3
Figura 2:
Figura 3:
4
Risolviamo prima l’esercizio algebricamente, poi lo verifichemo tramite Matlab.
Moltiplicare la DFT di xn per exp(j2πkn0 /5) equivale nei tempi a traslare la sequenza xn n0 campioni
(verso sinistra - anticipo), ovvero
xn−n0 circolare → DF T = Xk exp(j2πkn0 /5)
Per ottenere la traslazione circolare della sequenza,
occorre ricordare che la trasformata di Fourier della
P
sequenza xn periodicizzata a passo N = 5, x̃n = +∞
p=−∞ xn−5p e’ descritta dai soli campioni della DFT Xk
di xn (la trasformata e’ infatti un segnale discreto e periodico di N campioni, dove il periodo e’ cosituito dai
campioni dell DFT {Xk }N−1
k=0 - si veda la teoria). E’ noto dalla propieta’ del ritardo che
x̃n+q ↔ Xk exp(j
2πkq
)
N
Nel nostro caso q = 2 infatti
4πk
)
5
quindi la sequenza yn con DFT Xk exp(j 4πk
5 ) e’ il periodo base (es tra 0 e N − 1) del segnale discreto periodico
x̃n+2 , ovvero
yn = 3δ n − 2δ n−1 + δ n−2 + δ n−3 − 2δ n−4 .
x̃n+2 ↔ Xk exp(j
yn si puo’ ottenere equivalentemente applicando una traslazione circolare a sinistra di q = 2 campioni del
segnale discreto xn . Le sequenza xn e yn sono visualizzate in Fig 4
yn 6= xn+2 NOTA BENE!!
ỹn = x̃n+2 , yn = [ỹn ]n=0,...,N −1 SI!!
Il codice Matlab per risolvere l’esercizio e’ mostrato in Fig. 5 (file matlab: traslazione_circolare.m).
3
3
xn , DFT X (k )
2
1
1
0
0
-1
-1
-2
yn , DFT X ( k ) exp( j 4πk / 5)
2
0
0.5
1
1.5
2
x(n)
2.5
3
3.5
4
-2
0
~
xn
0.5
1
1.5
2
y(n)
2.5
3
3.5
4
xn
~
yn = ~
xn + 2
yn
Figura 4:
5
DFT della sequenza ritardata
Si consideri la sequenza di lunghezza Nx = 5 xn = δ n − 2δ n−1 + 3δ n−2 − 2δ n−3 + δ n dell’esercizio precedente.
Si descriva una procedura per ricavare la sequenza ritardata di q campioni xn−q a partire da xn usando la
DFT X(k).
Un traslazione circolare può coincidere con una traslazione lineare solo inserendo nella sequenza xn un
numero opportuno di campioni nulli in modo da annullare l’effetto del ricircolo dei campioni dovuto alla
5
Figura 5:
circolarita’ della traslazione. La seguente procedura consente di ottenere la DFT di xn−q a partire dalla DFT
della sequenza xn in cui si sono aggiunti un numero opportuno di zeri:
1) inserire P ≥ q zeri alla sequenza xn , la sequenza (quindi il periodo base se si considera il segnale discreto
periodicizzato) P
è ora composta da N = Nx + P campioni
2) X(k) = N−1
n=0 xn exp(−j2πkn/N ) è la DFT di xn dopo l’aggiunta di zeri (k = 0, ..., N − 1)
3) Z(k) = X(k) exp(−j 2πkq
N ) è la DFT di xn−q (k = 0, ..., N − 1)
Codice Matlab in figura 6 per il caso q = 2 (M-file: traslazione_lineare.m)
Figura 6:
6
Convoluzione circolare di sequenze e DFT
Si consideri la sequenza xn = δ n + 2δ n−1 + 3δ n−2 + 4δ n−3 + 5δ n−4 , con DFT X(k), si calcoli
1) la sequenza zn che ha DFT X 2 (k); 2) la sequenza qn che ha DFT |X(k)|2 ; 3) la sequenza pn che ha
DFT X(k)∗ (il simbolo’ ∗ ’ sta per complesso coniugato)
6
1) Si utilizza la proprietà del prodotto di DFT:
DF T [zn = xn ~ xn ] = X 2 (k)
dove X(k) e’ la DFT di xn . La sequenza zn che ha come DFT X 2 (k) si ottiene dalla convoluzione circolare
zn = xn ~ xn . Il calcolo di zn viene svolto in tre passi:
a) calcolo della convoluzione lineare cn = xn ∗ xn = δ n + 4δ n−1 + 10δ n−2 + 20δ n−3 + 35δ n−4 + 44δ n−5 +
46δ n−6 + 40δ n−7 + 25δ n−8 (lunghezza della convoluzione P
2N − 1 = 9 campioni)
1
b) periodicizzazione della convoluzione lineare: z̃n = +∞
p=−∞ cn−5p .
c) valutazione del singolo periodo, la sequenza zn = {z̃n }4n=0 = 45δ n + 50δ n−1 + 50δ n−2 + 45δ n−3 + 35δ n−4
ha DFT X 2 (k)
2) E’ noto che la DFT dell’autocorrelazione circolare della sequenza xn vale |X(k)|2 , ovvero il modulo
quadro dei campioni della DFT di xn
DF T [qn = xn ~ x−n ] ↔ |X(k)|2
dove qn = xn ~ x−n .Come nel punto precedente, il calcolo di qn viene svolto in tre passi:
a) calcolo dell’autocorrelazione della sequenza xn : an = xn ∗ x−n = 55δ n + 40δ n−1 + 40δ n+1 + 26δ n−2 +
26δ n+2 + 14δ n−3 + 14δ n+3 + 5δ n−4 + 5δ n+4 (si noti che l’autocorrelazione è una funziona pari)
b) periodicizzazione dell’autocorrelazione per ottenere l’autocorrelazione della sequenza periodica: q̃n =
P+∞
2
p=−∞ an−5p .
c) qn = q̃n |n=0,...,4 = 55δ n + 45δ n−1 + 40δ n−2 + 40δ n−3 + 45δ n−4 ha DFT |X(k)|2 .
Si noti che la sequenza periodica (autocorrelazione) q̃n è reale pari, la sua trasformata (periodica e costituita
dai campioni |X(k)|2 k = 0, ..., N − 1 come periodo base) è reale e pari.
3) La sequenza periodica p̃n = x̃−n ha trasfomata di Fourier (discreta e periodica) descritta dagli N
campioni della DFT X ∗ (k), k = 0, .., N − 1. Il periodo base pn n = 0, ..., N − 1 di p̃n = x̃−n ha DFT X ∗ (k),
k = 0, .., N − 1.La sequenza pn vale
pn = δ n + 5δ n−1 + 4δ n−2 + 3δ n−3 + 2δ n−4
e ha DFT X ∗ (k).
Le sequenze zn , qn , pn sono mostrate in figura 7, il codice e’ riportato in figura 8 (M-file: prodottoDFT.m)
7
Convoluzione lineare di sequenze tramite prodotto di DFT
Si consideri la sequenza di Nx = 3 campioni xn = δ n + 2δ n−1 + δ n−2 , con DFT X(k), e la sequenza w(n),
finestra rettangolare di Nw = 2 campioni. Si calcoli la DFT della sequenza yn = xn ∗ w(n).
La DFT della convoluzione lineare di due sequenze coincide con il prodotto delle DFT delle sequenze in
cui si e’ aggiunto un numero opportuno di zeri in modo che la convoluzione circolare xn ~ w(n) coincida
con quella lineare nel singolo periodo. In particolare, dato che la lunghezza di yn = xn ∗ w(n) e’ pari a
N = Nx + Nw − 1 = 3 + 2 − 1 = 4 campioni, e’ sufficiente aggiungere N − Nx = 1 zeri a xn e N − Nw = 2 zeri
a w(n).Le due DFT X(k), W (k), k = 0, ..., N − 1, sono
X(k) =
W (k) =
N−1
X
n=0
N−1
X
n=0
xn exp(−j2π
3
X
k
nk
nk
)=
xn exp(−jπ ) = 1 + 2 exp(−jπ ) + exp(−jπk) = [4, −2j, 0, 2j]
N
2
2
n=0
w(n) exp(−j2π
k
k
k
1
1
3
nk
) = 1 + exp(−jπ ) = 2 cos(π ) exp(−jπ ) = [2, 2 cos(π ) exp(−jπ ), 0, 2 cos(π ) e
N
2
4
4
4
4
4
La DFT della sequenza yn = xn ∗ w(n) = δ n + 3δ n−1 + 3δ n−2 + δ n−3 vale quindi
1
3
3
1
X(k)W (k) = [8, −4j cos(π ) exp(−jπ ), 0, 4j cos(π ) exp(−jπ )]
4
4
4
4
1
Si noti che il segnale discreto e periodico z̃n ha TdF discreta e periodica di periodo N = 5 campioni, descritta dagli N
campioni della DFT del periodo base zn , ovvero X 2 (k)
2
Si noti che il segnale discreto e periodico q̃n ha TdF discreta e periodica di periodo N = 5 campioni, descritta dagli N
campioni della DFT del periodo base qn , ovvero |X(k)|2
7
Figura 7:
Figura 8:
8