I have a large set of motion data I would like to extract peaks from. Data have been collected from gait experiments (motion tracking with markers attached to body parts) from n participants. For each participant the difference of anklemarker.right - anklemarker.left over time provides a sinus-like signal with peaks being steplength of that very participant. The signal quality is very different from participant to participant, i.e. some have few unrealistic (!) outliers and some have a major number of unrealistic outliers. .
Since every participant has an individual mean steplength (peak height), I would like to create an automatic outlier detection function that takes in some characteristic input that represents that very individual steplength and outputs the realistic peaks.
What I've tried so far in Matlab and corresponding difficulties:
findpeaks(signal,'MinPeakDistance',, 'MinPeakHeight', )
mpd and mph: How to find or set a value that applies to all participants?
I tried median as a general and representative entity on few participants but got differently good results
- although the median, in literature, is claimed to be robust in respect to outliers, in case of some data sets with a bigger amount of outliers than amount of realistic values, the median seems to be affected by this majority of unrealistic outliers. So the median and also the IQR can't, in my opinion right now, be applied as a good classificator of outliers. Please prove me wrong and elaborate on your suggestions, if possible, since I'm not a statistician.
What is a good way to go about outlier detection in this particular class of problem with differently good data and individual characteristics?
Thanks in advance!