Packages

Some basic filters like Kalman filters implemented in Elixir with Nx. Largely based on a port of the excellent https://github.com/rlabbe/filterpy library.

Current section

Files

Jump to
filter_ex lib exp_filter.ex
Raw

lib/exp_filter.ex

defmodule FilterEx.ExpAverage do
# Kalman Paramters
defstruct [
:alpha,
:value,
]
def update(self, y) when is_number(y) and is_struct(self, __MODULE__) do
self = %{self | value: self.value + self.alpha * (y - self.value)}
{self, self.value}
end
def update(self, value) when is_list(value) and is_struct(self, __MODULE__) do
{self, values} =
for yy <- value, reduce: {self, []} do
{self, prev} ->
self = self |> update(yy)
{self, [ self.value | prev ]}
end
{self, values |> Enum.reverse()}
end
end