Signalbehandling i multimedia - ETI265
Föreläsning 10
Signalbehandling i multimedia - ETI265
Kapitel 7
Diskreta FourierTransformen DFT
LTH 2014
Nedelko Grbic
(mtrl. från Bengt Mandersson)
Institutionen för elektro- och informationsteknik Lund University
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Kapitel 7 Discrete-Time FourierTransformen DTFT Fouriertransformen av Tidsdiskreta signaler
Definition: Fouriertransform av tidsdiskret signal DTFT
n f j n
e n x f
X ( ) ( )
2
10
2 5
. 0
5 . 0
2
( )
) ( )
(
f
n f j
f
n f
j
df X f e df
e f X n
x
Konvergens: Om
x n
stabil, dvs| [ ] |
n
x n
Lite svagare konvergens
| [ ] |
n
x n
| [ ] |
2 nx n begränsad energi
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Definition:
z-transform
Låt h n [ ] vara ett kausalt impulssvar
.Kausalt innebär att
[ ] 0 0.
h n för n
Vi definierar Z-transformen av impulssvaret som
0
( ) [ ]
nn
H z h n z
där z r e
jär ett komplext tal som vi oftast skriver som belopp och fas.
H(z) är en komplex funktion av en komplex variabel.
Viktigt : Om h n [ ] är kausal och stabil får vi
je
z z
H
H ( ) ( ) |
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Diskreta Fouriertransformen DFT
sid 456läs sid 449-456 översiktligt
Låt x n[ ] {...0 0 0 0 1 1 1 1 0 0 0...}
Vanlig Fouriertransform DTFT
n f j n
e n x f
X ( ) ( )
2
df e
f X n
x
j f nf
2 1
0
) ( )
(
Välj längd N 8och beräkna
X ( f )
i N punkter0, 1/ , 2 / ,... , ( 1) /
f N N N N dvs f k N/
ger den Diskreta Fourier-Transformen (DFT)
1 2
0
1 2
0
[ ] [ ]
[ ] 1 [ ]
N j k n
N DFT
n
N j k n
N DFT
k
X k x n e
x n X k e
N
0 , 1 ,..., 1
1 ,...,
1 , 0
N n
N k
4
|X(f)|
|X(k)|
0 0.5 1 f 0 2 4 6 7 k 0 N/2 N-1 k
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Periodicitet
Vanlig Fouriertransform DTFT
) ( f
X
periodisk tyn f
j n
f
j
e
e
2
2 ( 1)Diskreta Fouriertransformen DFT
Både X k[ ], [ ]x n periodiska, (index beräknas modulo N ) ty n' n p N, k' k p N, p heltal ger samma numeriska värden
2 ( ) 2
2
1
( )
2 2
2
1
k k
j n p N j n
j k p
N N
k p N k
j n j n
j n p
N N
e e e
e e e
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Om x(n) bara definierad för 0 nN-1 (längd N) får vi
N f k
DFT
k X f
X ( ) ( ) |
dvs
X ( f )
i N punkterKommentar: Om N är en jämn 2-potens kan beräkningarna snabbas upp mycket, N log N istället för N2. Algoritmen kallas FFT.
Algoritmen beskrivs i Proakis. kapitel 8 men ingår inte i grundkursen.
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Viktigt samband
N N
n
l N n j k
l n N
N l
n N
N l
n N
N p l
n om
N p l
n om e N
)) (
((
) modulo ,
( :
notation Proakis
) modulo ,
(
0 0
0
1
0
) ( 2
Summan av punkter jämnt fördelade på enhetscirklen = 0
S
umman av värdena i punkterna är:A+A+A+A+A+A+A+A=8 A+B+C+D+E+F+G+H=0 A+C+E+G+A+C+E+G=0 osv
Jämför: Integralen av cos(t) över ett jämnt antal perioder är noll utom för =0
C
D B
E A
F H
G
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Speciella egenskaper för DFT
Både x n [ ] och X k [ ] periodiska, detta medför vissa speciella egenskaper, alla index räknas modulo N
Tolkning av x[n]
x[n]={ 1 2 3 4 1 2 3 4 1 2 3 4 } x[n-1]={4 1 2 3 4 1 2 3 4 1 2 3 4 }
Cirkulärt shift
[
0, modulo ]
x n n N
2 0[ ]
j k n
e
NX k
Exempel på skift vid DFT
x[n]={1 2 3 4}, x[n-1]={4 1 2 3}
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Cirkulär faltning vid DFT, längd N, sid 476-477
1 2
( ) ( ) ( )
X k X k X k
1 2
1
1 2
0
[ ] [ ] [ ]
[ ] [ , modulo ]
N
l
x n x n x n
x l x n l N
(alla signaler har samma längd N)
Exempel på cirkulär faltning
Givet: x[n]={
1
2 3 4}, h[n]={2
2 1 1}Sök cirkulär faltning
y n [ ] x n [ ] h n [ ]
Grafisk lösning
h[0-k] 1 1 2
2
x[n] { 1 2 3 4
1
2 3 4 1 2 3 4 } ger y[n] = {15
13 15 17}Problemet uppstår därför att N=4 men resultatet av faltningen blir av längd 7. Därför ‘trillar’ värdena runt.
MATLAB: x=[1 2 3 4]; h=[2 2 1 1];
y=real(ifft(fft(x).*fft(h)))
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Vanlig faltning med DFT
x[n]={
1
2 3 4}, h{n]={2
2 1 1}Faltningen mellan x[n] och h[n] ger y(n) av längd 4+4-1
Välj längd hos DFT:n N=8 Grafisk lösning
h[0-k] 0 0 0 0 1 1 2
2
x[k] {1 2 3 4 0 0 0 0
1
2 3 4 0 0 0 0 1 2 3 4 } ger y[n] = {2
6 11 17 13 7 4 0}MATLAB: y=real(ifft(fft(x,8).*fft(h,8)))
Jämför med förra sidan yförra={
2+13
, 6+7, 11+4, 17+0}Digital signalbehandling, Institutionen för elektro- och informationsteknik
Sampling av spektrum ger periodicitet.
Låt j f
n
e f a
X n
u a n
x
21 ) 1 ( )
( )
(
Avläs
X ( f )
i N punkter och bildaN f k
f X k
X ( ) ( ) |
Nu är
x (n )
är enoändligt lång sekvens men invers DFT av
X (k )
ger ensekvens av längd N.
Vad blir
x
DFT( n ) IDFT ( X ( k ))
Dvs vad blir resultatet av nedanstående räkning?
N j k N
f k DFT
f j n
e a f
X k
X IDFT
n x
e f a
X DTFT
n u a n
x
2 2
1
| 1 ) ( )
(
? ) (
1 ) 1 ( )
( )
(
|X(k)|
|X(f)|
0 0.5 1 f 0 1 2 N/2 N-1 k
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Sampling av spektrum ger periodicitet, fortsättning
Lösning:
N f k
DFT
k X f
X ( ) ( ) |
Invers DFT ger
1 2 1 2 2
0 0
1 2 ( )
0
[ , modulo ] [ ]
1 1
[ ] [ ] [ ]
1 [ ] [ ]
periodiserat
k k k
N j n N j l j n
N N N
DFT
k k l
N j k n l
N
l k l
N n l N x n
x n X k e x l e e
N N
x l e x n l N
N
dvs
[ ]
[ ] [ ]
periodiserat
DFT
l
x n
x n x n l N
(x(n), x (n) ritat heldraget för enkelhets skull) x[n]
0 N-1 n
xDFT[n]
0 N-1 n
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Visa periodicitet i tid med numeriskt exempel
DTFT och DFT av fyrkantpuls
st L
n
x 1 1 1 1 .... 1 ger
L j Nkn j kLNn
fL n j
f j L
n
e k N
N k L e
n x k
X
e f
f L e
n x f
X
2 2 1 1 2
0
2 2 1 2
1
0
2 ) 2 1 sin(
2 ) 2 sin(
) (
2) 2 1
sin(
2) 2
sin(
) ( )
(
Exempel:
Låt nu
N kL
e j
k N N k L k
X k
Y 2
2 1
1
2 ) 2 1 sin(
2 ) 2 sin(
) ( )
(
och bestäm y1
n IDFT(Y1
k )samt
2
2 2 1 2
2
2 ) 2 1 sin(
2 ) 2 sin(
)) ( ( ) (
N kL
e j
k N N k L k
X k
Y
och bestäm y2(n)IDFT(Y2(k))
Matlabkod: N=16, L=6 och L=10
k=0:N-1; k=k+.00000001;
Y1=sin(2*pi*L*k/(2*N))./sin(2*pi*k/(2*N)).*exp(-j*2*pi*(L-1)*k/(2*N));
y1=real(ifft(Y1));
Y2=Y1.*Y1;
y2=real(ifft(Y2));
Hur ser y1[n] och y2[n] ut? Svar nästa sida.
Digital signalbehandling, Institutionen för elektro- och informationsteknik
Fortsättning: Matlabexempel på periodicitet i tid, Matlabplot N=16, L=6,
N kL
e j
k N N k L k
Y 2
2 1
1
2 ) 2 1 sin(
2 ) 2 sin(
) (
y1(n)IDFT(Y1)
2
2 2 1
2
2 ) 2 1 sin(
2 ) 2 sin(
) (
N kL
e j
k N N k L k
Y
y2(n) IDFT(Y2)
N=16, L=10,
)
1(k
Y y1(n)IDFT(Y1)
Digital signalbehandling, Institutionen för elektro- och informationsteknik
En praktisk tillämpning
Öka upplösning i frekvens med hjälp av ”zero padding” el. ”trailing zeroes”
Låt x[n]={… 0 0 0 0 0 0
1
1 1 1 0 0 0 0 0 0 0 …}Tag N=8 punkters DFT av x[n]
Tag N=16 punkters DFT av x[n]
4
|X(f)|
|X[k]|
0 0.5 1 f 0 2 4 6 7 k 0 N/2 N-1 k
4
|X(f)|
|X[k]|
0 0.5 1 f 0 4 8 15 k 0 N/2 N-1 k
Appendix
Digital signalbehandling, Institutionen för elektro- och informationsteknik
DFT i matrisform sid 459-460 (för kännedom) Definiera W
N e
j 2 N W
1
1 ,...,
1 , 0 )
1 ( ) (
1 ,...,
1 , 0 )
( )
(
1
0 1
0
N n
W k N X
n x
N k
W n x k
X
N
k
kn N
n
kn
Låt
x
x( ) x( )
x(N 0 1
1)
X
X( ) X( )
X(N 0 1
1)
2 1
1 2( 1) ( 1)( 1)
1 1 1 1
1
1
N
N N N N
W W W
W W W
D
Medför att vi kan skriva
-1