TSA Bispectrum VI
- Updated2023-02-21
- 12 minute(s) read
TSA Bispectrum VI
Owning Palette: Correlation and Spectral Analysis VIs
Requires: Advanced Signal Processing Toolkit
Computes the single-sided bispectrum of a univariate time series using the fast Fourier transform (FFT) or the autoregressive (AR) model based method. The bispectrum is a type of third-order spectrum, which is related to the third moment (skewness) of a time series. The resulting bispectrum can detect the asymmetric nonlinearities in the input time series. Wire data to the Xt input to determine the polymorphic instance to use or manually select the instance.
TSA Bispectrum (Waveform)

![]() |
initialize? specifies whether the input block of data is the first block. The default is FALSE, which means the input block of data is not the first block. When the input block of data is not the first block, this VI initializes the internal state of the block of data to the final state by using the previous call to this VI instance. When initialize? is TRUE, the input block of data is the first block and this VI initializes the internal state of the block of data to zero and processes one block of data. To process consecutive blocks of data, set initialize? to TRUE for the first block and FALSE for all other blocks of data. |
||||||||||||||||||
![]() |
frequency bins specifies the number of frequency bins for which this VI computes the bispectrum. The resulting bispectrum S(f,f) is a square 2D array with the size (frequency bins/2+1). The default is –1, which means this VI calculates an appropriate value for the frequency bins. Refer to the Details section for information about how this VI calculates the frequency bins value. | ||||||||||||||||||
![]() |
Xt specifies the univariate time series. | ||||||||||||||||||
![]() |
method specifies to compute the bispectrum with the fast Fourier transform (FFT) based or autoregressive (AR) model based method. The default is FFT. Refer to the Details section for more information about each method. | ||||||||||||||||||
![]() |
window info specifies the information of the sliding window that divides the time series into subsequences.
| ||||||||||||||||||
![]() |
error in describes error conditions that occur before this node runs. This input provides standard error in functionality. | ||||||||||||||||||
![]() |
dB on? specifies whether this VI returns the S(f,f) in decibels or in a linear scale. If dB on? is TRUE, this VI returns the S(f,f) in decibels. If dB on? is FALSE, this VI returns the S(f,f) in a linear scale. The default is TRUE. | ||||||||||||||||||
![]() |
averaging parameters specifies how this VI computes the averaging. The specifications of the parameters include the type of averaging, the type of weighting, and the number of averages.
| ||||||||||||||||||
![]() |
AR setting specifies the settings for the autoregressive (AR) model. This option is valid only when the method is AR Model.
| ||||||||||||||||||
![]() |
S(f,f) returns the magnitude of the single-sided bispectrum S(f1, f2). | ||||||||||||||||||
![]() |
freq bins returns the frequency bins at which this VI estimates the bispectrum. | ||||||||||||||||||
![]() |
averaging done? returns whether the averaging process is complete. averaging done? returns TRUE when the number of averages this VI completes is greater than or equal to the number of averages specified in averaging parameters. Otherwise, averaging done? returns FALSE. averaging done? is always TRUE if the selected averaging mode is No averaging. | ||||||||||||||||||
![]() |
unit returns the engineering unit of the PSD. You can specify an engineering unit for a time series by using the TSA Scale to EU VI. | ||||||||||||||||||
![]() |
error out contains error information. This output provides standard error out functionality. |
TSA Bispectrum (Array)

