scientimate.psd2timeseries#

Eta, t, Hm0, fp, fEta, SxxEta, a = scientimate.psd2timeseries(f, Sxx, fs=2, CalcMethod='fft', dispout='no')

Description#

Generate random wave data from a given spectrum

Inputs#

f

Frequency (Hz)

Sxx

Power spectral density (m^2s)

fs=8

Sampling frequency that data collected at in (Hz)

CalcMethod=’fft’
Method for Calculating random time series,
‘fft’: using Fast Fourier Transform, ‘sp’: using wave superposition
dispout=’no’

Define to display outputs or not (‘yes’: display, ‘no’: not display)

Outputs#

Eta

Water Surface Level Time Series in (m)

t

Time in (s)

Hm0

Zero moment wave height (m)

fp

Peak wave frequency (Hz), fp=1/Tp (Tp: Peak wave period (s))

fEta

Frequency from generated time series(Hz)

SxxEta

Power spectral density from generated time series (m^2s)

a

Wave amplitude for for one-sided spectrum (0<fEta<fs/2) from generated time series (m)

Examples#

import scientimate as sm
import numpy as np

N=2**11
fs=8
df=fs/N #Frequency difference
f=np.arange(0,fs/2+df,df) #Frequency vector
f[0]=f[1]/2 #Assign temporarily non-zero value to fisrt element of f to prevent division by zero
Sxx=0.016*9.81**2/((2*np.pi)**4*(f**5))*np.exp(-1.25*(0.33/f)**4) #Calculating Spectrum
f[0]=0
Sxx[0]=0
Eta,t,Hm0,fp,fEta,SxxEta,a=sm.psd2timeseries(f,Sxx,fs,'fft','yes')

References#

Branlard, E. (2010). Generation of time series from a spectrum. Technical University Denmark. National Laboratory for Sustainable Energy.