Source code for timescales.sim.psd
"""Power spectral density simulations."""
[docs]
def sim_lorentzian(freqs, knee_freq, exponent=2., offset=0., constant=0.):
"""Simulate a Lorentzian with a timescale.
Parameters
----------
freqs : 1d array
Frequency definition.
knee_freq : float
Frequency corresponding to the desired timescale.
exponent : float, optional, deafult: 2.
Slope of the post-knee log-log spectra.
offset : float, optional, default: 0.
Y-intercept.
constant : float, optional, default: 0.
Constant scaling factor that tapers high-frequency log-log power.
Returns
-------
powers : 1d array
Power spectral density.
"""
f_e = freqs**exponent
fk_e = knee_freq**exponent
powers = (
(10**offset + (constant * fk_e) + (constant * f_e)) / (fk_e + f_e)
)
return powers