DFT, Windowing, STFT, spectrogrammen José Lagerberg Universiteit van Amsterdam November, 216 José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 1 / 48
1 Discrete frequentie Ω van complexe e-macht 2 DFT N-points FFT Zero padding en gebruik van vensters Gebruik van windows om leakage te reduceren STFT José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 2 / 48
Discrete frequentie Ω van complexe e-macht Continu versus discreet continu signaal discreet signaal cos(ωt) cos(ωnt s ) Definieer ωt s =Ω genormaliseerde frequentie continu signaal discreet signaal cos(ωt) cos(ωn) Ω in radialen Genormaliseerde frequentie Ω in radialen José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 3 / 48
Voorbeeld: Ω=ωT s Gegeven continu signaal: sin met f =1Hz Sampel sin met samplefrequentie f s =1Hz. Wat is de genormaliseerde frequentie Ω van het discrete signaal? 1 x(t)=sinωt =sin2πft =sin2πt 2 ω=2πf =2π 3 T = 2π ω = 1 f = 2π 2π =.1s t T =.1s José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 4 / 48
Antwoord voorbeeld Sampel sin2πt: t n T s Sampelen met f s =1Hz, dus T s = 1 1Hz =.1s x[n]=sin2π.1 n=sin ( 2π 1 n) Ω=2π/1 1 sampelen in 2π, periode N =1 x(t)=sin2πt t T s =.1s T =.1s José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 5 / 48
Discreet Periodiek DT Fourier Series x[n]= a k = 1 N N 1 k= Continu Periodiek Niet periodiek jk 2π a k e N n x[n]= 1 N 1 2π jk x[n]e N n n= CT Fourier Series + x(t)= a k e jkω t k= DT Fourier Transform X(Ω)e jωn dω 2π 2π + X(Ω)= x[n]e jωn n= Niet periodiek a k = 1 T T x(t) jkω t dt X(ω)= CT Fourier Transform x(t)= 1 + X(ω)e jωt dω 2π + x(t)e jωt dt José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 6 / 48
DTFS en DTFT Twee Fourierrepresentaties discrete signalen DTFS: Fourierreeks voor periodieke signalen a k = 1 N 1 jk 2π N x[n]e N n n= Lijnespectrum a k wegen de harmonischen e jk 2π N n DTFT: Fouriertransformatie voor niet-periodieke signalen + X(Ω)= x[n]e jωn n= Continu spectrum X(Ω) continue functie van Ω weegt e jωn Periodieke spectrale functies Door gebruik van gesampelde of discrete signalen is spectrum periodiek in frequentiedomein met periode 2π José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 7 / 48
Discrete Fouriertransformatie (DFT) In praktijk zijn meeste signalen niet periodiek, maar van eindige duur DFT is derde Fourierrepresentatie voor signaal lengte N DFT wordt gebruikt voor niet-periodieke signalen van eindige duur DFT is X[k]= IDFT is x[n]= 1 N Verschil DTFS en DFT N 1 jk 2π x[n]e N n analyse vergelijking n= N 1 jk 2π X[k]e N n synthese vergelijking k= 1 schalingsfactor 1/N bij DFT in synthese vergelijking 2 spectrale coëfficiënten bij DFT X[k] José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 8 / 48
Discrete Fouriertransformatie (DFT) DFT 1 Gebruikt voor frequentiedomein analyse van discrete signalen met computer 2 DFT gebruikt voor N-point finite duration signaal 3 Fouriertransformatie paar: x[n] 4 X[k] bepaald voor N waarden DFT X[k] 2π jk 5 X[k] weegt de k-de harmonische e N n 6 DFT wordt berekend voor signaal van lengte N, periodiek of niet-periodiek 7 DFT wordt berekend met FFT José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 9 / 48
N-points FFT met N macht van 2 Keuze van N 1 Keuze van N bij voorkeur gelijk aan periode van signaal als signaal periodiek 2 Snelheid van FFT optimaal als N macht van 2 Leakage door keuze N Als N niet gelijk aan periode van signaal ontstaat leakage 1 Leakage ontstaat doordat originele frequentie van signaal niet precies kan weergegeven worden door harmonischen van FFT 2 Maar ook omdat bij de berekening van de FFT ervan uit gegaan wordt dat signaal zich na N samples weer herhaalt José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 1 / 48
Geen leakage door keuze N gelijk aan periode 1-points FFT van sin( 3π 5 n) harmonischen 2π/1, 2 2π/1, 3 2π/1, 1 x[n] = sin(3pi/5 n) Amplitude.5.5 1 1 2 3 4 5 6 7 8 9 Samples FFT(x,1) 5 4 Magnitude 3 2 1 1 2 3 4 5 6 7 8 9 15 2 25 3 Frequenties veelvouden van 2pi /1, aanwezig 3de harmonische José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 11 / 48
Leakage door gebruik harmonischen van 2π/128 FFT met N =128 De Fast Fourier Transform gebruikt een vaste periode, en dus een vaste fundamentele frequentie Vaak wordt als periode een macht van 2 gebruikt, b.v. 128: FFT(x, 128) gebruikt dus als fundamentele frequentie 2π 128 Dat betekent dat de coëfficiënten veelvouden van 2π 128 wegen FFT(x,128) a,a 1,...,a 127 x[n]=a +a 1 e j 128 2π n 2π j2 +a 2 e 128 n 2π j3 +a 3 e 128 n +... José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 12 / 48
Leakage door gebruik harmonischen van 2π/128 128-points FFT van sin( 3π 5 n) 1 x[n] = sin(3pi/5 n) Amplitude.5.5 1 2 4 6 8 1 12 Samples FFT(x,128) 6 Magnitude 4 2 1 2 3 4 5 6 7 8 9 15 2 25 3 Frequenties veelvouden van 2pi /128, aanwezig 4de, 3de, 5de harmonische José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 13 / 48
FFT met fundamentele frequentie 2π 128 Welke harmonischen benaderen sin( 3π 5 n)? Gegeven x[n]=sin( 3π 5n), periode N =1 FFT(x,128) a,a 1,...,a 127 x[n]=a +a 1 e j 128 2π n +a 2 ej2 2π 128 n +a 3 ej3 2π 128 n +... fundamentele frequentie Ω o = 2π 128 = π 64 = 25π 16 Welke frequentie zit er in? 3π 5 = 96π 16 3Ω = 75π 16 < 96π 16 < 1π 16 =4Ω o Daarom a 3 en a 4 groot, rest a k veel kleiner José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 14 / 48
Leakage door herhaling signaal (window) Door FFT(x, 128) herhaling van signaal na n=127 1 x[n] = sin(3pi/5 n) Amplitude Magnitude.5.5 1 5 1 15 2 25 Samples FFT(x,128) 8 6 4 2 1 2 3 4 5 6 7 8 9 15 2 25 3 Frequenties veelvouden van 2pi /128, aanwezig 4de, 3de, 5de harmonische José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 15 / 48
sin( 3π 5n) benaderd door som 3de, 4de en 5de harmonische a 4 a 3 a 5 a 3 +a 4 +a 5 1 1 5 2 4 6 8 1 12 1 2 3 4 5 6 7 8 9 15 2 25 3.5.5.1.1 2 4 6 8 1 12 2 4 6 8 1 12.1.1 2 4 6 8 1 12 1 1 2 4 6 8 1 12 José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 16 / 48
Non-integer frequenties, zero padding en vensters Frequenties van signaal 1 Signaal met frequentiecomponent precies gelijk aan harmonische van FFT levert één spectraallijn 2 Signalen bevatten meestal combinatie van frequenties, waarvan weinig precies harmonisch 3 Hierdoor ontstaat spectrale leakage: frequentiecomponent van signaal wordt verdeeld over harmonischen van FFT 4 Keuze van N in FFT impliceert dat signaal zich na N samples herhaalt waardoor ook leakage ontstaat Zero padding en windows 1 Omdat FFT het snelst als N macht van twee, signaal aangevuld met nullen (zero padding) 2 Om sprongen aan randen te voorkomen signaal met window José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 17 / 48
Zeropadding Zero padding is resolutie van harmonischen vergroten 1 Door een signaal aan te vullen met nullen verhogen we de frequentie-resolutie. 2 We proberen frequenties van signaal te matchen aan harmonischen van FFT 3 Als we N verdubbelen matchen we twee keer zo veel harmonischen 2π met de frequenties van signaal 2N Eerst nu aantal voorbeelden José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 18 / 48
Frequentie signaal veelvoud van 2π/1 1 x[n] = cos(2*2pi/1 n) Amplitude.5.5 1 1 2 3 4 5 6 7 8 9 1 Samples FFT(x,1) 5 4 Magnitude 3 2 1 2 4 6 8 1 12 14 16 18 2 Frequenties veelvouden van 2pi/1, aanwezig 2de harmonische José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 19 / 48
Frequentie signaal geen veelvoud van 2π/1: leakage 1 x[n] = cos(2.5*2pi/1 n) Amplitude.5.5 1 4 1 2 3 4 5 6 7 8 9 1 Samples FFT(x,1) Magnitude 3 2 1 2 4 6 8 1 12 14 16 18 2 Frequenties veelvouden van 2pi/1, aanwezig 2de, 3de harmonische José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 2 / 48
Zero pad met 1 nullen, meer basisfuncties Amplitude x[n] = cos(2.5*2pi/1 n) 1.5.5 1 5 2 4 6 8 1 12 14 16 18 2 Samples FFT(x,2) 4 Magnitude 3 2 1 2 4 6 8 1 12 14 16 18 2 Frequenties veelvouden van pi/1, aanwezig 5de, 4de en 6de harmonische José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 21 / 48
Signaal 2 frequenties, zero pad met 1 nullen x[n] = cos(2.5*2pi/1 n) + sin(5*2pi/1 n) 1 Amplitude 1 6 2 4 6 8 1 12 14 16 18 2 Samples FFT(x,2) Magnitude 4 2 2 4 6 8 1 12 14 16 18 2 Frequenties veelvouden van pi/1, aanwezig 5de, 1de harmonische José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 22 / 48
Signaal 2 frequenties, zero pad met 9 nullen x[n] = cos(2.5*2pi/1 n) + sin(5*2pi/1 n) 1 Amplitude 1 6 1 2 3 4 5 6 7 8 9 1 Samples FFT(x,1) Magnitude 4 2 1 2 3 4 5 6 7 8 9 1 Frequenties veelvouden van pi/1, aanwezig 25e, 5e harmonische José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 23 / 48
Samenvatting zeropadding Zero padding is resolutie van harmonischen vergroten 1 Door een signaal aan te vullen met nullen zijn er meer harmonischen in de FFT waarmee we kunnen matchen 2 Hierdoor is het makkelijker geschikte basisfuncties te vinden 3 Hoe groter het aantal toegevoegde nullen, hoe hoger resolutie van FFT José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 24 / 48
Gebruik van windows Signaal x[n] vermenigvuldigen met w[n] 1 Discontinuïteiten aan randen van signaal verminderen door vermeniguldigen met vensterfunctie w[n] 2 Toepassen van FFT op w[n] x[n] levert veel minder leakage 3 Vermenigvuldigen in tijddomein is convolutie in frequentiedomein 4 Exacte frequentie van oorspronkelijke cosinus nooit precies terug te vinden Verschillende soorten windows 1 Rechthoekig window 2 Hanning window 3 Hamming window José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 25 / 48
Wat betekent aanvullen met nullen? Amplitude x[n] = cos(2.5*2pi/1 n) 1.5.5 1 6 1 2 3 4 5 6 7 8 9 1 Samples FFT(x,1) van zero padded signaal Magnitude 4 2 2 4 6 8 1 12 14 16 18 2 Frequenties veelvouden van 2pi/1, 25e harmonische José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 26 / 48
Signaal vermenigvuldigen met rechthoekig window 1 Zero Padded Signal (1 samples) Amplitude Amplitude Amplitude 1 1 2 3 4 5 6 7 8 9 1 1 Sinusoidal Signal (1 samples) 1 1 2 3 4 5 6 7 8 9 1 Samples Rectangular Window (1 samples) 1.5 1.5.5 1 2 3 4 5 6 7 8 9 1 Samples José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 27 / 48
Convolutie in frequentie domein 6 Magnitude Spectrum of Zero Padded Signal Magnitude 4 2 Magnitude Magnitude 1 2 3 4 5 6 7 8 9 1 5 4 3 2 1 Magnitude Spectrum of Sinusoidal Signal 1 2 3 4 5 6 7 8 9 Frequency Magnitude Spectrum of Rectangular Window function 1 5 1 2 3 4 5 6 7 8 9 1 Frequency José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 28 / 48
Signaal vermenigvuldig met Hanning window 1 Zero Padded Signal (1 samples) Amplitude Amplitude Amplitude 1 1 2 3 4 5 6 7 8 9 1 1 Sinusoidal Signal (1 samples) 1 1 2 3 4 5 6 7 8 9 1 Samples Hanning Window (1 samples) 1.5 1.5.5 1 2 3 4 5 6 7 8 9 1 Samples José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 29 / 48
Convolutie in frequentie domein Magnitude Magnitude Magnitude 4 2 Magnitude Spectrum of Zero Padded Signal 1 2 3 4 5 6 7 8 9 1 5 4 3 2 1 Magnitude Spectrum of Sinusoidal Signal 1 2 3 4 5 6 7 8 9 Frequency Magnitude Spectrum of Hanning Window function 1 5 1 2 3 4 5 6 7 8 9 1 Frequency José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 3 / 48
Gebruik Hanning window om leakage te reduceren x[n] 1 1 2 4 6 8 1 12 Hanning window w[n].5 2 4 6 8 1 12 w[n]x[n].5.5 5 2 4 6 8 1 12 FFT(x,128) 1 2 3 4 5 6 7 8 9 15 2 25 3 FFT(w*x,128) 2 1 2 3 4 5 6 7 8 9 15 2 25 3 José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 31 / 48
Gebruik Hamming window om leakage te reduceren x[n] 1 1 2 4 6 8 1 12 Hamming window w[n].5 2 4 6 8 1 12 w[n]x[n].5.5 5 2 4 6 8 1 12 FFT(x,128) 1 2 3 4 5 6 7 8 9 15 2 25 3 FFT(w*x,128) 2 1 2 3 4 5 6 7 8 9 15 2 25 3 José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 32 / 48
DFT toepassen op echt signaal Signalen met veranderende frequentiecomponent 1 Voor signalen met veranderende frequentiecomponent is DFT niet zinvol 2 Daarom frequentiecomponent van segmenten van signaal berekenen STFT berekenen en plotten in spectrogram 1 Signaal wordt opgesplitst in segmenten van dezelfde lengte 2 Segmenten overlappen met bijv. 5% 3 Elk segment vermenigvuldigd met window (aan randen klein) 4 Pas DFT toe op alle windowed segmenten 5 Laat de DFT coëfficiënten zien als functie van tijd en frequentie 6 Dit levert spectrogram dat evolutie laat zien van frequenties als functie van tijd José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 33 / 48
Berekening van spectrogram in plaatjes Uit An introduction to signal processing for speech van Daniel P. W. Ellis http://www.ee.columbia.edu/~dpwe/e481/ Stappen voor berekening van spectrogram 1 Signaal(1) wordt opgedeeld in segmenten door te vermeniguldigen met opschuivend window (2) 2 Voor elk segment wordt DFT berekend (3) 3 Individuele spectra worden kolommen in spectrogram (4) met kleur die magnitude van frequentie weergeeft (4) 4 Na uitzoomen kunnen individuele kolommen niet meer onderscheiden worden (5) José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 34 / 48
Stappen voor berekening van spectrogram Signaal(1) wordt opgedeeld in segmenten door te vermeniguldigen met opschuivend window (2) José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 35 / 48
Stappen voor berekening van spectrogram Voor elk segment wordt DFT berekend (3) José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 36 / 48
Stappen voor berekening van spectrogram Individuele spectra worden kolommen in spectrogram (4) met kleur die magnitude van frequentie weergeeft (4) José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 37 / 48
Stappen voor berekening van spectrogram Na uitzoomen kunnen individuele kolommen niet meer onderscheiden worden (5) José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 38 / 48
Short-time Fourier transform (STFT) Definitie STFT X[n,k]= L 1 m= 2π jk x[n+m]w[m]e N m }{{} DFT van x[n+m]w[m] met n is tijd index en k de k-de harmonsiche 2π N k 1 w[n] is window van lengte L 2 x[n+m]w[m] is klein segment van signaal x[m] op tijdstip n 3 X[n,k] is periodiek met periode 2π 4 Signaal glijdt langs fixed window 5 Lengte FFT N lengte window L 6 Voor n=n gebruikt x[n ],x[n +1],...x[n +L 1] José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 39 / 48
Signaal bestaande uit twee componenten 1 Eerste component is 96Hz toon over.55 sec 2 Tweede component is 1Hz toon van.2 tot.4 sec 2 Tijddomein signal Amplitude 1 1 2 2.1.15.2.25.3.35.4.45.5 Tijd (sec) Ideale spectrogram van signaal met 96 en 1 Hz Frequentie (Hz) 15 1 5.1.15.2.25.3.35.4.45.5 Tijd (sec) José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 4 / 48
2 sin op 96 en 1 Hz, window lengte 512 (128 msec) Frequentie (Hz) 15 1 5 2.1.15.2.25.3.35.4.45.5 Tijd (sec) sin op 96 en 1 Hz, window lengte 128 (32 msec) Frequentie (Hz) 15 1 5.1.15.2.25.3.35.4.45.5 Tijd (sec) José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 41 / 48
Tijdresolutie en frequentieresolutie Hoe goed kunnen we het begin en het eind van een signalen achterhalen, en hoe goed kunnen we de frequenties onderscheiden? Trade-off tijd- en frequentieresolutie met f s =124Hz 1 Frequentieresolutie 1 L f shz 2 Tijdresolutie LT s sec lengte frequentieresolutie tijdresolutie 128 8 Hz.125 sec 256 4 Hz.25 sec 1 Frequentieresolutie van window met L = 256 is genoeg om frequenties te onderscheiden, maar begin- en eindpunt geblurred 2 Frequentieresolutie van window met L = 128 vindt eindpunten, maar kan frequenties niet goed onderscheiden José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 42 / 48
L=256,N =256, geen overlap windows, f s =124Hz, f =4Hz José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 43 / 48
L=128,N =128, overlap = 127, f s =124Hz, f =8Hz José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 44 / 48
1 Lang window w[n] resulteert in narrowband spectrogram dat de harmonische componenten goed laat zien in horizontale strepen 2 Kort window w[n] resulteert in wideband spectrogram dat de tijd-componenten goed laat zien in verticale strepen José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 45 / 48
Parameters van STFT Parameters 1 Window type: trade-off tussen side lobes en breedte main lobe 2 Window lengte L Grotere L geeft betere frequentieresolutie Kleinere L geeft betere tijdresolutie 3 Window overlap (window sprong R) Meestal R L en b.v. R =L of R =L/2 Grotere R minder berekeningen Kleinere R gladdere resultaten 4 FFT lengte N Meestal N L Grotere N geeft meer frequentie-domein samples van DFT Kleinere N minder berekeningen José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 46 / 48
Boventonen klarinet José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 47 / 48
Boventonen dwarsfluit José Lagerberg (FNWI) DFT, Windowing, STFT, spectrogrammen November, 216 48 / 48