Skip to main content

Dynamical Component Analysis - A method to decompose multivariate signals

Project description

Dynamical Component Analysis (DyCA)

Dynamical Component Analysis (DyCA) is a dimension reduction method for multivariate time series data.

Installing information

$ pip install -r requirements.txt

There are different ways to use the DyCA algorithm:

  1. You know the number of linear and nonlinear components --> fine, you can use dyca(signal, time, m, n)
  2. You know only the number of linear components, but not the dimension n of the underlying deterministic system:
    • with dyca(signal, time, m) you get the generalized eigenvalues and the singular values of the projection matrix and you can decide how many nonlinear components you want to use
    • run a second time dyca(signal, time, m, n) with the number of linear and nonlinear components (m: linear components, n: dimension of the system) you want to use
  3. You don't know the number of linear and nonlinear components:
    • with dyca(signal, time) you get the generalized eigenvalues and you can decide how many linear components you want to use (Now you are in scenario 2.)
    • run a second time dyca(signal, time, m) with the number of linear components you want to use --> you get the singular values of the projection matrix and you can decide how many nonlinear components you want to use
    • run a third time dyca(signal, time, m, n) with the number of linear and nonlinear components (n = linear + nonlinear components) you want to use

Example Usage

The roessler case is in detail explained in ./roessler70_example.ipynb

Different Data source examples are shown in (where componentnoise and additivenoise specify the SNR in dB)

./example_data/{attractorname}_{componentnoise}_{additivenoise}.csv

and implemented in

./example_code/{attractorname}_{additivenoise}_example.py

Citing information

@Article{Uhl2020,
  author={Uhl, Christian and Kern, Moritz and Warmuth, Monika and Seifert, Bastian},
  journal={IEEE Open Journal of Signal Processing}, 
  title={Subspace Detection and Blind Source Separation of Multivariate Signals by Dynamical Component Analysis (DyCA)}, 
  year={2020},
  volume={1},
  number={},
  pages={230-241},
  keywords={Heuristic algorithms;Signal processing algorithms;Tools;Brain modeling;Mathematical model;Noise measurement;
  Principal component analysis;Biomedical data;blind source separation;differential equations;dimensionality reduction;
  dynamical component analysis;independent component analysis;low dimensional dynamics;motion detection;principal component analysis},
  doi={10.1109/OJSP.2020.3038369}
  }

DOI: 10.1109/OJSP.2020.3038369

Acknowledgement

This work was supported by the German Federal Ministry of Education and Research (BMBF, Funding number: 05M20WBA).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dyca-1.0.0.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dyca-1.0.0-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

File details

Details for the file dyca-1.0.0.tar.gz.

File metadata

  • Download URL: dyca-1.0.0.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for dyca-1.0.0.tar.gz
Algorithm Hash digest
SHA256 afbd5a5fc195351e093f20859a902c85bf4ed3f1385d995bd5910c4d0938b721
MD5 6ddd6292680b0612cc23b094e837a4a0
BLAKE2b-256 1bf5b7d0179dd7a8c7e46fb94a3db0de07b6db9b9c3b5394bb09ef36536c4ed0

See more details on using hashes here.

File details

Details for the file dyca-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dyca-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for dyca-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 52629073eebba689ed1172c0d7cc67c7e78582fd9909bfdf52f5c0c31ce11992
MD5 655fb77521713a754b82aa6e9ab67f7c
BLAKE2b-256 5637702783e802cac22d420b3a7df64dcd4f2bb7d2ecfdd5eac52fd71dcf9bb7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page