Skip to contents

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