Short-time Fourier transform: verschil tussen versies

taal
k (Robot: Verplaatsing van 12 interwikilinks. Deze staan nu op Wikidata onder d:q1477735)
(taal)
De '''short-time Fourier transform''', kortweg '''STFT''', ontstaat door een [[vensterfunctie]] stapsgewijs over een signaal te laten glijden, en telkens de gewone [[fouriertransformatie]] te berekenen van het stuk van het signaal dat door de vensterfunctie wordt geselecteerd. Door de resultaten van de opeenvolgende transformaties achter elkaar te plaatsen verkrijgt men een beeld waarin te zien is hoe het [[Fouriertransformatie|fourierspectrum]] in de tijd variëertvarieert door het signaal. Het is dus een methode om de informatie van een signaal simultaan in de tijd en in de frequentie voor te stellen. De nauwkeurigheden (''resolutie'' in de tijd en ''resolutie'' in frequentie) waarmee dit gebeurt zijn echter aan elkaar gekoppeld: indien de ene resolutie verbeterd wordt zal de andere evenredig minder goed worden. De bepalende factor hierbij is de lengte (in de tijd) van de gebruikte vensterfunctie.
 
== De short-time Fourier transform ==
:<math> \mathbf{STFT} \left \{ x(t) \right \} \equiv X(\tau, \omega) = \int_{-\infty}^{\infty} x(t) w(t-\tau) e^{-j \omega t} \, \mathrm{d}t </math>
 
Hierbij is ''w''(''t'') de [[vensterfunctie]] en ''x''(''t'') het te transformeren signaal. In feite is ''X''(τ,ω) niets anders dan de klassieke [[fouriertransformatie]] van het product van het signaal ''x''(''t'') en de [[vensterfunctie]] ''w''(''t''-τ). Het is dus een complexe functie van een tijdsvariabele τ en van de frequentie ω. De absolute waarde geeft de amplitude van de frequentie ω op het tijdsiptijdstip τ en de complexe hoek de fase.
 
=== De discrete STFT ===
 
'''Voorbeeld:'''
Stel dat een signaal x[n] een [[bemonsteringsfrequentie]] heeft van 8 kHz. Dit betekent dus dat er per seconde 8000 samples x[n] beschikbaar zijn, die elk <math>T_s = 0,000125 </math> seconde uit elkaar liggen. Stel vervolgens dat een venster functie gebruikt wordt die 2000 samples omvat. De reële tijdsduur van de vensterfunctie is dus 0,25 seconde. Omdat dit dus ook de tijdspanne is van de fouriertransformatie zal deze een resolutie hebben van <math>f_o =1/0,25\mathrm{s} = 4\mathrm{Hz} </math>, en dus <math>\omega_o = 8 \pi </math> radialen per seconde. De tijdresolutie bedraagt dus 0,25 seconde. Dat is de nauwkeurigheid waarmee een kortstondig fenomeen in het signaal in de tijd kan gelocaliseerdgelokaliseerd worden.
Indien de posities van de [[vensterfunctie]] elkaar met 50% overlappen zal m dus de waarden 0, 1000, 2000, 3000... 6000 aannemen.
 
==De koppeling van de tijdresolutie en de frequentieresolutie==
 
[[Bestand:STFT_WVL_compare.jpg‎|thumb|right|200px|Zowel bij de STFT als de Wavelettransformatiewavelettransformatie is het product van de tijdresolutie en de frequentieresolutie constant. Bij de STFT zijn beide resoluties zelf ook constant. Bij de Wavelettransformatiewavelettransformatie wordt een goede frequentieresiolutiefrequentieresolutie ingeruild tegen een goede tijdresolutie op hoge frequenties.]]
 
