Algorithmen (STFT)

Eine STFT teilt ein Eingabesignal, {ix(n)}, in N Abschnitte gemäß dem Schiebefenster und führt eine FFT für jeden der Abschnitte durch. Es kann wie folgt berechnet werden:

STFT\left \{x[n]\right \} \equiv X(m, \omega)=\sum_{n=-\infty}^\infty x[n]\omega [n-m]e^{-j\omega n}

wobei \omega (n) das Schiebefenster repräsentiert, das die lokalen Frequenzkomponenten in ihm hervorhebt.


STFT wird mit dem folgendem Verfahren berechnet:

  1. Das Eingabesignal wird in N Abschnitte unterteilt. Jedes Mal werden n Punkte genommen, wobei n gleich der festgelegten Fensterlänge ist.
  2. Der gewählte Fenstertyp wird zum Multiplizieren der extrahierten Daten verwendet, Punkt für Punkt.
  3. An beiden Seiten des Fenster werden Nullen aufgefüllt, wenn die Fensterlänge kleiner ist als die Länge der FFT.
  4. FFT wird im FFT-Abschnitt berechnet.
  5. Verschieben Sie das Fenster entsprechend der benutzerdefinierten Überlappungsgröße und wiederholen Sie die Schritte 1 bis 4, bis das Ende des Eingabesignals erreicht ist.
STFT algorithms overlap.png

Das Ergebnis der STFT ist eine Matrix, die N Zeilen und M Spalten hat, wobei

N=floor(\frac{DataSize-Window Size}{WindowSize-OverlapSize})+1\,\!

und

M= \begin{cases} FFTLength/2+1, & \mbox{if input signal is real} \\ FFTLength, & \mbox{if input signal is not real} \end{cases}

Die j-te Spalte in der Matrix stellt das FFT-Ergebnis des j-ten Abschnitts des Eingabesignals dar und der X-Wert dieser Spalte ist die Zentrumszeit des j-ten Abschnitts. Die Y-Werte der Frequenz wird durch das Abtastintervall \Delta t und die Anzahl der Eingabedatenpunkte N erstellt. Die i-te Frequenz ist gegeben durch:

f_i=\frac i{N\Delta t}

 

Über die automatische Berechnung des Abtastintervalls:

Wenn <Auto> für das Abtastintervall ausgewählt wird, wird das in der Berechnung erforderliche Abtastintervall automatisch von Origin berechnet.

Das automatisch berechnete Abtastintervall ist das durchschnittliche Inkrement der Zeitsequenz, die normalerweise aus der X-Spalte kommt, die mit dem Eingabesignal verbunden ist. Gibt es keine verbundene X-Spalte, werden die Zeilennummern verwendet. Beachten Sie, dass das Abtastintervall auf 1 gesetzt wird, wenn Origin das durchschnittliche Inkrement nicht erhält.

Fenster

Legt den von der FFT verwendeten Fenstertyp fest. Die Standardoption ist Hanning.

  • Rechteck
    Rechteckiges Fenster
    w[n] = \begin{cases} 1, & \mbox{if }0 \leq n \leq N-1 \\ 0, & \mbox{otherwise } \end{cases}
  • Welch
    Welch-Fenster
    w[n]=1-\left[ \frac{n-\frac 12(N-1)}{\frac 12(N+1)}\right] ^2\,\!
  • Dreieckig
    Dreieckiges Fenster:
    Ungerade: w(n)=\frac 2{N+1}(\frac {N+1}2-|n+1-\frac {N+1}2|)
    Gerade: w(n)=\frac 2N(\frac N2-|n+1-\frac {N+1}2|)
  • Bartlett
    Bartlett-Fenster
    w[n]=\frac 2{N-1}\left[ \frac{N-1}2-\left| n-\frac{N-1}2\right| \right] \,\!
  • Hanning
    Hann-Fenster
    w[n]=\frac 12\left[ 1-\cos (\frac{2\pi n}{N-1})\right] \,\!
  • Hamming
    Hamming-Fenster:
    w[n]=0.54-0.46\cos (\frac{2\pi n}{N-1}) \,\!
  • Blackman
    Blackman-Fenster
    w[n]=0.42-0.5\cos (\frac{w\pi n}{N-1})+0.08\cos (\frac{4\pi n}{N-1}) \,\!
  • Gaussian
    Gaussian-Fenster
    w[n]=exp(-0.5(Alpha( \frac{2n}{N-1}-1 ))^2) \,\!
    wobei Alpha von dem Parameter Alpha festgelegt wird.
  • Kaiser
    Kaiser-Fenster
    w[n]=I(beta*\sqrt{1-(\frac{2n}{N-1}-1)^2}) / I(beta) \,\!
    wobei I(ix) die Bessel-Funktion bezeichnet und beta von dem Parameter Beta festgelegt wird.

Ergebnisse

  1. Komplexes Ergebnis
    Komplexes FFT-Ergebnis für jeden FFT-Abschnitt Es ist verschoben, so dass der Anfangsteil das Ergebnis der negativen Frequenzen ist.
  2. Amplitudenergebnis
    Einseitig für reales Eingabesignal und zweiseitig für komplexes Eingabesignal Die Definition ist ähnlich der Amplitude des Hilfsmittels FFT. Für das zweiseitige Ergebnis wird eine Verschiebung verwendet, so dass der Anfangsteil das Ergebnis der negativen Frequenzen ist.
  3. Amplitude in dB
    20\text{log}(\text{Amplitude})

Zeit
Die Zeit von jedem FFT-Abschnitt im STFT-Ergebnis entspricht der Mitte des Zeitintervalls für das Signal jedes Abschnitts. z.B. für ein Abschnittsintervall (ti, ti+(N-1)*dt) ist die Zeit seines FFT-Abschnitts im STFT-Ergebnis: ti+(N-1)*dt/2.