Short-time Fourier transform: verschil tussen versies

k
<math> met AWB
k (Verwijder Unicode-teken via Wikipedia:Wikiproject/Check Wikipedia., removed: ‎ (2) met AWB)
k (<math> met AWB)
 
Dit is het discrete (digitale) equivalent van de bovenstaande continue (analoge) STFT. Zowel het te transformeren signaal x[n] als de [[vensterfunctie]] w[n] zijn nu discreet, beiden met dezelfde [[bemonsteringsfrequentie]]:
 
:<math>f_s = 1/T_s \! </math>.
 
Hierbij is <math>T_s</math> de tijdstap tussen twee opeenvolgende samples van het discrete signaal. Indien de lengte van de vensterfunctie N samples 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>
 
De discrete short-time Fourier transform is dan van de gedaante:
* de index ''k'' verwijst naar de discrete frequentie <math>k \omega_o</math> waarbij <math>\omega_o </math> de resolutie is van de gebruikte fouriertransformatie. Deze resolutie is
 
:<math>\omega_o = 2 \pi / T \! </math>
 
'''Voorbeeld:'''
Stel dat een signaal x[n] een [[bemonsteringsfrequentie]] heeft van 8 &nbsp;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 gelokaliseerd worden.
Indien de posities van de [[vensterfunctie]] elkaar met 50% overlappen zal m dus de waarden 0, 1000, 2000, 3000... 6000 aannemen.
 
[[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 frequentieresolutie 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 &nbsp;Hz. Dit betekent concreet dat de STFT informatie geeft betreffende de frequenties 0 &nbsp;Hz, 4 &nbsp;Hz, 8 &nbsp;Hz, 12 &nbsp;Hz enz. en dit om de 0,25 seconde, de tijdresolutie. Stel nu dat men de frequentieresolutie wil verbeteren tot 2 &nbsp;Hz. De frequentieresolutie van een fouriertransformatie is ''één gedeeld door de tijdsduur van het getransformeerde signaal''. Een frequentieresolutie van 2 &nbsp;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 &nbsp;Hz, dus 2048 samples per seconde. Het signaal heeft bijgevolg een totale tijdsduur van 4 seconden en is een samenstelling van vijf componenten:
* een sinus van 420 &nbsp;Hz, en een sinus van 440, gedurende de volledige tijdsduur van het signaal
* een sinus van 700 &nbsp;Hz, tussen t = 1,46 s en 2,44 s
* een [[Diracpuls]] op t = 0,59 s
* een sweepsinus van 200 &nbsp;Hz bij het begin van het signaal tot 700 &nbsp;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 s= 7,8125 &nbsp;Hz, de tijdresolutie is 0,128 seconde.
 
Hoewel de resolutie 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 &nbsp;Hz is duidelijk zichtbaar. Bij de start en het einde van deze sinus treden telkens frequenties op verschillend van 700 &nbsp;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 &nbsp;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.
 
[[Categorie:Signaalanalyse]]