STFT-Spektrogramme
- Aktualisiert2025-07-30
- 6 Minute(n) Lesezeit
Errechnet die Energieverteilung des Signals im kombinierten Zeit-Frequenz-Bereich (Joint Time-Frequency Domain) unter Verwendung des Algorithmus der Kurzzeit-Fourier-Transformation (STFT).

Ein-/Ausgänge
Zeit-Freq-Konfig
—
Zeit-Freq-Konfig gibt die Konfiguration der Frequenzunterteilungen an. Zeit-Freq-Konfig bestimmt auch die Anzahl der Spalten in STFT-Spektrogramm {X}.
X
—
X ist das Eingangssignal des Zeitbereichs.
Zeit-Frequenz-Abtastinformation
—
Zeit-Frequenz-Abtastinformation gibt die für die Abtastung des Signals im kombinierten Zeit-Frequenz-Bereich zu verwendende Dichte an und definiert die Größe des resultierenden zweidimensionalen Zeit-Frequenz-Arrays.
Fensterinformation
—
Fensterinformation sind die Angaben zur Fensterfunktion, anhand deren die STFT berechnet werden soll.
Fensterparameter
—
Fensterparameter ist der Beta-Parameter für das Kaiser-Fenster, das Verhältnis s von Haupt- zu Nebenkeule für das Dolph-Chebyshev-Fenster und die Standardabweichung für ein gaußsches Fenster. Bei anderen Fenstertypen wird dieser Eingang ignoriert. Die Standardeinstellung für Fensterparameter ist NaN. Dadurch wird bei Kaiser-Fenstern der Beta-Wert auf 0 eingestellt. Bei Dolph-Chebyshev-Fenstern wird s auf 60 eingestellt. Bei gaußschen Fenstern wird die Standardabweichung auf
Energieeinsparung?
—
Energieeinsparung? legt fest, ob STFT-Spektrogramm {X} skaliert wird, so dass die Energie im Zeit-Frequenz-Bereich der Energie im Zeitbereich entspricht. Die Standardeinstellung lautet TRUE.
STFT-Spektrogramm {X}
—
STFT-Spektrogramm {X} ist ein 2D-Array, das die Energieverteilung von Zeitsignalen im kombinierten Zeit-Frequenzbereich darstellt.
Fehler
—
Fehler gibt alle Fehler oder Warnungen des VIs aus. Zur Umwandlung eines Fehlercodes oder einer Warnung in einen Fehler-Cluster verbinden Sie Fehler mit dem VI Fehler-Cluster aus Fehlercode. |
Zur Berechnung des STFT-Spektrogramm {X} ermittelt dieses VI zunächst STFT von X. Zur Berechnung der STFT von X verwendet das VI ein gleitendes Fenster, um das Signal in verschiedene Datenblöcke aufzuteilen. Dann wendet das VI eine N-Punkte schnelle Fouriertransformation auf jeden Datenblock an, um die jeweiligen Frequenzanteile zu ermitteln. N stellt dabei die Frequenzunterteilungen dar. Die STFT richtet die Mitte des ersten gleitenden Fenster mit dem ersten Sample von Signal X aus und erweitert den Anfang des Signals durch Hinzufügen von Nullen. Das gleitende Fenster bewegt sich um so viele Samples, wie in Zeitschritte angegeben, zum nächsten Datenblock. Wenn das Fenster X verlässt, füllt das VI X mit Nullen auf.
Die folgende Abbildung demonstriert, wie dieses VI wie STFT berechnet.

Wenn Frequenzunterteilungen an Potenz von 2 anpassen? TRUE und Frequenzunterteilungen keine Potenz von zwei ist, gilt auch die folgende Gleichung als wahr:
K = 2[log2(Fequenzunterteilungen)]wobei [ ] die nächste Operation ist.
Anderenfalls ist K = Frequenzunterteilungen.
Wenn das Ergebnis der STFT die Matrix STFT{X} ist, dann beträgt die Größe von STFT{X} gleich (M, K), wobei Folgendes gilt:

- L die Anzahl der Elemente von X,
ist eine Operation mit Abrundung
Sie können mithilfe von STFT{X} die ungefähre Energie im kombinierten Zeit-Frequenz-Bereich mit folgender Gleichung berechnen:

Das Ergebnis ist fast identisch mit der Energie im Zeitbereich, siehe folgende Gleichung:

Nach Berechnung der STFT von X, bestimmt dieses VI das STFT-Spektrogramm von X. Das VI berechnet das STFT-Spektrogramm als Quadrat des Betrags der Elemente in STFT{X}. Da die FFT symmetrische Ergebnisse ausgibt, berechnet das VI das STFT-Spektrogramm {X} nur für die rechte Hälfte von STFT{X}, siehe folgende Gleichung:

wobei Folgendes gilt:
- i = 0, 1, ..., M-1
- j = 0, 1, ..., N-1

ist eine Operation mit Aufrundung
Wenn Sie einen kleinen Wert für Zeitschritte angeben, gibt das VI u. U. ein großes Spektrogramm aus, wodurch mehr Zeit und Speicher in Anspruch genommen wird. National Instruments empfiehlt einen Wert für Zeitschritte, bei dem Anzahl der Zeilen in Spektrogramm 512 nicht überschreitet. Wenn Sie für genauere Beobachtungen eine kleine Sample-Rate benötigen und das Signal zu lang ist, teilen Sie es in kleinere Segmente und berechnen Sie das Spektrogramm für jedes Segment.
Das Fenster Länge wirkt sich auf die Zeitauflösung und die Frequenzauflösung der STFT aus. Ein schmales Fenster führt zu einer hohen Zeit- und einer niedrigen Frequenzauflösung, da schmale Fenster eine kurze Zeitdauer und eine hohe Bandbreite haben. Ein breites Fenster führt zu einer niedrigen Zeit- und einer hohen Frequenzauflösung, da breite Fenster eine lange Zeitdauer und eine schmale Bandbreite haben.
Dieses VI gibt das gleiche Ergebnis aus wie das VI TFA STFT Spectrogram im LabVIEW Advanced Signal Processing Toolkit, wenn Sie Frequenzunterteilungen an Potenz von 2 anpassen?, Nyquist-Frequenz ausschließen? und Energieeinsparung? auf TRUE setzen.
Beispiele
Die folgenden Beispieldateien sind in LabVIEW enthalten.
- labview\examples\Signal Processing\Transforms\STFT Spectrogram Demo.vi
Zeit-Freq-Konfig
—
Frequenzunterteilungen an Potenz von 2 anpassen?
—
X
—
Zeit-Frequenz-Abtastinformation
—
Zeitschritte
—
Typ
—
Fensterparameter
—
eingestellt, wobei L die Länge des Fensters ist.
STFT-Spektrogramm {X}
—
Fehler
—