| contributions: | Please join https://github.com/cokelaer/spectrum |
|---|---|
| contributors: | https://github.com/cokelaer/spectrum/graphs/contributors |
| issues: | Please use https://github.com/cokelaer/spectrum/issues |
| documentation: | https://pyspectrum.readthedocs.io/ |
| Citation: | Cokelaer et al, (2017), 'Spectrum': Spectral Analysis in Python, Journal of Open Source Software, 2(18), 348, doi:10.21105/joss.00348 |
Spectrum contains tools to estimate Power Spectral Densities using methods based on Fourier transform, parametric methods or eigenvalues analysis:
- Fourier-based methods: correlogram, periodogram and Welch estimates. Standard tapering windows (Hann, Hamming, Blackman) and more exotic ones are available (DPSS, Taylor, ...).
- Parametric methods: Yule-Walker, BURG, MA and ARMA, covariance and modified covariance methods.
- Non-parametric (eigenanalysis) methods: MUSIC and minimum variance analysis.
- Multitapering (MTM).
The targeted audience is diverse. Although the use of power spectrum of a signal is fundamental in electrical engineering (e.g., radio communications, radar), it has a wide range of applications from cosmology (e.g., detection of gravitational waves), to music (pattern detection) or biology (mass spectroscopy).
The example below creates a cosine signal buried in white noise and estimates its power spectral density using a simple periodogram:
from spectrum import Periodogram, data_cosine
# generate a 1024-sample cosine at 200 Hz (amplitude 0.1) buried in white noise
data = data_cosine(N=1024, A=0.1, sampling=1024, freq=200)
# create the periodogram object and plot
p = Periodogram(data, sampling=1024)
p.plot(marker='o')All PSD classes share the same interface: instantiate the object, run the
estimation (or let it run lazily on first access), then call p.plot().
The functional API is also available for all methods when a quick result is
needed without a full object.
See the documentation for a complete tutorial, API reference and gallery of examples.
spectrum is available on PyPI:
pip install spectrum
and on conda-forge:
conda install -c conda-forge spectrum
To install conda itself, see https://docs.conda.io/en/latest/miniconda.html.
Please see GitHub for any issues, bugs, comments or contributions.
| release | description |
|---|---|
| 0.10.0 |
|
| 0.9.0 | |
| 0.8.1 |
|
