Last Modified: June 25, 2019

Computes the single-sided or double-sided power spectrum of a time-domain signal.

A value that affects the output coefficients when **window type** is Kaiser, Gaussian, or Dolph-Chebyshev.

If **window type** is any other type of window, this node ignores this input.

This input represents the following information for each type of window:

**Kaiser**—Beta parameter**Gaussian**—Standard deviation**Dolph-Chebyshev**—The ratio,*s*, of the main lobe to the side lobe

This input is available only if you wire one of the following data types to **signal**:

- Waveform
- Waveform in complex double-precision, floating-point numbers
- 1D array of waveforms
- 1D array of waveforms in complex double-precision, floating-point numbers
- 1D array of double-precision, floating-point numbers
- 1D array of complex double-precision, floating-point numbers
- 2D array of double-precision, floating-point numbers
- 2D array of complex double-precision, floating-point numbers

**Default: **NaN—Causes this node to set beta to 0 for a Kaiser window, the standard deviation to 0.2 for a Gaussian window, and *s* to 60 for a Dolph-Chebyshev window

Time-domain window to apply to the signal.

Name | Value | Description |
---|---|---|

Rectangle | 0 | Applies a rectangle window. |

Hanning | 1 | Applies a Hanning window. |

Hamming | 2 | Applies a Hamming window. |

Blackman-Harris | 3 | Applies a Blackman-Harris window. |

Exact Blackman | 4 | Applies an Exact Blackman window. |

Blackman | 5 | Applies a Blackman window. |

Flat Top | 6 | Applies a Flat Top window. |

4 Term B-Harris | 7 | Applies a 4 Term B-Harris window. |

7 Term B-Harris | 8 | Applies a 7 Term B-Harris window. |

Low Sidelobe | 9 | Applies a Low Sidelobe window. |

Blackman Nutall | 11 | Applies a Blackman Nutall window. |

Triangle | 30 | Applies a Triangle window. |

Bartlett-Hanning | 31 | Applies a Bartlett-Hanning window. |

Bohman | 32 | Applies a Bohman window. |

Parzen | 33 | Applies a Parzen window. |

Welch | 34 | Applies a Welch window. |

Kaiser | 60 | Applies a Kaiser window. |

Dolph-Chebyshev | 61 | Applies a Dolph-Chebyshev window. |

Gaussian | 62 | Applies a Gaussian window. |

Force | 64 | Applies a Force window. |

Exponential | 65 | Applies an Exponential window. |

**Default: **Rectangle

The input time-domain signal, usually in volts.

The time-domain record must contain at least three cycles of the signal for a valid estimate.

This input accepts the following data types:

- Waveform
- Waveform in complex double-precision, floating-point numbers
- 1D array of waveforms
- 1D array of waveforms in complex double-precision, floating-point numbers
- Double-precision, floating-point number
- 1D array of double-precision, floating-point numbers
- 1D array of complex double-precision, floating-point numbers
- 2D array of double-precision, floating-point numbers
- 2D array of complex double-precision, floating-point numbers

Length of each set of data.

The node performs computation for each set of data. **sample length** must be greater than zero.

This input is available only if you wire a double-precision, floating-point number to **signal**.

**Default: **100

A Boolean specifying whether this node computes the single-sided or double-sided power spectrum.

True | Computes the single-sided power spectrum. |

False | Computes the double-sided power spectrum. |

This input is available only if you wire one of the following data types to **signal**:

- Waveform
- 1D array of waveforms
- Double-precision, floating-point number
- 1D array of double-precision, floating-point numbers
- 2D array of double-precision, floating-point numbers

**Default: **False

Error conditions that occur before this node runs.

The node responds to this input according to standard error behavior.

Standard Error Behavior

Many nodes provide an **error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

**Default: **No error

Sample period of the time-domain signal in seconds.

