Funktionen > Signalverarbeitung > Verknüpfte Zeit-Frequenz-Analyse > Beispiel: Die Kurzzeit-Fourier-Transformation
  
Beispiel: Die Kurzzeit-Fourier-Transformation
Verwenden Sie die Funktion stft, um die Kurzzeit-Fourier-Transformation (STFT) eines Signals zu berechnen, dessen Spektraleigenschaften sich im Laufe der Zeit ändern.
Die Funktion gibt eine Matrix zurück, deren Spalten die Fourier-Transformation des Eingabesignals zu Zeitpunkten enthalten, die durch s Samples getrennt sind. Für ein Signal x(t) wird die STFT in stetiger Zeit wie folgt definiert:
Zum Kopieren dieses Ausdrucks klicken
Dabei ist w(t) ein gleitendes reellwertiges Bewertungsfenster, das dazu dient, den Einfluss der Transformation um einen bestimmten Zeitpunkt herum zu bestimmen.
Signal mit zwei Tonhöhen
Das folgende Signal besteht aus zwei Sinuskurven unterschiedlicher Frequenz, die zu verschiedenen Zeitpunkten auftreten.
1. Definieren Sie die Signalkomponenten.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
2. Plotten Sie das zusammengesetzte Signal.
Zum Kopieren dieses Ausdrucks klicken
Die STFT enthält Informationen über den Frequenzinhalt des Signals und den Zeitpunkt, zu dem die Frequenz auftritt.
3. Berechnen Sie die STFT mit 100 Frequenzsamples, einem Zeitschritt von 30 und einem Hanning-Fenster.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Dies ergibt eine Matrix von 100 x 56 (das Signal der Länge L enthält 56 Zeitschritte von 30).
4. Berechnen Sie das Betragsquadrat.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
5. Speichern Sie die resultierende Kontur als BMP-Bild.
Zum Kopieren dieses Ausdrucks klicken
(v_spec_rotated.bmp)
Das Bild zeigt nicht nur die beiden Frequenzen, sondern auch die Zeit, zu der sie auftreten. Das Spektrogramm wird jedoch durch den sogenannten Lokalisierungszielkonflikt beeinträchtigt. Um die Zeiten zu lokalisieren (d.h., um die Zeiten, zu denen die Sinuskurven aktiv sind, von der STFT genau bestimmen zu lassen), wird ein kurzes Fenster im Zeitbereich benötigt. Auf der anderen Seite verlangt eine gute Lokalisierung der Frequenz ein langes Zeitfenster. Dieser Zielkonflikt hängt außerdem vom verwendeten Fenstertyp, vom betreffenden Signal, der Zeit und der Frequenz ab.
6. Um diesen Zusammenhang zu veranschaulichen, berechnen Sie die STFT und das Spektrogramm des gleichen Signals wie oben, allerdings mithilfe einer Frequenzfensterlänge von 300 anstelle von 100.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
7. Speichern Sie die resultierende Kontur als BMP-Bild.
Zum Kopieren dieses Ausdrucks klicken
(v_nbspec_rotated.bmp)
Die mit einem langen Fenster berechnete STFT hat eine bessere Frequenzauflösung, die Zeitauflösung hingegen ist schlechter. Dieser Zeit-Frequenz-Zielkonflikt kann durch Verwendung anderer Zeit-Frequenz-Funktionen wie timefreq und timecorr vermieden werden.
Verwenden angepasster Fenster
Das Frequenzfenster in diesem Beispiel ist bis zur Länge der Fourier-Transformation mit Nullen aufgefüllt.
1. Definieren Sie die Fensterlänge und den Prozentsatz des erhöhten Kosinus.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Das Fenster darf nicht länger sein als die Fourier-Transformation.
2. Skalieren Sie die Fensterkoeffizienten neu, sodass das Fenster eine einheitliche Energie aufweist.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
3. Berechnen Sie die STFT und das Spektrogramm.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
4. Speichern Sie die resultierende Kontur als BMP-Bild.
Zum Kopieren dieses Ausdrucks klicken
(v_spec2_rotated.bmp)
Ändern Sie die Parameter der Funktion stft oder die Frequenzen der Sinuswellen im Eingabesignal, und beobachten Sie, wie sich die Diagramme ändern.