Giter Club home page Giter Club logo

Comments (5)

GallVp avatar GallVp commented on May 30, 2024

Thank you for raising this issue.

I have tried to answer the highlighted questions in a new markdown document here: https://github.com/GallVp/emgGO/blob/master/docs/edtaExplained.md

Go through the document to see if it answers your questions. I can add additional information if you have more questions.

It would be a great help if you highlight any spelling or other mistake, correct it and add a pull request.

from emggo.

ykukkim avatar ykukkim commented on May 30, 2024

Thank you for your work again.

Your explanation does an amazing job for people to start!

It is unfortunate that I could not spot any mistake in your explanation or so, I am sure others may be able to spot it!

I do however another few questions, your script runs on the single-channel source, which works fine with my data to in conditions of correct modifications.

For my data, I had to modify a bit, the highlighted bits are where I had to add in order to get the baselinemean and std. Weirdly, the index for IA is retrieved in random order, does this matter? as your data gives ordered IA. I had to times by 10000 as my EMG is not amplified much as your value.

UNIQUE_TOL = 1/max(abs(inputSignal*10000)); [~, IA, ~] = uniquetol(movingAverage, UNIQUE_TOL); **IA = sort(IA);**

Also, with I rounded my index for baselineinterval too, but you don't seem to do it and works fine. Is there a reason why you didn't use round for this?

baselineInterval = startSampleNo - floor(baselineLength/2) + 1 : startSampleNo + floor(baselineLength/2); **baselineInterval = round(baselineInterval);**

Lastly, have you tried with multichannel data? I was wondering if the value of **baseline mean and std were calculated for each channel. If you look at my data(14 channel), the first channel does detect the activation very well but for other channels, it doesn't seem to do so.

If I am not very clear, please let me know.
Thank you for your work!

1
2
3
4
5
6

from emggo.

GallVp avatar GallVp commented on May 30, 2024

A few notes:

  1. uniquetol returns a rank order of the signal by comparing values. For example, consider the following code.
[~, IA, ~] = uniquetol([10 5 1 8], 0.1)
IA =

     3
     2
     4
     1

IA is the rank order of [10 5 1 8] in ascending order. Using sort on IA destroys the rank order.

  1. The value of UNIQUE_TOL also created problems for me. If you can share your data via email, I can look at the problem and maybe change the way UNIQUE_TOL is calculated so that it works across datasets.

  2. I am rounding the baselineLength parameter using the sampling rate in the extendedDTA function. If you need to round baselineInterval, then there is bug in my code as rounding should not be required.

  3. Yes, I have tested the toolbox on multi-channel data. The extendedDTA function only works on single channel but the GUIs are designed to work on multi-channel data by running the extendedDTA on each channel individually. The GUIs keep parameters separate for each channel.

  4. I would suggest to use the nOptim based Auto Find function to detect onsets/offsets. But if you are trying to go through the ins and outs of the algorithm, then tuning the parameters manually is of course what you need to do. This requires tuning parameters for each channel separately as in my experience same parameters rarely work for all the channels.

from emggo.

ykukkim avatar ykukkim commented on May 30, 2024

I will send you the link where my data is stored via email. I personally believe that the value of UNIQUE_TOL is creating a problem which leads onto other functions hence not able to get correct detection of bursts.

Regards to your comment on extendedDTA function only working on a single channel and manually adjusting the parameters using GUI. Please correct me if I am wrong, but as far as I understand, values for OptionsVector should not vary between channels as the behaviour of muscle activation are quite similar.

Please let me know,

Thank you!

from emggo.

GallVp avatar GallVp commented on May 30, 2024

Thank you for your help in identifying a number of bugs in the toolbox. Please download the latest version with the bugs fixed. Two of the fixed bugs are:

  1. UNIQUE_TOL has been removed and a simpler logic is now used. For further details, please see issue no 2.

  2. By default, emgEventsDetectTool initialises same parameters for all the channels. If a parameter is changed for the selected channel, this does not affect the remaining channels. This was done as in some situations, different channels need different parameters. But you are right, there are situations when same parameters are required. To cater to such situations, I have added an additional button "Apply to all". By pressing this button, the current parameters are applied across all the channels, thus, saving time in copy pasting parameters manually.

from emggo.

Related Issues (7)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.