I'm using two microcontrollers to implement an adaptive LMS filter to filter out the noise from the signal. One is recording the noise and streaming the data to the other microcontroller which is recording the (noised) signal and using the noise reference, filtering it out.

How does the delay between those signal affect the filtering quality? Say the noise reference input is delayed for 100us/1ms/10ms/100ms/1s, how does that affect the filtering process?


The adaptive filter tries to emulate the assumed filtering process between the noise reference signal and the actual noise in the noisy signal.

If $n(t)$ is the actual noise in the noisy signal, and $n_r(t)$ is the noise reference, it is assumed that there's a linear filtering relationship between the two:


where $*$ denotes convolution (filtering), and $h(t)$ is some unknown impulse response, which should be approximated by the adaptive filter.

The practical effect of a delay of the noise reference depends on the impulse response $h(t)$. A delay of $\tau$ in the noise reference means that the adaptive filter needs to model $h(t+\tau)$ instead of $h(t)$. This can be a good thing if $h(t)$ is almost zero in the interval $0<t<\tau$, because then optimal use is made of the length of the adaptive filter. However, if there is significant energy in $h(t)$ in that interval, then, after delaying the noise reference, the adaptive filter must approximate a non-causal filter, which it will have a very hard time to do.

So in general, a delay of the reference signal results in a shifting of the impulse response that needs to be approximated by the adaptive filter. If this shifting is helpful or not depends on the amount of shift and the properties of the impulse response.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.