public Gesture SampleSignal(Gesture signal) { var sampledValues = new List<double[]>(); var sampledSignal = new Gesture(sampledValues, signal.Label); for (var j = 0; j < SampleSteps; ++j) { sampledValues.Add(new double[3]); for (var i = 0; i < 3; ++i) { var findex = 1.0 * (signal.Length - 1) * j / (SampleSteps - 1); var res = findex - (int) findex; sampledSignal.SetValue(j, i, (1-res) * signal.GetValue((int)findex, i) + ((int)findex + 1 < signal.Length - 1 ? res * signal.GetValue((int)findex + 1, i) : 0)); } } return sampledSignal; }
public Gesture SampleSignal(Gesture signal) { var sampledValues = new List<double[]>(); var sampledSignal = new Gesture(sampledValues, signal.Label); var min = double.MaxValue; var max = double.MinValue; for (var i = 0; i < signal.Length; ++i) { for (var j = 0; j < 3; ++j) { if (signal.GetValue(i, j) > max) max = signal.GetValue(i, j); if (signal.GetValue(i, j) < min) min = signal.GetValue(i, j); } } for (var i = 0; i < signal.Length; ++i) { sampledValues.Add(new double[3]); for (var j = 0; j < 3; ++j) { sampledSignal.SetValue(i, j, (signal.GetValue(i, j) - min) / (max - min)); } } return sampledSignal; }