# POWSPEC

## Purpose:

Calculates the power spectrum.

## Syntax:

POWSPEC(series, len)

 series - Any series or multi-column table. len - Optional. An integer, the FFT length. Defaults to the length of the input series. If len > length(series), the series is padded with zeros.

## Returns:

A series or table.

## Example:

W1: gsin(100,1.0,0.2)*5;setvunits("V")

W2: powspec(W1)

W3: spectrum(W1) max(W2) occurs at 0.2 Hz. with amplitude (5^2)/2 = 12.5.

mean(W1*W1) == 12.5

sum(W2)     == 12.5

max(W2)     == 12.5

max(W3)     == 5.0

## Remarks:

The power spectrum is calculated by the FFT and has the following form:

powspec(s) = 2*mag(fft(s)/length(s))^2

with a total of int(len/2) + 1 frequency values from 0 to Fs/2 Hz, where Fs is the sampling rate of the data (i.e. rate(s)). The first value (DC component) and the last value (at Fs/2, the Nyquist frequency) are not scaled by 2 to preserve Parseval’s theorem.

For an N term power spectrum where N is the length of the input series, by Parseval’s theorem, the sum of the power spectrum terms equals the mean of the series squared, i.e.:

sum(powspec(s)) == mean(s*s)

A sinewave of amplitude A, frequency F, sample interval T (where T = 1/Fs), and length L, yields a power spectrum with an amplitude of A2/2 at frequency F. If the input series is in Volts, the resulting power spectrum has units of V 2.

If len is larger than the length of series, the series is zero padded to length len before calculating the power spectrum. If len is less than the series length, the series is truncated to length len. If not specified, len defaults to the length of series.

See SPECTRUM to compute a magnitude normalized FFT.

See PSD to compute the power spectral density.

See WINFUNC for a list of windowing functions and amplitude correction schemes.

See DADiSP/FFTXL to optimize the underlying FFT computation.