We can account for delays in the oaf system by compensating it in the adaptive path of the filter. But using only this procedure is not enough. Parameters mu and tau should be chosen accurately:
w = (1 - tau) * w;
w += mu * dw / norm;
NLMS algorithm without considering delays works well for mode cleaner length and gur1 seismometer signals, significantly reducing MC_F with parameters mu=1, tau=0. These parameters are considered because nlms algorithm should converge with the highest speed when mu=1. However, if the system has a delay so at time moment n:
error_signal [n] = desired_signal [n] - filter_output [n-delay];
then the adaptive filter diverges for the same parameters mu=1 and tau=0 even for delay=1. For that reason we make the same calculations with tau = 1e-4 and tau = 1e-2 without reducing mu conserving the adaptation rate and get the same result as nlms algorithm without delays. Next figure shows MC_F signal, error after applying e-nlms filter with tau=1e-4 and tau=1e-2. "e-" is added to show that a small number (epsilon) is added to the norm of the signal in order to prevent the filter from diverging in the beginning of the process when the norm is not well-determined yet.
The test was done offline with the sampling frequency 2048 Hz, without downsampling and any filters. We can see that tau=1e-4 is still not enough, tau=1e-3 or tau=1e-2 is as good as nlms without delays, tau=1e-1 and high are also bad.
Correctly choosing tau we have some freedom for delay compensation in the adaptation path. This is important as we do not know exactly what is the delay in the real system. We can measure it approximately. In order to figure out the range of reasonable delay errors we make a test with delay = 1, but to the adaptation path we give delays from 0 to 10. It turns out that adaptation path delays greater then 5 make the filter diverge, delays in the range 0-3 produce a reasonable error. In the figure below errors with adaptation path delays = 1 (correct) and 3 are presented.