ultimatesmoother


Nameultimatesmoother JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryThe UltimateSmoother preserves low-frequency swings in the input time series while attenuating high-frequency variations and noise.
upload_time2025-02-01 13:07:57
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords band-pass band-stop filtering high-pass low-pass smoothing time series
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # The Ultimate Smoother

This is a python implementation of the digital smoothing filter introduced by John Ehlers in his article ["The Ultimate Smoother"](https://www.mesasoftware.com/papers/UltimateSmoother.pdf).

## Concepts

The UltimateSmoother preserves low-frequency swings in the input time series while attenuating high-frequency variations and noise. The defining input parameter of the UltimateSmoother is the critical period, which represents the minimum wavelength (highest frequency) in the filter's pass band. In other words, the filter attenuates or removes the amplitudes of oscillations at shorter periods than the critical period.

According to Ehlers, one primary advantage of the UltimateSmoother is that it maintains **zero lag** in its pass band and minimal lag in its transition band, distinguishing it from other conventional digital filters (e.g., moving averages). One can apply this smoother to various input data series.

## Calculations

On a technical level, the UltimateSmoother's unique response involves subtracting a high-pass response from an all-pass response. At very low frequencies (lengthy periods), where the high-pass filter response has virtually no amplitude, the subtraction yields a frequency and phase response practically equivalent to the input data
At other frequencies, the subtraction achieves filtration through cancellation due to the close similarities in response between the high-pass filter and the input data.

## Usage

```python
from ultimatesmoother import ultimate_smoother

us = ultimate_smoother(data, period)
```
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ultimatesmoother",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "band-pass, band-stop, filtering, high-pass, low-pass, smoothing, time series",
    "author": null,
    "author_email": "pcktm <hi@kopanko.com>",
    "download_url": "https://files.pythonhosted.org/packages/4a/e2/54a2dd199e9c5eadba148d6a050fcbd4d69a18611d1fe29055999cc23cd3/ultimatesmoother-1.0.0.tar.gz",
    "platform": null,
    "description": "# The Ultimate Smoother\n\nThis is a python implementation of the digital smoothing filter introduced by John Ehlers in his article [\"The Ultimate Smoother\"](https://www.mesasoftware.com/papers/UltimateSmoother.pdf).\n\n## Concepts\n\nThe UltimateSmoother preserves low-frequency swings in the input time series while attenuating high-frequency variations and noise. The defining input parameter of the UltimateSmoother is the critical period, which represents the minimum wavelength (highest frequency) in the filter's pass band. In other words, the filter attenuates or removes the amplitudes of oscillations at shorter periods than the critical period.\n\nAccording to Ehlers, one primary advantage of the UltimateSmoother is that it maintains **zero lag** in its pass band and minimal lag in its transition band, distinguishing it from other conventional digital filters (e.g., moving averages). One can apply this smoother to various input data series.\n\n## Calculations\n\nOn a technical level, the UltimateSmoother's unique response involves subtracting a high-pass response from an all-pass response. At very low frequencies (lengthy periods), where the high-pass filter response has virtually no amplitude, the subtraction yields a frequency and phase response practically equivalent to the input data\nAt other frequencies, the subtraction achieves filtration through cancellation due to the close similarities in response between the high-pass filter and the input data.\n\n## Usage\n\n```python\nfrom ultimatesmoother import ultimate_smoother\n\nus = ultimate_smoother(data, period)\n```",
    "bugtrack_url": null,
    "license": null,
    "summary": "The UltimateSmoother preserves low-frequency swings in the input time series while attenuating high-frequency variations and noise.",
    "version": "1.0.0",
    "project_urls": {
        "Homepage": "https://github.com/pcktm/ultimatesmoother",
        "Issues": "https://github.com/pcktm/ultimatesmoother/issues"
    },
    "split_keywords": [
        "band-pass",
        " band-stop",
        " filtering",
        " high-pass",
        " low-pass",
        " smoothing",
        " time series"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "96c43863e6c67dd54c150b731795f33412114eb241c34198c604fd2b7a64ea07",
                "md5": "3564216b9df8b2b1ee87f5201a123ace",
                "sha256": "5fa51c42c3efe93fc059b20f76f0f1cc92e3863db6b6f4b1ec8a40800952dc60"
            },
            "downloads": -1,
            "filename": "ultimatesmoother-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3564216b9df8b2b1ee87f5201a123ace",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 3334,
            "upload_time": "2025-02-01T13:07:54",
            "upload_time_iso_8601": "2025-02-01T13:07:54.987650Z",
            "url": "https://files.pythonhosted.org/packages/96/c4/3863e6c67dd54c150b731795f33412114eb241c34198c604fd2b7a64ea07/ultimatesmoother-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4ae254a2dd199e9c5eadba148d6a050fcbd4d69a18611d1fe29055999cc23cd3",
                "md5": "3d71073fbdf022ccd625b7039bf43046",
                "sha256": "45ba107827f97651d4bd61c14b0fe6303720fad3fbddc25bd5dfdcb5237cf847"
            },
            "downloads": -1,
            "filename": "ultimatesmoother-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3d71073fbdf022ccd625b7039bf43046",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 15875,
            "upload_time": "2025-02-01T13:07:57",
            "upload_time_iso_8601": "2025-02-01T13:07:57.036025Z",
            "url": "https://files.pythonhosted.org/packages/4a/e2/54a2dd199e9c5eadba148d6a050fcbd4d69a18611d1fe29055999cc23cd3/ultimatesmoother-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-01 13:07:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pcktm",
    "github_project": "ultimatesmoother",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "ultimatesmoother"
}
        
Elapsed time: 1.58570s