pygabor


Namepygabor JSON
Version 0.9.6 PyPI version JSON
download
home_pagehttps://github.com/tonylindeberg/pygabor
SummaryGabor transform toolbox for Python.
upload_time2024-03-18 06:20:20
maintainer
docs_urlNone
authorTony Lindeberg
requires_python>=3.7,<4.0
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pygabor : Gabor transform toolbox for Python

Contains the following modules for performing time-frequency analysis on discrete signals:

## timecausgabor.py: Primitives for computing the time-causal analogue of the Gabor transform

The time-causal analogue of the Gabor transform is obtained by choosing the temporal window function in a time-frequency analysis as the time-causal limit kernel, which provides a theoretically well-founded way to define a time-frequency analysis over a time-causal temporal domain, for which the future cannot be accessed.

Notably, while the current code is written for offline experiments, the underlying approach is fully time-causal and time-recursive, and should therefore be highly suitable for real-time applications.

For examples of how to apply these functions for computing time-causal time-frequency transforms, please see the enclosed Jupyter notebook 
[timecausgabordemo.ipynb](https://github.com/tonylindeberg/pygabor/blob/main/timecausgabordemo.ipynb).

For more technical descriptions about the respective functions, please see
the documentation strings for the respective functions in the source code
in [timecausgabor.py](https://github.com/tonylindeberg/pygabor/blob/main/pygabor/timecausgabor.py).



## discgabor.py: Primitives for computing the discrete analogue of the Gabor transform

The discrete analogue of the Gabor transform is obtained by choosing the temporal window function in a time-frequency analysis as the discrete analogue of the Gaussain kernel, which provides a theoretically well-founded way to discretize the continuous Gaussian kernel in such a way that the underlying theoretical properties, that make the Gaussian kernel a canonical choice over a non-causal temporal domain, do also hold after the discretization

For reference purpose, this package also provides a possibility to choose the temporal window function as the sampled Gaussian kernel, which may otherwise constitute the most commonly used choice for discretizing the continuous Gaussian kernel

For examples of how to apply these functions for computing non-causal time-frequency transforms, please see the enclosed Jupyter notebook 
[discgabordemo.ipynb](https://github.com/tonylindeberg/pygabor/blob/main/discgabordemo.ipynb).

For more technical descriptions about the respective functions, please see
the documentation strings for the respective functions in the source code
in [discgabor.py](https://github.com/tonylindeberg/pygabor/blob/main/pygabor/discgabor.py).


## spectrogram.py: Functions for computing spectrograms based on the above time-frequency analysis methods

Computes combined spectrograms, by applying either the time-causal analogue of the Gabor transform or the discrete analogue of the Gabor transform over a set of logarithmically distributed frequencies.

The current focus of code is with regard to auditory spectrograms. With minor modifications, the approach is, however, also applicable to computing spectrograms for other application domains.

For examples of how to use these functions for computing different types of time-causal or non-causal spectrograms, please see the enclosed Jupyter notebook 
[spectrogramdemo.ipynb](https://github.com/tonylindeberg/pygabor/blob/main/spectrogramdemo.ipynb).

For more technical descriptions about the respective functions, please see
the documentation strings for the respective functions in the source code
in [spectrogram.py](https://github.com/tonylindeberg/pygabor/blob/main/pygabor/spectrogram.py).


## Installation:

This package is available 
through pip and can installed by

```bash
pip install pygabor
```

This package can also be downloaded directly from GitHub:

```bash
git clone git@github.com:tonylindeberg/pygabor.git
```


## Dependencies:

This package depends on the 
[pyscsp](https://github.com/tonylindeberg/pyscsp)
and 
[pytempscsp](https://github.com/tonylindeberg/pytempscsp)
packages, for performing the temporal smoothing in the time-frequency transforms. 

The pyscsp and pytempscsp packages are available at PyPi and at GitHub:

```bash
pip install pyscsp
```

```bash
git clone git@github.com:tonylindeberg/pyscsp.git
```

```bash
pip install pytempscsp
```

```bash
git clone git@github.com:tonylindeberg/pytempscsp.git
```

## References:

Lindeberg (2023) "A time-causal and time-recursive analogue of the Gabor transform", arXiv preprint arXiv:2308.14512.
([Preprint](https://arxiv.org/abs/2308.14512))
(Defines and describes the time-causal analogue of the Gabor transform, based on using the time-causal limit kernel as the temporal window function for performing time-frequency analysis. A discrete analogue of the Gabor transform is also defined, by discretizing the continuous Gaussian kernel in the regular Gabor transform using the discrete analogue of the Gaussian kernel.)

Lindeberg (2023) "A time-causal and time-recursive scale-covariant scale-space representation of temporal signals and past time", Biological Cybernetics, 117(1-2): 21-59. 
([Open Access](http://dx.doi.org/10.1007/s00422-022-00953-6))
(Contains an extensive treatment of the time-causal limit kernel, with its relation to defining a temporal scale-space representation at multiple temporal scales, over a time-causal temporal domain.)

Lindeberg (2023) "Discrete approximations of Gaussian smoothing and Gaussian derivatives", arXiv preprint arXiv:2311.11317
([Preprint](https://arxiv.org/abs/2311.11317))
(Contains an extensive treatment of the topic of discretizing the continuous Gaussian kernel over a non-causal discrete domain.)

Lindeberg (1990) "Scale space for discrete signals", IEEE Transactions on Pattern Analysis and Machine Intelligence 12(3): 234--254.
([Preprint](http://kth.diva-portal.org/smash/record.jsf?pid=diva2%3A472968&dswid=6991))
(Contains the original definition of the discrete analogue of the Gaussian kernel, which constitutes a canonical choice to discretize the continuous Gaussian kernel over a non-causal discrete domain, in such a way that the properties that make the continuous Gaussian kernel special over a continuous domain do also hold after the discretization.)




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/tonylindeberg/pygabor",
    "name": "pygabor",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7,<4.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "Tony Lindeberg",
    "author_email": "tony@kth.se",
    "download_url": "https://files.pythonhosted.org/packages/59/64/719a35d214172f3d4a8f2aba8d004810feaf9429a1b8b43a7766e2a99532/pygabor-0.9.6.tar.gz",
    "platform": null,
    "description": "# pygabor : Gabor transform toolbox for Python\n\nContains the following modules for performing time-frequency analysis on discrete signals:\n\n## timecausgabor.py: Primitives for computing the time-causal analogue of the Gabor transform\n\nThe time-causal analogue of the Gabor transform is obtained by choosing the temporal window function in a time-frequency analysis as the time-causal limit kernel, which provides a theoretically well-founded way to define a time-frequency analysis over a time-causal temporal domain, for which the future cannot be accessed.\n\nNotably, while the current code is written for offline experiments, the underlying approach is fully time-causal and time-recursive, and should therefore be highly suitable for real-time applications.\n\nFor examples of how to apply these functions for computing time-causal time-frequency transforms, please see the enclosed Jupyter notebook \n[timecausgabordemo.ipynb](https://github.com/tonylindeberg/pygabor/blob/main/timecausgabordemo.ipynb).\n\nFor more technical descriptions about the respective functions, please see\nthe documentation strings for the respective functions in the source code\nin [timecausgabor.py](https://github.com/tonylindeberg/pygabor/blob/main/pygabor/timecausgabor.py).\n\n\n\n## discgabor.py: Primitives for computing the discrete analogue of the Gabor transform\n\nThe discrete analogue of the Gabor transform is obtained by choosing the temporal window function in a time-frequency analysis as the discrete analogue of the Gaussain kernel, which provides a theoretically well-founded way to discretize the continuous Gaussian kernel in such a way that the underlying theoretical properties, that make the Gaussian kernel a canonical choice over a non-causal temporal domain, do also hold after the discretization\n\nFor reference purpose, this package also provides a possibility to choose the temporal window function as the sampled Gaussian kernel, which may otherwise constitute the most commonly used choice for discretizing the continuous Gaussian kernel\n\nFor examples of how to apply these functions for computing non-causal time-frequency transforms, please see the enclosed Jupyter notebook \n[discgabordemo.ipynb](https://github.com/tonylindeberg/pygabor/blob/main/discgabordemo.ipynb).\n\nFor more technical descriptions about the respective functions, please see\nthe documentation strings for the respective functions in the source code\nin [discgabor.py](https://github.com/tonylindeberg/pygabor/blob/main/pygabor/discgabor.py).\n\n\n## spectrogram.py: Functions for computing spectrograms based on the above time-frequency analysis methods\n\nComputes combined spectrograms, by applying either the time-causal analogue of the Gabor transform or the discrete analogue of the Gabor transform over a set of logarithmically distributed frequencies.\n\nThe current focus of code is with regard to auditory spectrograms. With minor modifications, the approach is, however, also applicable to computing spectrograms for other application domains.\n\nFor examples of how to use these functions for computing different types of time-causal or non-causal spectrograms, please see the enclosed Jupyter notebook \n[spectrogramdemo.ipynb](https://github.com/tonylindeberg/pygabor/blob/main/spectrogramdemo.ipynb).\n\nFor more technical descriptions about the respective functions, please see\nthe documentation strings for the respective functions in the source code\nin [spectrogram.py](https://github.com/tonylindeberg/pygabor/blob/main/pygabor/spectrogram.py).\n\n\n## Installation:\n\nThis package is available \nthrough pip and can installed by\n\n```bash\npip install pygabor\n```\n\nThis package can also be downloaded directly from GitHub:\n\n```bash\ngit clone git@github.com:tonylindeberg/pygabor.git\n```\n\n\n## Dependencies:\n\nThis package depends on the \n[pyscsp](https://github.com/tonylindeberg/pyscsp)\nand \n[pytempscsp](https://github.com/tonylindeberg/pytempscsp)\npackages, for performing the temporal smoothing in the time-frequency transforms. \n\nThe pyscsp and pytempscsp packages are available at PyPi and at GitHub:\n\n```bash\npip install pyscsp\n```\n\n```bash\ngit clone git@github.com:tonylindeberg/pyscsp.git\n```\n\n```bash\npip install pytempscsp\n```\n\n```bash\ngit clone git@github.com:tonylindeberg/pytempscsp.git\n```\n\n## References:\n\nLindeberg (2023) \"A time-causal and time-recursive analogue of the Gabor transform\", arXiv preprint arXiv:2308.14512.\n([Preprint](https://arxiv.org/abs/2308.14512))\n(Defines and describes the time-causal analogue of the Gabor transform, based on using the time-causal limit kernel as the temporal window function for performing time-frequency analysis. A discrete analogue of the Gabor transform is also defined, by discretizing the continuous Gaussian kernel in the regular Gabor transform using the discrete analogue of the Gaussian kernel.)\n\nLindeberg (2023) \"A time-causal and time-recursive scale-covariant scale-space representation of temporal signals and past time\", Biological Cybernetics, 117(1-2): 21-59. \n([Open Access](http://dx.doi.org/10.1007/s00422-022-00953-6))\n(Contains an extensive treatment of the time-causal limit kernel, with its relation to defining a temporal scale-space representation at multiple temporal scales, over a time-causal temporal domain.)\n\nLindeberg (2023) \"Discrete approximations of Gaussian smoothing and Gaussian derivatives\", arXiv preprint arXiv:2311.11317\n([Preprint](https://arxiv.org/abs/2311.11317))\n(Contains an extensive treatment of the topic of discretizing the continuous Gaussian kernel over a non-causal discrete domain.)\n\nLindeberg (1990) \"Scale space for discrete signals\", IEEE Transactions on Pattern Analysis and Machine Intelligence 12(3): 234--254.\n([Preprint](http://kth.diva-portal.org/smash/record.jsf?pid=diva2%3A472968&dswid=6991))\n(Contains the original definition of the discrete analogue of the Gaussian kernel, which constitutes a canonical choice to discretize the continuous Gaussian kernel over a non-causal discrete domain, in such a way that the properties that make the continuous Gaussian kernel special over a continuous domain do also hold after the discretization.)\n\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Gabor transform toolbox for Python.",
    "version": "0.9.6",
    "project_urls": {
        "Homepage": "https://github.com/tonylindeberg/pygabor",
        "Repository": "https://github.com/tonylindeberg/pygabor"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "344201a708466c5660714d1a57603b67fc7e0e3bd5bcf1decf413db8b61c5eec",
                "md5": "65f0da2f4de5679715949ead9c4457d3",
                "sha256": "47c634597d5603a70b788307602bb8d3e342e74f0bbbe8341cc25536a371c7a9"
            },
            "downloads": -1,
            "filename": "pygabor-0.9.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "65f0da2f4de5679715949ead9c4457d3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7,<4.0",
            "size": 10585,
            "upload_time": "2024-03-18T06:20:18",
            "upload_time_iso_8601": "2024-03-18T06:20:18.724459Z",
            "url": "https://files.pythonhosted.org/packages/34/42/01a708466c5660714d1a57603b67fc7e0e3bd5bcf1decf413db8b61c5eec/pygabor-0.9.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5964719a35d214172f3d4a8f2aba8d004810feaf9429a1b8b43a7766e2a99532",
                "md5": "e5f4aa269b44274784256c1e5a2ffeca",
                "sha256": "fdb5c9a4183ab7589daf50c36844d8b5e042fe4541fd02b2592179712e40852a"
            },
            "downloads": -1,
            "filename": "pygabor-0.9.6.tar.gz",
            "has_sig": false,
            "md5_digest": "e5f4aa269b44274784256c1e5a2ffeca",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7,<4.0",
            "size": 10011,
            "upload_time": "2024-03-18T06:20:20",
            "upload_time_iso_8601": "2024-03-18T06:20:20.171653Z",
            "url": "https://files.pythonhosted.org/packages/59/64/719a35d214172f3d4a8f2aba8d004810feaf9429a1b8b43a7766e2a99532/pygabor-0.9.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-18 06:20:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "tonylindeberg",
    "github_project": "pygabor",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pygabor"
}
        
Elapsed time: 0.21689s