1mlib_SignalDTWKScalar_F32(3mMeLdIiBa)Lib Library Funcmtliiobn_sSignalDTWKScalar_F32(3MLIB)
2
3
4
6 mlib_SignalDTWKScalar_F32 - perform dynamic time warping for K-best
7 paths on scalar data
8
10 cc [ flag... ] file... -lmlib [ library... ]
11 #include <mlib.h>
12
13 mlib_status mlib_SignalDTWKScalar_F32(mlib_d64 *dist,
14 const mlib_f32 *dobs, mlib_s32 lobs, void *state);
15
16
18 The mlib_SignalDTWKScalar_F32() function performs dynamic time warping
19 for K-best paths on scalar data.
20
21
22 Assume the reference data are
23
24 r(y), y=1,2,...,N
25
26
27
28 and the observed data are
29
30 o(x), x=1,2,...,M
31
32
33
34 the dynamic time warping is to find a mapping function (a path)
35
36 p(i) = {px(i),py(i)}, i=1,2,...,Q
37
38
39
40 with the minimum distance.
41
42
43 In K-best paths case, K paths with the K minimum distances are
44 searched.
45
46
47 The distance of a path is defined as
48
49 Q
50 dist = SUM d(r(py(i)),o(px(i))) * m(px(i),py(i))
51 i=1
52
53
54
55 where d(r,o) is the dissimilarity between data point/vector r and data
56 point/vector o; m(x,y) is the path weighting coefficient associated
57 with path point (x,y); N is the length of the reference data; M is the
58 length of the observed data; Q is the length of the path.
59
60
61 Using L1 norm (sum of absolute differences)
62
63 L-1
64 d(r,o) = SUM |r(i) - o(i)|
65 i=0
66
67
68
69 Using L2 norm (Euclidean distance)
70
71 L-1
72 d(r,o) = SQRT { SUM (r(i) - o(i))**2 }
73 i=0
74
75
76
77 where L is the length of each data vector.
78
79
80 To scalar data where L=1, the two norms are the same.
81
82 d(r,o) = |r - o| = SQRT {(r - o)**2 }
83
84
85
86 The constraints of dynamic time warping are:
87
88 1. Endpoint constraints
89
90 px(1) = 1
91 1 ≤ py(1) ≤ 1 + delta
92
93 and
94
95 px(Q) = M
96 N-delta ≤ py(Q) ≤ N
97
98
99 2. Monotonicity Conditions
100
101 px(i) ≤ px(i+1)
102 py(i) ≤ py(i+1)
103
104
105 3. Local Continuity Constraints
106
107 See Table 4.5 on page 211 in Rabiner and Juang's book.
108
109 Itakura Type:
110
111 py
112 |
113 *----*----*
114 |p4 |p1 |p0
115 | | |
116 *----*----*
117 | |p2 |
118 | | |
119 *----*----*-- px
120 p3
121
122 Allowable paths are
123
124 p1->p0 (1,0)
125 p2->p0 (1,1)
126 p3->p0 (1,2)
127
128 Consecutive (1,0)(1,0) is disallowed. So path p4->p1->p0 is
129 disallowed.
130
131 4. Global Path Constraints
132
133 Due to local continuity constraints, certain portions of the
134 (px,py) plane are excluded from the region the optimal warp‐
135 ing path can traverse. This forms global path constraints.
136
137 5. Slope Weighting
138
139 See Equation 4.150-3 on page 216 in Rabiner and Juang's
140 book.
141
142
143 A path in (px,py) plane can be represented in chain code. The value of
144 the chain code is defined as following.
145
146 ============================
147 shift ( x , y ) | chain code
148 ----------------------------
149 ( 1 , 0 ) | 0
150 ( 0 , 1 ) | 1
151 ( 1 , 1 ) | 2
152 ( 2 , 1 ) | 3
153 ( 1 , 2 ) | 4
154 ( 3 , 1 ) | 5
155 ( 3 , 2 ) | 6
156 ( 1 , 3 ) | 7
157 ( 2 , 3 ) | 8
158 ============================
159
160 py
161 |
162 * 8 7 *
163 |
164 * 4 * 6
165 |
166 1 2 3 5
167 |
168 x--0--*--*-- px
169
170
171
172 where x marks the start point of a path segment, the numbers are the
173 values of the chain code for the segment that ends at the point.
174
175
176 In following example, the observed data with 11 data points are mapped
177 into the reference data with 9 data points
178
179 py
180 |
181 9 | * * * * * * * * * *-*
182 | /
183 | * * * * * * * *-* * *
184 | /
185 | * * * * * * * * * * *
186 | /
187 | * * * * *-* * * * * *
188 | /
189 | * * * * * * * * * * *
190 | |
191 | * * * * * * * * * * *
192 | /
193 | * * * * * * * * * * *
194 | /
195 | * * * * * * * * * * *
196 | /
197 1 | * * * * * * * * * * *
198 |
199 +------------------------ px
200 1 11
201
202
203
204 The chain code that represents the path is
205
206 (2 2 2 1 2 0 2 2 0 2 0)
207
208
209
210 See Fundamentals of Speech Recognition by Lawrence Rabiner and Biing-
211 Hwang Juang, Prentice Hall, 1993.
212
214 The function takes the following arguments:
215
216 dist The distances of the K-best paths.
217
218
219 dobs The observed data array.
220
221
222 lobs The length of the observed data array.
223
224
225 state Pointer to the internal state structure.
226
227
229 The function returns MLIB_SUCCESS if successful. Otherwise it returns
230 MLIB_FAILURE.
231
233 See attributes(5) for descriptions of the following attributes:
234
235
236
237
238 ┌─────────────────────────────┬─────────────────────────────┐
239 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
240 ├─────────────────────────────┼─────────────────────────────┤
241 │Interface Stability │Committed │
242 ├─────────────────────────────┼─────────────────────────────┤
243 │MT-Level │MT-Safe │
244 └─────────────────────────────┴─────────────────────────────┘
245
247 mlib_SignalDTWKScalarInit_F32(3MLIB), mlib_SignalDTWKScalar_F32(3MLIB),
248 mlib_SignalDTWKScalarPath_F32(3MLIB), mlib_SignalDTWKScalar‐
249 Free_F32(3MLIB), attributes(5)
250
251
252
253SunOS 5.11 23 May 2007 mlib_SignalDTWKScalar_F32(3MLIB)