De discrete fouriertransformatie en Fast Fourier Transform De fourierreeks voor tijddiscrete signalen
t n w q s z kw1 kq1 tijdcontinu tijddiscreet tijddomein bemonstering t n tijddomein F.R. reconstructie DFT discreet frequentie-domein kw1 kq1 T→ ∞ N → ∞ F.T. continu frequentie-domein w q x et z = e jq L.T. Z.T. complex frequentie-domein esTS = z s z
Fourierreeks Ak = ? Bk = ?
Verzameling orthogonale signalen Binnen het interval [ t , t + T ] zijn de volgende signalen orthogonaal : 1 ; cos w1t ; cos 2w1t ; cos 3w1t ; cos 4w1t ; … cos kw1t sin w1t ; sin 2w1t ; sin 3w1t ; sin 4w1t ; … sin kw1t 2 p met w1 = T Wat wil dat zeggen orthogonaal ?
Berekenen van Ak
Berekenen van A0
Berekenen van Bn
Geldt hetzelfde voor tijddiscrete signalen ? x[n] 14 14 14 10 10 10 7 7 7 5 5 5 … 1 1 1 1 n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 … Een tijddiscreet signaal is periodiek als x[n] = x[n + N] De kleinste waarde van N waarvoor dit geldt noemen we de periode van het signaal
Eerste belangrijke vaststelling: de discrete sinus sin(q1n) of cosinus cos(q1n) geeft alleen aanleiding tot een periodieke rij van getallen met periode N indien er geldt Inderdaad, alleen onder deze voorwaarde geldt dat sin q1(n+N) = sin (q1n + q1N) = sin (q1n + 2p) = sin q1n
Tweede belangrijke vaststelling: de verzameling van de hogere harmonischen sin(kq1n) en cos(kq1n) is niet onbe-grensd. Inderdaad, sin[(k+N)q1n] = sin(kq1n + Nq1n) = sin(kq1n+ 2pn) = sin(kq1n) Dit wil dus zeggen dat sin(k+N)q1n precies dezelfde periodieke getallenrij oplevert als het signaal sin(kq1n), zodat sin(k+N)q1n geen ‘nieuw’ signaal is. Het belangrijk gevolg is dat in de fourierreeks de oneindige som in formule moet worden vervangen door een eindige som.
Derde belangrijke vaststelling: zelfs voor k < N zijn niet alle harmonischen verschillend van elkaar: cos (N-k)q1n = cos (Nq1n - kq1n) = cos (2pn - kq1n) = cos kq1n sin (N-k)q1n = sin (Nq1n - kq1n) = sin (2pn - kq1n) = -sin kq1n Als deze signalen aan elkaar gelijk zijn, kunnen ze ook niet orthogonaal zijn. Het blijkt dat er maar N orthogonale signalen zijn, die we kunnen gebruiken voor de fourierreeks van x[n] .
Fourierreeks voor discrete signalen N even N oneven In beide gevallen: een som van N termen
voorbeeld 3 4 N = 8 A0 A1 A2 A3 A4 B1 B2 B3 3 3 N = 7 In beide gevallen: een som van N termen
Orthogonaliteit ( k ≤ N/2 , m ≤ N/2 )
Berekenen van Ak en Bk Als N even: of
Grafische voorstelling x[n] Ak 13 A0 = 6 9 A3 = 1 7 k 3 3 A2 = -1 1 n A1 = -5 0 1 2 3 4 5 Bk N = 6 B2 = 1,7 k B1 = -1,7
Alternatief: oplossen stelsel bv. N = 6 → 6 vergelijkingen met 6 onbekenden x[0] = A0 + A1 cos q10 + A2 cos 2q10 + A3 cos 3q10 + B1 sin q10 + B2 sin 2q10 = A0 + A1 + A2 + A3 x[1] = A0 + A1 cos q11 + A2 cos 2q11 + A3 cos 3q11 + B1 sin q11 + B2 sin 2q11 = A0 + A1 cos p/3 + A2 cos 2p/3 + A3 cos p + B1 sin p/3 + B2 sin 2p/3 x[2] = A0 + A1 cos q12 + A2 cos 2q12 + A3 cos 3q12 + B1 sin q12 + B2 sin 2q12 = A0 + A1 cos 2p/3 + A2 cos 4p/3 + A3 cos 2p + B1 sin 2p/3 + B2 sin 4p/3 x[3] = A0 + A1 cos q13 + A2 cos 2q13 + A3 cos 3q13 + B1 sin q13 + B2 sin 2q13 = A0 - A1 + A2 - A3 x[4] = A0 + A1 cos q14 + A2 cos 2q14 + A3 cos 3q14 + B1 sin q14 + B2 sin 2q14 x[5] = A0 + A1 cos q15 + A2 cos 2q15 + A3 cos 3q15 + B1 sin q15 + B2 sin 2q15
Exponentiële vorm
Spectrum voor N = 8 |Cm| m Spectrum is repetitief … m -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 … Spectrum is repetitief C0 = C8 C1 = C9 C-1 = C7 | C-1 | = | C1 |
Continue fouriertransformatie x(t) |X(w)| ℱ t w
Discrete fouriertransformatie x[n] |X(m)| DFT n m 0 1 2 3 4 5 0 1 2 3 4 5 N2 vermenigvuldigingen !
Fast Fourier Transform twiddle factor w (to twiddle = draaien) : w = e-jq1 = e-j2p/N Kies voor N een macht van 2: N = 2b
N = 4 met x[n] = xn X(0) = x0 w0.0 + x1 w0.1 + x2 w0.2 + x3 w0.3
Deze 4 vergelijkingen worden X(0) = x0 w0 + x1 w0 + x2 w0 + x3 w0 X(1) = x0 w0 + x1 w1 + x2 w2 + x3 w3 X(2) = x0 w0 + x1 w2 + x2 w4 + x3 w6 X(3) = x0 w0 + x1 w3 + x2 w6 + x3 w9
Twiddle factors N = 4 w3 = j w2 = w6 = -1 w0 = w4 = 1 w1 = w9 = -j w = e-j2p/N = e-j2p/4 = e-jp/2 = e-j90°
Nog eenvoudiger X(0) = x0 + x1 + x2 + x3 X(1) = x0 + x1 w1 - x2 - x3 w1 X(2) = x0 - x1 + x2 - x3 X(3) = x0 - x1 w1 - x2 + x3 w1
of X(0) = x0 + x1 + x2 + x3 X(1) = x0 - x2 + w1 ( x1 - x3 )
of nog X(0) = ( x0 + x2 ) + ( x1 + x3 ) X(1) = ( x0 - x2 ) + w1 ( x1 - x3 ) X(2) = ( x0 + x2 ) - ( x1 + x3 ) X(3) = ( x0 - x2 ) - w1 ( x1 - x3 )
FFT butterfly A A + w B w B A – w B 1 optelling, 1 aftrekking 1 complexe vermenigvuldiging
Grafische voorstelling v.d. berekening x0+x2 x0 X(0) 1 x0–x2 x2 X(1) 1 x1+x3 x1 X(2) w1 1 x3 X(3) x1–x3
Twiddle factors N = 8 w6 = w14 w5 = w13 w7 = w15 w4 = w12 w0 = w8 w = e-j2p/N = e-j2p/8 = e-jp/4 = e-j45°
Berekening van X(3) X(3) = x0 w0 + x1 w3 + x2 w6 + x3 w9 + x4 w12 + x5 w15 + x6 w18 + x7 w21 Opsplitsen in even en oneven samples: X(3) = x0 + x2 w6 + x4 w12 + x6 w18 + w3 [ x1 + x3 w6 + x5 w12 + x7 w18 ] Vereenvoudigen: X(3) = x0 – x4 – w2 ( x2 – x6 ) + w3 [ x1 – x5 – w2 ( x3 – x7 )]
Grafisch x0 X(0) 1 x0–x4 x4 X(1) x2 X(2) w2 1 x0–x4 – w2(x2–x6) x6
Totaal schema x0 X(0) 1 x4 X(1) 1 x2 X(2) w2 1 x6 X(3) 1 x1 X(4) w1 1
Besluit Voor N = 8 zijn er 3 trappen: 3 = log2 8 algemeen: er zijn log2N trappen Elke trap heeft 4 butterflies, in totaal zijn er dus 12 butterflies algemeen: er zijn N/2 log2N butterflies
Aantal vermenigvuldigingen Elke butterfly heeft 1 complexe vermenigvuldiging Een complexe vermenigvuldiging komt overeen met 4 reële vermenigvuldigingen, immers (a+jb)(c+jd) = ac – bd +j(bc + ad) In totaal zijn er dus 2N log2N vermenigvuldigingen nodig
Vergelijking FFT met DFT DFT/FFT 32 1024 320 3 64 4160 768 5 128 16384 1792 9 256 65536 4096 16 512 262144 9216 28 1048576 20480 51 2048 4194304 45056 93
Besluit FFT heeft veel minder vermenigvul-digingen nodig Dus: veel sneller uit te rekenen Daarom: Fast Fourier Transform
2 belangrijke vragen Hoe groot moet de bemonsterings-frequentie fS zijn? Hoeveel samples N moeten er worden genomen?
Spectrale resolutie Df x[n] periodisch verondersteld … nTS 0 TS 2TS 3TS 4TS 5TS 6TS 7TS 8TS =TO … N TO = observatietijd N = 8 |X(m)| repetitief spectrum … mDf 0 Df 4Df 8Df=fS … N fS = 1/ TS
Formule voor Df N Df = fS → de spectrale resolutie is omgekeerd evenredig met de observatietijd vb. TO = 1 ms → Df = 1 kHz
TO = 2 ms → Df = 500 Hz
TO = 4 ms → Df = 250 Hz
TO = 10 ms → Df = 100 Hz
Wat bepaalt de keuze van N ? fS > 2 fMAX, zoniet aliasing ! Vermits moet N groot genoeg zijn N is groot genoeg als de Fourier componenten niet meer veranderen als N wordt verdubbeld
Voorbeeld Berekenen van het spectrum van een FM gemoduleerd signaal Draaggolffrequentie = 27 kHz Modulerende frequentie = 1 kHz Modulatie-index = 5
TO = 1 ms, N = 32 → fS = 32 kHz Symmetrisch t.o.v. 16 kHz
TO = 1 ms, N = 64 → fS = 64 kHz Symmetrisch t.o.v. 32 kHz
TO = 1 ms, N = 128 → fS = 128 kHz Symmetrisch t.o.v. 64 kHz
Spectrale lek Probleem: Sinus met frequentie 41 kHz Observatievenster TO = 0,5 ms Hieruit volgt: Df = 2 kHz Hoe ziet het spectrum eruit?
f = 41 kHz, Df = 2 kHz
Verklaring t rechthoekig venster t TO t TO 2TO De sampels worden periodiek verondersteld → discontinuïteit bij t = TO → extra spectrale componenten
Hoe spectrale lek verminderen? Vervang het rechthoekig venster door een ander venster: Hann, Hamming, … Hann-venster: v(t) = 0,5 – 0,5 cos wot met wo = 2p/TO
Resultaat
Besluit Met een venster wordt spectrale lek verminderd, maar niet weggewerkt Interpreteer de spectra, berekend met FFT, steeds met de nodige kritische ingesteldheid FFT is een fantastisch hulpmiddel om spectra te berekenen (zit bv. in een digitale oscilloscoop)
De fouriertransformatie voor discrete signalen de laatste schakel …
t n w q s z kw1 kq1 tijdcontinu tijddiscreet tijddomein bemonstering t n tijddomein F.R. reconstructie FFT discreet frequentie-domein kw1 kq1 T→ ∞ FTD N → ∞ F.T. continu frequentie-domein w q x et z = e jq L.T. Z.T. complex frequentie-domein esTS = z s z
N → ∞ bij constante fS TO = N TS als N naar oneindig gaat, dan gaat de observatietijd TO ook naar oneindig als N naar oneindig gaat, dan wordt q1 oneindig klein: men bekomt dan een continu spectrum
Merk op vergelijk met is hetzelfde als wat we vroeger reeds hebben gedaan voor het berekenen van de frequentieresponsie van tijddiscrete systemen
Einde We hebben de 8 domeinen verkend We hebben aangetoond hoe we van het ene domein in het andere geraken We hebben interessante begrippen en eigenschappen afgeleid Deze systeemanalyse zullen we gebruiken bij het ontwerpen van systemen