How to perform DTW or EDR with 3 vectors?

10 ビュー (過去 30 日間)
Hüseyin Eken
Hüseyin Eken 2019 年 7 月 30 日
コメント済み: Julian Ilham 2021 年 11 月 17 日
Hello all! I haven't worked on these stuff before and my knowledge about them only comes from internet, so I'd be happy if you could help me with my problem.
I have trajectories (in 3D) of some markers obtained from a MOCAP system. During the experiment, each subject performed several movements, and for each, we captured it 3 times. So, I have 3 trials for one movement, and I would like to average them (or create one time-series in general terms). Moreover, I am thinking to fill the missing points that are occured during only in some of those trials. However, I need to perform a "temporal normalization" first, since the events of the movement occured at slightly different instances due to patients' velocities. I came across with DTW(Dynamic Time Warping) and EDR(Edit Distance on Real Signals), but they both are used with two signals at a time. I would to use them for all 3 signals in order to obtain a common time-warped or edited signal.
Since I can't use 3 of them at the same time, I tried with pairs of them, for example:
[d1,ix1,iy1] = dtw(trial1,trial2);
[d2,ix2,iy2] = dtw(trial1,trial3);
But the new trial1 vectors i.e. trial1(ix1) and trial1(ix2) are different from each other.
Is there any way that I can use all three of my signal in DTW and/or EDR? (Maybe utilizing in a way the pairs of signals or anchoring one signal etc.)
Thanks in advance
Also, I have another question regarding to DTW (How to set proper maxsamp value in Dynamic Time Warping) with only 2 signals.
  2 件のコメント
Vaughn Chambers
Vaughn Chambers 2020 年 2 月 5 日
Did you ever find a solution to this problem? I am having the same issue currently.
Hüseyin Eken
Hüseyin Eken 2020 年 2 月 8 日
Regarding Vaughn Chambers' comment: I am afraid I didn't. I have discarded the idea since DTW didn't work for my precise alignment problem.
However, if I had continued I would try the construct the matrix in 3D and adjust the cost/DTW value functions myself. You can follow a similar option or check file exchange maybe somebody did it already.

サインインしてコメントする。

回答 (2 件)

Eamonn
Eamonn 2019 年 7 月 30 日
"Is there any way that I can use all three of my signal in DTW "
Yes, there are two ways DTWd and DTWi. As explained in [a].
See also a tutorual on DTW [b]
  1 件のコメント
Hüseyin Eken
Hüseyin Eken 2019 年 7 月 31 日
First of all, thanks. I have checked those but I believe what they mentioned is a bit different from what I wanted to do. In the articles you have provided, they are using DTW as a classification/clustering algorithm based on the resulting distances/dtw scores I assume. I am not interested in clustering, classifying or the distances between them- at least not directly. All I want is to align my three signals of the same movement altogether and repeat for other types of movements.
For both DTWd and DTWi, they used multi-dimensional time-series but still in pairs. My signals are 1D if I focus only one component or 3D if I work with all of the coordinate dimensions, but they are 3 different signals. I have tried to use them like in this example from [a].
Screenshot_7.jpg
For example, I have aligned (best I could I have still problems on that because I need to choose a proper maxsamp value for constraint) 1st and 2nd signals, as a result, I have 2 new versions of those signals as time-warp versions of those let's call them signal1_tw and signal2_tw. And then I have performed another dtw in the same way as before but this time with 1st and the 3rd signal so I have another pair of time-warped signal signal1_tw2 (not to confuse with the other one) and signal3_tw.
When I plot signal1_tw and signal1_tw2, I see that they are different so they have been modified with respect to the second signal (so I understand that there is no fixing one signal and warping only the other one). Therefore, could I perform one dtw for all 3 of my signals like in the code below if it was supported?
[dist12 dist13 dist23 i1 i2 i3] = dtw(signal1, signal2, signal3, maxsamp);

サインインしてコメントする。


ISHEEKA DASGUPTA
ISHEEKA DASGUPTA 2020 年 6 月 22 日
Hi, Did you find a solution to this problem?i am facing a similar issue
  2 件のコメント
Hüseyin Eken
Hüseyin Eken 2020 年 6 月 23 日
Unfortunately, I haven't. As I explained, I disgarded the idea but if I were to continue I was thinking to build the cost matrix (and of course the rules) myself, in 3D. Last time I checked the file exchange, such work didn't exist but it was a year ago so you may want to check that again.
In addition, if you are interested in classification or the distance between the time-series maybe you would be pleased by this comment. If you are interested in temporal normalization as I was, I would suggest you to use simply resampling instead of DTW.
Julian Ilham
Julian Ilham 2021 年 11 月 17 日
I dont know whether you have found this solution yourself. I use DTW code from: https://www.ee.columbia.edu/~dpwe/resources/matlab/dtw/ for 3 temporal signals vs 3 temporal signals

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeDescriptive Statistics についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by