Class ExponentialMovingAverage

java.lang.Object
org.chsrobotics.lib.math.filters.Filter
org.chsrobotics.lib.math.filters.ExponentialMovingAverage

public class ExponentialMovingAverage extends Filter
An IIR variation upon the moving average. Instead of moving outside of the window, a past value's influence over the filter's current value approaches but never reaches zero.
  • Constructor Summary

    Constructors
    Constructor
    Description
    ExponentialMovingAverage(double responseConstant)
    Constructs an ExponentialMovingAverage.
  • Method Summary

    Modifier and Type
    Method
    Description
    double
    calculate(double value, double dtSeconds)
    Adds the value to the window and calculates the current output of the filter, with a change in time since the last call of this.
    double
    Returns the current output of the filter without updating with a new value.
    void
    Resets the history of the filter.

    Methods inherited from class org.chsrobotics.lib.math.filters.Filter

    add, calculate, scalarMultiply

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ExponentialMovingAverage

      public ExponentialMovingAverage(double responseConstant)
      Constructs an ExponentialMovingAverage.
      Parameters:
      responseConstant - Parameter dictating how quickly the filter should react to a new value. Must be in [0,1] (inclusive). A responseConstant of 1 produces a filter that instantly takes on the value of the input each cycle. A responseConstant of 0 gives a filter that never changes from its initial value (0 in this implementation).
  • Method Details

    • calculate

      public double calculate(double value, double dtSeconds)
      Description copied from class: Filter
      Adds the value to the window and calculates the current output of the filter, with a change in time since the last call of this.

      Some filters do not use time in their calculations, and this method is identical to calculate() for them.

      Specified by:
      calculate in class Filter
      Parameters:
      value - the value to input to the filter.
      dtSeconds - The change in time since the last call of the filter.
      Returns:
      The current output of the filter.
    • reset

      public void reset()
      Description copied from class: Filter
      Resets the history of the filter.
      Specified by:
      reset in class Filter
    • getCurrentOutput

      public double getCurrentOutput()
      Description copied from class: Filter
      Returns the current output of the filter without updating with a new value.
      Specified by:
      getCurrentOutput in class Filter
      Returns:
      The current output of the filter (0 if no values have been given to calculate()).