22 lines
444 B
C#
22 lines
444 B
C#
namespace KitsuneCafe.Sys
|
|
{
|
|
public class ExponentialMovingAverage
|
|
{
|
|
private readonly float alpha;
|
|
private float previousAverage = float.NaN;
|
|
|
|
public ExponentialMovingAverage(int period)
|
|
{
|
|
alpha = 2f / (period + 1);
|
|
}
|
|
|
|
public float Add(float value)
|
|
{
|
|
if (float.IsNaN(previousAverage))
|
|
{
|
|
return value;
|
|
}
|
|
return (value - previousAverage) * alpha + previousAverage;
|
|
}
|
|
}
|
|
}
|