STFTSpectrum (FPScript)
Berechnet ein Zeit-Frequenzspektrum mittels Kurzzeit-Fourier-Transformation (STFT).
Syntax
STFTSpectrum(Signal, [ SpectrumType = SPECTRUM_DBNORM ], [ Window = WIN_HANNING ], [ Adjustment ], [ SegmentLength = 0 ], [ OverlapOrGap = 50 ], [ FFTLength = 0 ], [ dBLimit = 0 ] [ , MaxFrequencies = 0 ])
Die Syntax der STFTSpectrum-Funktion besteht aus folgenden Teilen:
Teil |
Beschreibung |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Signal |
Die zu analysierenden Daten. Die Daten müssen eine konstante Abtastrate aufweisen und dürfen keine ungültigen Werte enthalten. Erlaubte Datenstrukturen sind Datenreihe und Signal. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne. Ungültige Werte sind in diesem Argument nicht zulässig. Für die X-Komponente gelten zusätzliche Beschränkungen.Die Werte müssen einen konstanten positiven Abstand haben. Ungültige Werte sind in diesem Argument nicht zulässig. Ist das Argument eine Liste, dann wird die Funktion für jedes Element der Liste ausgeführt und das Ergebnis ist ebenfalls eine Liste. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SpectrumType |
Der Typ des zu berechnenden Spektrums. Das Argument SpectrumType kann folgende Werte haben:
Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert SPECTRUM_DBNORM gesetzt. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Window |
Das anzuwendende feste oder anpassbare Fenster. Das Argument Window kann folgende Werte haben:
Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert WIN_HANNING gesetzt. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Adjustment |
Die einseitige Fourier-Breite als Vielfache des Frequenzintervalls. Der gültige Bereich ist fensterabhängig und liegt zwischen 1,0 und 6,0. Die Vorgabe ist 1,5 für ein Tapered Cosine Fenster und 3,0 für alle anderen anpassbaren Fenster. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SegmentLength |
Die Länge der einzelnen Datensegmente. Der gültige Bereich liegt zwischen 2 und der Datenlänge / 2. Der Vorgabewert 0 setzt die Segmentlänge auf das Doppelte der Quadratwurzel der Datenlänge, aufgerundet auf die nächste Zweierpotenz. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle ganzzahligen Datentypen erlaubt. Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert 0 gesetzt. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OverlapOrGap |
Wird dieses Argument als positive Zahl angegeben, dann legt es die prozentuale Überlappung der einzelnen Datensegmente fest. Wird es als negative Zahl angegeben, dann legt deren Betrag die Lücke zwischen den einzelnen Datensegmenten in Abtastpunkten fest. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt. Der Wert muss kleiner gleich 95 sein. Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert 50 gesetzt. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FFTLength |
Die Länge der einzelnen Fourier-Transformationen. Wenn die angegebene FFT-Länge größer als die Segmentlänge ist, dann werden Nullen angehängt. Der gültige Bereich liegt zwischen Segmentlänge und der maximalen Länge für die FFT. Ein Wert von 0 setzt die FFT-Länge auf die Segmentlänge. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle ganzzahligen Datentypen erlaubt. Der Wert muss größer gleich 0 und kleiner gleich 2147483648 sein. Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert 0 gesetzt. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dBLimit |
Die dB-Basislinie, welche auf das Spektrum angewendet werden soll. Der Bereich liegt zwischen 1,0 dB und 120,0 dB oder 0 für keine Basislinie. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt. Das Argument wird auf die Einheit dB transformiert. Der Wert muss größer gleich 0,0 dB und kleiner gleich 120,0 dB sein. Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert 0 gesetzt. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MaxFrequencies |
Die maximale Anzahl von Frequenzwerten in der STFT (nur leistungsnormiertes PSD-Spektrum). Der Bereich liegt zwischen 10 und 10000, 0 für keine Begrenzung. Erlaubte Datenstrukturen sind Einzelwert. Es sind alle reellen Datentypen erlaubt. Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert 0 gesetzt. |
Anmerkungen
Das Ergebnis hat immer die Datenstruktur Signalreihe mit Z-Komponente.
Die X-Komponente enthält die Frequenz und die Z-Komponente die Anfangszeiten der Segmente. Wenn das Argument Signal eine Datenreihe ist, dann enthält die X-Komponente des Ergebnisses die Nyquist-normierten Frequenzen und die Z-Komponente enthält die Indexwerte der Segmentanfänge.
Nachfolgende Grafik visualisiert die Einstellungen für Segmentlänge, Überlappung und FFT-Länge:
Verfügbarkeit
FlexPro Professional, Developer Suite
Beispiele
TransposeMatrix(STFTSpectrum(Signal, SPECTRUM_DBNORM, WIN_HANNING + WIN_NORMALIZEPOWER, 2, 256, 50, 0, 20, 0))
Berechnet das STFT-Spektrum eines Signals und transponiert anschließend das Ergebnis, so dass die Frequenzen der Z-Komponente zugeordnet sind. Als Spektrumtyp wird dB normiert gewählt. Das verwendete Fenster ist Cos2 Hanning -31 dB W=2. Die FFT-Länge wird auf die Segmentlänge gesetzt, die den Wert 256 hat. Dies ist ein Beispiel aus dem Tutorial Zeit-Frequenz Spektralanalyse.
Siehe auch
Analyseobjekt Zeit-Frequenz Spektralanalyse