Journal of Open Source Software, 2(18), 348, doi:10.21105/joss.00348
Spectrum is a Python library that includes tools to estimate Power Spectral Densities. 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 in 2016), to music (pattern detection) or biology (mass spectroscopy).
Methods available are based on Fourier transform, parametric methods or eigenvalues analysis. Although standard methods such as periodogram are available, less common methods (e.g. multitapering) are also implemented:
- The Fourier methods are based upon correlogram, periodogram and Welch estimates. Standard tapering windows (Hann, Hamming, Blackman) and more exotic ones are available (DPSS, Taylor, …)(Harris 1978; Welch 1967; Marple 1987).
- The parametric methods are based on Yule-Walker, BURG, MA and ARMA, covariance and modified covariance methods (Marple 1987; Percival and Walden 1993).
- Non-parametric methods based on eigen analysis (e.g., MUSIC) and minimum variance analysis are also implemented (Marple 1987).
- Multitapering method is also available (Percival and Walden 1993)
- Classical tools useful to spectral analysis and more generally signal processing such as window tapering (Harris 1978) or transfer function are also available within the library.