# FFT Power Spectrum and PSD (Power Spectrum » Single-shot) (G Dataflow)

Version:

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

## window parameter

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

## window type

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

## reset

A Boolean that specifies whether to reset the internal state of the node.

 True Resets the internal state of the node. False Does not reset the internal state of the node.

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

Default: False

## signal

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

## sample length

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

## dB on

A Boolean that specifies whether this node returns the results in decibels.

 True Returns the results in decibels. False Returns the results in the original units.

Default: False

## single-sided

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 in

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.

error in does not contain an error error in contains an error
If no error occurred before the node runs, the node begins execution normally.

If no error occurs while the node runs, it returns no error. If an error does occur while the node runs, it returns that error information as error out.

If an error occurred before the node runs, the node does not execute. Instead, it returns the error in value as error out.

Default: No error

## dt

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

Power spectrum of the input signal.

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

### f0

Start frequency, in Hz, of the spectrum.

### df

Frequency resolution, in Hz, of the spectrum.

### magnitude

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 (Vrms2 ) 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 out

Error information.

The node produces this output 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.

error in does not contain an error error in contains an error
If no error occurred before the node runs, the node begins execution normally.

If no error occurs while the node runs, it returns no error. If an error does occur while the node runs, it returns that error information as error out.

If an error occurred before the node runs, the node does not execute. Instead, it returns the error in value as error out.

## Algorithm for Computing the Power Spectrum

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{{|F\left\{X\right\}|}^{2}}{{n}^{2}}$

where

• x is the input signal
• Sxx 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}}...,\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 223 (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 222 - 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.

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

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

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

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

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

Array Element of Double-Sided Spectrum Array Element of Single-Sided Spectrum Interpretation
Sxx0 Sxx0 Power in DC component
Sxx1 = Sxx(n-1) Sxx1 * 2 Power at frequency Δf
Sxx2 = Sxx(n-2) Sxx2 * 2 Power at frequency 2Δf
Sxx3 = Sxx(n-3) Sxx3 * 2 Power at frequency 3Δf
$⋮$ $⋮$ $⋮$
Sxx(K-2) = Sxxn-(k-2) Sxx(k-2) * 2 Power at frequency (k - 2)Δf
Sxx(K-1) = Sxxn-(k-1) Sxx(K-1) * 2 Power at frequency (k - 1)Δf
SXXk SXXk Power in Nyquist harmonic

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

Array Element of Double-Sided Spectrum Array Element of Single-Sided Spectrum Interpretation
Sxx0 Sxx0 Power in DC component
Sxx1 = Sxx(n-1) Sxx1 * 2 Power at frequency Δf
Sxx2 = Sxx(n-2) Sxx2 * 2 Power at frequency 2Δf
Sxx3 = Sxx(n-3) Sxx3 * 2 Power at frequency 3Δf
$⋮$ $⋮$ $⋮$
Sxx(K-2) = Sxxn-(k-2) Sxx(K-2) * 2 Power at frequency (k - 2)Δf
Sxx(K-1) = Sxxn-(k-1) Sxx(K-1) * 2 Power at frequency (k - 1)Δf
SXX(n-k) Sxxk * 2 Power at frequency kΔf

Where This Node Can Run:

Desktop OS: Windows

FPGA: This product does not support FPGA devices

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