Set this input to 1/*fs*, where *fs* is the sampling frequency of the time-domain signal.

This input is available only if you wire one of the following data types to **signal**:

- Double-precision, floating-point number
- 1D array of double-precision, floating-point numbers
- 1D array of complex double-precision, floating-point numbers
- 2D array of double-precision, floating-point numbers
- 2D array of complex double-precision, floating-point numbers

**Default: **1

Power spectrum of the input signal.

This output can return a cluster or a 1D array of clusters.

Start frequency, in Hz, of the spectrum.

Frequency resolution, in Hz, of the spectrum.

Magnitude of the power spectrum.

Determining the unit of measurement

If the input signal is in volts (V), the unit of this output is volts-rms squared (V_{rms}^{2} ) for power spectrum. If the input signal is not in volts, the units of this output is the input signal unit-rms squared for power spectrum. If this node returns results in decibels, and the input signal is in volts, the units of this output is dBV for power spectrum.

Error information.

The node produces this output according to standard error behavior.

Standard Error Behavior

**error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

If **single-sided** is True, this node first computes the double-sided power spectrum, and then converts the power spectrum into a single-sided power spectrum.

This node uses the fast Fourier transform (FFT) and discrete Fourier transform (DFT) routines to compute the double-sided power spectrum, which is given by the following equation:

${S}_{xx}=\frac{{\left|F\left\{X\right\}\right|}^{2}}{{n}^{2}}$

where

*x*is the input**signal***S*_{xx}is the output sequence**power spectrum**-
*n*is the number of samples in the input**signal**

When the number of samples in the input signal is a valid power of 2, such that
$n={2}^{m}$ for
$m=1,\text{\hspace{0.17em}}2,3,\text{\hspace{0.17em}}\text{\hspace{0.17em}}\mathrm{...},\text{\hspace{0.17em}}23$, this node computes the fast Fourier transform of a real-valued sequence using the fast radix-2 FFT algorithm and efficiently scales the magnitude square. The largest **power spectrum** the node can compute using the FFT is 2^{23} (8,388,608 or 8M).

When the number of samples in the input signal is not a valid power of 2 but is factorable as the product of small prime numbers, this node computes the discrete Fourier transform of a real-valued sequence using an efficient DFT algorithm and scales the magnitude square. The largest **power spectrum** the node can compute using the fast DFT is 2^{22} - 1 (4,194,303 or 4M - 1).

Let *Y* be the Fourier transform of the input **signal** and *n* be the number of samples in it. Then the following equation is true.

${\left|{Y}_{n-i}\right|}^{2}=\left|{Y}_{-i}^{2}\right|$

You can interpret the power in the (*n* - *i*)^{th} element of *Y* as the power in the -*i*^{th} element of the sequence, which represents the power in the -*i*^{th} harmonic. You can find the total power for the *i*^{th} harmonic (excluding DC and Nyquist components) by using the following equation.

$\begin{array}{cc}2{\left|{Y}_{i}\right|}^{2}={\left|{Y}_{i}\right|}^{2}+{\left|{Y}_{n-1}\right|}^{2}& 0<i<\frac{n}{2}\end{array}$

The total power in the DC and Nyquist components are ${\left|{Y}_{0}\right|}^{2}$ and ${\left|{Y}_{\frac{n}{2}}\right|}^{2}$ respectively.

If *n* is even, let
$k=\frac{n}{2}$. The following table shows the format of the output sequence *S*_{xx} corresponding to **power spectrum**.

Array Element of Double-Sided Spectrum | Array Element of Single-Sided Spectrum | Interpretation |
---|---|---|

S_{xx0} |
S_{xx0} |
Power in DC component |

S_{xx1} = S_{xx(n-1)} |
S_{xx1} * 2 |
Power at frequency Δf |

S_{xx2} = S_{xx(n-2)} |
S_{xx2} * 2 |
Power at frequency 2Δf |

S_{xx3} = S_{xx(n-3)} |
S_{xx3} * 2 |
Power at frequency 3Δf |

$\vdots $ | $\vdots $ | $\vdots $ |

S_{xx(K-2)} = S_{xxn-(k-2)} |
S_{xx(k-2)} * 2 |
Power at frequency (k - 2)Δf |

S_{xx(K-1)} = S_{xxn-(k-1)} |
S_{xx(K-1)} * 2 |
Power at frequency (k - 1)Δf |

S_{XXk} |
S_{XXk} |
Power in Nyquist harmonic |

If *n* is odd, let
$k=\frac{n-1}{2}$. The following table shows the format of the output sequence *S*_{xx} corresponding to **power spectrum**.

Array Element of Double-Sided Spectrum | Array Element of Single-Sided Spectrum | Interpretation |
---|---|---|

S_{xx0} |
S_{xx0} |
Power in DC component |

S_{xx1} = S_{xx(n-1)} |
S_{xx1} * 2 |
Power at frequency Δf |

S_{xx2} = S_{xx(n-2)} |
S_{xx2} * 2 |
Power at frequency 2Δf |

S_{xx3} = S_{xx(n-3)} |
S_{xx3} * 2 |
Power at frequency 3Δf |

$\vdots $ | $\vdots $ | $\vdots $ |

S_{xx(K-2)} = S_{xxn-(k-2)} |
S_{xx(K-2)} * 2 |
Power at frequency (k - 2)Δf |

S_{xx(K-1)} = S_{xxn-(k-1)} |
S_{xx(K-1)} * 2 |
Power at frequency (k - 1)Δf |

S_{XX(n-k)} |
S_{xxk} * 2 |
Power at frequency kΔf |

**Where This Node Can Run: **

Desktop OS: Windows

FPGA: Not supported

Web Server: Not supported in VIs that run in a web application