th7/filter/filter.go

42 lines
786 B
Go
Raw Normal View History

2023-11-21 14:45:14 +00:00
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
2023-11-21 14:57:53 +00:00
}
2023-11-21 16:19:20 +00:00
// 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
}