Kapitel 4 Fouriertransformen av diskreta signaler I detta kapitel beskrivs Fouriertransformer av diskreta signaler. I analogi med det kontinuerliga fallet har periodiska diskreta signaler ett diskret spektrum, medan ickeperiodiska diskreta signaler har ett kontinuerligt spektrum. Betrakta en diskret signal {x(n)} = {..., x( 2), x( 1), x(0), x(1), x(2),...} (4.1) I analogi med det kontinuerliga fallet kan en diskret signal uttryckas med hjälp av periodiska sinus- och cosinusfunktioner. Då sinusfunktionen sin(ωt) samplas vid tidpunkterna {n} = {..., 2, 1, 0, 1, 2,...}, fås den diskreta signalen {sin(nω)}. I den diskreta versionen av Fourierserier och Fouriertransformer uttrycks sekvensen {x(n)} med hjälp av sekvenserna {sin(nω)} och {cos(nω)}. Det faktum att signalen är diskret har en viktig konsekvens för vilka frekvenser som kan ingå i frekvensrepresentationen. Vi har nämligen sin(nω) = sin(nω + 2πnl) = sin (n(ω + 2πl)), alla heltal l. (4.2) Sekvenserna {sin(nω)} och {sin(n(ω + 2πl))} är således ekvivalenta, och frekvenserna ω och ω + 2πl kan ej skiljas åt i en diskreta signal. En frekvensuppdelning av diskreta signaler består därför endast av frekvenser i ett intervall av bredden 2π, i praktiken antingen 0 ω < 2π eller π < ω π. Frekvensbeskrivningen av diskreta signaler kan göras på motsvarande sätt som i det kontinuerliga fallet. I analogi med det kontinuerliga fallet betraktar vi först periodiska signaler. 4.1 Fouriertransformen av periodiska diskreta signaler Antag att signalen {x(n)} är periodisk med perioden N, så att x(n) = x(n + N), alla n (4.3) 48
Vi observerar att den sinusformade diskreta signalen {sin( 2π n)} är periodisk med N perioden N. I analogi med det kontinuerliga fallet kan i utvecklingen av den periodiska sekvensen {x(n)} i (4.1), (4.3) endast ingå heltalsmultipler av grundfrekvensen ω 0 = 2π/N. Dessutom gäller (4.2), så att sin(nω 0 ) = sin ( n(ω 0 + 2πl) ) = sin ( n 2π N (1 + Nl)), alla heltal l (4.4) Följaktligen består Fourierserieutvecklingen av {x(n)} endast av frekvenserna 0, 2π/N, 2π 2 N 1,..., 2π, ty högre multipler av grundfrekvensen ger redundanta frekvenskomponenter. Fourierserieutvecklingen av {x(n)} blir N N således x(n) = a 0 + k=1 a k cos(k 2π N 1 N n) + k=1 b k sin(k 2π n) (4.5) N I analogi med det kontinuerliga fallet brukar serien vanligen uttryckas med hjälp av exponentialfunktionen, x(n) = k= N+1 c k e j2πkn/n (4.6) där vi i enlighet med tidigare har c 0 = a 0, c k = 1 2 (a k jb k ) och c k = 1 2 (a k + jb k ). Det finns emellertid en viktig skillnad mellan Fourierserieutvecklingarna av kontinuerliga och diskreta signaler, som gör det möjligt att reducera antalet termer i utvecklingen (4.6). Från den komplexa exponentialfunktionens periodicitet följer nämligen att termerna med negativa exponenter i (4.6) är ekvivalenta med termer med positiva exponenter, ty e j2π( m)n/n = e j2π( m)n/n+j2πn = e j2π(n m)n/n (4.7) Termerna motsvarande k = m och k = N m är således i själva verket ekvivalenta. Det följer att utvecklingen (4.6) kan reduceras till en summa från k = 0 till k = N 1 bestående av termer med enbart icke-negativa exponenter. Vi sammanfattar Fourierserieutvecklingen av en periodisk sekvens enligt nedan. Fourierserien av en diskret periodisk signal. En periodisk sekvens {x(n)} med perioden N (x(n + N) = x(n)) kan uttryckas med hjälp av serieutvecklingen där x(n) = d k = 1 N d k e j2πkn/n (4.8) x(n)e j2πkn/n (4.9) Uttrycket (4.9) för d k kan härledas genom att multiplicera (4.8) med e j2πmn/n och summera över n: N 1 1 x(n)e j2πmn/n = 1 N N 49 [ d k e j2πkn/n ] e j2πmn/n
För att evaluera summan = 1 N d k e j2π(k m)n/n e j2π(k m)n/n (4.10) definierar vi a = e j2π(k m)/n, så att e j2π(k m)n/n = [e j2π(k m)/n ] n = a n och introducerar formeln för en geometrisk summa, { N, om a = 1 a n = 1 a N, om a 1 (4.11) 1 a Nu gäller a = 1 om k m är en heltalsmultipel av N och a N = e j2π(k m) = 1 annars, så att (4.11) implicerar { N, om k m = 0, ±N, ±2N,... e j2π(k m)n/n = 0, annars (4.12) Den senare summan i (4.10) är således olikt noll endast om k m = 0, och (4.10) kan därför skrivas N 1 1 x(n)e j2πmn/n = d m (4.13) N vilket ger (4.9). Exempel 4.1. Betrakta en periodisk diskret fyrkantsvåg med perioden N = 4 som ges av x(0) = 1 x(1) = 1 x(2) = 0 (4.14) x(3) = 1 x(n) = x(n 4) Se figur 4.1. Signalen kan uppdelas i frekvenskomponenter enligt (4.8), bestående av frekvenskomponenterna 0, 2π/4, 2 2π/4 och 3 2π/4, där Fourierseriekoefficienterna d k definieras av ekvation (4.9). Enligt (4.9) fås d k = 1 3 x(n)e j2πkn/4 4 = 1 [ 1 e j2πk 0/4 + 1 e j2πk 1/4 + 0 + 1 e j2πk 3/4] 4 = 1 4 [ 1 + e jπk/2 + e jπk 3/2] (4.15) 50
x(n) -5-4 -3-2 -1 0 1 2 3 4 5 n Figur 4.1: Signalen i exempel 4.1. Från den komplexa exponentialfunktionens periodicitet följer att e jπk 3/2 = e jπk 3/2+jk 2π = e jπk/2 Vi får således med beaktande av Eulers formler, d k = 1 [ 1 + e jπk/2 + e jπk/2] 4 = 1 [1 + 2 cos (πk/2)] (4.16) 4 och Fourierseriekoefficienterna d 0, d 1, d 2, d 3 blir d 0 = 1 4 [1 + 2 cos(0)] = 3 4 d 1 = 1 4 [1 + 2 cos(π/2)] = 1 4 d 2 = 1 4 [1 + 2 cos(π)] = 1 4 (4.17) d 3 = 1 4 [1 + 2 cos(3π/2)] = 1 4 Figur 4.2 ilustrerar signalens spektrum grafiskt. Enligt (4.8) kan signalen {x(n)} utvecklas i frekvenskomponenter enligt x(n) = 3 d k e j2πkn/4 = 3 4 + 1 4 ej2π1 n/4 1 4 ej2π2 n/4 + 1 4 ej2π3 n/4 = 3 4 + 1 [cos (πn/2) + j sin (πn/2)] 4 1 4 [cos (πn) + j sin (πn)] + 1 [cos (3πn/2) + j sin (3πn/2)] (4.18) 4 51
d k π 0 π/2 3π/2 2π Figur 4.2: Spektret hos signalen i exempel 4.1. Här är sin(πn) = 0 och sin(3πn/2) = sin(3πn/2 2πn) = sin( πn/2) = sin(πn/2), varav följer att de imaginära termerna i (4.18) försvinner, och vi får x(n) = 3 4 + 1 4 cos (πn/2) 1 4 cos (πn) + 1 cos (3πn/2) 4 = 3 4 + 1 ( ) 2π 4 cos 4 n 1 ( 4 cos 2 2π ) 4 n + 1 ( 4 cos 3 2π ) 4 n (4.19) Detta uttrycker signalen explicit med hjälp av de ingående frekvenskomponenterna. Vi kan ytterligare observera att frekvenskomponenten 3 2π/4 är redundant, eftersom cos(3 2πn) = cos(3 2πn 2πn) = cos( 2πn) = cos( 2π n). Introduktion i ekvation 4 4 4 4 (4.19) ger x(n) = 3 4 + 1 2 cos ( 2π 4 n ) 1 4 cos ( 2 2π 4 n ) (4.20) 4.1.1 Parsevals formel för diskreta periodiska signaler Parsevals relation gäller också i det diskreta fallet. Betrakta en periodisk diskret signal {x(n)} med perioden N. På analogt sätt som i det kontinuerliga fallet kan man visa att den genomsnittliga energin över en period kan uttryckas med hjälp av Fourierseriekoefficienterna d k enligt P (x) = 1 N x(n) 2 = d k 2 (4.21) Då resultatet kan visas helt i analogi med det kontinuerliga fallet, bortlämnas beviset. Problem 4.1. Verifiera att Parsevals relation gäller för signalen i exempel 4.1. 52
4.2 Fouriertransformen av icke-periodiska diskreta signaler Liksom i det kontinuerliga fallet består en diskret icke-periodisk signal {x(n)} av ett kontinuum av frekvenser ω och kan uttryckas som en linjär kombination av periodiska diskreta sekvenser {e jωn }. I analogi med avsnitt 4.1 är frekvenserna dock begränsade till intervallet [0, 2π], pga periodiciteten hos exponentialfunktionen; e jωn = e j(ω+2πl)n. Fouriertransformen av en icke-periodisk sekvens kan uttryckas i följande form. Fouriertransformen av diskret icke-periodisk signal. En sekvens {x(n)} kan uttryckas i formen där x(n) = 1 2π X(ω) = 2π 0 n= X(ω)e jωn dω (4.22) x(n)e jωn (4.23) Funktionen X(ω) kallas Fouriertransformen av sekvensen {x(n)}. Observera att Fouriertransformen (4.23) av en diskret signal är en kontinuerlig funktion av frekvensen ω. Ibland kallas transformen (4.23) den diskreta Fouriertransformen av {x(n)}, men vanligen reserveras denna term för en transform som själv också är diskret, jämför avsnitt 4.3. Anmärkning 4.1. Från periodiciteten hos exponentialfunktionen e jωn följer att Fouriertransformen X(ω) definierad enligt (4.23) är periodisk med perioden 2π; X(ω +2πl) = X(ω). Den inversa transformen (4.22) kan därför också skrivas som x(n) = 1 2π π π X(ω)e jωn dω (4.24) Vilkendera formen som används beror av sammanhanget. I formeln (4.22) ingår endast positiva frekvenser, vilket är naturligt i samband med den diskreta Fouriertransformen (avsnitt 4.3). Formeln (4.24) i sin tur uttrycker sekvensen {x(n)} med hjälp av de till absoluta beloppet minsta frekvenserna, vilket är naturligt då man undersöker sekvenser som fås genom att sampla kontinerliga signaler (jämför kapitel 6). Problem 4.2. Betrakta den diskreta rektangulära pulsfunktionen { 1, n L x(n) = 0, n > L Visa att signalens Fouriertransform ges av X(ω) = sin(ω(l + 1 2 )) sin(ω/2) (4.25) (4.26) 53
4.2.1 Parsevals formel för diskreta icke-periodiska signaler Enligt Parsevals relation för icke-periodiska diskreta sekvenser kan energin, eller l 2 - normens kvadrat (avsnitt 2.2) utryckas enligt x 2 2 = x(n) 2 = 1 2π X(ω) 2 dω (4.27) 2π 0 n= Resultatet kan visas helt i analogi med det kontinuerliga fallet, och beviset bortlämnas. 4.3 Den diskreta Fouriertransformen I avsnitt 4.2 bildades Fouriertransformen av sekvenser {x(n)} som antogs vara definierade för alla n, < n <. Detsamma gäller för den periodiska sekvensen i avsnitt 4.1. I praktiken har man dock normalt tillgång till en ändlig sekvens bestående av N signalvärden, {x(n)} = {x(0), x(1), x(2),..., x(n 1)} (4.28) och utan någon kunskap om x(n) utanför intervallet 0 n N 1. Betrakta Fouriertransformen enligt (4.23). Ur N stycken värden x(0),..., x(n 1) kan endast N stycken oberoende värden för transformen X(ω) beräknas. Man kan då specificera N frekvenser ω 0,..., ω N 1 och beräkna motsvarande transformvärden X(ω 0 ),..., X(ω N 1 ). Vi såg tidigare att den högsta frekvens som behöver medtas i Fourierutvecklingen för en diskret signal är frekvensen 2π. Dessutom begränsas den upplösning med vilken signalens spektrum kan bestämmas av sekvensens längd. En periodisk sinusformad signal med vinkelfrekvensen 2π/N har en period lika med sekvensens längd N. Det är i praktiken inte möjligt att bestämma signalens spektrum med en upplösning som motsvarar en period som är längre än sekvensens längd. En undre gräns för frekvensupplösningen ges således av 2π/N. Det följer att det är det naturligt att evaluera X(ω) för de N ekvidistanta frekvensvärdena 0, 2π/N, 2π 2/N,..., 2π (N 1)/N. Men dessa frekvenser är ingenting annat än heltalsmultiplerna av grundfrekvensen ω 0 = 2π/N, som förekom i Fourierserieutvecklingen (4.8). Följaktligen ges de N värdena X(0), X(2π/N), X(2π2/N),..., X(2π(N 1)/N) av transformen som kan beräknas ur de N signalvärdena x(0),..., x(n 1) av samma ekvation (4.9), som gällde för periodiska signaler. Detta resultat är naturligt, eftersom beteendet hos en frekvensutveckling av den ändliga sekvensen (4.28) utanför 0 n N 1 är likgiltigt: eftersom signalen är okänd utanför intervallet 0 n N 1, så kan frekvensutvecklingen lika väl bestämmas så att den är periodisk utanför detta intervall. Vi har således följande diskreta transform av en ändlig diskret sekvens. Diskreta Fouriertransformen. En ändlig sekvens {x(0), x(1),..., x(n 1)} kan uttryckas med hjälp av serieutvecklingen x(n) = 1 N X(k)e j2πkn/n, n = 0,..., N 1 (4.29) 54
där X(k) = x(n)e j2πkn/n, k = 0, 1,..., N 1 (4.30) Transformen i X(k) enligt ekvation (4.30) kallas diskreta Fouriertransformen (DFT) av sekvensen {x(n)} och den inversa transformen definierad enligt ekvation (4.29) kallas den inversa diskreta Fouriertransformen (IDFT) av sekvensen {X(k)}. Observera att transformerna uppvisar en symmetri: sekvenserna {x(n)} och {X(k)} består båda av N element, och den ena transformen övergår till den andra genom att ändra tecknet för summeringsvariabeln samt beaktande av faktorn 1/N. Det är ändamålsenligt att införa en speciell beteckning för DFT. Vi betecknar DFT enligt (4.30) med F D och den inversa operationen (4.29) med FD 1 : {X(k)} = F D {x(n)} {x(n)} = FD 1 {X(k)} (4.31) Observera också att den diskreta Fouriertransformen (4.30), (4.29) och Fourierserien av en periodisk sekvens, ekvationerna (4.8) och (4.9) är ekvivalenta så när som på placeringen av faktorn 1/N, så att X(k) = Nd k. Placeringen av faktorn 1/N i de två transformerna är närmast en konventionsfråga. Exempel 4.2. Betrakta sekvensen {x(n)} = {1, 0, 0, 1}. Den diskreta Fouriertransformen ges av (4.30), 3 X(0) = x(n)e j0 = 1 + 0 + 0 + 1 = 2 och På samma sätt fås 3 X(1) = x(n)e j2πn/4 = 1 + 0 + 0 + 1 e j2π3/4 = 1 + cos ( 3π ) ( 3π ) + j sin 2 2 = 1 + j X(2) = 0, och X(3) = 1 j. Problem 4.3. Kontrollera att den inversa diskreta Fouriertransformen tillämpad på den i exempel 4.2 beräknade Fourier-transformen {X(k)} = {2, 1 + j, 0, 1 j} genererar sekvensen {x(n)}. Beräkning av den diskreta Fouriertransformen och dess invers utgör en av de viktigaste manipulationerna i digital signalbehandling. Effektiva numeriska metoder, s.k. snabba Fouriertransformer, har utvecklats för lösning av transformerna (4.30) och (4.29), jämför avsnitt 4.4. 55
4.3.1 Egenskaper hos DFT Den diskreta Fouriertransformen har ett antal egenskaper som kan utnyttjas för att förenkla beräkningarna och i samband med olika tillämpningar. Här skall endast ett par av de viktigaste upptas. För en mera fullständig behandling hänvisas till Ifeachor och Jervis (1993). Symmetri. Den diskreta Fouriertransformen av en rell sekvens {x(n)} satisfierar eller X(N k) = X (k), k = 1,..., N 1 (4.32) Re[X(N k)] = Re[X(k)] Im[X(N k)] = Im[X(k)], k = 1,..., N 1 (4.33) Denna egenskap följer från den komplexa exponentialfunktionens periodicitet. Betrakta exponentialfunktionerna i uttrycket för X(N k) i ekvation (4.30), e j2π(n k)n/n = e j2πkn/n j2π = e j2πkn/n = [e j2πkn/n ] (4.34) Detta är komplexa konjugatet till exponentialfunktionerna i uttrycket för X(k). Sambandet (4.34) och definitionen av X(k) i (4.30) implicerar symmetrin enligt (4.32). Parsevals formel. (4.21) och ges av Parsevals formel för diskreta Fouriertransformen är analog med x 2 2 = x(n) 2 = 1 N X(k) 2 (4.35) Observera att placeringen av faktorn 1/N skiljer sig från den i formel (4.21). Detta hänger ihop med placeringen av samma faktor i definitionerna av Fourierseriekoefficienterna d k respektive diskreta Fouriertransformen X(k). DFT av delta-funktionen. Definiera delta-funktionen { 1, n = 0 δ(n) = 0, n 0 Den diskreta Fouriertranformen av delta-funktionen ges av (4.36) X(k) = F D [δ(n)] = 1, k = 0,..., N 1 (4.37) och den diskreta Fouriertransformen av den tidsförskjutna delta-funktionen δ(n l) ges av X(k) = F D [δ(n l)] = e j2πkl/n (4.38) Problem 4.4. Verifiera att den i exempel 4.2 beräknade diskreta Fouriertransformen uppfyller symmetriegenskapen i ekvation (4.32). Problem 4.5. Verifiera Parsevals formel för signalen i exempel 4.2. 56
4.4 Numerisk beräkning av DFT: Den snabba Fouriertransformen Vid beräkning av den diskreta Fouriertransformen för en sekvens av längden N kräver beräkningen av varje X(k), k = 0,..., N 1 enligt ekvation (4.30) N multiplikationer och N 1 additioner av komplexa tal. Bestämning av den diskreta Fouriertransformen för en sekvens av längden N kräver således N 2 komplexa multiplikationer och N(N 1) komplexa additioner. Detta kan i praktiken innebära en ansenlig mängd beräkningar, vilket följande exempel visar. Exempel 4.3. Antag att vi önskar beräkna spektret hos en signal i audioområdet genom sampling av signalen och DFT av den samplade sekvensen (Svärdström, 1987). Spektret skall bestämmas upp till 20 khz och med en upplösning om 10 Hz. För att få med frekvenser upp till 20 khz måste signalen samplas med en samplingsfrekvens som är minst det dubbla, dvs 40 khz (jämför kapitel 6). För att få upplösningen 10 Hz bör signalen samplas under minst 1/10 = 0.1 sekunds tid (jämför avsnitt 4.3). Det signalblock som DFT skall tillämpas på består således av (minst) N = 40000 0.1 = 4000 sampel. Detta innebär ca N 2 = 16 miljoner komplexa multiplikationer och additioner per signalblock. Om beräkningarna skall utföras i realtid, så att spektret bestäms för ett nytt signalblock 10 ggr/s, krävs alltså ca 160 miljoner komplexa multiplikationer och additioner per sekund. Exemplet ovan visar att antalet räkneoperationer blir mycket stort redan för relativt korta signalsekvenser. Även med tillgång till stor datorkapacitet skulle tillämpningen av den diskreta Fouriertransformen vara starkt begränsad om det inte funnes effektivare metoder att beräkna transformen. Lyckligtvis visar det sig att beräkningarna i den diskreta Fouriertransformen kan organiseras på ett sätt som drastiskt minskar på antalet beräkningsoperationer. Detta är möjligt genom observationen att Fouriertransformen kan uttryckas som en summa av transformerna av två kortare sekvenser, vilka i sin tur kan uttryckas som summor av två kortare sekvenser osv, tills man får en summa av sekvenser av längden ett. Den ursprungliga transformen kan sedan konstrueras genom successiv addition av kortare transformer. Denna beräkningsprocedur kallas snabba Fouriertransformen (eng. Fast Fourier Transform (FFT)). För att härleda snabba Fouriertransformen, betrakta uttrycket i (4.30), X(k) = Introducera beteckningen x(n)e j2πkn/n, k = 0, 1,..., N 1 (4.39) W N = e j2π/n (4.40) 57
så att ekvationen för X(k) skrivs i formen X(k) = x(n)w kn N, k = 0, 1,..., N 1 (4.41) Vi antar nu att N är jämnt, och delar upp sekvensen {x(n)} i två underserier: {x 11 (n)} = {x(0), x(2),..., x(n 2)} bestående av element med jämnt ordningsnummer, och {x 12 (n)} = {x(1), x(3),..., x(n 1)}, bestående av element med udda ordningsnummer, dvs x 11 (n) = x(2n), n = 0,..., N/2 1 (4.42) x 12 (n) = x(2n + 1), n = 0,..., N/2 1 (4.43) De diskreta Fouriertransformerna av sekvenserna {x 11 (n)} och {x 12 (n)} ges av X 11 (k) = X 12 (k) = N/2 1 N/2 1 x 11 (n)w kn N/2, k = 0, 1,..., N/2 1 (4.44) x 12 (n)w kn N/2, k = 0, 1,..., N/2 1 (4.45) där W N/2 definierats i analogi med (4.40) som W N/2 = e j2π/(n/2) = e ( j2π/n)2 = W 2 N. Å andra sidan har vi från (4.41), X(k) = = = = N/2 1 N/2 1 N/2 1 x(n)w kn N N/2 1 x(2n)wn k2n + N/2 1 x 11 (n)wn 2kn + N/2 1 x 11 (n)wn/2 kn + x(2n + 1)W k(2n+1) N x 12 (n)w 2kn N W k N x 12 (n)w kn N/2 W k N = X 11 (k) + X 12 (k)w k N, k = 0, 1,..., N/2 1 (4.46) Från den komplexa exponentialfunktionens periodicitet har vi W (k+n/2)n N/2 = W kn N/2, varav följer X 11 (k + N/2) = X 11 (k) och X 12 (k + N/2) = X 12 (k), så att den senare hälften av sekvensen {X(k)} ges av X(k + N/2) = X 11 (k) + X 12 (k)w k+n/2 N, k = 0, 1,..., N/2 1 (4.47) Man brukar uttrycka (4.47) med hjälp av samma komplexa exponent som förekommer i (4.46) genom att utnyttja sambandet W k+n/2 N = e j(2π/n)(k+n/2) = e j(2π/n)k e jπ = W k N (4.48) 58
Vi får alltså X(k + N/2) = X 11 (k) X 12 (k)w k N, k = 0, 1,..., N/2 1 (4.49) Vi har alltså visat, att genom att dela upp den ursprungliga sekvensen {x(n)} i de två underserierna {x 11 (n)} och {x 12 (n)} bestående av jämna respektive udda sampel så kan Fouriertransformen X(k) av den ursprungliga serien uttryckas med hjälp av Fouriertransformerna X 11 (k) och X 12 (k) av de två underserierna enligt X(k) = X 11 (k) + WNX k 12 (k), k = 0, 1,..., N/2 1 (4.50) X(k + N/2) = X 11 (k) WNX k 12 (k), k = 0, 1,..., N/2 1 (4.51) Operationen (4.50), (4.51 brukar p.g.a. sin struktur kallas butterfly operationen. Se figur 4.3. X 11 (k) + W N k X 12 (k) X(k) X(k + N/2) Figur 4.3: Butterfly operationen (4.50), (4.51). Om underserierna {x 11 (n)} och {x 12 (n)} i sin tur har ett jämnt antal element kan samma procedur utnyttjas för beräkning av transformerna X 11 (k) och X 12 (k) så att X 11 (k) uttrycks med hjälp av transformerna X 21 (k) och X 22 (k) av två underserier av längden N/4, och X 12 (k) uttrycks på samma sätt med hjälp av transformerna X 23 (k) och X 24 (k) av två underserier av längden N/4. Om antalet element i den ursprungliga serien är en heltalspotens av två, N = 2 B, så kan proceduren fortsättas B gånger. Efter i steg har man 2 i transformer X im (k), m = 1,..., 2 i av underserier av längden N/2 i. Efter B steg har man alltså N = 2 B transformer av underserier som innehåller endast ett element. Den diskreta Fouriertransformen av en serie med endast ett element är lika med elementet, jämför definitionen (4.30). Den sökta Fouriertransformen av den ursprungliga sekvensen kan till slut bestämmas genom successiv tillämpning av ekvationerna (4.50), (4.51) för generering av 2 i Fouriertransformer av längden N/2 i för i = B 1,..., 0. 59
Exempel 4.4. Betrakta FFT av en sekvens x(0),..., x(7) av längden åtta. Här är alltså N = 2 3 = 8 och B = 3. I detta fall har vi i steg 1 av proceduren de två undersekvenserna och motsvarande transformer I steg 2 har vi de fyra undersekvenserna {x 11 (n)} = {x(0), x(2), x(4), x(6)} {x 12 (n)} = {x(1), x(3), x(5), x(7)} X 11 = F D {x 11 (n)} X 12 = F D {x 12 (n)} {x 21 (n)} = {x(0), x(4)} {x 22 (n)} = {x(2), x(6)} {x 23 (n)} = {x(1), x(5)} {x 24 (n)} = {x(3), x(7)} bestående av element med jämna och udda ordningsnummer i sekvenserna {x 11 (n)} och {x 12 (n)}, och motsvarande transformer X 21 = F D {x 21 (n)} X 22 = F D {x 22 (n)} X 23 = F D {x 23 (n)} X 24 = F D {x 24 (n)} I steg 3 slutligen har vi åtta sekvenser bestående av ett element, {x 31 (n)} = x(0) {x 32 (n)} = x(4) {x 33 (n)} = x(2) {x 34 (n)} = x(6) {x 35 (n)} = x(1) {x 36 (n)} = x(5) {x 37 (n)} = x(3) {x 38 (n)} = x(7) samt motsvarande transformer, som i detta fall är triviala, X 31 = F D {x 31 (n)} = x(0) X 32 = F D {x 32 (n)} = x(4) X 33 = F D {x 33 (n)} = x(2) 60
X 34 = F D {x 34 (n)} = x(6) X 35 = F D {x 35 (n)} = x(1) X 36 = F D {x 36 (n)} = x(5) X 37 = F D {x 37 (n)} = x(3) X 38 = F D {x 38 (n)} = x(7) Fouriertransformen av den ursprungliga sekvensen kan beräknas genom att successivt tillämpa formlerna (4.50), (4.51) för beräkning av X 21 ur X 31 och X 32, X 22 ur X 33 och X 34, X 23 ur X 35 och X 36, X 24 ur X 37 och X 38, samt X 11 ur X 21 och X 22, X 12 ur X 23 och X 24, och till slut X ur X 11 och X 12. Innan algoritmen startas bör den ursprungliga sekvensen permuteras så att de korrekta kombinationerna av element fås för algoritmens första fas. I exemplet ovan kombineras i algoritmens första fas x(0) med x(4), x(2) med x(6), x(1) med x(5) och x(3) med x(7). Det visar sig att den permuterade sekvensen för FFT algoritmen, i detta fall sekvensen x(0), x(4), x(2), x(6), x(1), x(5), x(3), x(7), är den ursprungliga sekvensen i bitreverserad ordning. Detta innebär att n = 0,..., N 1 skrivs som binära tal, bitarnas ordningsföljd inverteras, och de nya binära talen definerar den sökta ordningsföljden. Tabell 4.1 illustrerar situationen för N = 8. Ursprunglig Adress Bitreverserad FFT sekvens adress inserie x(0) 000 000 x(0) x(1) 001 100 x(4) x(2) 010 010 x(2) x(3) 011 110 x(6) x(4) 100 001 x(1) x(5) 101 101 x(5) x(6) 110 011 x(3) x(7) 111 111 x(7) Tabell 4.1: Permutation av sekvens för FFT med bitreversering. Observera att varje fas i FFT-algoritmen är av samma typ, och proceduren kan därför programmeras på ett mycket enkelt sätt. I varje fas beräknas ett antal transformer X im från två hälften så långa transformer X i+1,l, X i+1,l+1 från föregående fas. Byggstenen i beräkningarna utgörs av formlerna (4.50), (4.51). Formlerna kallas på engelska för butterfly pga strukturen hos den grafiska representationen av dem, jämför figur 2.4 i Ifeachor och Jervis (1993). Enligt formlerna (4.50) och (4.51) beräknas två element i transformen X im samtidigt. Då beräkningarna utförts behövs elementen på höger sida i formlerna inte mera i beräkningarnas senare skeden. I ekvationerna (4.50) och (4.51) kan resultaten X(k) och X(k + N/2) därför sparas i samma minnespositioner som upptogs av X 11 (k) och X 12 (k). Detta meför att algoritmen inte kräver flera 61
minnespositioner för lagring av de beräknade transformerna än antalet element i den ursprungliga serien. Antalet beräkningar som FFT algoritmen kräver kan bestämmas på följande sätt. Antag att sekvensens längd är N = 2 B. Algoritmen består då av B = log 2 N faser. I steg i (från slutet) har man 2 i transformer av längden N/2 i. Totalt beräknas alltså N element i varje fas av algoritmen. Elementen räknas ut parvis med hjälp av butterfly - proceduren (4.50), (4.51). Totalt behövs således (N/2) log 2 N butterfly -beräkningar. Varje butterfly består av en komplex multiplikation av formen W k NX im (k) och två komplexa additioner. Det följer att FFT totalt fordrar (N/2) log 2 N komplexa multiplikationer och N log 2 N komplexa additioner. För realistiska värden på N innebär detta en avsevärd reduktion av antalet beräkningar jämfört med en direkt beräkning av diskreta Fouriertransformen (N 2 multiplikationer respektive N(N 1) additioner). Se tabell 2.3 i Ifeachor och Jervis (1993) för en numerisk jämförelse av antalet operationer för olika N. En ytterligare fördel med FFT algoritmen är att då antalet operationer är mindre, så blir även avrundningsfelen mindre. Beräkningen av Fouriertransformen med hjälp av FFT sker således inte bara snabbare, utan också med större noggrannhet. Den snabba Fouriertransformen introducerades år 1965 av de amerikanska forskarna av James W. Cooley och John W. Tukey. Cooley-Tukey algoritmen utökade betydligt möjligheterna att tillämpa Fourieranalys i praktiken. Med beaktande av den centrala roll som Fourieranalys har inom signalbehandlingstillämpningar, så har FFT inneburit en signifikant innovation. Den anses av många utgöra det viktigaste enskilda bidraget inom numerisk analys under hela 1900-talet. Problem 4.6. Bestäm antalet operationer som krävs i exempel 4.3 om Fouriertransformen beräknas med hjälp av den snabba Fouriertransformen. Hur stor är den procentuella minskningen i beräkningsarbete jämfört med en direkt beräkning av diskreta Fouriertransformen? Problem 4.7. Bestäm diskreta Fouriertransformen av sekvensen i exempel 4.2, {x(n)} = {1, 0, 0, 1}, med hjälp av FFT. Den inversa snabba Fouriertransformen. Den snabba Fouriertransformen kan enkelt modifieras för beräkning av den inversa diskreta Fouriertransformen i ekvation (4.29). Den inversa transformen används för att beräkna signalsekvensen från motsvarande spektrum. Ekvationerna (4.29) och (4.30) visar att FFT algoritmen kan modifieras för beräkning av den inversa transformen genom att ändra den komplexa exponentens tecken samt beaktande av faktorn 1/N. Modifiering för generella sekvenslängder N. Den snabba Fouriertransformen har ovan utvecklats för sekvenser av längden N = 2 B. Den är enklast att tillämpa för detta fall, eftersom alla underserierna utom de sista 62
då består av ett jämnt antal element. Metoden kan emellertid enkelt generaliseras till sekvenser av godtycklig längd genom att beakta att uppdelningarna i underserier kan leda till serier av olika längder. Algoritmen blir emellertid något mera komplicerad i det generella fallet. Decimering i frekvens FFT. Den ovan beskrivna FFT-algoritmen erhölls genom upprepad dekomposition av den diskreta Fouriertransformen i två kortare transformer, en som baserar sig på jämna termer i sekvensen, och en som baserar sig på de udda termerna. Detta förfarande kallas decimering i tid. Ett alternativt sätt är att tillämpa decimering i frekvens. Härvid uppdelas transformen i varje steg upp i två transformer, en som baserar sig på den förra halvan av datasekvensen, och en som baserar sig på den senare halvan. Det bör observeras, att effektiva implementeringar av FFT innehåller ytterligare en mängd finesser för att försnabba beräkningarna. En behandling av dessa, delvis mycket avancerade, detaljer faller dock utanför denna kurs. 4.4.1 Ett exempel OFDM Vi skall till slut diskutera ett viktigt tillämpningsexempel av FFT inom telekommunikation. Exempel 4.5. I avsnitt 3.1.1 såg vi att en digital signal kan överföras genom att modulera fasen och/eller amplituden hos en sinusformad signal. En sinusformad signal uttnyttjar ett mycket smalt frekvensband, vilket är ineffektivt om man har ett givet frekvensband ω min ω ω max till förfogande. Då kan överföringshastigheten ökas genom att samtidigt sända flera modulerade sinusformade signaler med frekvenserna ω i = ω min + i M (ω max ω min )/, i = 0, 1,..., M 1, dvs x 0 (t) = A 0 cos(ω 0 t + φ 0 ) x 1 (t) = A 1 cos(ω 1 t + φ 1 ). x M 1 (t) = A M 1 cos(ω M 1 t + φ M 1 ) där värdet hos amplituderna A k och faserna φ k representerar en bitsekvens av given längd, som beror på antalet möjliga amplituder och faser som används, jfr avsnitt 3.1.1. I princip kunde sinus-signalerna x 0 (t),..., x M 1 (t) genereras separat och transmitteras genom amplitudmodulering av en bärvåg såsom i problem 3.2. Detta kräver M stycken parallella oskillatorer med frekvenserna ω 0,..., ω M 1, och är i praktiken inte realiserbart med tillräcklig noggrannhet om frekvenserna är tätt placerade och deras antal är stort. Metoden har därför blivit praktiskt tillämpbar först då det blev möjligt att konstruera den sammansatta signalen bestående av frekvenskomponenterna x 0 (t) x M 1 (t) digitalt. Detta kan utföras med hjälp av inversa diskreta Fouriertransformen, och effektiv implementering med FFT algoritmen. 63
avbildning s 0 G 0 X(0) {s(n)} G 1. X(1) IFFT s M 1 X(M 1) G M 1 {x(n)} x a (t) D/A cos(ω b t) x ut (t) Figur 4.4: Sändning av OFDM signal. ekvivalenta. Observera att avbildningarna G k ej behöver vara Denna princip utnyttjas i OFDM (Orthogonal Frequency-Division Multiplexing), en teknik för digital kommunikation som bl.a. är europeisk standard för digital TV. I denna metod konstrueras de sinusformade signalkomponenterna i form av Fourierseriekomponenter. Detta kan åstadkommas på följande sätt. Den digitala signalen {s(n)} i figur 4.4 uppdelas först i parallella signaler (eller bitsekvenser) s 0,..., s M 1. Dessa avbildas sedan till komplexa tal X(k), k = 0, 1,..., M 1. Avbildningen från bitsekvenserna till de komplexa talen X(k) kan basera sig på amplitud och/eller fasmodulering. Vid binär PSK (jfr avsnitt 3.1.1) kan varje X(k) anta två värden, vilket möjliggör representation av totalt M bitar, medan 4-PSK, med fyra möjliga värden hos koefficienterna X(k) representarar 2M bitar. De komplexa talen X(k), k = 0, 1,..., M 1 bildade på detta sätt kan tas som de M = N/2+1 första Fourierseriekoefficienterna hos en reellvärd sekvens x(n) av längden N. Den senare delen av transformen definieras då entydigt genom symmetriegenskapen (4.32), X(N k) = X (k). Ur Fouriertransformen X(k) bildad på detta sätt kan en diskret signal x(n) bildas enligt (4.29) med hjälp av snabba inversa Fouriertransformen (IFFT), dvs x(n) = 1 N = N/2 X(k)e j2πkn/n A k cos( 2πk N n + φ k) (4.52) där A k = 2N X(k), och φ k = arg(x(k)). Signalen x(n) bildad på detta sätt består då av de normerade basbandsfrekvenserna 0, 1/N, 2/N,..., 1/2 (antas att N divisibel med 2). Enligt konstruktionen är den digitala signalen finns kodad i frekvenskomponenternas faser φ k och amplituder A k. För 64
invers avbildning Y (0) G 1 0 y in (t) ỹ(t) cos(ω b t) H LP y LP (t) A/D y(t) FFT Y (1) Y (M 1) G 1 1. G 1 M 1 {ŝ(n)} Figur 4.5: Mottagning av OFDM signal. dataöverföring med hjälp av elektromagnetisk strålning bildas ur {x(n)} med digitaltill-analog konvertering en kontinuerlig signal x a (t), så att x a (t) = N/2 A k cos( 2πk N f st + φ k ) (4.53) där f s är samplingsfrekvensen, se figur 4.4. Till slut används amplitudmodulering för att bilda en högfrekvent signal x ut (t) som transmitteras. Den transmitterade signalen innehåller frekvenserna ω b + 2πk N f s, k = N/2,..., 1, 0, 1,..., N/2 (4.54) där ω b är bärvågens frekvens (jfr problem 3.2). Vid mottagaren (figur 4.5) demoduleras den mottagna högfrekventa signalen y in (t) genom multiplikation med bärvågen cos(ω b t). Eftersom signalens frekvensinnehåll inte påverkas av kommunikationskanalens dynamik (under antagande att denna är linjär), består den mottagna signalen y in (t) av frekvenskomponenterna (4.54). I analogi med problem 3.2 består den resulterande signalen ỹ(t) = y in (t) cos(ω b t) då av frekvenserna ( ω LF,k = ω b ω b + 2πk ) N f s, k = N/2,..., 1, 0, 1,..., N/2 och ( ω HF,k = ω b + ω b + 2πk ) N f s, k = N/2,..., 1, 0, 1,..., N/2 65
Här är frekvenskomponenterna ω LF,k ekvivalenta med frekvenskomponenterna hos den utsända signalen {x(n)}. Filtrering av signalen ỹ(t) med ett lågpassfilter H LP som spärrar de höga frekvenserna ω HF,k centrerade vid 2ω c genererar således en signal y LP (t) med samma frekvenskomponenter som den transmitterade signalen x a före modulering. Diskretisering av y LP (t) med samma samplingsfrekvens som vid sändaren ger således en periodisk diskret signalsekvens {y(n)} med samma frekvensinnehåll som signalen {x(n)} vid sändaren. I likhet med avsnitt 3.1.1 påverkar kommunikationskanalen frekvenskomponenternas amplituder och faser, men denna inverkan kan alltid kompenseras om den är känd. Fouriertransformen Y (k) av signalen {y(n)} ger då en skattning av de komplexa talen X(k) vid sändaren. Den utsända digitala signalen {s(n)} kan således rekonstrueras genom invers avbildning av de komplexa talen Y (k) till motsvarande bitsekvenser, samt kombinering av dessa till mottagen digital signal {ŝ(n)}, jfr figur 4.5. Det bör noteras att denna beskrivning av OFDM är mycket förenklad. I praktiken är det t.ex. bekvämare att bilda en komplexvärd sekvens {x(n)} vid sändaren, vars reella och imaginära komponenter sedan behandlas separat. En annan viktig detalj som vi inte diskuterat i detta sammanhang är längden hos de periodiska signalerna x a (t) enligt (4.53) som används för att sända en symbol. I praktiken behövs ett intervall T g (guard interval) mellan symbolerna för att undvika interferens mellan två symboler på grund av kommunikationskanalens dynamik, t.ex. vid flervägsutbredning orsakad av reflekterande komponenter. Ett viktigt krav för att frekvenskomponenterna skall kunna bestämmas ur den mottagna signalen är att signalen upptas över en heltalsmultipel av signalens period N/f s. Detta är ekvivalent med villkoret att frekvenskomponenterna är ortogonala, därav förkortningen OFDM ortogonal frekvensuppdelningsmultiplexing. I digital television (DVB-T standarden) används frekvensband med bredden 8 MHz, och antalet frekvenskomponenter är 2048, 4096 eller 8192 (2k, 4k respektive 8k). Bärvågens frekvens är typiskt några hundra (500-800) MHz. 66