STFTSpectrum (FPScript)

21.09.2021

Computes the Short-Time Fourier Transform (STFT) time-frequency spectrum.

Syntax

STFTSpectrum(Signal, [ SpectrumType = SPECTRUM_DBNORM ], [ Window = WIN_HANNING ], [ Adjustment ], [ SegmentLength = 0 ], [ OverlapOrGap = 50 ], [ FFTLength = 0 ], [ dBLimit = 0 ] [ , MaxFrequencies = 0 ])

 

The syntax of the STFTSpectrum function consists of the following parts:

Part

Description

Signal

The data to be analyzed. The data must have a constant sampling rate and must not contain void values.

Permitted data structures are data series und signal. All real data types are permitted, except calendar time und time span.

Void values are not permitted in this argument.

For the X component additional restrictions do apply.The values must have a constant positive spacing. Void values are not permitted in this argument.

If the argument is a list, then the function is executed for each element of the list and the result is also a list.

SpectrumType

The spectral format to be computed.

The argument SpectrumType can have the following values:

Constant

Meaning

SPECTRUM_AMPLITUDE

Amplitude

SPECTRUM_RMSAMPLITUDE

RMS Amplitude

SPECTRUM_AMPLITUDE2

Amplitude2

SPECTRUM_DB O

Amplitude in dB (decibels)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

SPECTRUM_DBNORM O

dB (decibels) peak normalized to zero

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

SPECTRUM_PSD O

PSD (Power Spectral Density)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

SPECTRUM_TISA O

TISA (Time Integral Amplitude2)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

SPECTRUM_MSA

MSA (Mean Amplitude2)

SPECTRUM_SSA O

SSA (Sum Amplitude2)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

SPECTRUM_VARIANCE O

Power variance normalized

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

SPECTRUM_MAGNITUDE2 O

Magnitude2

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

SPECTRUM_MAGNITUDE O

Magnitude

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

+ SPECTRUM_NORMDATALENGTH O

If this constant is added to one of the spectrum types above, then, as in the case of a periodogram, the spectra are normalized to the data length instead of to the segment length.

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

If this argument is omitted, it will be set to the default value SPECTRUM_DBNORM.

Window

The fixed or adjustable data window to be applied to the data.

The argument Window can have the following values:

Constant

Meaning

WIN_RECTANGULAR

Rectangular -13 dB (no windowing, width=1)

WIN_WELCH

Welch -21 dB (fixed width=1.4)

WIN_SINE

Sine -23 dB (fixed width=1.5)

WIN_BISQUARE

Bi-Square or Connes -28 dB (fixed width=1.8)

WIN_BARTLETT

Bartlett -27 dB (fixed width=2)

WIN_HANNING

Hanning Max. Rolloff -31 dB (cosine, order 2, fixed width=2)

WIN_TUKEYHANN O

Tukey-Hann -37 dB (fixed width=2)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_BARTLETTMOD O

Modified Bartlett -39 dB (fixed width=2.3)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_HAMMING

Hamming Min. Sidelobe -43 dB (cosine, order 2, fixed width=2)

WIN_COS3MAXROLLOFF O

C3 Max. Rolloff -47 dB (cosine, order 3, fixed width=3)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COS3BLACKMAN

Blackman -58 dB (cosine, order 3, fixed width=3)

WIN_COS3BHARRIS62 O

Blackman-Harris -62 dB (cosine, order 3, fixed width=3)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COS3NUTALL O

C1 Nutall -64 dB (cosine, order 3, fixed width=3)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COS3BLACKMANEXACT O

Blackman Exact -68 dB (cosine, order 3, fixed width=3)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COS3BHARRIS68 O

Blackman-Harris -68 dB (cosine, order 3, fixed width=3)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COS3MINSIDELOBE O

Nutall -71 dB (cosine, order 3, fixed width=3)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COS4MAXROLLOFF O

C5 Max. Rolloff -61 dB (cosine, order 4, fixed width=4)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COS4BHARRIS74 O

Blackman-Harris -74 dB (cosine, order 4, fixed width=4)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COS4NUTALL83 O

C3 Nutall -83 dB (cosine, order 4, fixed width=4)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COS4BHARRIS92 O

Blackman-Harris -92 dB (cosine, order 4, fixed width=4)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COS4NUTALL93 O

C1 Nutall -93 dB (cosine, order 4, fixed width=4)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COS4NUTALL96 O

Nutall -96 dB (cosine, order 4, fixed width=4)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_FLATTOP

Flattop -68 dB (cosine, order 5, fixed width=5)

WIN_BETA O

Beta, Max. Rolloff (adjustable width=1.5-6)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COSMAXROLLOFF O

