If you pass in 2 vectors it returns the unnormalized distance between the vectors, the accumulated distance between them, the length of the warping path (the normalizing factor), and the warping path points.
To compare 2 vectors A and B call:
[Dist,D,k,w]=dtw(A,B)
Dist is the unnormalized distance
D is the accumulated distance
k is the length of the warping path
(the normalizing factor)
w is a matrix containing the points along the warping path
I ran this function for some series of data but all the time, the answer is the same... I mean for different data I get a fix D and Dist and etc.
am I wrong? or is there a problem with the function?
Hi everyone!!
I'm using this software, and I think that it's really useful.
But I've a question: how to use the normalization factor?
I've read that there are more users that have answered this, but I don't know how to read the previous answers.
Thanks a lot.
Can anyone explain how to use the normalizing factor? Thanks a lot.
14 Oct 2008
Zhuo Feibao
25 Mar 2008
Ahmed Bderhman
I think this is a good working and had help me more.
I have this question: i like to change euclidean distance{d=(repmat(Test',1,N)-repmat(Ref,M,1)).^2;} with mahalanobis distance is it possipole? if yes how can i do that?
because i like to test the efficiency of my system when i use euclidean distance and when i used mahalnobis distance.
Comment only
26 Feb 2008
Sai Man
Great code thanks for writing. But, I noticed a small discrepancy with my C code. In the .m file line 45:
min([D(n-1,m),D(n,m-1),D(n-1,m-1)]);
it would be much better to have the D(n-1,m-1) element in the first argument like this:
min([D(n-1,m-1),D(n,m-1),D(n-1,m)]);
and also swap the cases on the following lines.
This is because we are trying to find the minimum path length, and in the case where D(n-1,m-1)=D(n,m-1) or D(n-1,m-1)=D(n-1,m) then it would make sense to preference the diagonal element over the offdiagonal.
28 Jan 2008
twinss ahmed
07 Jun 2007
Pau Micó
I think it should be better to replace the sentence: w=cat(1,w,[n,m]); by: w=[n m; w];
In this way we get the w indexes in ascending order and it is easier to get t_warped and r_warped as: t_warped=t(w(:,1)); and r_warped=t(w(:,2));. In this way we can directly compare the warped sequences with the original ones without any index inversion.
20 Feb 2007
weera kompreyaray
24 Jan 2007
Sven Mensing
Good function
Another 10-fold Speed-up can be achived if you use a double-MIN construction for the Distance matrix
Can you tell me about speaker verification using mfcc and dtw. Please let me know.
Comment only
04 May 2005
jamal habibi
29 Apr 2005
Ivo Ihrke
The loop
for m=2:m
D(1,m)=d(1,m)+D(1,m-1);
end
contains an error ( for statement ), should be:
for m=2:M
D(1,m)=d(1,m)+D(1,m-1);
end
If you want to compare vectors, where the vectors themselves are unknown, but their distance matrix is known, you can use your distance matrix instead of "d"
06 Apr 2005
Georg Schmitz
The routine can be made 10 times faster by doing the d(n,m) calculation by