Short-time Fourier transform: verschil tussen versies

k
formules: oa differentiaal nt cursief; spelling(sample); s ipv sec voor seconden
Geen bewerkingssamenvatting
k (formules: oa differentiaal nt cursief; spelling(sample); s ipv sec voor seconden)
De wiskundige beschrijving van de STFT gebeurt door de uitdrukking;
 
:<math> \mathbf{STFT} \left \{ x(t) \right \} \equiv X(\tau, \omega) = \int_{-\infty}^{\infty} x(t) w(t-\tau) e^{-j \omega t} \, dt\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 tijdsip τ en de complexe hoek de fase.
:<math>f_s = 1/T_s \! </math>.
 
Hierbij is <math>T_s</math> de tijdstap tussen twee opeenvolgende sampelssamples van het discrete signaal. Indien de lengte van de vensterfunctie N sampelssamples bevat, is de totale tijdspanne van het venster en dus ook van de fouriertransformatie dus gelijk aan:
 
:<math>T = N.T_s = N / f_s \! </math>
 
'''Voorbeeld:'''
Stel dat een signaal x[n] een [[bemonsteringsfrequentie]] heeft van 8 kHz. Dit betekent dus dat er per seconde 8000 sampelssamples 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 sampelssamples 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 gelocaliseerd 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 Wavelettransformatie is het product van de tijdresolutie en de frequentieresolutie constant. Bij de STFT zijn beide resoluties zelf ook constant. Bij de Wavelettransformatie wordt een goede frequentieresiolutie 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 frequentietresolutie 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 sampelssamples. 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 sampelssamples, bemonsterd aan 2048 Hz, dus 2048 sampels persamplesper 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 secs en 2,44 secs
* een [[Diracpuls]] op t = 0,59 secs
* een sweepsinus van 200 Hz bij het begin van het signaal tot 700 Hz op het einde. Een sweepsinus is een sinus waarvan de frequentie in de loop van de tijd verandert.
 
De STFT werd bekomen door een [[vensterfunctie|Hanningvenster]] van 0,128 seconde over het signaal te laten glijden, met een overlap van 50%.
De frequentieresolutie is dus 1/0,128 sec s= 7,8125 Hz, de tijdresolutie is 0,128 seconde.
 
Hoewel de resulolutie 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.
872

bewerkingen