Skip to main content

Spectrum Analysis Tools

Project description

SPECTRUM : Spectral Analysis in Python

https://badge.fury.io/py/spectrum.svg https://github.com/cokelaer/spectrum/actions/workflows/main.yml/badge.svg?branch=main https://coveralls.io/repos/cokelaer/spectrum/badge.png?branch=main https://anaconda.org/conda-forge/spectrum/badges/license.svg https://anaconda.org/conda-forge/spectrum/badges/version.svg https://anaconda.org/conda-forge/spectrum/badges/downloads.svg https://joss.theoj.org/papers/e4e34e78e4a670f2ca9a6a97ce9d3b8e/status.svg
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

Overview of PSD methods available in Spectrum

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

  • add python 3.12 and 3.13 support

  • add sos2ss, sos2tf, etc. fix #85, #88

0.9.0

0.8.1

  • move CI to GitHub Actions

  • include Python 3.9 support

  • include PR from tikuma-lshhsc contributor to speedup eigenfre module

  • fix deprecated warnings

Some notebooks (external contributions)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spectrum-0.10.0.tar.gz (233.4 kB view details)

Uploaded Source

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

Hashes for spectrum-0.10.0.tar.gz
Algorithm Hash digest
SHA256 8203c2a06004bef60d4dc9c92d4f5c252ccf41b1cfe372ef2e61f01fbfb91c0a
MD5 e0f57d3e7a8ff47b81922bcd6bc34be3
BLAKE2b-256 023c95180c5969c8ac658e0e66bc6b4de682764e3a8aa1cb499e1a576ce5ebac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page