public static IList <DeviceAccelerationCombined> FilterDeviceAccelerationCombinedCollection(IList <DeviceAccelerationCombined> deviceAccelerationCombinedCollection, int windowSize = 20) { var deviceAccelerationCombinedFilteredCollection = new List <DeviceAccelerationCombined>(); // The windows default size is 20 var movingFilter = new MovingAverage(windowSize); for (int i = 0; i < deviceAccelerationCombinedCollection.Count; i++) { var deviceAccelerationCombined = deviceAccelerationCombinedCollection[i]; var deviceAccelerationCombinedFiltered = new DeviceAccelerationCombined { ID = deviceAccelerationCombined.ID, AnswerRecordID = deviceAccelerationCombined.ID, Index = deviceAccelerationCombined.Index, Time = deviceAccelerationCombined.Time, Acceleration = movingFilter.ComputeAverage(deviceAccelerationCombined.Acceleration) }; deviceAccelerationCombinedFilteredCollection.Add(deviceAccelerationCombinedFiltered); } return(deviceAccelerationCombinedFilteredCollection); }
public static IList <DeviceAccelerationCombined> CombineDeviceAcceleration(IList <DeviceAcceleration> deviceAccelerationCollection) { var deviceAccelerationCombinedCollection = new List <DeviceAccelerationCombined>(); for (int i = 0; i < deviceAccelerationCollection.Count; i++) { var deviceAcceleration = deviceAccelerationCollection[i]; var deviceAccelerationCombined = new DeviceAccelerationCombined { ID = deviceAcceleration.ID, AnswerRecordID = deviceAcceleration.ID, Index = deviceAcceleration.Index, Time = deviceAcceleration.Time, Acceleration = (float)Math.Sqrt(Math.Pow(deviceAcceleration.X, 2.0) + Math.Pow(deviceAcceleration.Y, 2.0) + Math.Pow(deviceAcceleration.Z, 2.0)), }; deviceAccelerationCombinedCollection.Add(deviceAccelerationCombined); } return(deviceAccelerationCombinedCollection); }