th7/filter/filter.go
2023-11-21 16:19:20 +00:00

42 lines
786 B
Go

package filter
func AlphaBetaFilter(arr []float64, init float64) float64 {
value := init
for i := range arr {
gain := 1.0 / (float64(i + 1))
value += (gain*arr[i] - value)
}
return value
}
// Simple lag filter. value = old * 0.9 + new * 0.1
func Lag_1(arr []float64, init float64) float64 {
value := init
for i := range arr {
value = value*0.9 + arr[i]*0.1
}
return value
}
// Simple lag filter. value = old * 0.95 + new * 0.05
func Lag_2(arr []float64, init float64) float64 {
value := init
for i := range arr {
value = value*0.95 + arr[i]*0.05
}
return value
}
// Simple lag filter. value = old * 0.99 + new * 0.01
func Lag_3(arr []float64, init float64) float64 {
value := init
for i := range arr {
value = value*0.99 + arr[i]*0.01
}
return value
}