Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hahnec/multimodal_emg
Multimodal Exponentially Modified Gaussians with Optional Oscillation
https://github.com/hahnec/multimodal_emg
acoustic-features acoustics exponentially-modified-gaussian feature-engineering gaussian-mixture-models mixture-model multimodal oscillation oscillations regression regression-models superposition
Last synced: 1 day ago
JSON representation
Multimodal Exponentially Modified Gaussians with Optional Oscillation
- Host: GitHub
- URL: https://github.com/hahnec/multimodal_emg
- Owner: hahnec
- Created: 2022-07-24T15:50:20.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-03-29T11:29:46.000Z (over 1 year ago)
- Last Synced: 2024-01-27T15:42:46.045Z (10 months ago)
- Topics: acoustic-features, acoustics, exponentially-modified-gaussian, feature-engineering, gaussian-mixture-models, mixture-model, multimodal, oscillation, oscillations, regression, regression-models, superposition
- Language: Jupyter Notebook
- Homepage:
- Size: 2.4 MB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Multimodal Exponentially Modified Gaussians
[![arXiv paper link](https://img.shields.io/badge/paper-arXiv:2209.12202-red)](https://arxiv.org/pdf/2209.12202.pdf)
## Quick Facts
- multiple asymmetric Gaussian distributions for the univariate case
- optional oscillation term for wave approximations
- based on [analytical derivation](./docs/exp_mod_gauss_wave_partial_derivative.pdf)
- accepts ```numpy``` as well as ```torch``` data types## Kick Start
Below is a code excerpt for fitting multi-modal skewed Gaussian distributions:
```python
from multimodal_emg import gaussian_envelope_model, emg_envelope_model, emg_wave_model
from multimodal_emg.regression.derivatives import gaussian_jac, emg_jac, oemg_jac# multimodal optimization
p_star, result = multimodal_fit(
data,
features = [[1, 24, 2, 0],[.5, 48, 3, -1]], # amplitude, location, spread, skew
components = 2,
x = x,
fun = emg_envelope_model,
jac_fun = emg_jac,
)print(p_star)
import matplotlib.pyplot as plt
plt.plot(result)
plt.show()
```## Oscillating Regression
The oscillation regression can be found in the accompanied [Jupyter Notebook](./single_synth_memg_example.ipynb) which yields the below result:
[![Oscillating Multi-Modal EMG](./docs/figs/denoising_emg.svg)](./single_synth_memg_example.ipynb)
## Citation
```
@inproceedings{Hahne:2022,
author = {Christopher Hahne},
title = {Multimodal Exponentially Modified Gaussian Oscillators},
booktitle= {2022 IEEE International Ultrasonics Symposium (IUS)},
address={},
month={Okt},
year={2022},
pages={1-4},
}
```## Acknowledgment
This research is funded by the Hasler foundation under project number 22027.