1mlib_SignalDTWVectorPath_S1m6e(d3iMaLLIiBb)Library Fmulnicbt_iSoingsnalDTWVectorPath_S16(3MLIB)
2
3
4

NAME

6       mlib_SignalDTWVectorPath_S16  -  perform dynamic time warping on vector
7       data
8

SYNOPSIS

10       cc [ flag... ] file... -lmlib [ library... ]
11       #include <mlib.h>
12
13       mlib_status mlib_SignalDTWVectorPath_S16(mlib_d64 *dist, mlib_s32 *path,
14            mlib_s32 *lpath, const mlib_s16 **dobs, mlib_s32 lobs, mlib_s32 sobs,
15            void *state);
16
17

DESCRIPTION

19       The mlib_SignalDTWVectorPath_S16() function performs dynamic time warp‐
20       ing on vector data.
21
22
23       Assume the reference data are
24
25             r(y), y=1,2,...,N
26
27
28
29       and the observed data are
30
31             o(x), x=1,2,...,M
32
33
34
35       the dynamic time warping is to find a mapping function (a path)
36
37             p(i) = {px(i),py(i)}, i=1,2,...,Q
38
39
40
41       with the minimum distance.
42
43
44       In  K-best  paths  case,  K  paths  with  the  K  minimum distances are
45       searched.
46
47
48       The distance of a path is defined as
49
50                     Q
51             dist = SUM d(r(py(i)),o(px(i))) * m(px(i),py(i))
52                    i=1
53
54
55
56       where d(r,o) is the dissimilarity between data point/vector r and  data
57       point/vector  o;  m(x,y)  is  the path weighting coefficient associated
58       with path point (x,y); N is the length of the reference data; M is  the
59       length of the observed data; Q is the length of the path.
60
61
62       Using L1 norm (sum of absolute differences)
63
64                      L-1
65             d(r,o) = SUM |r(i) - o(i)|
66                      i=0
67
68
69
70       Using L2 norm (Euclidean distance)
71
72                             L-1
73             d(r,o) = SQRT { SUM (r(i) - o(i))**2 }
74                             i=0
75
76
77
78       where L is the length of each data vector.
79
80
81       To scalar data where L=1, the two norms are the same.
82
83             d(r,o) = |r - o| = SQRT {(r - o)**2 }
84
85
86
87       The constraints of dynamic time warping are:
88
89           1.     Endpoint constraints
90
91                        px(1) = 1
92                        1 ≤ py(1) ≤ 1 + delta
93
94                  and
95
96                        px(Q) = M
97                        N-delta ≤ py(Q) ≤ N
98
99
100           2.     Monotonicity Conditions
101
102                        px(i) ≤ px(i+1)
103                        py(i) ≤ py(i+1)
104
105
106           3.     Local Continuity Constraints
107
108                  See Table 4.5 on page 211 in Rabiner and Juang's book.
109
110                  Itakura Type:
111
112                        py
113                        |
114                        *----*----*
115                        |p4  |p1  |p0
116                        |    |    |
117                        *----*----*
118                        |    |p2  |
119                        |    |    |
120                        *----*----*-- px
121                              p3
122
123                  Allowable paths are
124
125                        p1->p0    (1,0)
126                        p2->p0    (1,1)
127                        p3->p0    (1,2)
128
129                  Consecutive  (1,0)(1,0) is disallowed. So path p4->p1->p0 is
130                  disallowed.
131
132           4.     Global Path Constraints
133
134                  Due to local continuity constraints, certain portions of the
135                  (px,py) plane are excluded from the region the optimal warp‐
136                  ing path can traverse. This forms global path constraints.
137
138           5.     Slope Weighting
139
140                  See Equation 4.150-3 on page  216  in  Rabiner  and  Juang's
141                  book.
142
143
144       A  path in (px,py) plane can be represented in chain code. The value of
145       the chain code is defined as following.
146
147             ============================
148             shift ( x , y ) | chain code
149             ----------------------------
150                 ( 1 , 0 )   |     0
151                 ( 0 , 1 )   |     1
152                 ( 1 , 1 )   |     2
153                 ( 2 , 1 )   |     3
154                 ( 1 , 2 )   |     4
155                 ( 3 , 1 )   |     5
156                 ( 3 , 2 )   |     6
157                 ( 1 , 3 )   |     7
158                 ( 2 , 3 )   |     8
159             ============================
160
161                 py
162                 |
163                 *  8  7  *
164                 |
165                 *  4  *  6
166                 |
167                 1  2  3  5
168                 |
169                 x--0--*--*-- px
170
171
172
173       where x marks the start point of a path segment, the  numbers  are  the
174       values of the chain code for the segment that ends at the point.
175
176
177       In  following example, the observed data with 11 data points are mapped
178       into the reference data with 9 data points
179
180                 py
181                 |
182              9  | * * * * * * * * * *-*
183                 |                  /
184                 | * * * * * * * *-* * *
185                 |              /
186                 | * * * * * * * * * * *
187                 |            /
188                 | * * * * *-* * * * * *
189                 |        /
190                 | * * * * * * * * * * *
191                 |       |
192                 | * * * * * * * * * * *
193                 |      /
194                 | * * * * * * * * * * *
195                 |    /
196                 | * * * * * * * * * * *
197                 |  /
198              1  | * * * * * * * * * * *
199                 |
200                 +------------------------ px
201                   1                   11
202
203
204
205       The chain code that represents the path is
206
207             (2 2 2 1 2 0 2 2 0 2 0)
208
209
210
211       See Fundamentals of Speech Recognition by Lawrence Rabiner  and  Biing-
212       Hwang Juang, Prentice Hall, 1993.
213

PARAMETERS

215       The function takes the following arguments:
216
217       dist     The distance of the optimal path.
218
219
220       path     The optimal path.
221
222
223       lpath    The length of the optimal path.
224
225
226       dobs     The observed data array.
227
228
229       lobs     The length of the observed data array.
230
231
232       sobs     The   scaling   factor  of  the  observed  data  array,  where
233                actual_data = input_data * 2**(-scaling_factor).
234
235
236       state    Pointer to the internal state structure.
237
238

RETURN VALUES

240       The function returns MLIB_SUCCESS if successful. Otherwise  it  returns
241       MLIB_FAILURE.
242

ATTRIBUTES

244       See attributes(5) for descriptions of the following attributes:
245
246
247
248
249       ┌─────────────────────────────┬─────────────────────────────┐
250       │      ATTRIBUTE TYPE         │      ATTRIBUTE VALUE        │
251       ├─────────────────────────────┼─────────────────────────────┤
252       │Interface Stability          │Committed                    │
253       ├─────────────────────────────┼─────────────────────────────┤
254       │MT-Level                     │MT-Safe                      │
255       └─────────────────────────────┴─────────────────────────────┘
256

SEE ALSO

258       mlib_SignalDTWVectorInit_S16(3MLIB),   mlib_SignalDTWVector_S16(3MLIB),
259       mlib_SignalDTWVectorPath_S16(3MLIB),              mlib_SignalDTWVector‐
260       Free_S16(3MLIB), attributes(5)
261
262
263
264SunOS 5.11                        23 May 200m7lib_SignalDTWVectorPath_S16(3MLIB)
Impressum