Frekvensene i DFT Forelesning 3. mai 4 Pensum i boken: fra 3-5.3 til 3-8.4, samt 3-9. Delkapitlene 3-8.5, 3-8.6 og 3-8.7 er nyttig selvstudium. Oversikt Spektralanalyse av signaler med endelig lengde Spektralanalyse av periodiske signaler Spektrogram Fast Fourier Transform (FFT) DFT-beregningen er gitt som L n= x[n]e j(π/)kn for k =,,..., De normaliserte frekvensene ˆω k = (π/)k strekker seg over intervallene < (π/)k π for < k / π < (π/)k π for /< k Vi vet at ˆω har en periodisitet på π, slik at π( ) ˆω = = π π er den positive aliasfrekvensen til den negative frekvensen ˆω = π = ˆω. ISTITUTT FOR IFORMATIKK ISTITUTT FOR IFORMATIKK På samme måte har vi at π( ) ˆω = = π 4π er den positive aliasfrekvensen til den negative frekvensen ˆω = 4π = ˆω. Gitt at x[n] er en reell sekvens. Da ser vi at X[ k] = = = L x[n]e j(π/)( k)n n= L x[n]e j(π πk/)n n= L x[n]e j(π/)kn n= er den komplekskonjugerte til L n= x[n]e j(π/)kn Eksempel I et eksempel fra forrige uke brukte vi sekvensen x[n] = {,,, } og fant vi en 4-punkts DFT, gitt som {, e jπ/4,, e jπ/4 } Her gjenfinnes den konjugerte symmetrien ved X[k].5.5 X[4 ] = X[3] = X [] X[4 ] = X[] = X [] X[4 3] = X[] = X [3] Illustrasjon av 4 punkts DFT for sekvensen {,,, } (/) e jπ/4 (/) e jπ/4 Generelt har vi altså X[ k] = X [k] for k =,,...,.5.5.5.5.5 3 3.5 4 ISTITUTT FOR IFORMATIKK 3 ISTITUTT FOR IFORMATIKK 4
Eksempel Figuren viser symmetri og overgangen mellom ulike frekvensskalaer, for en DFT-beregning som gir koeffisientene X[k ] og X[ k ]. X[k].5 DFT koeffisientenes symmetri / k k / k.5.5 pi pi k/ pi k/ pi pi( k)/ pi normalisert vinkelfrekvens, i radianer X[ k ]=X * [k ] X[k ] X[ k ]=X * [k ] fs/ f f fs/ fs f fs frekvens f, i Hz X[ k ] = X [k ] = X[ k ], så k er et positiv-frekvens alias til k. Skalaene er frekvensindeksen k, normalisert frekvens ˆω k (rad) og f k (Hz). Forholdet er ˆω k = πk og f k = ω k π = ˆω kf s π = k T s DFT for komplekst eksponential Anta sekvensen x [n] = e j( ˆωn+φ), n =,,..., og studer dennes -punkts DFT X [k] = e j( ˆωn+φ) e j(πk/)n n= Vi forenkler og finner X [k] = e jφ n= j(πk/ ˆω)n e ˆω) jφ e j(πk/ = e e j(πk/ ˆω) Substitusjonen θ = πk/ ˆω gir jφ e jθ X [k] = e e jθ jφ e jθ/ e jθ/ e jθ/ = e e jθ/ e jθ/ e jθ/ ISTITUTT FOR IFORMATIKK 5 ISTITUTT FOR IFORMATIKK 6 Videre forenklinger gir θ jφ e j X [k] = e e j θ = e jφ θ( ) j e sin ( θ) sin ( θ) sin ( θ) sin ( θ) Vi gjenkjenner Dirichlet-funksjonen D (e jθ ) = sin( θ) sin ( θ) og ser at DFT-beregningen kan skrives som X [k] = D (e jθ ) e jφ θ( ) j e = D (e j(πk/ ˆω) ) e jφ e j (πk/ ˆω )( ) Eksempel DFT for x [n] = e j ˆωn, ˆω = 5π =.5 π, = gir X [k] = D (e j(π/(k.5)) ) Amplitude normalisert frekvens, i π radianer.5.5.5 8 6 4 8 6 4 Da ser vi lett at X [k] = D (e j(πk/ ˆω) ) 5 5 5 ISTITUTT FOR IFORMATIKK 7 ISTITUTT FOR IFORMATIKK 8
DFT for x [n] = e j ˆωn, ˆω = k π, k =, = Ettersom en IDFT på δ[k k ] gir x [n] = k= δ[k k ]e j(π/)kn = e j(π/)kn er det klart at DFT for x [n] når ˆω = k π, er X [k] = δ[k k ] og således ikke-null kun i k = k. Amplitude.5.5.5 8 6 4 8 6 normalisert frekvens, i π radianer Dette kan vi også finne fra X [k] = D (e j(πk/ ˆω) ) e jφ e j (πk/ ˆω )( ) ved å sette inn for φ = og ˆω = πk /, som gir X [k] = D (e j(πk/ πk/) ) e j (πk/ πk /)( ) = D (e j(π/)(k k) ) e j (π/)(k k )( ) = sin( π(k k )) sin ( π(k k ) ) e j(π/)(k k)( ) = sin( π(k k ) ) sin ( π(k k ) ) e j(π/)(k k)( ) k k = k = k 4 = δ[k k ] 5 5 5 ISTITUTT FOR IFORMATIKK 9 ISTITUTT FOR IFORMATIKK DFT for sinuoid Anta signalet ( πk n ) x 3 [n] = cos, k Z som kan skrives som x 3 [n] = ( e j πk n + e j πk n ) DFT-beregningen er en lineær operasjon, slik at X 3 [k] = DFT ( x 3 [n] ) ( ) ( = DFT πk ej n ) + DFT πk e j n ( ) ( = DFT πk ej n ) + DFT π( k ej )n Vi kjenner allerede ) DFT (e j πk n = δ[k k ] og bruker det til å finne X 3 [k] = δ[k k ] + δ[k ( k )] = δ[k k ] + δ[k + k ] Spektralanalyse av signaler med endelig lengde Anta et signal med endelig lengde L x[n], n L Vi evaluerer DFT for k =,,..., X(e jπk/ ) = L n= x[n]e j(πk/)n = X[k] der det ikke er noe krav om at = L. Hvis > L vil beregningen utføres ved at L nullsampler legges til på slutten av x[n]. Den får da ny lengde L + ( L) =, og vi kan beregne n= kalles zero-padding i mange lærebøker x[n]e j(πk/)n ISTITUTT FOR IFORMATIKK ISTITUTT FOR IFORMATIKK
Frekvensrespons av FIR-filter Anta at vi ønsker frekvensresponsen H(e j ˆω ) til et FIR-filter med impulsrespons h[n]. Eksempel Et Hann FIR-filter har impulsresponsen.5.5 cos ( π L h[n] = n) n L ellers Hvis filtret har lengde L er uttrykket en DTFT H(e j ˆω ) = L n= j ˆωn h[n]e h[n].8.6.4. Impulsrespons til Hann filter med lengde L= For numerisk beregning må frekvensen diskretiseres til punkter, og vi får en DFT H[k] = L n= for k =,,..., h[n]e j(πk/)n = H(e j(πk/) ) Hvis er stor nok vil H[k] ha samme form som H(e j ˆω ). kontinuerlig frekvens h[n].8.6.4. 4 6 8 4 6 8 tidsindeks n Impulsrespons til Hann filter med lengde L=4 5 5 5 3 35 4 tidsindeks n Vi beregner DFT for h[n] ved H[k] = L n= og setter = 4. h[n]e j(πk/)n, k =,,..., ISTITUTT FOR IFORMATIKK 3 ISTITUTT FOR IFORMATIKK 4 Figurene viser absoluttverdien av beregnet DFT for Hann-filtret, plottet mot en diskret x-akse ˆω = πk/, = 4. H(e jω ) H(e jω ) 5 5 5 Frekvensrespons (beregnet ved DFT) til to Hann filtre..4.6.8..4.6.8 normalisert frekvens, i enheter av π radianer 5 Frekvensrespons (beregnet ved DFT) til to Hann filtre, sentrert om ω =.8.6.4...4.6.8 normalisert frekvens, i enheter av π radianer I den øverste figuren vil H(e j ˆω ) for π < ˆω π tilsvare H[k] for / < k. Frekvensene π < ˆω π er da positivfrekvens aliaser til π < ˆω, og H(e j ˆω ) kan flyttes som i den nederste figuren. L= L=4 L= L=4 Spektralanalyse av periodiske signaler Anta kontinuerlig-tid signalet x c (t) =.474 cos(π()t +.577).36 cos(π(4)t +.8769).4884 cos(π(5)t.85).94 cos(π(6)t.4488).3 cos(π(7)t) med fundamentalfrekvens f = Hz. De harmoniske har frekvenser, 4, 5, 6 og 7 ganger f. Vi sampler med f s = 4 Hz, og får x[n] =.474 cos(.πn +.577).36 cos(.πn +.8769).4884 cos(.5πn.85).94 cos(.8πn.4488).3 cos(.85πn) Alle de normaliserte vinkelfrekvensene ˆω er heltallsmultipler av ˆω =.5π = π/4. Også her har de harmoniske frekvenser som er, 4, 5, 6 og 7 ganger ˆω. ISTITUTT FOR IFORMATIKK 5 ISTITUTT FOR IFORMATIKK 6
x c (t) Kontinuerlig tid signal x (t) c.5.5 5 5 5 tid t, i sekunder x 3 Samplet diskret tid signal x[n] Fasen er ikke tidsavhengig og kan trekkes utenfor DFT-summen, slik at ( πk n ) cos + φ DFT ejφ δ[k k ]+ e jφ δ[k + k ] x[n].5.5 3 4 5 6 tidsindeks n Vi skriver x[n] som x[n] = x [n]+x 4 [n]+x 5 [n]+x 6 [n]+x 7 [n] slik at hvert ledd i summen er referert til med hvilken harmonisk dette leddet representerer. Vi har tidligere vist at ( πk n ) cos DFT δ[k k ]+ δ[k+k ] og kan utfra dette finne X[k] for vårt signal, når = 4..474 e j.577 δ[k ]+.474 e j.577 δ[k + ]+.36 e j.8769 δ[k 4]+.36 e j.8769 δ[k + 4]+.4884 e j.85 δ[k 5]+.4884 e j.85 δ[k + 5]+.94 e j.4488 δ[k 6]+.94 e j.4488 δ[k + 6]+.3 δ[k 7] +.3 δ[k 7] ISTITUTT FOR IFORMATIKK 7 ISTITUTT FOR IFORMATIKK 8 Figuren viser 4-punkts DFT en over intervallet k. Vi ser da at spektret består av deltapulser, som kan plottes over / < k /. X[k] 8 6 4 Absoluttverdi av DFT spektrum for periodisk signal.36 ( e j.577 δ[k ] + e j.577 δ[k + ] ) + 5 5 5 3 35 4.68 ( e j.8769 δ[k 4] + e j.8769 δ[k + 4] ) + Fase av DFT spektrum for periodisk signal.44 ( e j.85 δ[k 5] + e j.85 δ[k + 5] ) +.47 ( e j.4488 δ[k 6] + e j.4488 δ[k + 6] ) + X[k] 5 5 5 3 35 4.65 ( δ[k 7] + δ[k 7] ) Ettersom / < k er negativ-frekvens aliaser til / < k, kan vi også plotte over intervallet k. Merk at X [ k]. år vi har X[k] e j X[k] vil det si at X[ k] = X[k] e j X[k] I Matlab finner vi enkelt X[k] ved fft(xd,), der xd er den samplede sekvensen x[n]. ISTITUTT FOR IFORMATIKK 9 ISTITUTT FOR IFORMATIKK
Figuren viser 4-punkts DFT en over intervallet / < k /. X[k] 8 6 4 Absoluttverdi av DFT spektrum for periodisk signal Spektrogram DFT finner frekvensinnholdet i et signal, men tar ikke hensyn til variasjoner over tid. 5 5 5 5 Fase av DFT spektrum for periodisk signal Musikk er et eksempel på et audiosignal der frekvensinnholdet kan forventes å variere over tid, det er denne variasjonen som gjør signalet til musikk. X[k] 5 5 5 5 Merk at X [ k]. år vi har vil det si at X[k] e j X[k] X[ k] = X[k] e j X[k] Opprinnelig og normalisert frekvens, f og ˆω, ˆω k = πk og f k = ˆω kf s π = kf s I tillegg, hvis vi sampler signalverdier over lang tid vil det å beregne en DFT over hele sekvensen være veldig ressurskrevende. Løsningen er å dele opp lange sekvenser i mange korte, for så å analysere dem med hver sin DFT. Dette gir færre regneoperasjoner per DFT og det beregnede spektralinnholdet kan antas å være representativt for hele sekvensen. Webster sier: Et fotografi av eller et diagram over et spektrum ISTITUTT FOR IFORMATIKK ISTITUTT FOR IFORMATIKK Spektrogram Anta en sekvens med ubestemt lengde, x[m]. Den tidsavhengige DFT en til dette signalet defineres som X[k, n] = L m= for k =,,..., oen viktige punkter er w[m]x[n + m]e j(πk/)n w[m] er et tidsvindu, f.eks. et firkant-, Hann- eller Hamming-vindu. Vinduet er forskjellig fra kun over intervallet m =,,..., L, der L. x[n+m] sørger for at summen bruker sekvensverdier fra x[n] til x[n + L ] produktet w[m]x[n + m] representerer sekvensverdier fra x[n] til x[n + L ], vektet etter tidsvinduets form Eksempel Anta det udefinert lange signalet x[n] =.3 cos(π/5n) +. cos(π/8n + π/6) og et Hann-vindu.5.5 cos ( π L w[n] = n) n L ellers Vi fikserer vinduet over intervallet n L, og skifter signalet mot venstre etterhvert. Slik vil nye utsnitt av x[n], hver med lengde L, bli synlige gjennom vinduet. flytter/forskyver ISTITUTT FOR IFORMATIKK 3 ISTITUTT FOR IFORMATIKK 4
Figuren viser signalet x[n] signalet x[n + ], skiftet plasser til venstre, og utsnitt tatt av det fast plasserte Hann-vinduet signalet x[n + 5], skiftet 5 plasser til venstre, og utsnitt tatt av det fast plasserte Hann-vinduet.5.5 Signalet x[n] 3 4 5 6 7 Fiksert lengde 5 Hann vindu og utsnitt av skiftet signal x[n+].5.5 3 4 5 6 7 Fiksert lengde 5 Hann vindu og utsnitt av skiftet signal x[n+5].5.5 3 4 5 6 7 tidsindeks n X[k, n] er en todimensjonal sekvens, der k-dimensjonen representerer frekvens, ettersom ˆω k = πk/ er den k-te analysefrekvensen n-dimensjonen representerer tid Det finnes altså et tidslokalt spektrum for hver tid n, men ikke noe tidsuavhengig og varig spekter for alle n. For å vise X[k, n] bruker vi derfor et spektrogram. I punktet (n, k) representeres verdien X[k, n] ved hjelp av f.eks. farger, gråtoner eller konturkurver. I tilfellet med gråtoner representerer sort en høy verdi, mens små verdier vises som nesten hvite. DFT beregnes for de samplene som er synlige gjennom vinduet. ISTITUTT FOR IFORMATIKK 5 ISTITUTT FOR IFORMATIKK 6 Eksempel, Matlab Følgende Matlab-kode er nødvendig: Eksempel Vi bruker et samplet signal fra et tidligere eksempel x[n] =.474 cos(.πn +.577).36 cos(.πn +.8769).4884 cos(.5πn.85).94 cos(.8πn.4488).3 cos(.85πn) Anta at vi har 4 sampler av x[n] totalt, samplet med raten f s = 4 Hz. Vi velger et firkantvindu w[n] n L w[n] = ellers n = :4; FFT = 4; overlap = round(.6 FFT ) ; xd =.474 cos(. pi n +....577) +....36 cos(. pi n +....8769) +....4884 cos(.5 pi n....85) +....94 cos(.8 pi n....4488) +....3 cos(.85 pi n ) ; window = ones (,FFT ) ; [X, F, T] = specgram ( xd, FFT, fs, window, overlap ) ; figure ; imagesc (T, F, abs (X ) ) ; axis xy, colormap( gray ) xlabel ( tid i sekunder ) ; ylabel ( frekvens i Hz ) ISTITUTT FOR IFORMATIKK 7 ISTITUTT FOR IFORMATIKK 8
Eksempel, resultat Koden produserer følgende figur Ekstra eksempel Varierende frekvens, viser Matlab-kode for generering av to chirp er, en lineært stigende og en kvadratisk avtagende. frekvens i Hz 8 6 4 8 6 4 t =:.:4; fs = ; FFT = 8; winlength = FFT ; % l i n. stigning, fra 5 Hz t i l 45 Hz % paa 4 s y=chirp ( t,5,4,45);...3.4.5.6.7.8.9 tid i sekunder Kun de positive frekvensene vises, ettersom X[k, n] er symmetrisk for reelle signaler. På figuren ser vi frekvensene f k, som, fordi k = f k /f s, tilsvarer frekvensindeksene k. Det er altså diskrete frekvenser på figuren. % kvadratisk synkende fra 4 Hz t i l % 5 Hz paa 4 s y=chirp ( t,4,4,5, q, [ ], concave ) ; y = y+y ; figure ; % faar automatisk et Hanning vindu % med lengde winlength specgram ( y, FFT, fs, winlength,... round(.75 FFT ) ) ; ISTITUTT FOR IFORMATIKK 9 ISTITUTT FOR IFORMATIKK 3 Ekstra eksempel Koden produserer følgende figur, nå en variant i farger. 5 45 4 35 Spektrogrammets frekvensoppløsning Her gjelder samme forhold som tidligere beskrevet, at vinduslengden L og frekvensoppløsningen ω er omvendt proporsjonale. Et firkantvindu med lengde L = T /T s sampler har en hovedlobebredde (frekvensoppløsning) ω = 4π L f s rad/s Frequency 3 5 5 mens for et Hamming-vindu vil denne bredden være det dobbelte ω = 8π L f s rad/s 5.5.5.5 3 3.5 Time Kun de positive frekvensene vises, ettersom X[k, n] er symmetrisk for reelle signaler. Lengre vinduer vil øke frekvensoppløsningen, men ulempen er en dårligere tidsoppløsning. For store L vil raske variasjoner bli vanskelige å oppdage, ettersom DFT en beregnes over så mange sampler. Dette kalles usikkerhetsprinsippet i Fourier spektralanalyse. ISTITUTT FOR IFORMATIKK 3 ISTITUTT FOR IFORMATIKK 3
Fast Fourier Transform (FFT) DFT, definisjon n= x[n]e j(π/)kn for k =,,..., Hvor mange regneoperasjoner må utføres for en generell, kompleks x[n]? Vi skriver om til ( ) x R [n] + jx I [n] n= ( ) cos(πkn/) j sin(πkn/) og ser at for hver gir det beregninger av trigonometriske funksjoner 4 reelle multiplikasjoner + ( ) = 4 reelle addisjoner For alle frekvensindeksene gir det beregninger av trigonometriske funksjoner 4 reelle multiplikasjoner (3 ) = 4 reelle addisjoner Antall operasjoner som må utføres er altså av orden. FFT er er et sett med algoritmer som kan utføre samme beregning som en DFT, men med færre operasjoner. Splitt-og-hersk fører oss til FFT som gjør det mulig å utføre samme beregning med orden log operasjoner. Et krav er at er en potens av, og slike algoritmer kalles radix- algoritmer. Webster sier om radix: primærkilde, planterot, roten til en ryggmargsnerve ISTITUTT FOR IFORMATIKK 33 ISTITUTT FOR IFORMATIKK 34 Utlede FFT fra DFT. Skriv opp en -punkts DFT for en (muligens forlenget) sekvens x[n] med lengde. DFT {x[n]} = n= x[n]e j(π/)kn. Splitt summen to, med en sum for ledd der n er et partall og den andre for ledd der n er et oddetall. ( x[]e j + x[]e j(π/)k + + = x[ ]e j(π/)( )k ) + ( x[]e j(π/)k + x[3]e j(π/)3k + + x[ ]e j(π/)( )k ) / l= / l= x[l]e j(π/)k(l) + x[l + ]e j(π/)k(l+) 3. Trekk ut ledd av den andre summen som ikke er avhengige av l / l= x[l]e j(πk/)(l) + e j(πk/) / l= x[l + ]e j(πk/)(l) 4. Skriv om (πk/)(l) til (πk/(/))l / l= x[l]e j(πk/(/))l + e j(πk/) / l= x[l + ]e j(πk/(/))l å er hver sum på DFT-form, og vi har DFT / {x[l]}+ e j(πk/) DFT / {x[l + ]} = X E / [k] + e j(πk/) X O / [k] Essensielt det samme fra IDFT ISTITUTT FOR IFORMATIKK 35 ISTITUTT FOR IFORMATIKK 36
5. Hver DFT gir en / lang vektor som utgang, men ettersom X O / [k + /] = XO / [k] X E / [k + /] = XE / [k] kan vi periodisk utvide for k /. 6. Videre steg er å rekursivt dele opp hver DFT, helt til man sitter med / DFT er med lengde. Denne dekomposisjonen går på log () steg, ettersom er på formen n. To-punkts DFT ene er trivielle X [] = x [] + x [] X [] = x [] + e jπ/ x [] = x [] x [] FFT, antall operasjoner En -punkts DFT kan beregnes ved to /-punkts DFT er, etterfulgt av komplekse multiplikasjoner og komplekse addisjoner. Multiplikasjoner: Addisjoner: µ c () = µ c (/) + α c () = α c (/) + Det er kjent at µ c () = og α c () =, så vi kan jobbe oss derfra og finne at µ c (4) = 4 α c (4) = 8 µ c (8) = 6 α c (8) = 4, o.s.v. Totalformler for antall reelle operasjoner µ r () = 4(log () ) α r () = log () Generelt kan vi si at antall operasjoner er av orden log (), i forhold til for direkte DFT. Eksempelvis, for = 4 trenger DFT over millon operasjoner, mens for radix- FFT holder det med (4 log (4)), som gir noe over operasjoner. ISTITUTT FOR IFORMATIKK 37 ISTITUTT FOR IFORMATIKK 38