![]() |
sampling rate specifies the sampling rate, in hertz, of the univariate time series Xt. The default is 1. | ||||||||||||||||||
![]() |
initialize? specifies whether the input block of data is the first block. The default is FALSE, which means the input block of data is not the first block. When the input block of data is not the first block, this VI initializes the internal state of the block of data to the final state by using the previous call to this VI instance. When initialize? is TRUE, the input block of data is the first block and this VI initializes the internal state of the block of data to zero and processes one block of data. To process consecutive blocks of data, set initialize? to TRUE for the first block and FALSE for all other blocks of data. |
||||||||||||||||||
![]() |
frequency bins specifies the number of frequency bins for which this VI computes the bispectrum. The resulting bispectrum S(f,f) is a square 2D array with the size (frequency bins/2+1). The default is –1, which means this VI calculates an appropriate value for the frequency bins. Refer to the Details section for information about how this VI calculates the frequency bins value. | ||||||||||||||||||
![]() |
Xt specifies the univariate time series. | ||||||||||||||||||
![]() |
method specifies to compute the bispectrum with the fast Fourier transform (FFT) based or autoregressive (AR) model based method. The default is FFT. Refer to the Details section for more information about each method. | ||||||||||||||||||
![]() |
window info specifies the information of the sliding window that divides the time series into subsequences.
| ||||||||||||||||||
![]() |
error in describes error conditions that occur before this node runs. This input provides standard error in functionality. | ||||||||||||||||||
![]() |
dB on? specifies whether this VI returns the S(f,f) in decibels or in a linear scale. If dB on? is TRUE, this VI returns the S(f,f) in decibels. If dB on? is FALSE, this VI returns the S(f,f) in a linear scale. The default is TRUE. | ||||||||||||||||||
![]() |
averaging parameters specifies how this VI computes the averaging. The specifications of the parameters include the type of averaging, the type of weighting, and the number of averages.
| ||||||||||||||||||
![]() |
AR setting specifies the settings for the autoregressive (AR) model. This option is valid only when the method is AR Model.
| ||||||||||||||||||
![]() |
S(f,f) returns the magnitude of the single-sided bispectrum S(f1, f2). | ||||||||||||||||||
![]() |
freq bins returns the frequency bins at which this VI estimates the bispectrum. | ||||||||||||||||||
![]() |
averaging done? returns whether the averaging process is complete. averaging done? returns TRUE when the number of averages this VI completes is greater than or equal to the number of averages specified in averaging parameters. Otherwise, averaging done? returns FALSE. averaging done? is always TRUE if the selected averaging mode is No averaging. | ||||||||||||||||||
![]() |
error out contains error information. This output provides standard error out functionality. |
TSA Bispectrum Details
This VI computes the single-sided bispectrum of a univariate time series using the FFT based method according to the following equation:
S(f1, f2) = A[X(f1)X(f2)X*(f1+f2)]
A[X] denotes the averaging value of X. X(f) is the Fourier transform of the time series Xt according to the following equation.

where N is the number of frequency bins and fs is the sampling rate. Before computing the bispectrum, this VI adjusts the value of the window length, length, and the value of frequency bins according to the following table.
| signal block size | length | adjusted length | frequency bins | adjusted frequency bins |
|---|---|---|---|---|
| <=1024 | –1 | signal block size | –1 | signal block size |
| >1024 | –1 | 1024 | –1 | 1024 |
| arbitrary | arbitrary | no change | –1 | length |
| arbitrary | –1 | signal block size | <signal block size | signal block size |
| arbitrary | –1 | signal block size | >=signal block size | no change |
| arbitrary | arbitrary | no change | >=length | no change |
| arbitrary | arbitrary | no change | <length | length |
This VI computes the bispectrum of a univariate time series using the AR model based method according to the following equation:
S(f1, f2) = bA[X(f1)X(f2)X*(f1+f2)]
b is the third moment of estimated noise series of AR model.

s2 is the noise variance of the estimated AR model of the time series and a is an array that contains the coefficients of the AR model. a=[1, a1, a2, … ,an], where n is AR order. Before computing the bispectrum, this VI wraps a to an N-point series a'.
Examples
Refer to the following VIs for examples of using the TSA Bispectrum VI:
- Bispectrum Analysis VI: labview\examples\Time Series Analysis\TSAGettingStarted
- Beam Crack Detection VI: labview\examples\Time Series Analysis\TSAApplications














