siganalysis
Python (3.12+) routines for analyzing signals. Some of the functions include:
- Calculating Short-Time Fourier Transform
- Smoothing a signal
- Plotting an STFT's spectrogram
- Calculating the peak hold of an STFT in the freq domain
- Plotting the peak hold of an STFT
The above functions are handy when analyzing signals recorded in the time domain, such as using a TEAC LX-10 data recorder, and seeing the frequency spectrum for Electromagnetic Compatibility (EMC) analyses.
Installation
You can install siganalysis either via the Python Package Index (PyPI) or from source.
To install using pip:
$ pip install siganalysis
The plotting functions need matplotlib, which is an optional
dependency so that it is only installed for those who plot. Install it
alongside siganalysis with the plotting extra:
$ pip install siganalysis[plotting]
Source: https://github.com/questrail/siganalysis
Requirements
siganalysis requires the following Python packages:
The plotting functions, plot_spectrogram() and plot_peak_hold(),
additionally require matplotlib, which is installed with the
plotting extra described above. They live in siganalysis.plotting,
so that importing siganalysis does not import matplotlib, but
they remain reachable from the package itself:
import siganalysis
siganalysis.plot_peak_hold(axis, stft_data, freq_array)
Contributing
Contributions are welcome! To contribute please:
- Fork the repository
- Create a feature branch
- Add code and tests
- Pass lint and tests
- Submit a pull request
Development Setup
siganalysis uses uv to manage the virtualenv and dependencies, and just as the task runner.
Use the following commands to create the virtualenv, install the dependencies (including the development group), and list the available just recipes.
$ uv sync
$ just
The most common recipes are:
$ just test # Run the tests using pytest
$ just fix # Lint and format the code using ruff
$ just add X # Add X as a dependency
$ just out # List the outdated dependencies
License
siganalysis is released under the MIT license. Please see the LICENSE.txt file for more information.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file siganalysis-0.8.0.tar.gz.
File metadata
- Download URL: siganalysis-0.8.0.tar.gz
- Upload date:
- Size: 67.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c05985c30706a6dd316bff5024fd6f2a8ad127696481872d0a05fa44864d34c
|
|
| MD5 |
b2fc6dacef1825b8673cdaa7a4597dbe
|
|
| BLAKE2b-256 |
90fe942606e416c8db6c5972144253ef20e87f38d1243ec31189c293bc7f0ca1
|
File details
Details for the file siganalysis-0.8.0-py3-none-any.whl.
File metadata
- Download URL: siganalysis-0.8.0-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0fb04baa2499745067dba85ff7c8f3065468cb9468ed5396ea43a0f38015ce4
|
|
| MD5 |
4650219a560c722034450b670fa5cf00
|
|
| BLAKE2b-256 |
26d68295ceac8ec1d580949d698854420d6e8a5c1a494ee159c1f05cd1789272
|