Stateful normalized LMS adaptive filter
Examples
set.seed(1)
reference <- sin(2 * pi * 8 * seq_len(200) / 100)
signal <- 0.3 * reference + rnorm(200, sd = 0.05)
filt <- nlmsFilter(n_taps = 4L, step_size = 0.5)
result <- update(filt, matrix(signal, ncol = 1),
reference = matrix(reference, ncol = 1))
tail(result$output)
#> channel_1
#> [195,] -0.08781831
#> [196,] -0.04421128
#> [197,] 0.09448897
#> [198,] -0.09282238
#> [199,] 0.01511049
#> [200,] -0.03894647