Cosine Max. Rolloff (adjustable width=1.5-6)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_KAISERBESSEL

Kaiser-Bessel (fixed width=3, adjustable width=1.5-6 with the Spectral Analysis option installed)

WIN_VANDERMAAS O

VanderMaas (adjustable width=1.5-6)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_CHEBYSHEV O

Chebyshev (adjustable width=1.75-5.75)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_CHEBYSHEVAPPROX O

Chebyshev Approx. (adjustable width=2.1-5)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_SLEPIAN O

Slepian DPSS-1 (adjustable width=2-5)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_GAUSS O

Gaussian (adjustable width=2-6)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

WIN_COSTAPER O

Tapered Cosine (adjustable width=1-2)

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

+ WIN_NORMALIZEAMPLITUDE

If this constant is added to one of the window constants above, an amplitude normalization is performed after applying the window. In this case the gain of the used window function is used for normalization which is the sum of all values of the window divided by their number. This compensates the damping of the amplitudes caused by the window. Therefore it is especially useful for measuring peaks within the spectrum.

+ WIN_NORMALIZEPOWER O

If this constant is added to one of the window constants above, a power normalization is performed after applying the window. Thus the loss of power is compensated. The ratio of the sum of the squared data before and after applying the window is used as a normalization factor.

O This constant requires the option Order Tracking or the option Spectral Analysis to be licensed.

If this argument is omitted, it will be set to the default value WIN_HANNING.

Adjustment

The one-sided Fourier width as a multiple of the frequency interval. The valid range is window specific within 1.0 to 6.0. The default is 1.5 for a tapered cosine window and 3.0 for all other adjustable data windows.

Permitted data structures are scalar value. All real data types are permitted.

SegmentLength

The length of individual FFTs. The valid range is 2 to data length / 2. The default value is 0 which sets the segment length to the double of the square root of the data length, rounded up to the next power of two.

Permitted data structures are scalar value. All integral data types are permitted.

If this argument is omitted, it will be set to the default value 0.

OverlapOrGap

If this argument is specified as a positive number, then it specifies the percentage overlap of the individual data segments. If it is specified as a negative number, then its amount specifies the gap between the individual data segments in samples.

Permitted data structures are scalar value. All real data types are permitted.

The value must be less or equal to 95.

If this argument is omitted, it will be set to the default value 50.

FFTLength

The length of the Fourier transforms. Zero padding applies if the FFT length is greater than the segment length. The valid range is from the segment length to the maximum limit of FFT. The default value is 0, which sets the FFT length equal to the segment length.

Permitted data structures are scalar value. All integral data types are permitted.

The value must be greater or equal to 0 and less or equal to 2147483648.

If this argument is omitted, it will be set to the default value 0.

dBLimit

The dB baseline to be applied to a dB spectrum. The range is between 1.0 dB to 120.0 dB, or 0 for no baseline.

Permitted data structures are scalar value. All real data types are permitted. The argument is transformed to the unit dB.

The value must be greater or equal to 0.0 dB and less or equal to 120.0 dB.

If this argument is omitted, it will be set to the default value 0.

MaxFrequencies

The maximum count of frequency values in the STFT (power-normalized PSD spectrum only). The range is 10 to 10000, or 0 for no limit.

Permitted data structures are scalar value. All real data types are permitted.

If this argument is omitted, it will be set to the default value 0.

Remarks

The result always has the data structure signal series with Z-component.

The X component contains the frequencies and the Z component contains the starting times of the segments. If the argument Signal is a data series, then the X component of the result contains Nyquist-normalized frequencies and the Z component contains the index values of the segment beginnings.

The following graph visualizes the settings for segment length, overlap and FFT length:

Available in

FlexPro Professional, Developer Suite

Examples

TransposeMatrix(STFTSpectrum(Signal, SPECTRUM_DBNORM, WIN_HANNING + WIN_NORMALIZEPOWER, 2, 256, 50, 0, 20, 0))

Calculates the STFT spectrum of a signal and then transposes the result so that frequencies are assigned to the Z component. dB normalized is selected as the spectrum type. The window applied is Cos2 Hanning -31 dB W=2. The FFT length is set to the segment length with a value of 256. This is an example from the Time-Frequency Spectral Analysis Tutorial.

See Also

CWTSpectrum Function

FFTn Function

FourierSpectrum Function

Periodogram Function

Spectral Analysis Option

Time-Frequency Spectral Analysis Object

Short-Time Fourier Transform (STFT)

Data Tapering Window

Time-Frequency Spectral Analysis Tutorial

Share article or send as email:

You might be interested in these articles