Contact

PERIODOGRAM Function (Gnumeric)

Statistical Intermediate Gnumeric

Inspect Gnumeric PERIODOGRAM frequency-bin magnitudes, window options and zero padding without mistaking outputs for a power-density estimate.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

PERIODOGRAM transforms a sampled series into frequency-bin magnitudes. Despite the function name, the pinned Gnumeric implementation returns the square root of each complex Fourier coefficient’s squared magnitude. Its output is therefore not automatically a squared-power spectrum or a calibrated spectral-density estimate.

Syntax and scope

PERIODOGRAM(ordinates, [filter], [abscissae], [interpolation], [number])

ordinates is a one-row or one-column sample range. filter selects 0 for no window, 1 for Bartlett, 2 for the cosine window called “Hahn” in the help (implemented as Hann), or 3 for Welch. Omitted filter means 0.

Without abscissae, samples are treated as regularly spaced. The implementation ignores blank, text, and Boolean entries, then pads the numerical series with zeroes to a power-of-two transform length. Output is one column with half that transform length; it starts with the zero-frequency component and omits the Nyquist bin.

abscissae, interpolation, and number support an additional resampling path. With abscissae supplied, the implementation defaults interpolation to linear, despite the help’s general “defaults to none” wording. This guide’s reproducible examples deliberately omit that path. Unevenly spaced data requires separate validation of increasing coordinates, interpolation choice, and resampled length before interpreting a spectrum.

Worked example: one cycle in eight samples

Enter these eight numerical samples in A1:A8, keeping their order:

Cell Value
A1 0
A2 0.7071067811865476
A3 1
A4 0.7071067811865476
A5 0
A6 -0.7071067811865476
A7 -1
A8 -0.7071067811865476

Use =INDEX(PERIODOGRAM(A1:A8),1,1) for the first output; change the row index to 2, 3, and 4 for the rest. The expected magnitudes are approximately 0, 0.5, 0, and 0, with tiny floating-point residues possible in the zero bins. =ROWS(PERIODOGRAM(A1:A8)) returns 4.

The 0.5 occurs at bin k=1, represented by output row 2 because row 1 is k=0. If samples are one second apart, that bin represents 1/8 cycles per second. The result does not return the frequency labels: calculate them from the sampling interval and transform length.

Advanced use: distinguish amplitude from power

The synthetic unit-amplitude sinusoid has a magnitude of 0.5 in the returned positive-frequency bin because the normalized transform also has a corresponding negative-frequency coefficient. Do not label 0.5 as the signal’s total power or automatically compare it with a squared-power spectrum from another program.

For an additional scaling check, put 1 in every cell of B1:B8. =INDEX(PERIODOGRAM(B1:B8),1,1) returns 1, the constant series’ zero-frequency component. The function does not automatically subtract the sample mean. A baseline offset can therefore dominate the first bin; any mean removal should be an explicit preprocessing step appropriate to the analysis.

Windowing changes leakage and amplitude. The unwindowed example does not establish normalization corrections for the other filters. Likewise, zero-padding changes bin spacing without creating new measurement information.

Errors and troubleshooting

=PERIODOGRAM(A1:A8,4) returns #VALUE! because 4 is not a supported filter selector. A two-dimensional input block is rejected rather than treated as multiple independent series. Missing or text samples can change the effective sequence length and spacing assumption when ignored; clean a time series deliberately rather than silently dropping gaps.

The INDEX-based examples inspect array elements without relying on a particular GUI array-entry workflow. For real measurements, check sampling interval, aliasing, detrending, output scaling, and window convention before drawing conclusions from a peak.

Version and verification

This guide is pinned to official Gnumeric 1.12.57 time-series source. The first introduction release and any final working release are not established. The selected examples were recalculated by the actual Gnumeric 1.12.57 engine under C.UTF-8 on 17 October 2026. No GUI array-entry test, uneven-grid interpolation certification, or spectral-density calibration is claimed.

Official references