dasp-stacker


Namedasp-stacker JSON
Version 0.1.1 PyPI version JSON
download
home_pagehttps://github.com/ORNL/DASP
SummaryDimensionally aligned signal projection library
upload_time2024-02-12 19:03:57
maintainer
docs_urlNone
authorJacob Smith
requires_python>=3.9
license
keywords signal processing signal visualization
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Dimensionally Aligned Signal Projection (DASP)

[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)


## Summary
Dimensionally aligned signal projection (DASP) algorithms are used to analyze fast Fourier transforms (FFTs) and generate visualizations that help focus on the harmonics for specific signals. At a high level, these algorithms extract the FFT segments around each harmonic frequency center, and then align them in equally sized arrays ordered by increasing distance from the base frequency. This allows for a focused view of the harmonic frequencies, which, among other use cases, can enable machine learning algorithms to more easily identify salient patterns. This work seeks to provide an effective open-source implementation of the DASP algorithms as well as functionality to help explore and test how these algorithms work with an interactive dashboard and signal-generation tool.

The DASP library is implemented in Python and contains four types of algorithms for implementing these feature engineering techniques: fixed harmonically aligned signal projection (HASP), decimating HASP, interpolating HASP, and frequency aligned signal projection (FASP). Each algorithm returns a numerical array, which can be visualized as an image. For consistency FASP, which is the terminology used for the short-time Fourier transform, has been implemented as part of the library to provide a similar interface to the STFT of the raw signal. Additionally, the library contains an algorithm to generate artificial signals with basic customizations such as the base frequency, sample rate, duration, number of harmonics, noise, and number of signals.

Finally, the library provides multiple interactive visualizations, each implemented using IPyWidgets and work in a Jupyter environment. A dashboard-style visualization is provided, which contains some common signal-processing visual components (signal, FFT, spectogram) updating in unison with the HASP functions (see Figure 1 below). Seperate from the dashboard, an independent visualization is provided for each of the DASP algorithms as well as the artifical signal generator. These visualizations are included in the library to aid in developing an intuitive understanding how the algorithms are affected by different input signals and parameter selections.

A detailed breakdown of how these algorithms work can be seen in 'example/algorithm_walkthrough'

## Features
* Dashboard-style interactive visualization (Figure 1)
* Numerical array output for each algorithm
* Interactive visualization for FASP only
* Interactive visualization for HASP algorithms (selecting one at a time)
* Interactive visualization for sine wave generation

## Examples

An example of each feature available, and how to use them, can be seen in 'examples/dasp_example_notebook.ipynb'

## Installation
```python
pip install dasp-stacker
```

## Citation

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ORNL/DASP",
    "name": "dasp-stacker",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "signal processing,signal,visualization",
    "author": "Jacob Smith",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/db/98/3135d51bcf56424e551e0fed7c267e73e55b46e5c68781bbce8e10bcef08/dasp-stacker-0.1.1.tar.gz",
    "platform": null,
    "description": "# Dimensionally Aligned Signal Projection (DASP)\n\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n\n## Summary\nDimensionally aligned signal projection (DASP) algorithms are used to analyze fast Fourier transforms (FFTs) and generate visualizations that help focus on the harmonics for specific signals. At a high level, these algorithms extract the FFT segments around each harmonic frequency center, and then align them in equally sized arrays ordered by increasing distance from the base frequency. This allows for a focused view of the harmonic frequencies, which, among other use cases, can enable machine learning algorithms to more easily identify salient patterns. This work seeks to provide an effective open-source implementation of the DASP algorithms as well as functionality to help explore and test how these algorithms work with an interactive dashboard and signal-generation tool.\n\nThe DASP library is implemented in Python and contains four types of algorithms for implementing these feature engineering techniques: fixed harmonically aligned signal projection (HASP), decimating HASP, interpolating HASP, and frequency aligned signal projection (FASP). Each algorithm returns a numerical array, which can be visualized as an image. For consistency FASP, which is the terminology used for the short-time Fourier transform, has been implemented as part of the library to provide a similar interface to the STFT of the raw signal. Additionally, the library contains an algorithm to generate artificial signals with basic customizations such as the base frequency, sample rate, duration, number of harmonics, noise, and number of signals.\n\nFinally, the library provides multiple interactive visualizations, each implemented using IPyWidgets and work in a Jupyter environment. A dashboard-style visualization is provided, which contains some common signal-processing visual components (signal, FFT, spectogram) updating in unison with the HASP functions (see Figure 1 below). Seperate from the dashboard, an independent visualization is provided for each of the DASP algorithms as well as the artifical signal generator. These visualizations are included in the library to aid in developing an intuitive understanding how the algorithms are affected by different input signals and parameter selections.\n\nA detailed breakdown of how these algorithms work can be seen in 'example/algorithm_walkthrough'\n\n## Features\n* Dashboard-style interactive visualization (Figure 1)\n* Numerical array output for each algorithm\n* Interactive visualization for FASP only\n* Interactive visualization for HASP algorithms (selecting one at a time)\n* Interactive visualization for sine wave generation\n\n## Examples\n\nAn example of each feature available, and how to use them, can be seen in 'examples/dasp_example_notebook.ipynb'\n\n## Installation\n```python\npip install dasp-stacker\n```\n\n## Citation\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Dimensionally aligned signal projection library",
    "version": "0.1.1",
    "project_urls": {
        "Homepage": "https://github.com/ORNL/DASP"
    },
    "split_keywords": [
        "signal processing",
        "signal",
        "visualization"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "15ea572e058924e44ec12ca29ee41c9b012e6eefc32a47336d7fb4977418db71",
                "md5": "0926c94aa56e2cc6c9acd95f6bc2aef2",
                "sha256": "179ef51db52a33e7ea01d8647ab2062560e8338724e9dff00afd9ce7c2554c46"
            },
            "downloads": -1,
            "filename": "dasp_stacker-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0926c94aa56e2cc6c9acd95f6bc2aef2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 11983,
            "upload_time": "2024-02-12T19:03:56",
            "upload_time_iso_8601": "2024-02-12T19:03:56.003529Z",
            "url": "https://files.pythonhosted.org/packages/15/ea/572e058924e44ec12ca29ee41c9b012e6eefc32a47336d7fb4977418db71/dasp_stacker-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "db983135d51bcf56424e551e0fed7c267e73e55b46e5c68781bbce8e10bcef08",
                "md5": "e856ad5c8919f55ff80a65f283e02a87",
                "sha256": "499d9a6e09494955f9c8d17df6e58410400ffb34d0293cf338b3b16d6e880b3d"
            },
            "downloads": -1,
            "filename": "dasp-stacker-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e856ad5c8919f55ff80a65f283e02a87",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 13476,
            "upload_time": "2024-02-12T19:03:57",
            "upload_time_iso_8601": "2024-02-12T19:03:57.056353Z",
            "url": "https://files.pythonhosted.org/packages/db/98/3135d51bcf56424e551e0fed7c267e73e55b46e5c68781bbce8e10bcef08/dasp-stacker-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-12 19:03:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ORNL",
    "github_project": "DASP",
    "github_not_found": true,
    "lcname": "dasp-stacker"
}
        
Elapsed time: 0.19093s