Beispiel #1
0
        public double GetAdaptiveStandardDeviation(IList <double> sequence, double timeWindow)
        {
            var timeBasedMovingAverageFilter = new TimeBasedMovingAverage(timeWindow);
            var timeBasedMovingAverage       = timeBasedMovingAverageFilter.ProcessSamples(sequence);

            if (timeBasedMovingAverage.Count != sequence.Count)
            {
                throw new InvalidDataException("Different sample count data vs. filtered data");
            }

            var sumResidualSquares = sequence.Select((val, i) => Math.Pow(val - timeBasedMovingAverage[i], 2)).Sum();

            return(Math.Sqrt(sumResidualSquares / (sequence.Count - 1)));
        }
Beispiel #2
0
        public IList <double> GetMovingAverage(IList <double> sequence)
        {
            var timeBasedMovingAverageFilter = new TimeBasedMovingAverage(_options.IntervalAverageWindowTime);

            return(timeBasedMovingAverageFilter.ProcessSamples(sequence));
        }