Deze koppeling is van groot belang en leidt tot een nadeel van de STFT. In bovenstaand voorbeeld was de resolutie in frequentie 4 Hz. Dit betekent concreet dat de STFT informatie geeft betreffende de frequenties 0 Hz, 4 Hz, 8 Hz, 12 Hz enz. en dit om de 0,25 seconde, de tijdresolutie. Stel nu dat men de frequentieresolutie wil verbeteren tot 2 Hz. De frequentietresolutiefrequentieresolutie van een fouriertransformatie is ''één gedeeld door de tijdsduur van het getransformeerde signaal''. Een frequentieresolutie van 2 Hz vereist in bovenstaand voorbeeld dat men de lengte van de vensterfunctie verdubbelt tot 4000 samples. Het gevolg hiervan is dus wel dat de tijdsresolutie met een factor twee slechter wordt, en groeit tot 0,5 seconde.
Dit is in het algemeen zo voor de STFT: de ene resolutie is omgekeerd evenredig met de andere. Een verbetering van de ene gaat steeds ten koste met een precies even grote verslechtering van de andere.
Het probleem met de STFT is dat de twee resoluties zijn niet alleen aan elkaar gekoppeld, maar zijn ook beiden constant over de twee assen. Indien een goede frequentieresolutie (dus de resolutie is een klein getal) nodig is op lage frequentie zal men dezelfde goede op hoge frequentie terugvinden. Daarentegen zal, als gevolg van de goede frequentieresolutie een slechte tijdresolutie ontstaan ten gevolge van de koppeling. Een slechtere tijdresolutie is wellicht minder een probleem op lage frequentie, omdat laagfrequente gebeurtenissen per definitie ook trager verlopen. Maar op hoge frequentie kan een betere tijdresolutie wel nodig zijn. Beide resoluties zijn echter in gans het tijd-frequentiegebied constant.
[[Bestand:STFT_voorbeeld.jpg‎|thumb|right|200px|STFT van het signaal beschreven in deze paragraaf]]
 
Het voorbeeld bevat een signaal van 8192 samples, bemonsterd aan 2048 Hz, dus 2048 samplespersamples per seconde. Het signaal heeft bijgevolg een totale tijdsduur van 4 seconden en is een samenstelling van vijf componenten:
* een sinus van 420 Hz, en een sinus van 440, gedurende de volledige tijdsduur van het signaal
* een sinus van 700 Hz, tussen t = 1,46 s en 2,44 s
De frequentieresolutie is dus 1/0,128 s= 7,8125 Hz, de tijdresolutie is 0,128 seconde.
 
Hoewel de resulolutieresolutie kleiner is dan het verschil tussen de twee vaste sinussen zijn ze toch niet van elkaar te onderscheiden wegens de [[vensterfunctie|leakage]] van het gebruikte [[vensterfunctie|Hanningvenster]]. De sweepsinus verloopt trapsgewijs door het steeds opschuivende venster. De tijdelijke sinus van 700 Hz is duidelijk zichtbaar. Bij de start en het einde van deze sinus treden telkens frequenties op verschillend van 700 Hz. Dit komt doordat in het eerste venster dat de sinus bevat, de sinus niet over de volledige lengte van het venster loopt. Het begin van de sinus valt immers niet samen met de rand van een positie van het venster Hetzelfde gebeurt bij het laatste venster: ook dat bevat de sinus van 700 Hz slechts in een deel van het venster. De fouriertransformatie moet dus in deze gevallen niet alleen de sinus reproduceren, maar ook rekening houden met het feit dat de sinus in een deel van het venster afwezig is. De [[Diracpuls]] op 0,59 seconde is ook zichtbaar in twee vensters, aangezien de opeenvolgende vensters elkaar met 50% overlappen. De exacte positie is dus moeilijk te kennen, want dit zou een kort tijdvenster vereisen waardoor de frequentieresolutie evenredig zou toenemen. De [[wavelettransformatie]] kan dit probleem wel oplossen omdat ze op lage frequentie een goede frequentieresolutie biedt, en op hoge frequentie (waar de [[Diracpuls]] nog steeds zichtbaar is) een goede tijdresolutie.
 
 
Anonieme gebruiker