Time Series From a PSD: Scaling, Units, Sidedness

technical-note
wave-spectra-sim
How to generate a time series from a power spectral density without getting the conventions wrong.
Author

Brian Bingham

Published

May 3, 2026

I write these with Claude Code. I lead, it drafts and revises on my instruction, and I review the final carefully before posting. Mistakes are mine. The technical note itself predates AI assistance; only this companion essay was drafted with Claude.

Two example time series — generated by summation of cosines (blue) and an FFT method (red) — sampled from the same target PSD with the same random phases. They overlay to numerical precision. From the technical note, Figure 2.

“While the relationship between a spectral description and a time series sampled from that description is mathematically well defined, generating sample time series consistent with the physical description requires attention to the details of spectra normalization scaling, engineering unit conventions, and sidedness of the spectral representation.” — from the abstract

What it is

A short technical note on generating a sample time series from a power spectral density. It walks through the Fourier-transform preliminaries, then derives two simulation methods — summation of cosines and an FFT-based variant — with explicit accounting for the choices that quietly bite practitioners: angular vs. ordinary frequency, one-sided vs. two-sided PSD, and the scaling factors that attach to each combination. A worked example puts both methods on the same footing and shows that the FFT variant runs about sixty times faster on the test problem; a MATLAB reference implementation is linked from the report.

Why release it now

The note was written in 2023 as background for the maritime simulation tools we use for autonomous surface and underwater vehicles. It isn’t a research contribution — it’s a synthesis — so there was never a peer-review pipeline for it. But the same conventions confusion comes up every time a graduate student or a colleague needs to drive a simulator from an empirical spectrum, and there’s no single short reference I can hand over. Putting it on Zenodo with a DOI gives it a citable, indexable home; this companion essay puts it in front of readers who wouldn’t otherwise find a .pdf on a project drive.

Who it’s for

Engineers who need physically meaningful stochastic inputs to a simulation — wave fields, wind, vehicle disturbances, sensor noise — from a spectral specification. Especially useful the first time you realize the empirical spectrum you’ve been handed is one-sided, your implementation is two-sided, and the variance you get back is off by a factor of two.

Provenance

Originally released as Naval Postgraduate School technical report NPS-MAE-23-002, dated 1 April 2023. The present PDF has been reformatted in the IEEEtran journal style for compactness; the technical content is unchanged from the original. The MATLAB reference implementation is in bsb808/OceanNotes on GitHub.

Download PDF