scientisst / BioSPPy

Biosignal Processing in Python
https://biosppy.readthedocs.io/
Other
72 stars 22 forks source link

EMG Synthesizer functions #36

Closed LeoPereira89817 closed 9 months ago

LeoPereira89817 commented 9 months ago

In projects involving the use of Electromyography, it can be useful to generate artificial (synthesized) EMG signals to create datasets with controlled conditions, including the level of noise, location and amplitude of muscle activity bursts, which can, for example, accelerate training and testing of machine-learning models for onset detection across a wide variety of signal conditions.

To address this, two functions were added to BioSPPy: "synthesizers.emg.synth_uniform" and "synthesizers.emg.synth_gaussian". These functions generate a synthetic EMG signal of a given duration and sampling rate, where muscle activity bursts are modeled as an uniform distribution and a zero-mean Gaussian process, respectively. An auxiliary function, "synthesizers.emg._truncated_gaussian_window", was also added, which generates a truncated Gaussian window, used in "synthesizers.emg.synth_gaussian" to model the amplitude of the muscle activity bursts.

Preview of the synthesized signals: emg_synth_uniform emg_synth_gaussian