Source code for shocksgo.psd

import numpy as np

__all__ = ['power_spectrum']


[docs]def power_spectrum(fluxes, d=60): """ Compute the power spectrum of ``fluxes`` in units of [ppm^2 / microHz]. Parameters ---------- fluxes : `~numpy.ndarray` Fluxes with zero mean. d : float Time between samples [s]. Returns ------- freq : `~numpy.ndarray` Frequencies power : `~numpy.ndarray` Power at each frequency in units of [ppm^2 / microHz] """ fft = np.fft.rfft(1e6 * fluxes) power = (fft * np.conj(fft)).real * 1e-6 / len(fluxes) freq = np.fft.rfftfreq(len(fluxes), d) return freq, power