Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }