Least-mean-squares adaptive transversal filter. Returns the filter
output y and instantaneous error e = d - y. Coefficient update:
w <- w + 2 * mu * e[i] * x_seg.
Usage
morie_dsp_lms(x, d, order = 16L, mu = 0.01)
Arguments
- x
Input (reference) vector.
- d
Desired vector, same length as x.
- order
Filter order (taps). Default 16.
- mu
Step size. Default 0.01.
Value
List with elements y and e, both length(x).
References
Rangayyan & Krishnan (2015), Ch. 3, sec. 3.6;
Widrow & Stearns (1985).
Examples
set.seed(1)
n <- 1000
x <- rnorm(n)
d <- 0.5 * c(0, x[-n]) + 0.01 * rnorm(n) # delayed, scaled target
out <- morie_dsp_lms(x, d, order = 4L, mu = 0.05)
mean(out$e[801:1000]^2) # post-convergence error is small
#> [1] 0.0001780497