fooof
fooof copied to clipboard
Mixing of linear and log10 scale in `gen_power_spectrum`
When assembling the synthetic power spectra in gen.py
here:
powers = np.power(10, ap_vals + pe_vals + noise)
obviously it is assumed, that all components are on log10 scale. However when tracing the periodic component (gen_periodic
-> get_pe_func
-> gaussian_function
), it is clear that the Gaussians are evaluated on a linear scale and then still exponentiated.
To directly see this, one can simply do:
import fooof
import matplotlib.pyplot as ppl
gauss_peak_val = 2
ppl.plot(*fooof.sim.gen_power_spectrum([1, 40], [0, 1e-10], [20, gauss_peak_val, 1]))
which results in:
Note that the peak value in that supposedly linear scale is $10^2 = 100$, whereas the gauss_peak_val
was set to 2. Also note that I effectively disabled the aperiodic component by setting the exponent very close to 0 to show this as clearly as possible.