Spectrum Analysis Tools
Project description
SPECTRUM : Spectral Analysis in Python
- contributions:
Please join https://github.com/cokelaer/spectrum
- contributors:
- issues:
Please use https://github.com/cokelaer/spectrum/issues
- documentation:
- Citation:
Cokelaer et al, (2017), ‘Spectrum’: Spectral Analysis in Python, Journal of Open Source Software, 2(18), 348, doi:10.21105/joss.00348
Overview
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).
Quick Start
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.
Installation
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.
Contributions
Please see GitHub for any issues, bugs, comments or contributions.
Changelog (summary)
release |
description |
|---|---|
0.10.0 |
|
0.9.0 |
|
0.8.1 |
|
Some notebooks (external contributions)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file spectrum-0.10.0.tar.gz.
File metadata
- Download URL: spectrum-0.10.0.tar.gz
- Upload date:
- Size: 233.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8203c2a06004bef60d4dc9c92d4f5c252ccf41b1cfe372ef2e61f01fbfb91c0a
|
|
| MD5 |
e0f57d3e7a8ff47b81922bcd6bc34be3
|
|
| BLAKE2b-256 |
023c95180c5969c8ac658e0e66bc6b4de682764e3a8aa1cb499e1a576ce5ebac
|